Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/landing/lib/ |
Upload File : |
<?php namespace Bitrix\Landing; use Bitrix\Landing\Internals\SiteTable; use \Bitrix\Landing\Internals\UrlRewriteTable; class UrlRewrite { /** * Set rule for the site. * @param int $siteId Site id. * @param string $rule Rule. * @param int $landingId Landing id. If empty then remove. * @return void */ public static function set($siteId, $rule, $landingId = null) { $rule = trim($rule); // check for exist $check = SiteTable::getList([ 'select' => [ 'ID' ], 'filter' => [ 'ID' => $siteId, '=DELETED' => ['Y', 'N'] ] ])->fetch(); if (!$check) { return; } if ($landingId) { $check = SiteTable::getList([ 'select' => [ 'ID' ], 'filter' => [ 'ID' => $landingId, '=DELETED' => ['Y', 'N'] ] ])->fetch(); if (!$check) { return; } } // set or unset $filter = [ 'SITE_ID' => $siteId, '=RULE' => $rule ]; if ($landingId) { $filter['!LANDING_ID'] = $landingId; } $res = UrlRewriteTable::getList([ 'select' => [ 'ID' ], 'filter' => $filter ]); if ($row = $res->fetch()) { if ($landingId) { UrlRewriteTable::update($row['ID'], [ 'LANDING_ID' => $landingId ]); } else { UrlRewriteTable::delete( $row['ID'] ); } } else if ($landingId) { UrlRewriteTable::add([ 'SITE_ID' => $siteId, 'RULE' => $rule, 'LANDING_ID' => $landingId ]); } } /** * Unset rule for the site. * @param int $siteId Site id. * @param string $rule Rule. * @return void */ public static function remove($siteId, $rule) { self::set($siteId, $rule); } /** * Matching rule for url. * @param int $siteId Site id. * @param string $url Some url. * @return int Landing id. */ public static function matchUrl($siteId, $url) { // } /** * Clear rules for one site. * @param int $siteId Site id. * @return void */ public static function removeForSite($siteId) { $res = UrlRewriteTable::getList([ 'select' => [ 'ID' ], 'filter' => [ 'SITE_ID' => $siteId ] ]); while ($row = $res->fetch()) { UrlRewriteTable::delete($row['ID']); } } /** * Clear rules for one site. * @param int $landingId Landing id. * @return void */ public static function removeForLanding($landingId) { $res = UrlRewriteTable::getList([ 'select' => [ 'ID' ], 'filter' => [ 'LANDING_ID' => $landingId ] ]); while ($row = $res->fetch()) { UrlRewriteTable::delete($row['ID']); } } }