Jump to content
  • 0

Помогите с меню


sam2019
 Share

Question

Всем привет!

Делаю сайт на битриксе, вроде все получается но вот с чем надо помочь.

Структура примерно такая:

Folder
category 1
Меню раздела 1
index1.php
category 2
Меню раздела 2
index2.php
category 3
Меню раздела 3
index3.php
index.php

Как-то так :) Мне нужно в файле index.php папки Folder вывести "Меню раздела 1","Меню раздела 2","Меню раздела 3". Желательно чтобы эти меню были в разных тэгах UL, чтобы я мог стили добавить.

Заранее спасибо всем кто отписался... :)

Link to comment
Share on other sites

14 answers to this question

Recommended Posts

  • 0

ну они как бы и так в разных тегах ul, хотя это и не семантично, но в одном ul, то есть получается что-то типа того:

<ul class="nav">
<li>Раздел1</li>
<ul>
<li>Подраздел1-1</li>
</ul>
<li>Раздел2</li>
</ul>

классы им конечно не назначить разные, но обратиться вполне можно и так: .nav ul li {...}

ну или как вариант попробуйте с помощью условий if(DEPTH_LEVEL=1) {меню первого уровня} elseif(DEPTH_LEVEL=2) {меню второго уровня}

Link to comment
Share on other sites

  • 0

ну они как бы и так в разных тегах ul, хотя это и не семантично, но в одном ul, то есть получается что-то типа того:

<ul class="nav">
<li>Раздел1</li>
<ul>
<li>Подраздел1-1</li>
</ul>
<li>Раздел2</li>
</ul>

классы им конечно не назначить разные, но обратиться вполне можно и так: .nav ul li {...}

ну или как вариант попробуйте с помощью условий if(DEPTH_LEVEL=1) {меню первого уровня} elseif(DEPTH_LEVEL=2) {меню второго уровня}

не, не то. фишка в том чтобы подключить меню динамически. а с оформлением потом разбирусь

Link to comment
Share on other sites

  • 0

не, не то. фишка в том чтобы подключить меню динамически. а с оформлением потом разбирусь

ну так есть же компонент (bitrix:menu) отвечающий за вывод динамического меню, или я не понял вашего вопроса? в чем проблема то?

Link to comment
Share on other sites

  • 0

не, не то. фишка в том чтобы подключить меню динамически. а с оформлением потом разбирусь

ну так есть же компонент (bitrix:menu) отвечающий за вывод динамического меню, или я не понял вашего вопроса? в чем проблема то?

Так компонент будет выводить меню которое находится в той же директории что и файл в который добавляем меню (или я что-то путаю). А мне нужно чтобы в файле index.php выводилось меню которое находится в папке, которая в той же директории с index.php. Т.е. само меню закопано дальше в папках

Link to comment
Share on other sites

  • 0

ничего не понял...

Наверно я так объясняю. Еще раз. Есть папка "folder", в ней файл index.php и еще, к примеру, 2 папки ("category 1" и "category 2"). В каждой из вложенных папок ("category 1" и "category 2") есть свое меню (например в "category 1" меню такое "пункт 1" и "пункт 2", а в "category 2" - "пункт 3" и "пункт 4"). Вот эти меню (оба) мне надо вывести в индексном файле папки "folder" так, чтобы получилось меню "пункт 1", "пункт 2", "пункт 3" и "пункт 4".

Edited by sam2019
Link to comment
Share on other sites

  • 0

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

Link to comment
Share on other sites

  • 0

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

Ага, понял, спасибо за идею :)

Link to comment
Share on other sites

  • 0

Можете написать расширение меню (.ext.) и там читать файлы меню подразделов и добавлять в текущее.

можно поподробнее, каким образом это можно применить в битрикс?

Link to comment
Share on other sites

  • 0

http://dev.1c-bitrix.ru/api_help/main/general/menu.php

Иногда возникает задача, когда нужно задать пункты меню программно (например, когда вы хотите вывести в меню разделы каталога хранящегося в модуле "Информационные блоки"). Для этого необходимо использовать служебные файлы с именем .тип меню.menu_ext.php. Эти файлы необходимо располагать в том разделе сайта, где вы хотите вывести это меню. Основная задача подобных файлов - это манипуляция массивом $aMenuLinks
Link to comment
Share on other sites

  • 0

че-то ниче не понял, ну вот к примеру инфоблок: http://screencast.com/t/C88IPH18S

вот само меню: http://screencast.com/t/aNLL8d7Gol - при наведении на любой из них покажутся подразделы (можно и без наведения, но это уже чисто оформление).

вот самый обычный код этого меню:


<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?
//echo '<pre>'; print_r($arResult); echo '</pre>';
if (count($arResult) < 1)
return;

$bManyIblock = array_key_exists("IBLOCK_ROOT_ITEM", $arResult[0]["PARAMS"]);
?>

<ul id="left_nav">
<?
$previousLevel = 0;
foreach($arResult as $key => $arItem):

if ($previousLevel && $arItem["DEPTH_LEVEL"] < $previousLevel):
echo str_repeat("</ul></li>", ($previousLevel - $arItem["DEPTH_LEVEL"]));
endif;

if ($arItem["IS_PARENT"]):
$i = $key;
$bHasSelected = $arItem['SELECTED'];
$childSelected = false;
if (!$bHasSelected)
{
while ($arResult[++$i]['DEPTH_LEVEL'] > $arItem['DEPTH_LEVEL'])
{
if ($arResult[$i]['SELECTED'])
{
$bHasSelected = $childSelected = true; break;
}
}
}

$className = $nHasSelected ? 'selected' : '';//($bHasSelected ? 'selected' : '');
?>
<? if ($arItem['DEPTH_LEVEL'] > 1 && !$childSelected && $bHasSelected) :?>
<li>
<a href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a>
<ul>

<? else:?>
<li>
<a href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a>
<ul>
<? endif?>


<?
else:
if ($arItem["PERMISSION"] > "D"):
$className = $arItem['SELECTED'] ? $arItem['DEPTH_LEVEL'] > 1 ? 'current' : "selected" : '';
?>
<li>

<a href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a>

</li>
<?
endif;
endif;

$previousLevel = $arItem["DEPTH_LEVEL"];
endforeach;

if ($previousLevel > 1)://close last item tags
echo str_repeat("</ul></li>", ($previousLevel-1) );
endif;
?>
</ul>

вроде удовлетворяет же условиям не? зачем огород городить? или я чего то не так понял?

Link to comment
Share on other sites

  • 0

Это зависит от оформления, думаю. Если выбирать между созданием двух шаблонов с разными шаблонами меню и модификацией одного меню, что бы оба варианта влезали в один шаблон, я бы выбрал второе.

Link to comment
Share on other sites

  • 0

да кто ж спорит, я бы тоже выбрал второй вариант, но на сколько я понял (чиста телепатически :) ), то у ТС походу два, или даже три инфоблока и в каждом из них имеются как бэ основные разделы и подразделы и вроде как все их нужно вывести в одном месте... без скрина оч. трудно рассуждать.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy