Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

как распарсить УРЛ и по этим значения отфильтровать на другой странице?

00 голосов
2

Все привет! 
Есть путь: сайт/europe/russia/moscow/ 

Все разделы в пути это элементы разных инфоблоков с заменой через ЧПУ. 
в последнем разделе делаю страницу на ней вывожу 8 инфоблоков но элементы во всех инфоблоках необходимо отфильтровать по конкретным признакам, что бы остались только элементы которые относятся к конкретному городу. 
получается, что когда иду со страницы moscow на целевую страницу, мне нужно как то тащить за собой параметры континента, страны, города, что бы на целевой по ним отфильтровать все инфоблоки. 
Как вытащить эти параметры и перейти с ними на целевую для фильтрации? 
пока в голове крутиться только вариант на целевой странице распарсить УРЛ вытащить из него параметры и по ним фильтровать, но парсить не умею. 
Помогите распарсить УРЛ для фильтрации по параметру из него?  

спросил 24 Окт, 17 от аноним

2 Ответы

00 голосов
 
Лучший ответ

1. Сначала - во избежание всяких проблем по безопасности - надо определить возможные (допустимые) варианты инфоблоков. Например, так:


$arIB = array(
'europe' => 1,
'russia' => 2,
'moscow' => 3);

 

2. Потом - получаем URL и разбираем его в массив.


global $APPLICATION;
$arUrl = explode('/', $APPLICATION->GetCurPage());


3. Проходим по массиву $arUrl, вытаскиваем инфоблоки


foreach($arUrl as $code) {
$pureCode=trim($code);
if (isset($arIB[$pureCode])) {
$ib = $arIB[$pureCode];
// получили инфоблок
}
}


4. А дальше уже - вывод элементов.. Тут уже смотря как вы делаете - или GetList, или какой-то компонент типа news.list, который поддерживает фильтрацию (и кеширование).

 

ответил 26 Окт, 17 от root (25,590 баллов)
00 голосов
Кто может сделать такое за донат?
ответил 25 Окт, 17 от аноним

Похожие вопросы

0 голосов
4 ответов
0 голосов
2 ответов
0 голосов
2 ответов
0 голосов
0 ответов