Небольшое дополнение к предыдущей статье.
Если Вам необходимо получить в фильтре либо выше (до вызова компонента сотбит) информацию о новом URL, можно выполнить подобный код и получить требуемую информацию:
$url = $_SERVER['REQUEST_URI']; // ищем по URL. Если совпадает, то значит существует страница с таким значением $connection = Bitrix\Main\Application::getConnection(); $sqlHelper = $connection->getSqlHelper(); $sql = "SELECT NEW_URL,REAL_URL FROM b_sotbit_seometa_chpu WHERE REAL_URL='".$url."'"; $recordset = $connection->query($sql); while ($record = $recordset->fetch()) { $new_url=$record['NEW_URL']; }
Пишем класс для работы:
class dataFromSotbit { public static function getConditionById($id) { $arCondition = \Sotbit\Seometa\ConditionTable::getById($id)->fetch(); if($arCondition['FILTER_TYPE'] == 'default') { $arCondition['FILTER_TYPE'] = \Bitrix\Main\Config\Option::get("sotbit.seometa", "FILTER_TYPE", "bitrix_chpu"); } return $arCondition; } public static function getMetaId($str){ $metaData = Sotbit\Seometa\SeometaUrlTable::getByRealUrl($str); return $metaData; } public static function getListFromUrl($url){ $result = \Sotbit\Seometa\SeometaUrlTable::getList(array( 'select' => array('*'), 'filter' => array('ACTIVE' => 'Y', '=REAL_URL' => $url), 'order' => array('ID') ))->fetch(); return $result; } public static function getNewUrl($url){ $result = \Sotbit\Seometa\SeometaUrlTable::getList(array( 'select' => array('NEW_URL'), 'filter' => array('ACTIVE' => 'Y', '=REAL_URL' => $url), 'order' => array('ID'), 'limit' => 1 ))->fetch(); return $result['NEW_URL']; } }
Добавляем его в файл и подключаем в init
Теперь можно обратится getNewUrl для получения нового URL.
Либо для получения всего массива данных getMetaId($url).