Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

left & top меню

00 голосов
4
В документации сказано, что если в текущем каталоге не найдено .left.menu.php, то он ищется на уровень выше. Так вот он либо ищется и не инклюдится, либо не ищется. Также не прорисовывается .top.menu.php, которое находится в текущем каталоге. Что делать? smile:~(
спросил 09 Янв, 14 от Nor (100 баллов)

4 Ответы

00 голосов
Цитата
В документации сказано, что если в текущем каталоге не найдено .left.menu.php, то он ищется на уровень выше. Так вот он либо ищется и не инклюдится, либо не ищется.

Приведите, пожалуйста, пример кода, который должен выводить left меню.

Цитата
Также не прорисовывается .top.menu.php, которое находится в текущем каталоге.

Уточните, пожалуйста, что значит "не прорисовывается"?
ответил 20 Апр, 14 от IMXOM (140 баллов)
00 голосов
Есть /ru/.left.menu.php - и оно там без вопросов работает путем инклюда prolog_*.php, а вот /ru/1/index.php также инклюдит прологи и также должен использовать .left.menu.php который находится на уровень выше, однако этого не происходит.
top меню не виден вообще. вот код из prolog'а которым рисуются меню (он стандартный, я его не менял):
if($APPLICATION->GetCurDir()!=LANG_DIR && $APPLICATION->GetCurDir()!=LANG_DIR."search/")
{
$lmenu = new CMenu("top");
$lmenu->Init(LANG_DIR);
$lmenu->template = "/bitrix/php_interface".LANG_DIR."left.menu_template.php";
echo $lmenu->GetMenuHtml();
}
else
{
$lmenu = new CMenu("left");
$lmenu->Init($APPLICATION->GetCurDir());
$lmenu->template = "/bitrix/php_interface".LANG_DIR."left.menu_template_2.php";
echo $lmenu->GetMenuHtml();
}
ответил 14 Авг, 14 от Kania (5,180 баллов)
00 голосов
Приведенный пример из демо-версии выводит древовидное меню.

В вашем случае (/ru/1/index.php) выполнение скрипта зайдет в ветку:

$lmenu = new CMenu("top");
$lmenu->Init(LANG_DIR);
$lmenu->template = "/bitrix/php_interface".LANG_DIR."left.menu_template.php";
echo $lmenu->GetMenuHtml();

А этот скрипт начинает построение меню от top-меню на корне, затем по ссылкам из top-меню, вниз по дереву до left-меню текущей страницы.

Чтобы просто вывести левое меню в текущей папке (или с верхних уровней) необходим просто код из блока else:

$lmenu = new CMenu("left");
$lmenu->Init($APPLICATION->GetCurDir());
$lmenu->template = "/bitrix/php_interface".LANG_DIR."left.menu_template_2.php";
echo $lmenu->GetMenuHtml();
ответил 19 Дек, 14 от IMXOM (140 баллов)
00 голосов
А как же тогда будет рисоваться top меню? left меню работать начало.
ответил 09 Апр, 15 от Kania (5,180 баллов)

Похожие вопросы

0 голосов
3 ответов
спросил 30 Март, 14 от Sitha (240 баллов)
0 голосов
5 ответов
спросил 20 Ноя, 13 от BeLFiGoR (100 баллов)
0 голосов
1 ответ
спросил 09 Янв, 14 от malagoi (380 баллов)
0 голосов
5 ответов
0 голосов
6 ответов
спросил 12 Сен, 13 от Snezhka (2,240 баллов)