Настройка ЧПУ ссылок 1С Битрикс

По умолчанию при создании информационного путь к страницам раздела и детального просмотра задается в виде ссылок на физические файлы которые должны содержать соответствующие компоненты.

настройка чпу

Наша задача добиться чтобы ссылки на страницы раздела и страницы детального просмотра имели вид ЧПУ, т. е.: корневой раздел/название раздела/название статьи.

Для этого в настройках инфоблока необходимо внести адреса

URL страницы информационного блока: /#SITE_DIR#/poleznaya-informatsiya

URL страницы раздела: /#SITE_DIR#/poleznaya-informatsiya/#CODE#

RL страницы детального просмотра: /#SITE_DIR#/poleznaya-informatsiya/#SECTION_CODE#/#CODE#

где:

#SITE_DIR# - коневая папка сайта

poleznaya-informatsiya — физическая папка с файлом index.php и компонентой «Список новостей»

#SECTION_CODE# - символический код раздела

#CODE# - символический код элемента

В настройках полей элементов инфоблока указать обязательным «Символьный код» включить «Если код задан, то проверять на уникальность», «Транслитерировать из названия при добавлении элемента.», «Удалять лишние символы замены.».

настройкb полей элементов инфоблока

Так как мы используем инфоблок с разделами то и в настройках полей разделов инфоблока задать соотвествующие параметры как и для элементов.

настройки полей разделов инфоблока

Теперь создадим соответствующие разделы и статьи для нашего инфоблока

элементы раздела инфоблока символический код

Все первоначальные этапы по созданию инфоблока у нас созданы теперь необходимо позаботится о выводи информации на сайте, для этих целей у нас существует компоненты: «Список новостей» и «Новость детально».

Настройка и вывод списка статей

Создадим в нашей физической папке «poleznaya-informatsiya» файл index.php и добавим в него компоненту «Список новостей», выбираем соответствующий информационный блок, в нашем случае это «Статьи». Для того что бы наша компонента отображала только статьи принадлежащие разделу в дополнительным настройках компоненты необходимо указать переменным глобально массива $_REQUEST который будет содержать символический код, а именно ={$_REQUEST["SECTION_CODE"]}

Список новостей

<?$APPLICATION->IncludeComponent(
"bitrix:news.list",
"bar",
array(
"ACTIVE_DATE_FORMAT" => "d.m.Y",
"ADD_SECTIONS_CHAIN" => "N",
"AJAX_MODE" => "Y",
"AJAX_OPTION_ADDITIONAL" => "",
"AJAX_OPTION_HISTORY" => "N",
"AJAX_OPTION_JUMP" => "N",
"AJAX_OPTION_STYLE" => "Y",
"CACHE_FILTER" => "N",
"CACHE_GROUPS" => "Y",
"CACHE_TIME" => "36000000",
"CACHE_TYPE" => "N",
"CHECK_DATES" => "Y",
"COMPONENT_TEMPLATE" => "bar",
"DETAIL_URL" => "",
"DISPLAY_BOTTOM_PAGER" => "N",
"DISPLAY_DATE" => "Y",
"DISPLAY_NAME" => "Y",
"DISPLAY_PICTURE" => "Y",
"DISPLAY_PREVIEW_TEXT" => "N",
"DISPLAY_TOP_PAGER" => "N",
"FIELD_CODE" => array(
0 => "",
1 => "",
),
"FILE_404" => "",
"FILTER_NAME" => "",
"HIDE_LINK_WHEN_NO_DETAIL" => "N",
"IBLOCK_ID" => "4",
"IBLOCK_TYPE" => "ARTICLES",
"INCLUDE_IBLOCK_INTO_CHAIN" => "N",
"INCLUDE_SUBSECTIONS" => "N",
"MESSAGE_404" => "",
"NEWS_COUNT" => "3",
"PAGER_BASE_LINK_ENABLE" => "N",
"PAGER_DESC_NUMBERING" => "N",
"PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
"PAGER_SHOW_ALL" => "N",
"PAGER_SHOW_ALWAYS" => "N",
"PAGER_TEMPLATE" => "all",
"PAGER_TITLE" => "",
"PARENT_SECTION" => $_REQUEST["SECTION_ID"],
"PARENT_SECTION_CODE" => $_REQUEST["SECTION_CODE"],
"PREVIEW_TRUNCATE_LEN" => "",
"PROPERTY_CODE" => array(
0 => "",
1 => "",
),
"SET_BROWSER_TITLE" => "N",
"SET_LAST_MODIFIED" => "N",
"SET_META_DESCRIPTION" => "N",
"SET_META_KEYWORDS" => "N",
"SET_STATUS_404" => "Y",
"SET_TITLE" => "N",
"SHOW_404" => "N",
"SORT_BY1" => "RAND",
"SORT_BY2" => "RAND",
"SORT_ORDER1" => "RAND",
"SORT_ORDER2" => "RAND"
),
false
);?>


