Как правильно создавать уникальные страницы в комплексном компоненте bitrix?

Для создания уникальных страниц в комплексном компоненте Bitrix необходимо выполнить следующие шаги:

  1. Разработка шаблона страницы:
  • Создайте новый шаблон страницы в папке /bitrix/templates/ вашего сайта. Например, содайте папку template_name и в ней файл template.php.
  • Скопируйте все необходимые файлы для отображения страницы в эту папку, например, header.php, footer.php и т.д.
  • Отредактируйте файл template.php, чтобы он отображал только содержимое нужной вам страницы.
  1. Создание и настройка компонента:
  • Создайте новый комплексный компонент на странице Административный раздел -> Контент -> Компоненты.
  • Укажите имя компонента, например, my:unique_page.
  • Включите навигацию для комплексного компонента для возможности создания уникальных страниц. Для этого укажите параметр isincludecomponent_chains в .parameters.php компонента:
     "PARAMETERS" => array(
         "SEF_MODE" => "Y",
         "SEF_FOLDER" => "/news/",
         "SEF_URL_TEMPLATES" => array(
             "list" => "",
             "detail" => "#ELEMENT_ID#/",
         ),
         "IS_INCLUDE_COMPONENT_CHAINS" => "Y",
     )
  • Укажите необходимые дополнительные параметры в .parameters.php компонента.
  • Определите обработку шаблона в .willworkwith_template.php компонента, например:
     if ($this->StartResultCache()) {
         $this->IncludeComponentTemplate();
     }
  1. Создание файлов страниц:
  • Создайте папку для страницы в /bitrix/templates/templatename/components/my/uniquepage/.
  • Для каждой уникальной страницы создайте файл с именем соответствующим ее идентификатору, например, для страницы с идентификатором 42 создайте файл 42.php.
  • В каждом файле разместите необходимый контент для отображения страницы.
  1. Настройка ЧПУ:
  • Для настройки ЧПУ укажите страницы компонента в .htaccess. Например:
     RewriteRule ^news/([0-9]+)/$ /bitrix/services/my/unique_page/42.php [L]
  • Данное правило перенаправит запросы на страницу с идентификатором 42 на файл 42.php в компоненте my:unique_page.

Теперь при открытии страницы с ЧПУ /news/42/ будет отображаться файл 42.php, а при открытии страницы с ЧПУ /news/43/ будет отображаться файл 43.php.