%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.147.103.3 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/local/php_interface/lib/Helpers/ |
Upload File : |
<?php namespace LocalLib\Helpers; use Bitrix\Iblock\ElementTable; use Bitrix\Iblock\SectionTable; use Bitrix\Main\Context; use Bitrix\Main\Web\Uri; use function mb_strtolower; class UrlHelper { public static function getCurrentUrl($deleteSystemParameters = true) { $obRequest = Context::getCurrent()->getRequest(); $uri = new Uri($obRequest->getRequestUri()); if($deleteSystemParameters){ $uri->deleteParams($obRequest->getSystemParameters()); } return $uri->getUri(); } public static function reloadPage() { LocalRedirect(self::getCurrentUrl()); } /** * Для работы данного метода требуется добавить сюда /bitrix/admin/urlrewrite_list.php * нижеследующее правило обработки адресов. * Условие: #^/news(?:/|\?|\#|$)# * Файл: /news/index.php */ public static function setRequestParamsForNewsDir($iblockId) { $iblockId = intval($iblockId); if($iblockId <= 0){ return; } $url = self::getCurrentUrl(false); if(substr($url, 0, 10) == '/news/tag/'){ $isSection = true; if(!preg_match('/^\/news\/tag\/([^\/?#]+?)(?:\?|\#|\/|$)/i', $url, $matches)){ return; } }else{ if(!preg_match('/^\/news\/([^\/?#]+?)(?:\?|\#|\/|$)/i', $url, $matches)){ return; } } $code = trim((string)$matches[1]); if (empty($code)) { $code = mb_strtolower($code); } if (empty($code) || $code == 'index.php') { return; } $arParams = [ 'select' => ['ID', 'CODE'], 'filter' => ['=IBLOCK_ID' => $iblockId, '=CODE' => $code], 'cache' => ['ttl' => 86400] ]; if ($isSection) { $ar = SectionTable::getRow($arParams); if($ar['ID'] > 0){ $_REQUEST['SECTION_ID'] = $ar['ID']; $_REQUEST['SECTION_CODE'] = $ar['CODE']; } }else{ $ar = ElementTable::getRow($arParams); if($ar['ID'] > 0){ $_REQUEST['ELEMENT_ID'] = $ar['ID']; $_REQUEST['ELEMENT_CODE'] = $ar['CODE']; } } } }