Заметки о меню

Занимаясь переносом проекта с 0.2 на пред-0.3, буду публиковать некоторые заметки, которые, надеюсь, помогут тем, кто использует в проекте собственный дизайн. Не публикую сразу в Wiki, так как в процессе работы заниматься серьезной формализацией не очень удобно. Но вполне вероятно, что потом и до Wiki дойдет дело.

Итак, первая заметка будет об организации на сайте навигации.

Стоит сразу отметить, что в новой версии LS меню строится гораздо удобнее чем в предыдущей. И если раньше многие пункты были жестко привязаны к определенному разделу, то навигацию можно устроить по собственному представлению.

Первый важный момент, который начал использоваться в новом меню — задание переменной меню прямо в шаблоне экшена. Делается это так:

{include file='header.tpl' menu='people'}


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

Исходя из значения переменной menu в шапке происходит подключение необходимого шаблона меню:

{if $menu}
	{include file=menu.$menu.tpl}
{/if}


То есть для примера выше будет подключен шаблон с именем menu.people.tpl.

И уже непосредственно в шаблоне можно использовать переменную $sEvent для того чтобы можно было отобразить разные состояния меню. Например так:

{assign var="active" value=""}
{if $sEvent=='good'}
	{assign var="active" value='class="active" '}
{/if}
<li {$active}>
	<a href="{$DIR_WEB_ROOT}/people/">Положительные</a>
</li>
{assign var="active" value=""}
{if $sEvent=='bad'}
	{assign var="active" value='class="active" '}
{/if}
<li {$active}>
	<a href="{$DIR_WEB_ROOT}/people/bad/">Негативные</a>
</li>


Вот и все. Остается добавить, что значение $sEvent может быть задано не везде и если вам хочется исправить эту ситуацию, то вы можете использовать тот же вариант как с $menu:

{include file='header.tpl' menu='blog' sEvent='new'}

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.