12 января 2012 г.

Битрикс головоломка


В предыдущем посте посвященном ЧПУ Битрикс, был задан вопрос такого содержания:
Скажем есть инфоблок КАТАЛОГ, в нем раздел ТЕЛЕФОНЫ, в нем подраздел НОКИЯ, вот как в обработке адресов правильно написать условие, если мы не используем стандартные битриксовые убогие айди-чпу для комплексного компонента?

Единственное, что мне пока пришло в голову - это использовать уникальный символьный код каждого отдельного товара.

Надеюсь Вы поймете мой ход мыслей и если что подправите.
Допустим у нас такая иерархия:
КАТАЛОГ (тип инфоблока: katalog)
\_раздел ТЕЛЕФОНЫ ( инфоблок: phone)
| \_ подраздел НОКИЯ (символьный код раздела: nokia_phone)
| | \_ телефон1 (символьный код элемента: code1)
| | |_ телефон2 (code2)
| |- подраздел САМСУНГ (символьный код раздела: samsyng_phone)
| | \_ телефон3 (code3)
| | |_ телефон4 (code4)
| |...

Подразделы в разделах Инфоблоках похоже можно использовать только в декоративных целях.
Для вывода элементов подраздела в таких компонентах как компонент "Список новостей", ну или только  использовать его символьный код ЧПУ.

Каждый элемент инфоблока для использования его #CODE# в ЧПУ должен содержать уникальный символьный код. Как настроить всю вязанку компонентов Битрикс  для учета и символьного кода раздела я еще не представляю.. 

Каталог Мобильных телефонов.
В параметрах компонентах, в поле URL страницы детального просмотра можно указать ЧПУ адрес вида:
/mobile/#SECTION_CODE#/#CODE#/
где #SECTION_CODE# - поле подстановки "символьный код раздела"
#CODE# поле подстановки "символьный код элемента"

В обработку адресов можно добавить следующую запись.
Условие:
#^/mobile/([\w\d\_]+)/([\w\d\_]+)/#
Файл: 
указать url адрес на страницу с компонентом детального просмотра
Правило:
SECTION_CODE=$1&CODE=$2

Итого:
Имеется url адрес /mobile/nokia_phone/code2/, где смысловую нагрузку несет только code2

Комментариев нет:

Отправить комментарий