Необходимо вывести элементы каталога без раздела — списком. Реализовал через bitrix:news.list.
Элементы вывел без проблем, списком, но детальный просмотр элементов не работает, выдает 404.
Настройки URL инфоблока —
spoiler
Код компонента —
spoiler
<?$APPLICATION->IncludeComponent(
«bitrix:news.list»,
«template1»,
array(
«ACTIVE_DATE_FORMAT» => «d.m.Y»,
«ADD_SECTIONS_CHAIN» => «Y»,
«AJAX_MODE» => «N»,
«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» => «A»,
«CHECK_DATES» => «Y»,
«COMPONENT_TEMPLATE» => «template1»,
«DETAIL_URL» => «/uslugi/#ELEMENT_CODE#/»,
«DISPLAY_BOTTOM_PAGER» => «Y»,
«DISPLAY_DATE» => «Y»,
«DISPLAY_NAME» => «Y»,
«DISPLAY_PICTURE» => «Y»,
«DISPLAY_PREVIEW_TEXT» => «Y»,
«DISPLAY_TOP_PAGER» => «N»,
«FIELD_CODE» => array(
0 => «»,
1 => «»,
),
«FILTER_NAME» => «»,
«HIDE_LINK_WHEN_NO_DETAIL» => «N»,
«IBLOCK_ID» => «8»,
«IBLOCK_TYPE» => «gs_news»,
«INCLUDE_IBLOCK_INTO_CHAIN» => «N»,
«INCLUDE_SUBSECTIONS» => «Y»,
«MESSAGE_404» => «»,
«NEWS_COUNT» => «20»,
«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» => «.default»,
«PAGER_TITLE» => «Новости»,
«PARENT_SECTION» => «»,
«PARENT_SECTION_CODE» => «»,
«PREVIEW_TRUNCATE_LEN» => «»,
«PROPERTY_CODE» => array(
0 => «»,
1 => «»,
),
«SET_BROWSER_TITLE» => «Y»,
«SET_LAST_MODIFIED» => «N»,
«SET_META_DESCRIPTION» => «Y»,
«SET_META_KEYWORDS» => «Y»,
«SET_STATUS_404» => «N»,
«SET_TITLE» => «Y»,
«SHOW_404» => «N»,
«SORT_BY1» => «ACTIVE_FROM»,
«SORT_BY2» => «SORT»,
«SORT_ORDER1» => «DESC»,
«SORT_ORDER2» => «ASC»,
«STRICT_SECTION_CHECK» => «N»
),
false
);?>
- ID – по идентификатору;
- NAME – по заголовку;
- ACTIVE_FROM – по дате начала активности;
- SORT – по индексу сортировки;
- TIMESTAMP_X – по дате последнего изменения.
Выбрав пункт (другое)->, можно сформировать свой вариант поля для первой сортировки новостей.
- ASC – По возрастанию;
- DESC – По убыванию.
- ID – по идентификатору;
- NAME – по заголовку;
- ACTIVE_FROM – по дате начала активности;
- SORT – по индексу сортировки;
- TIMESTAMP_X – по дате последнего изменения.
Выбрав пункт (другое)->, можно сформировать свой вариант поля для второй сортировки новостей.
- ASC – По возрастанию;
- DESC – По убыванию.
Array("NAME","PREVIEW_TEXT","PREVIEW_PICTURE","DETAIL_TEXT",""),
При выборе пункта (не выбрано)-> и без указания вычисления полей в строках ниже (т.е. если задан пустой массив), на странице списка будут выведены поля по умолчанию.
- A — Авто + Управляемое: автоматически обновляет кеш компонентов в течение заданного времени или при изменении данных;
- Y — Кешировать: для кеширования необходимо определить время кеширования;
- N — Не кешировать: кеширования нет в любом случае.
дополнительные поля.
Дополнительные поля:
Url для построения ссылок (по умолчанию — автоматически) | PAGER_BASE_LINK | Задается адрес для построения ссылок. Если в параметре ничего не указывать, то адрес будет построен автоматически. |
Имя массива с переменными для построения ссылок в постраничной навигации | PAGER_PARAMS_NAME | Задается имя переменной, в которой передается массив с переменными для построения ссылок компонентом постраничной навигации. |
специальная страница
Станет активным поле:
Страница для показа (по умолчанию /404.php) | FILE_404 | Задается адрес страницы, которая будет отображаться при возникновении ошибки 404. |
в случае возникновения ошибки 404, в противном случае — будет отображено
специальное сообщение.
Станет активным поле:
Сообщение для показа (по умолчанию из компонента) | MESSAGE_404 | Задается сообщение, которое будет показано в случае возникновения ошибки 404. Если ничего не указывать, то будет использоваться стандартное сообщение из компонента. |
Внимание! При передаче символьного кода раздела (SECTION_CODE) выполняется дополнительная проверка на принадлежность раздела к инфоблоку, указанному в параметре IBLOCK_ID и активность с учетом вышележащих разделов. При передаче идентификатора раздела (SECTION_ID) такая проверка не производится.
Одна из проблем, которая возникает при настройке 404 ошибки для Битрикс: движок наотрез отказывается отдавать 404 ошибку, если секция (раздел) не существует. Вместо 404 мы видим список всех элементов. Например:
Существующий адрес /news/about/
выводит новости только раздела about, а не существующий адрес /news/blablabla/
выдаст абсолютно все элементы из всех категорий. Причем параметры для вывода ошибки установлены верно:
"SET_STATUS_404" => "Y", "SHOW_404" => "Y",
Как оказалось, сообщения об этом баге можно встретить на форуме еще в 2009 году. А исправить ошибку достаточно просто: просто добавьте параметр "STRICT_SECTION_CHECK" => "Y",
в компонент news.list.
Например, если этот баг встречается в компоненте bitrix:news, то переходим в шаблон, находим файл section.php, который отвечает за вывод раздела и в параметрах компонента news.list добавляем «STRICT_SECTION_CHECK» => «Y». Все, страница с неверным адресом будет отдавать ошибку.
Самое забавное, что такой параметр даже не описывается в документации, что крайне прискорбно.
Осваиваю Битрикс. Столкнулся со следующей проблемой. Создал новостной инфлоблок. Анонсы новостей выводятся как положено, но при попытке перейти на детальный просмотр новости выводится ошибка «404 Not Found». Объясните почему и как это решить.
Мой файл urlewrite.php содержит следующий код:
<?php
$arUrlRewrite=array (
0 =>
array (
'CONDITION' => '#^\/?\/mobileapp/jn\/(.*)\/.*#',
'RULE' => 'componentName=$1',
'ID' => NULL,
'PATH' => '/bitrix/services/mobileapp/jn.php',
'SORT' => 100,
),
1 =>
array (
'CONDITION' => '#^/rest/#',
'RULE' => '',
'ID' => NULL,
'PATH' => '/bitrix/services/rest/index.php',
'SORT' => 100,
),
2 =>
array (
'CONDITION' => '#^/news/#',
'RULE' => '',
'ID' => 'bitrix:news',
'PATH' => '/news/index.php',
'SORT' => 100,
),
);
Настройки инфоблока следующие
0 / 0 / 0 Регистрация: 08.12.2013 Сообщений: 2 |
|
1 |
|
04.06.2015, 21:17. Показов 10818. Ответов 3
Ребят, помогите пожалуйста. Переношу новости с другого сайта, не могу настроить чпу отображения новостей. Показывает код 404 При переходе по ссылке «новость детально» открывается 404. Подскажите, пожалуйста, на каком этапе совершил ошибку. Спасибо.
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
04.06.2015, 21:17 |
3 |
53 / 44 / 10 Регистрация: 10.12.2013 Сообщений: 197 Записей в блоге: 1 |
|
05.06.2015, 04:52 |
2 |
Обычно в правила обработки адресов даже заглядывать не приходится. Дело видимо в том, что у вас на странице ожидается ELEMENT_CODE, а передается ELEMENT_ID. Согласуйте два параметра. Посмотрите что стоит за знаком в вопрос в ссылке (/news/newsdetail.php?…) и замените либо в ссылке либо в чпу.
0 |
0 / 0 / 0 Регистрация: 08.12.2013 Сообщений: 2 |
|
05.06.2015, 06:32 [ТС] |
3 |
Посмотрите что стоит за знаком в вопрос в ссылке (/news/newsdetail.php?…) Где это посмотреть? Добавлено через 8 минут Добавлено через 7 минут Условие » #^/news/([a-zA-Z0-9]+$)/([a-zA-Z0-9]+$).php# « не помогает
0 |