Astra.CMS

 

 

Форум » Приемы конструирования и интеграции дизайна

Двухуровневое меню

Стоит ли открыть форум? Напишите об этом по адресу admin@astracms.ru написав в теме "открыть форум". Я не автор движка и поэтому не могу консультировать так, как это делал бы он, но возможно у нас получится совместно находить решения.

1 2  
Автор Текст сообщения

Василий
Сообщений: 4

В настройках блока "Произвольные ссылки" есть галочки ур.2. Как их использовать, чтобы сделать двухуровневое меню?
 
aristoc

admin
Сообщений: 1159

Все пункты меню отмеченные этими галочками попадают во второй уровень ближайшего сверху пункта, который неотмечен.

{section name=i loop=$links} {* Обход массива с пунктами первого уровня. *}
<li><a href="{$links[i].link}">{$links[i].name}</a></li>
{if $links[i].selected} {* Если пункт выбран. *}
{if $links[i].sublinks} {* Если есть пункты второго уровня. *}
<ul>
{section name=j loop=$links[i].sublinks} {* Обход массива с пунктами второго уровня. *}
<li><a href="{$links[i].sublinks[j].link}">{$links[i].sublinks[j].name}</a></li>
{/section}
<ul>
{/if}
{/if}
{/section}

Потом с помощью шаблона формируется само двухуровневое меню:


Разумеется шаблон может быть любым.
 

Destroysys
Сообщений: 6

вот у меня блок "Список ссылок на страницы" и соответсвенно во второй уровень попадаю все подпункты. а есть ли какой нибудь способ не выводить определенные подпункты меню, но чтобы в то же время они были активными? Очень нужно!
 
aristoc

admin
Сообщений: 1159

Destroysys писал(а):
... не выводить определенные подпункты меню, но чтобы в то же время они были активными...

Непонятно о  чем речь. Лучше на конкретном примере.
 
sherkhan

sherkhan
Сообщений: 94

Уважаемый админ. А как в данной конструкции определить активную категорию и подкатегорию, если   структура сделана модулем, категории - папками и подкатегории, тоже папками http://itmages.ru/image/view/1326659/8d390730 соответственно в каждой из папок - свои вложенные папки. (1 уровень). на их основе формируется меню. и для указания активного меню раздела и подраздела нужно условие. вот как его поймать?
 
aristoc

admin
Сообщений: 1159

Если меню делается блоком pages, то все тоже самое.
 
sherkhan

sherkhan
Сообщений: 94

<ul class="vertmenu">
    {section name=i loop=$links}
        <li class="item"><span class="{if $links[i].sublinks}collapsed{/if} fake__link {if $links[i].selected}subitem__link_state_active expanded{/if}" >{$links[i].name}</span>
            {if $links[i].sublinks}
                <ul class="submenu">
                    {section name=j loop=$links[i].sublinks} 
                        <li class="subitem"><a href="{$links[i].sublinks[j].link}">{$links[i].sublinks[j].name}</a></li>
                    {/section}
                </ul>
            {/if}
        </li>
    {/section}
</ul>
вот такой код. то есть при нажатии на ссылку первого уровня - мы не попадаем на страницу, а просто открываем подменю. При нажатии на ссылку в подменю мы переходим на страницу. Но для ссылки первого уровня не сработает {if $links.selected}
 
aristoc

admin
Сообщений: 1159

Прямо в момент нажатия без перезагрузки он и не может сработать. Активным должен быть верхний уровень, если уже открыта страница из подуровня.
 
sherkhan

sherkhan
Сообщений: 94

admin писал(а):
Прямо в момент нажатия без перезагрузки он и не может сработать. Активным должен быть верхний уровень, если уже открыта страница из подуровня.
Да. именно. находясь в подуровне как отметить активный уровень и сам подуровень, на котором находимся. ибо находясь в подуровне для меню первого уровня {if $links.selected} не работает
 
aristoc

admin
Сообщений: 1159

должно работать
{if $links[i].selected}
 
sherkhan

sherkhan
Сообщений: 94

admin писал(а):
должно работать
{if $links[i].selected}
должно, но не работает (
Как, собственно и $links.sublinks[j].selected - тоже не дает нужного результата при обходе вложенного меню
 
aristoc

admin
Сообщений: 1159

сколько всего уровней вложенности? на каком увроне конечные страницы? и из каких уровней сделано меню?
 
sherkhan

sherkhan
Сообщений: 94

admin писал(а):
сколько всего уровней вложенности? на каком увроне конечные страницы? и из каких уровней сделано меню?
http://itmages.ru/image/view/1335523/09a4d990 + http://itmages.ru/image/view/1335529/da0e0507

возможно, так будет понятнее. http://1.ifetisov.z8.ru/ - сам сайт
 
aristoc

admin
Сообщений: 1159

Получается что конечная страница на третьем уровне, а меню из первых двух.
Попробуйте такое условие
{if in_array($links[i].urlname,$parent.fullpath)}
...
 
sherkhan

sherkhan
Сообщений: 94

admin писал(а):
Получается что конечная страница на третьем уровне, а меню из первых двух.
Попробуйте такое условие
{if in_array($links[i].urlname,$parent.fullpath)}
...
Огромное спасибо! все отлично работает
 
1 2  

Вы не можете добавить сообщение. Вам необходимо авторизироваться на сайте под своим логином либо зарегистрироваться.