|
Привет всем! Друзья помочите понять в чём моя ошибка. Есть два инфоблока (одинаковых по сути в настройках). В одном структура разделов в инфоблоке следующая - Раздел -> 2 подраздела -> в каждом элементы В корне следующая конструкция папок - Папка пункта меню -> Папка Раздела -> Папка Подраздела -> Папка Элемента 1, Папка Элемента 2, Папка Элемента 3, Папка Элемента 4 (в каждой папке три файла .left.menu_ext.php - .section.php - index.php) В файлах index.php используется компонент bitrix:news со следующим содержимым: Код |
---|
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("");?>
<?$APPLICATION->IncludeComponent("bitrix:news", "services", array(
"IBLOCK_TYPE" => "aspro_allcorp_content",
"IBLOCK_ID" => "12",
"NEWS_COUNT" => "20",
"USE_SEARCH" => "N",
"USE_RSS" => "N",
"USE_RATING" => "N",
"USE_CATEGORIES" => "N",
"USE_FILTER" => "Y",
"FILTER_NAME" => "arrFilter",
"FILTER_FIELD_CODE" => array(
0 => "",
1 => "",
),
"FILTER_PROPERTY_CODE" => array(
0 => "",
1 => "",
),
"SORT_BY1" => "SORT",
"SORT_ORDER1" => "ASC",
"SORT_BY2" => "ID",
"SORT_ORDER2" => "DESC",
"CHECK_DATES" => "Y",
"SEF_MODE" => "Y",
"SEF_FOLDER" => "/services/",
"AJAX_MODE" => "N",
"AJAX_OPTION_JUMP" => "N",
"AJAX_OPTION_STYLE" => "Y",
"AJAX_OPTION_HISTORY" => "N",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "100000",
"CACHE_FILTER" => "N",
"CACHE_GROUPS" => "Y",
"SET_TITLE" => "Y",
"SET_STATUS_404" => "N",
"INCLUDE_IBLOCK_INTO_CHAIN" => "N",
"ADD_SECTIONS_CHAIN" => "Y",
"USE_PERMISSIONS" => "N",
"PREVIEW_TRUNCATE_LEN" => "",
"LIST_ACTIVE_DATE_FORMAT" => "d.m.Y",
"LIST_FIELD_CODE" => array(
0 => "NAME",
1 => "PREVIEW_TEXT",
2 => "PREVIEW_PICTURE",
3 => "",
),
"LIST_PROPERTY_CODE" => array(
0 => "",
1 => "",
),
"HIDE_LINK_WHEN_NO_DETAIL" => "N",
"DISPLAY_NAME" => "N",
"META_KEYWORDS" => "-",
"META_DESCRIPTION" => "-",
"BROWSER_TITLE" => "-",
"DETAIL_ACTIVE_DATE_FORMAT" => "d.m.Y",
"DETAIL_FIELD_CODE" => array(
0 => "DETAIL_TEXT",
1 => "DETAIL_PICTURE",
2 => "",
),
"DETAIL_PROPERTY_CODE" => array(
0 => "LINK_GOODS",
1 => "LINK_STAFF",
2 => "LINK_REVIEWS",
3 => "LINK_PROJECTS",
4 => "FORM_ORDER",
5 => "FORM_QUESTION",
6 => "DOCUMENTS",
7 => "PHOTOS",
8 => "",
),
"DETAIL_DISPLAY_TOP_PAGER" => "N",
"DETAIL_DISPLAY_BOTTOM_PAGER" => "Y",
"DETAIL_PAGER_TITLE" => "Страница",
"DETAIL_PAGER_TEMPLATE" => "",
"DETAIL_PAGER_SHOW_ALL" => "Y",
"PAGER_TEMPLATE" => ".default",
"DISPLAY_TOP_PAGER" => "N",
"DISPLAY_BOTTOM_PAGER" => "Y",
"PAGER_TITLE" => "Новости",
"PAGER_SHOW_ALWAYS" => "N",
"PAGER_DESC_NUMBERING" => "N",
"PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
"PAGER_SHOW_ALL" => "N",
"IMAGE_POSITION" => "left",
"USE_SHARE" => "N",
"AJAX_OPTION_ADDITIONAL" => "",
"SEF_URL_TEMPLATES" => array(
"news" => "",
"section" => "#SECTION_CODE_PATH#/",
"detail" => "#SECTION_CODE_PATH#/#ELEMENT_CODE#/",
)
),
false
);?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
|
В файле .section.php следующее содержимое: Код |
---|
<?
$sSectionName = "";
$arDirProperties = Array(
"menu" => "Y"
);
?>
|
В файле .left.menu_ext.php следующее содержимое: Код |
---|
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
$aMenuLinksExt = array();
$arSections = CCache::CIBlockSection_GetList(array("SORT" => "ASC", "ID" => "ASC", "CACHE" => array("TAG" => CCache::GetIBlockCacheTag(CCache::$arIBlocks[SITE_ID]["aspro_allcorp_content"]["aspro_allcorp_services"][0]), "MULTI" => "Y")), array("IBLOCK_ID" => CCache::$arIBlocks[SITE_ID]["aspro_allcorp_content"]["aspro_allcorp_services"][0], "ACTIVE" => "Y", "GLOBAL_ACTIVE" => "Y", "ACTIVE_DATE" => "Y"));
$arSectionsByParentSectionID = CCache::GroupArrayBy($arSections, array("MULTI" => "Y", "GROUP" => array("IBLOCK_SECTION_ID")));
$arItems = CCache::CIBlockElement_GetList(array("SORT" => "ASC", "ID" => "DESC", "CACHE" => array("TAG" => CCache::GetIBlockCacheTag(CCache::$arIBlocks[SITE_ID]["aspro_allcorp_content"]["aspro_allcorp_services"][0]), "MULTI" => "Y")), array("IBLOCK_ID" => CCache::$arIBlocks[SITE_ID]["aspro_allcorp_content"]["aspro_allcorp_services"][0], "ACTIVE" => "Y", "SECTION_GLOBAL_ACTIVE" => "Y", "ACTIVE_DATE" => "Y", "INCLUDE_SUBSECTIONS" => "Y"));
$arItemsBySectionID = CCache::GroupArrayBy($arItems, array("MULTI" => "Y", "GROUP" => array("IBLOCK_SECTION_ID")));
if($arSections){
aspro::getSectionChilds(false, $arSections, $arSectionsByParentSectionID, $arItemsBySectionID, $aMenuLinksExt);
}
else{
foreach($arItems as $arItem){
$aMenuLinksExt[] = array($arItem["NAME"], $arItem["DETAIL_PAGE_URL"], array(), array("FROM_IBLOCK" => 1, "DEPTH_LEVEL" => 1));
}
}
if($aMenuLinksExt){
$aMenuLinks = array_merge($aMenuLinks, $aMenuLinksExt);
}
?>
|
Всё работает как положено, в боковом меню все пункты выводятся и каждая детальная страница открывается. Возникла необходимость создания ещё одного пункта меню и ещё одного отдельного раздела но с немного иной конструкции а именно. Точнее вот такую - Раздел -> 3 Подраздела -> 6 Подразделов -> в каждом элементы Конструкция в корне папок такая же как и в первом варианте разница лишь в выводе компонента, в этом случае вывожу через bitrix:news.list все пункты меню выводятся, в общем всё в порядке как и в первом за исключением того что при открытии детальной получаю следующую страницу; . Теперь дам что у меня в этих файлах. В файлах index.php используется компонент bitrix:news со следующим содержимым: Код |
---|
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("");?><?$APPLICATION->IncludeComponent(
"bitrix:news",
"services",
Array(
"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_FILTER" => "N",
"CACHE_GROUPS" => "Y",
"CACHE_TIME" => "36000000",
"CACHE_TYPE" => "A",
"CHECK_DATES" => "Y",
"COMPOSITE_FRAME_MODE" => "A",
"COMPOSITE_FRAME_TYPE" => "AUTO",
"DETAIL_ACTIVE_DATE_FORMAT" => "d.m.Y",
"DETAIL_DISPLAY_BOTTOM_PAGER" => "Y",
"DETAIL_DISPLAY_TOP_PAGER" => "N",
"DETAIL_FIELD_CODE" => array("NAME","DETAIL_TEXT","DETAIL_PICTURE",""),
"DETAIL_PAGER_SHOW_ALL" => "Y",
"DETAIL_PAGER_TEMPLATE" => "",
"DETAIL_PAGER_TITLE" => "Страница",
"DETAIL_PROPERTY_CODE" => array("LINK_GOODS","LINK_STAFF","LINK_REVIEWS","LINK_PROJECTS","FORM_ORDER","FORM_QUESTION","DOCUMENTS","PHOTOS"),
"DETAIL_SET_CANONICAL_URL" => "N",
"DISPLAY_BOTTOM_PAGER" => "Y",
"DISPLAY_DATE" => "Y",
"DISPLAY_NAME" => "Y",
"DISPLAY_PICTURE" => "Y",
"DISPLAY_PREVIEW_TEXT" => "Y",
"DISPLAY_TOP_PAGER" => "N",
"FILTER_FIELD_CODE" => array("",""),
"FILTER_NAME" => "arrFilter",
"FILTER_PROPERTY_CODE" => array("",""),
"HIDE_LINK_WHEN_NO_DETAIL" => "N",
"IBLOCK_ID" => "29",
"IBLOCK_TYPE" => "aspro_allcorp_content",
"IMAGE_POSITION" => "left",
"INCLUDE_IBLOCK_INTO_CHAIN" => "Y",
"LIST_ACTIVE_DATE_FORMAT" => "d.m.Y",
"LIST_FIELD_CODE" => array("NAME","PREVIEW_TEXT","PREVIEW_PICTURE",""),
"LIST_PROPERTY_CODE" => array("",""),
"MESSAGE_404" => "",
"META_DESCRIPTION" => "-",
"META_KEYWORDS" => "-",
"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" => "Новости",
"PREVIEW_TRUNCATE_LEN" => "",
"SEF_FOLDER" => "/rpcalendar/",
"SEF_MODE" => "Y",
"SEF_URL_TEMPLATES" => Array("detail"=>"#SECTION_CODE_PATH#/#ELEMENT_CODE#/","news"=>"","section"=>"#SECTION_CODE_PATH#/"),
"SET_LAST_MODIFIED" => "N",
"SET_STATUS_404" => "N",
"SET_TITLE" => "Y",
"SHOW_404" => "N",
"SORT_BY1" => "SORT",
"SORT_BY2" => "ID",
"SORT_ORDER1" => "ASC",
"SORT_ORDER2" => "ASC",
"STRICT_SECTION_CHECK" => "N",
"USE_CATEGORIES" => "N",
"USE_FILTER" => "Y",
"USE_PERMISSIONS" => "N",
"USE_RATING" => "N",
"USE_RSS" => "N",
"USE_SEARCH" => "N",
"USE_SHARE" => "N"
)
);?><br><?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
|
В файле .left.menu_ext.php следующее содержимое: Код |
---|
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
$aMenuLinksExt = array();
$arSections = CCache::CIBlockSection_GetList(array("SORT" => "ASC", "ID" => "ASC", "CACHE" => array("TAG" => CCache::GetIBlockCacheTag(CCache::$arIBlocks[SITE_ID]["aspro_allcorp_content"]["aspro_allcorp_reporting_calendar"][0]), "MULTI" => "Y")), array("IBLOCK_ID" => CCache::$arIBlocks[SITE_ID]["aspro_allcorp_content"]["aspro_allcorp_reporting_calendar"][0], "ACTIVE" => "Y", "GLOBAL_ACTIVE" => "Y", "ACTIVE_DATE" => "Y"));
$arSectionsByParentSectionID = CCache::GroupArrayBy($arSections, array("MULTI" => "Y", "GROUP" => array("IBLOCK_SECTION_ID")));
$arItems = CCache::CIBlockElement_GetList(array("SORT" => "ASC", "ID" => "DESC", "CACHE" => array("TAG" => CCache::GetIBlockCacheTag(CCache::$arIBlocks[SITE_ID]["aspro_allcorp_content"]["aspro_allcorp_reporting_calendar"][0]), "MULTI" => "Y")), array("IBLOCK_ID" => CCache::$arIBlocks[SITE_ID]["aspro_allcorp_content"]["aspro_allcorp_reporting_calendar"][0], "ACTIVE" => "Y", "SECTION_GLOBAL_ACTIVE" => "Y", "ACTIVE_DATE" => "Y", "INCLUDE_SUBSECTIONS" => "Y"));
$arItemsBySectionID = CCache::GroupArrayBy($arItems, array("MULTI" => "Y", "GROUP" => array("IBLOCK_SECTION_ID")));
if($arSections){
aspro::getSectionChilds(false, $arSections, $arSectionsByParentSectionID, $arItemsBySectionID, $aMenuLinksExt);
}
else{
foreach($arItems as $arItem){
$aMenuLinksExt[] = array($arItem["NAME"], $arItem["DETAIL_PAGE_URL"], array(), array("FROM_IBLOCK" => 1, "DEPTH_LEVEL" => 1));
}
}
if($aMenuLinksExt){
$aMenuLinks = array_merge($aMenuLinks, $aMenuLinksExt);
}
?>
|
ну и третий файл .section.php как и в первом варианте идентичен. Понимаю, что что-то явно упускаю из внимания, но прошу прощения очень редко имею дело с Битриксом. Постарался объяснит как можно подробнее. Как смог Если сможете помочь в понимании ошибки буду очень признателен.
|