Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Меню и активный класс
http://forum.kohanaframework.su/viewtopic.php?f=31&t=788
Страница 1 из 1

Автор:  pantela [ 31 дек 2013, 15:01 ]
Заголовок сообщения:  Меню и активный класс

Делаю меню, через шаблон
Код:
<nav id="navigation" role="navigation">
   <div id="main-menu">
      <ul class="menu">
         <li class="home"><a href="<?=URL::site(''); ?>" title="<?=__("lang_home");?>" class="active"><?=__("lang_home");?></a></li>
         <li class="about_us"><a href="<?=URL::site('about_us'); ?>" title="<?=__("lang_about_us");?>"><?=__("lang_about_us");?></a></li>
         <li class="news"><a href="<?=URL::site('news'); ?>" title="<?=__("lang_news");?>"><?=__("lang_news");?></a></li>
         <li class="services"><a href="<?=URL::site('services'); ?>" title="<?=__("lang_services");?>"><?=__("lang_services");?></a></li>
         <li class="help"><a href="<?=URL::site('help'); ?>" title="<?=__("lang_help");?>"><?=__("lang_help");?></a></li>
         <li class="contact_us"><a href="<?=URL::site('contact_us'); ?>" title="<?=__("lang_contact_us");?>"><?=__("lang_contact_us");?></a></li>
      </ul>
   </div>
</nav>

И как не странно столкнулся с задачей активного меню, сейчас он у меня прописан ручками в Home меню class="active"

Пробовал выводить так, только как определить активное не знаю. <?=html::anchor('home', 'Home',array('class'=>'active'));?>

Нашёл ещё пару методов:
http://stackoverflow.com/questions/2428 ... namic-menu
http://stackoverflow.com/questions/9742 ... ve-in-menu

Но при этом надо всё меню перестраивать через контролер :(
Есть выход какой нибудь?
Думаю как-то тупо можно определить какой контролер грузиться и проверку постаивть что бы подставлять класс активности

спс.Ув.

Автор:  pantela [ 31 дек 2013, 15:10 ]
Заголовок сообщения:  Re: Меню и активный класс

Сделал так
Код:
<nav id="navigation" role="navigation">
   <div id="main-menu">
      <ul class="menu">
         <li class="home"><a href="<?=URL::site(''); ?>" title="<?=__("lang_home");?>" <?php if (Request::current()->action() == 'index') { echo 'class="active"'; } ?>><?=__("lang_home");?></a></li>
         <li class="about_us"><a href="<?=URL::site('about_us'); ?>" title="<?=__("lang_about_us");?>" <?php if (Request::current()->action() == 'about_us') { echo 'class="active"'; } ?>><?=__("lang_about_us");?></a></li>
         <li class="news"><a href="<?=URL::site('news'); ?>" title="<?=__("lang_news");?>" <?php if (Request::current()->action() == 'news') { echo 'class="active"'; } ?>><?=__("lang_news");?></a></li>
         <li class="services"><a href="<?=URL::site('services'); ?>" title="<?=__("lang_services");?>" <?php if (Request::current()->action() == 'services') { echo 'class="active"'; } ?>><?=__("lang_services");?></a></li>
         <li class="help"><a href="<?=URL::site('help'); ?>" title="<?=__("lang_help");?>" <?php if (Request::current()->action() == 'help') { echo 'class="active"'; } ?>><?=__("lang_help");?></a></li>
         <li class="contact_us"><a href="<?=URL::site('contact_us'); ?>" title="<?=__("lang_contact_us");?>" <?php if (Request::current()->action() == 'contact_us') { echo 'class="active"'; } ?>><?=__("lang_contact_us");?></a></li>
      </ul>
   </div>
</nav>

На сколько праивльнее можно ещё сделать?

Автор:  WinterSilence [ 31 дек 2013, 15:27 ]
Заголовок сообщения:  Re: Меню и активный класс

намного, надо сравнивать конечные ссылки,а не их части и вынести данные и шаблона

Автор:  Sergey [ 31 дек 2013, 19:59 ]
Заголовок сообщения:  Re: Меню и активный класс

Антон прав, в представлениях (Views) не должно быть никакой логики, только вёрстка

Страница 1 из 1 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/