Задача: сделать вертикальное выпадающее меню, в котором родительскими пунктами были бы разделы каталога, а дочерними (то есть выпадающими) - собственно товары.
(Примечание: как вообще сделать вертикальное выпадающее меню из разделов сайта - я разобралась и сделала, к этой части документации можно меня не отсылать. Проблема возникла именно с каталогом).
Итак, меню должно находиться на главной. В корне сайта я создала меню типа "Меню подраздела" и к нему соответствующий файл ..._ext.php. А вот здесь два варианта. Я нашла в интернете два варианта кода. Так как PHP я пока особо не знаю, я их просто скопировала и посмотрела, что будет. Сами по себе они работают, но они делают не то, что мне хотелось бы.
Как мне правильно сделать?
Результат №1. При такой реализации в меню действительно появляются пункты - разделы каталога. Но из них ничего не выпадает.[CODE]<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
global $APPLICATION;
$aMenuLinksExt=$APPLICATION->IncludeComponent("bitrix:menu.sections", "", array(
"IS_SEF" => "Y",
"SEF_BASE_URL" => "/uslugi/",
"SECTION_PAGE_URL" => "#SECTION_ID#/",
"DETAIL_PAGE_URL" => "#SECTION_ID#/#ELEMENT_CODE#",
"IBLOCK_TYPE" => "catalog_uslug",
"IBLOCK_ID" => "4",
"DEPTH_LEVEL" => "4",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "36000000"
),
false
);
$aMenuLinks = array_merge($aMenuLinksExt, $aMenuLinks);
?> [/CODE]
Результат №2. В этом случае в меню появляется непосредственно список товаров каталога, не разбиты по разделам. Разделы не появляются, меню, соотвотственно, не выпадает.
[CODE]<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
global $APPLICATION;
if(CModule::IncludeModule("iblock"))
{
$IBLOCK_ID = 4; // указываем из какого инфоблока берем элементы
$arOrder = Array("NAME"=>"ASC"); // сортируем по свойству SORT по возрастанию
$arSelect = Array("ID", "NAME", "IBLOCK_ID", "DETAIL_PAGE_URL");
$arFilter = Array("IBLOCK_ID"=>$IBLOCK_ID, "ACTIVE"=>"Y", "PROPERTY_razdel"=> $_REQUEST["SECTION_ID"]);
$res = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect);
while($ob = $res->GetNextElement())
{
$arFields = $ob->GetFields(); // берем поля
// echo $arFields['NAME']." - arFields['NAME']<br>";
/* echo '<pre>';
print_r($arFields); //
echo '</pre>'; */
// начинаем наполнять массив aMenuLinksExt нужными данными
$aMenuLinksExt[] = Array(
$arFields['NAME'],
$arFields['DETAIL_PAGE_URL'],
Array(),
Array(),
""
);
} // while($ob = $res->GetNextElement())
} // if(CModule::IncludeModule("iblock"))
/* echo "<br>Массив aMenuLinksExt - дополнительный";
echo '<pre>';
print_r($aMenuLinksExt);
echo '</pre>'; */
$aMenuLinks = array_merge($aMenuLinksExt, $aMenuLinks);
// $aMenuLinks = array_merge($aMenuLinks);
?>
[/CODE]
Настройки компонента "Меню":
[IMG WIDTH=800 HEIGHT=795]http://s018.radikal.ru/i500/1607/b6/4f7c57f9a5f2.jpg[/IMG]