Выделение (class="active") под-меню статической страницы. (решение найдено)

При помощи плагина Page добавил статическую страницу Мастерская, а в ней 2-е под-страницы.
Проблема состоит в том, что эти под-меню не делаются активными по переходу на них.

Что бы эти 2-е подстраницы отобразились я в header_nav.tpl добавил вот такой код

{if $oUserCurrent and ($sAction=='page' and $sEvent=='workshop')}		
			<ul class="menu">
				<li {if $sMenuItemSelect=='page/workshop/forks'}class="active"{/if}>
					<a href="{router page='page/workshop/forks'}">{$aLang.forks}</a>
				</li>
				<li {if $sMenuItemSelect=='page/workshop/rearshok'}class="active"{/if}>
					<a href="{router page='page/workshop/rearshok'}">{$aLang.rearshok}</a>
				</li>				
			</ul>					
		{/if}


Все замечательно, но при выборе одного из этих под-меню оно не выделяется. Причина понятна, проблема с $sMenuItemSelect. Но где её правильно инициализировать, что бы её можно было использовать в моем случае.

Или, если есть, буду рад другому предложению. Может быть есть какая-то глобальная переменная хранящая в себе текущий url?

Заранее спасибо.

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

avatar
может так:
<ul class="sub-menu" >
avatar
Нужно именно menu. Для sub-menu вроде бы то же есть своя переменная, sMenuSubItemSelect. Я не спец, но это вроде бы не поможет.
avatar
$oPage->getUrlFull()=='а тут путь типа about/yourpage'
avatar
{if $oPage->getUrlFull()=='а тут путь типа about/yourpage'}class="active"{/if}

как-то так
avatar
условие не выполняется :(. что в качестве пути писать? испробовал все :) полный путь скопипастеный из браузера вида localhost/page/workshop/rearshok/ не прокатывает, так же как и 'page/workshop/rearshok/
avatar
/workshop/rearshok/ больше ничего не нужно
avatar
даже так workshop/rearshok
avatar
Низкий поклон тебе, мил человек! :)

Спасибо, то что надо!
avatar
У меня меню реализовано так. И работает прямо из под плагина.
<li {if $sEvent=='help'}class="active"{/if}><a href="http://***/page/help/">Помощь</a></li>
<li {if $sEvent=='about'}class="active"{/if}><a href="http://***/page/about/description/">О проекте</a></li>


<div id="podnav">		
	{if $sEvent=='help'}
		<li {if $aParams[0]=='profile'}class="active"{/if}><a href="http://***/page/help/profile/">Профиль</a></li>
		<li {if $aParams[0]=='editor'}class="active"{/if}><a href="http://***/page/help/editor/">Редактор</a></li>
		<li {if $aParams[0]=='add'}class="active"{/if}><a href="http://***/page/help/add/">Добавление материала</a></li>
		<li {if $aParams[0]=='micro'}class="active"{/if}><a href="http://***/page/help/micro/">Микроблог</a></li>
	{/if}
	
	{if $sEvent=='about'}
		<li {if $aParams[0]=='description'}class="active"{/if}><a href="http://***/page/about/description/">Описание</a></li>
		<li {if $aParams[0]=='contacts'}class="active"{/if}><a href="http://***/page/about/contacts/">Контакты</a></li>
		<li {if $aParams[0]=='group'}class="active"{/if}><a href="http://***/page/about/group/">Команда</a></li>
	{/if}

</div>
avatar
{router page='page'}help/profile/
и тд
avatar
Ну у меня шаблон только для одного сайта, и использовать переменные в шаблоне нет нужды.
avatar
это было бы причиной, если бы использование переменных как-то усложняло жизнь,
но поскольку это не так, то
1. выглядит просто несколько непрофессионально
2. говорит лично о вас, как о человеке, который стоит на своем мнении, даже понимая, что где-то его позиция неправильна

не воспримите за личное :)
я просто чувак из интернетов, можно не обращать внимание
avatar
1. Ну ведь пользователи сайта не будут смотреть код темплейта?
2. Характер такой =)
avatar
правильнее было бы добавить в \plugins\page\templates\skin\ИМЯСКИНА\actions\ActionPage\page.tpl
{include file='header.tpl' menu='page'}

создать в темплейте файл menu.page.tpl
и в нем прописать меню для статичных страниц по аналогии с другими ххх.menu.tpl
используя для выяснения активной страницы первого уровня
{if $sEvent=='workshop'}class="active"{/if}

и для второго
{if $aParams[0]=='rearshok'}class="active"{/if}

для третьего
{if $aParams[1]=='something'}class="active"{/if}

итд
avatar
Ага, ага. У меня так и сделано.
avatar
Не хочу создавать новую тему, а как то же самое сделать для ссылок ведущих на блоги?
<ul class="nav-main">
			<li {if $sMenuHeadItemSelect=='blog'}class="active"{/if}><a href="{router page='blogs'}">{$aLang.blogs}</a></li>
			<li {if $sMenuHeadItemSelect =='blog/news'}class="active"{/if}><a href="{router page='blog/news'}">{$aLang.news}</a></li>
			<li {if $sMenuHeadItemSelect =='blog/barakholka'}class="active"{/if}><a href="{router page='blog/barakholka'}">{$aLang.baraholka}</a></li>
			<li {if $sMenuHeadItemSelect=='people'}class="active"{/if}><a href="{router page='people'}">{$aLang.people}</a></li>
			{hook run='main_menu'}
		</ul>
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.