Заметки о меню
Занимаясь переносом проекта с 0.2 на пред-0.3, буду публиковать некоторые заметки, которые, надеюсь, помогут тем, кто использует в проекте собственный дизайн. Не публикую сразу в Wiki, так как в процессе работы заниматься серьезной формализацией не очень удобно. Но вполне вероятно, что потом и до Wiki дойдет дело.
Итак, первая заметка будет об организации на сайте навигации.
Стоит сразу отметить, что в новой версии LS меню строится гораздо удобнее чем в предыдущей. И если раньше многие пункты были жестко привязаны к определенному разделу, то навигацию можно устроить по собственному представлению.
Первый важный момент, который начал использоваться в новом меню — задание переменной меню прямо в шаблоне экшена. Делается это так:
Единственное, что переменная menu при этом будет действовать только в области шапки, но подобный подход можно использовать и для любого другого подключаемого шаблона.
Исходя из значения переменной menu в шапке происходит подключение необходимого шаблона меню:
То есть для примера выше будет подключен шаблон с именем menu.people.tpl.
И уже непосредственно в шаблоне можно использовать переменную $sEvent для того чтобы можно было отобразить разные состояния меню. Например так:
Вот и все. Остается добавить, что значение $sEvent может быть задано не везде и если вам хочется исправить эту ситуацию, то вы можете использовать тот же вариант как с $menu:
Итак, первая заметка будет об организации на сайте навигации.
Стоит сразу отметить, что в новой версии 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 комментариев