Теперь для работы нашей ссылки необходимо настроить «Правило обработки адресов»

Условие: #^/poleznaya-informatsiya/([a-z-0-9_]+)#

Файл: /poleznaya-informatsiya/index.php

Правило: SECTION_CODE=$1

Правило обработки адресов разделов

Настройка и вывод детальной информации статьи

Создадим в нашей физической папке «poleznaya-informatsiya» файл detail.php и добавим в него компоненту «Новость детально», выбираем соответствующий информационный блок, в нашем случае это «Статьи». для того что бы наша компонента отображала нужную нас статью в основных параметрах компоненты необходимо указать переменные глобально массива $_REQUEST который будет содержать символический код, а именно ={$_REQUEST["CODE"]}

Настройка и вывод детальной информации статьи

$APPLICATION->IncludeComponent(
"bitrix:news.detail",
"",
Array(
"ACTIVE_DATE_FORMAT" => "d.m.Y",
"ADD_ELEMENT_CHAIN" => "N",
"ADD_SECTIONS_CHAIN" => "Y",
"AJAX_MODE" => "N",
"AJAX_OPTION_ADDITIONAL" => "",
"AJAX_OPTION_HISTORY" => "N",
"AJAX_OPTION_JUMP" => "N",
"AJAX_OPTION_STYLE" => "Y",
"BROWSER_TITLE" => "-",
"CACHE_GROUPS" => "Y",
"CACHE_TIME" => "36000000",
"CACHE_TYPE" => "A",
"CHECK_DATES" => "Y",
"DETAIL_URL" => "",
"DISPLAY_BOTTOM_PAGER" => "Y",
"DISPLAY_DATE" => "N",
"DISPLAY_NAME" => "Y",
"DISPLAY_PICTURE" => "Y",
"DISPLAY_PREVIEW_TEXT" => "Y",
"DISPLAY_TOP_PAGER" => "N",
"ELEMENT_CODE" => $_REQUEST["CODE"],
"ELEMENT_ID" => $_REQUEST["ID"],
"FIELD_CODE" => array("",""),
"IBLOCK_ID" => "2",
"IBLOCK_TYPE" => "info",
"IBLOCK_URL" => "",
"INCLUDE_IBLOCK_INTO_CHAIN" => "Y",
"MESSAGE_404" => "",
"META_DESCRIPTION" => "-",
"META_KEYWORDS" => "-",
"PAGER_BASE_LINK_ENABLE" => "N",
"PAGER_SHOW_ALL" => "N",
"PAGER_TEMPLATE" => ".default",
"PAGER_TITLE" => "Страница",
"PROPERTY_CODE" => array("",""),
"SET_BROWSER_TITLE" => "Y",
"SET_CANONICAL_URL" => "N",
"SET_LAST_MODIFIED" => "N",
"SET_META_DESCRIPTION" => "Y",
"SET_META_KEYWORDS" => "Y",
"SET_STATUS_404" => "N",
"SET_TITLE" => "Y",
"SHARE_HANDLERS" => array("delicious","facebook","lj","mailru","twitter","vk"),
"SHARE_HIDE" => "N",
"SHARE_SHORTEN_URL_KEY" => "",
"SHARE_SHORTEN_URL_LOGIN" => "",
"SHARE_TEMPLATE" => "",
"SHOW_404" => "N",
"STRICT_SECTION_CHECK" => "N",
"USE_PERMISSIONS" => "N",
"USE_SHARE" => "N"
)
);

Настройка правила аналогична так же как и для страницы «Списка новостей»

Условие: #^/poleznaya-informatsiya/([a-z-0-9_]+)/([a-z-0-9_]+)#

Файл: /poleznaya-informatsiya/detail.php

Правило: SECTION_CODE=$1&CODE=$2

Настройка правила страница детально

В этой статьи были рассмотренный настройки вывода списка статей и страницы детально, для вывода списка разделов и настройки ЧПУ ссылок мы рассмотрим в следующей статье. Если у вас что не не получилось то мы с радостью готовы вам помочь в вопросе разработки или доработки сайта на CMS 1C-Bitrix.


Close