Есть два стиля меню, если раздел активен и если нет.
Скажем открыли мы раздел Партнеры и в главном меню он выделился другим цветом.
Проблема такая, что при нажатии кнопки подробнее в новостях, то это выделение с новостей слетает, как будто выбран раздел, которого нет в списке меню.
Как это можно решить? Каким образом вообще работает алгоритм, который меняет стиль раздела меню?
Заранее спасибо...
Модуль news и меню.
Re: Модуль news и меню.
так ведь действительно выбран раздел которого нет в меню, поэтому и не показывает, у вас же не стоит каждая новость в меню. помоему логично. неужели так критичен цвет кнопки?
Re: Модуль news и меню.
Там не совсем цвет, я для примера привел. Там подчеркивание. Сайт переделываю, поэтому должен быть идентичен, плюс пользователи должны знать, где находятся. Скажем если они отвлеклись и через час придут, то не будут вспоминать где и куда нажимали.
Можно было скажем бы определять по адресной строке. В целом хотелось бы понять механизм. Может быть как то можно в шаблоне чего сделать, добавить какой тег или еще чего?
Можно было скажем бы определять по адресной строке. В целом хотелось бы понять механизм. Может быть как то можно в шаблоне чего сделать, добавить какой тег или еще чего?
Re: Модуль news и меню.
Спасибо за ответ. Я частично понимаю данное условие, но применить так и не получилось.
Меня вообще поражает логика, вот как понять в шаблоне
haschildren == true or $node->parent == true}
Вот куда скажем делся закрывающий тег, что значит данное условие?
Вот весь код
Очень надеюсь на помощь..
Меня вообще поражает логика, вот как понять в шаблоне
haschildren == true or $node->parent == true}
Вот куда скажем делся закрывающий тег, что значит данное условие?
Вот весь код
Code: Select all
{* CSS classes used in this template:
#menuwrapper - The id for the <div> that the menu is wrapped in. Sets the width, background etc. for the menu.
#primary-nav - The id for the <ul>
.menuparent - The class for each <li> that has children.
.menuactive - The class for each <li> that is active or is a parent (on any level) of a child that is active. *}
{if $count > 0}
<div id="menuwrapper">
<ul id="menu" class="menu">
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{repeat string='<ul class="unli">' times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
{repeat string='</li></ul>' times=$node->prevdepth-$node->depth}
</li>
{elseif $node->index > 0}</li>
{/if}
{if $node->parent == true or ($node->current == true and $node->haschildren == true)}
<li class="menuactive menuparent">
<a {elseif $node->current == true}
<li class="menuactive">
<a class="selected " {elseif $node->haschildren == true or $node->parent == true}
<li class="menuparent">
<a class="menuparent" {elseif $node->type == 'sectionheader' and $node->haschildren == true}
<li class="sectionheader">
<span class="sectionheader">{$node->menutext}</span>{elseif $node->type == 'separator'}
<li style="list-style-type: none;"> <hr class="menu_separator" />{else}
<li>
<a {/if}
{if $node->type != 'sectionheader' and $node->type != 'separator'}
{if $node->target}target="{$node->target}" {/if}
href="{$node->url}"><span>{$node->menutext}</span></a>
{elseif $node->type == 'sectionheader'}
><span class="sectionheader">{$node->menutext}</span></a>
{/if}
{/foreach}
{repeat string='</li></ul>' times=$node->depth-1}
</li>
</ul>
<div class="clearb"></div>
</div>
{/if}
Re: Модуль news и меню.
Разделил по строкам и разобрался в логике, но..
добавив
{elseif $node->current == true or $node->parent == true}
/postid//, может из-за этого еще проблемы?
добавив
{elseif $node->current == true or $node->parent == true}
/postid//, может из-за этого еще проблемы?
Re: Модуль news и меню.
sdelfi.ru
У меня тоже один уровень, так что сейчас опробую...
Сделал так. Т.е. просто стили поменял, но логика та же.
Не сработало. Если зайти в подробное новости, то не выделяет. Плюс ссылка новости активна, т.е. не попадает под условие {if $node->current == true or $node->parent == true}
У меня тоже один уровень, так что сейчас опробую...
Code: Select all
<div id="menuwrapper">
<ul id="menu" class="menu">
{foreach from=$nodelist item=node}
{if $node->current == true or $node->parent == true}
<li class="menuactive"><a class="selected"><span>{$node->menutext}</span></a></li>
{else}
<li class="menuactive"><a href="{$node->url}" >{$node->menutext}</a></li>
{/if}
{/foreach}
</ul>
</div>
Не сработало. Если зайти в подробное новости, то не выделяет. Плюс ссылка новости активна, т.е. не попадает под условие {if $node->current == true or $node->parent == true}
Last edited by Delfi on Sat Dec 05, 2009 9:48 pm, edited 1 time in total.
Re: Модуль news и меню.
Хм, опять не работает.
Единственное, я когда менял ссылку на подробные новости, то много изменений делал в самом модуле, может это повлияло?
Единственное, я когда менял ссылку на подробные новости, то много изменений делал в самом модуле, может это повлияло?