Все почитала, в принципе, с добавлениями правил - как мне казалось, разобралась.
Тем не менее, что-то не то происходит, подробности ниже:
В каталоге есть страница detail.php, на ней размещен компонент "элемент каталога детально", в параметрах
"ID элемента: ={$_REQUEST["ELEMENT_ID"]}". В общем, реально посмотреть на элемент каталога можно по адресу
Код |
---|
/catalog/office_equipment/printers/detail.php?ELEMENT_ID=32100 |
Решила я настроить хотя бы так -
Код |
---|
/catalog/office_equipment/printers/32100/ |
(ну по-идее, в идеале я бы хотела так
Код |
---|
/catalog/office_equipment/printers/<АРТИКУЛ>/ |
, но это попозже)
В настройках инфоблока переписала "URL страницы детального просмотра", как можно догадаться, на
Код |
---|
/catalog/office_equipment/printers/#ELEMENT_ID#/ |
В urlrewrite.php в самый конец массива добавила еще один массив:
Код |
---|
array(
"CONDITION" =>"#^/catalog/office_equipment/printers/(\d+)/.*#",
"RULE" => "ELEMENT_ID=",
"ID" => "",
"PATH" => "/catalog/office_equipment/printers/detail.php",
), |
Видимо, тут почти все правильно, потому что не 404 ошибка выдается, а все-таки компонент отрабатывает... Только пишет, что "Элемент не найден".
Что не так-то тут, как проверить?
UPD.
Вывела своим любимым var_dump'ом $_SERVER прям в самом начале detail.php.
И увидела такую картину (ну при переходе по ссылке вида /catalog/office_equipment/printers/#ELEMENT_ID#/), что
Код |
---|
["QUERY_STRING"]=>
string(11) "ELEMENT_ID=" |
А если перейти по "длинной" ссылке с GET-параметром, то
Код |
---|
["QUERY_STRING"]=>
string(16) "ELEMENT_ID=32100" |
В общем, такое
смутное подозрение, что ELEMENT_ID попросту не передается, значит - что-то с моим правилом не так.
Исправила, в итоге правило выглядит : "RULE" => "ELEMENT_ID=$1", все, работает
щас буду думать, как артикул прикрутить. наверно, надо сделать так, чтобы значение ELEMENT_CODE автоматически присваивалось из значения артикула.