Как сделать детальную страницу элемента инфоблока - techart/bitrix.tao GitHub Wiki
Итак, список котиков мы вывели. В настройках инфоблока в поле "URL страницы детального просмотра&"; указано "/cats/#ELEMENT_ID#/";. Но при переходе на эту страницу по ссылке из тизера получаем унылое 404. Нам нужно, чтобы показывалась страница с детальным описанием котика.
Способ 1: через автоматический механизм
Как и для списка, создаем маршрут:
\TAO::addRoute('{^/cats/(\d+)/$}', array(
'element_of' => 'cats',
'id' => '{1}',
));
По умолчанию для показа котика берется шаблон full.phtml. Но можно создать, например, detail.phtml и указать его имя:
\TAO::addRoute('{^/cats/(\d+)/$}', array(
'element_of' => 'cats',
'id' => '{1}',
'mode' => 'detail',
));
Таким способом можно создавать несколько станиц для одного элемента. Например, одна выводит биографию, а другая - фотогалерею:
\TAO::addRoute('{^/cats/(\d+)/$}', array(
'element_of' => 'cats',
'id' => '{1}',
'mode' => 'detail',
));
\TAO::addRoute('{^/cats/(\d+)/gallery/$}', array(
'element_of' => 'cats',
'id' => '{1}',
'mode' => 'gallery',
));
Можно запрашивать страницу не по числовому идентификатору, а по символьному коду:
\TAO::addRoute('{^/cats/([^/]+)/$}', array(
'element_of' => 'cats',
'code' => '{1}',
));
или комбинированно:
\TAO::addRoute('{^/cats/([^/]+)/$}', array(
'element_of' => 'cats',
'id_or_code' => '{1}',
));
Способ 2: через специально созданную страницу
Это возможно, но сей способ больше подходит для людей, желающих странного. Поэтому описывать я его не стану. Если вдруг другие способы вам не нравятся, то подходите - поговорим.
Способ 3: через контроллер
Это очень обширная тема, не для этой статьи.