Многоуровневые ЧПУ
Задача всем знакома до боли. Задача: сделать ЧПУ вида:
Ранее приходилось использовать внештатные методы решения данной проблемы. Но в новых версиях битрикса это решается очень просто! Для создания такого ЧПУ необходимо использовать специальную константу #SECTION_CODE_PATH# Как это выглядит:
В помощь трудящимся!
Если в шаблоне bitrix:catalog.section компонента catalog не работает путь из символьных кодов, как правило это вылазит когда используется вывод товаров и из подразделов — поможет небольшой код в result_modifier.php
Теперь в независимости от уровня нахождения в каталоге, путь к карточке товара будет выводиться истинный.
1. Переключитесь в режим правки и зайдите в настройки любого компонента каталога.
2. Перейдите в пункт меню «Управление ссылками», отредактируйте поле «Детальная информация», задав нужные параметры для отображения ссылок.
ELEMENT_ID — если вы хотите, чтобы в ссылках отображался ID товара: /catalog/dushevye_kabiny/254 (ID товара)
ELEMENT_CODE — для отображения символьного кода товара: catalog/santekhnika/dushevye_kabiny/victoria_f-217 (код товара)
Настройка инфоблока каталога
1. В административной части сайта перейдите в настройки каталога товаров:
Контент → Инфоблоки →Типы инфоблоков → Каталог → Каталог товаров
2. Проверьте, совпадают ли коды, заданные в компоненте каталога, с кодами в строках URL страницы инфоблока, URL страницы раздела и URL страницы детального просмотра.
Если вы указали в настройках параметров компонента ELEMENT_ID, то и в этих строках должен содержаться именно это значение. Иначе ЧПУ будет работать некорректно, из-за чего возникнут проблемы с отображением товаров каталога.
Здесь же вы можете задать дополнительные параметры для разделов, кликнув на кнопку с многоточием и выбрав нужные настройки ЧПУ.
Например:
SECTION_CODE – символьный код родительского раздела
SECTION_ID – ID родительского раздела
SECTION_CODE_PATH – путь из символьных кодов раздела.
Внимание! Если вы используете параметр SECTION_CODE или SECTION_CODE_PATH, убедитесь, что символьные коды разделов уникальны. При совпадении символьных кодов система не поймет, какой раздел ей открыть, и не отобразит данные.
Для этого перейдите на вкладку «Поля разделов» в настройках инфоблока и отметьте пункты «Если код задан, то проверять на уникальность» и «Транслитерировать из названия при добавлении раздела».
Эти же параметры выставляем на вкладке «Поля», если задаем символьный код элемента (ELEMENT_CODE).
К примеру, вы хотите, чтобы в ссылках на товары использовался символьный код. Тогда код в поле «Детальная информация» в компоненте каталога будет выглядеть так:
А код в инфоблоке будет выглядеть так:
3. Сохраняем изменения и проверяем результат на сайте: