Доработка главного меню и кнопки "Написать"
Не знаю как остальным, а меня очень напрягала в шаблоне «New» одна деталь: когда нажимаешь кнопку «Написать», она сама пропадает, а в главном меню активизируется пункт «Блоги». Меня это очень сильно путало в навигации. Гораздо логичнее было бы сделать так, чтобы под создание и просмотр своих топиков и блогов был отдельный раздел в меню.
Реализовал я это следующим образом:
1) В файле /templates/skin/new/header_nav.tpl вырезаем кусок
2) Идём в файл /templates/skin/new/header_top.tpl, находим там в районе 25 строки
Этим самым мы добавляем кнопку «Написать» в главное меню + она отображается всегда для залогиненных юзеров. Но сейчас этот пункт меню никогда не является активным, а активным по-прежнему будет пункт «Блоги».
3) Идём в файл /classes/actions/ActionTopic.class.php, находим 28 строку:
Теперь у нас пункт «Написать» активен при создании топика:
Но при создании топика-опроса или топика-ссылки снова активными станут блоги. Поэтому:
4) делаем тоже самое в файлах /classes/actions/ActionLink.class.php и /classes/actions/ActionQuestion.class.php, то есть в 28-й строке меняем
Всё, теперь как надо:
Правда, при переходе по ссылке «Создать блог» активным станет пункт «Блоги», но на мой взгляд так логичнее (и к тому же я не разобрался как это сделать=)).
Зачем всё это надо? Может быть, здесь это не так заметно, но у себя на сайте я таким образом сделал навигацию значительно понятнее:
Кстати, если кто-то просто хочет зафиксировать кнопку «Написать», чтобы она всегда была на своём месте, а не пропадала внезапно, просто в файле /templates/skin/new/header_nav.tpl в 4-й строке замените
на
Поправьте, если я где-то сделал неправильно. Я не программист, и всё делал, просто опираясь на логику. Надеюсь, я кому-то помогу=)
Реализовал я это следующим образом:
1) В файле /templates/skin/new/header_nav.tpl вырезаем кусок
<div class="write">
<a href="{$DIR_WEB_ROOT}/{$ROUTE_PAGE_TOPIC}/add/" alt="{$aLang.topic_create}" title="{$aLang.topic_create}" class="button small">
<span><em>{$aLang.topic_create}</em></span>
</a>
</div>
и сохраняем. Всё, теперь кнопки «написать» нет.2) Идём в файл /templates/skin/new/header_top.tpl, находим там в районе 25 строки
<ul class="nav-main">
и между любыми из <ли>, куда нам надо, добавляем{if $oUserCurrent}
<li {if $sMenuHeadItemSelect=='write'}class="active"{/if}><a href="{$DIR_WEB_ROOT}/{$ROUTE_PAGE_TOPIC}/add/" alt="{$aLang.topic_create}" title="{$aLang.topic_create}">{$aLang.topic_create}</a></li>
{/if}
Этим самым мы добавляем кнопку «Написать» в главное меню + она отображается всегда для залогиненных юзеров. Но сейчас этот пункт меню никогда не является активным, а активным по-прежнему будет пункт «Блоги».
3) Идём в файл /classes/actions/ActionTopic.class.php, находим 28 строку:
protected $sMenuHeadItemSelect='blog';
и заменяем наprotected $sMenuHeadItemSelect='write';
Теперь у нас пункт «Написать» активен при создании топика:
Но при создании топика-опроса или топика-ссылки снова активными станут блоги. Поэтому:
4) делаем тоже самое в файлах /classes/actions/ActionLink.class.php и /classes/actions/ActionQuestion.class.php, то есть в 28-й строке меняем
protected $sMenuHeadItemSelect='blog';
наprotected $sMenuHeadItemSelect='write';
Всё, теперь как надо:
Правда, при переходе по ссылке «Создать блог» активным станет пункт «Блоги», но на мой взгляд так логичнее (и к тому же я не разобрался как это сделать=)).
Зачем всё это надо? Может быть, здесь это не так заметно, но у себя на сайте я таким образом сделал навигацию значительно понятнее:
Кстати, если кто-то просто хочет зафиксировать кнопку «Написать», чтобы она всегда была на своём месте, а не пропадала внезапно, просто в файле /templates/skin/new/header_nav.tpl в 4-й строке замените
{if $oUserCurrent and ($sAction==$ROUTE_PAGE_BLOG or $sAction==$ROUTE_PAGE_INDEX or $sAction==$ROUTE_PAGE_NEW or $sAction==$ROUTE_PAGE_PERSONAL_BLOG)}
на
{if $oUserCurrent}
Поправьте, если я где-то сделал неправильно. Я не программист, и всё делал, просто опираясь на логику. Надеюсь, я кому-то помогу=)
6 комментариев
Я например ссылку «Написать» со старта также переместил в главное меню. Вот так вот захотелось :)
Только:
а) «написать» с маленькой буквы;
б) не подчеркивается как линк.
Можете подсказать, как исправить? :)
'topic_create' => 'Написать'
'topic_create' => 'Написать'
б) Гоу в header_top.tpl, убрать хвост вида class=«button small» из <a href="{router page='topic'}add/" alt="{$aLang.topic_create}" title="{$aLang.topic_create}"
class=«button small»>