Добавляем пункт меню "FAQ" для статической страницы.

Данный пост рассчитан на тех, кто только начинает работать с LS, надеюсь что кому-то будет полезным. На написание этого поста сподвигло следующее: надо было добавить ещё одну статичную страницу и отображать её в TopMenu, автоматом это не происходит, а документации как это сделать, найти не смог. Рассмотрим добавление на примере страницы «FAQ»

Итак, под админом идём в mysite.ru/admin/pages/, создаём новую страницу:

Вложить в: оставляем пустой
Название страницы: FAQ
URL: faq
Показывать страницу: ставим галочку

Сохраняем и получаем страницу, доступную по адресу: mysite.ru/page/faq/, но задача стоит не только иметь страницу, но и как-то переходить на неё, да ещё, желательно, по-человечи. Для этого открываем /templates/skin/new/header_top.tpl (рассмотрено на примере скина «new» из стандартной поставки), ищем там вот такие строки:

<ul class="nav-main">
 <li {if $sMenuHeadItemSelect=='blog'}class="active"{/if}><a href="{$DIR_WEB_ROOT}/{$ROUTE_PAGE_BLOG}/">{$aLang.blogs}</a></li>
 <li {if $sMenuHeadItemSelect=='people'}class="active"{/if}><a href="{$DIR_WEB_ROOT}/{$ROUTE_PAGE_PEOPLE}/">{$aLang.people}</a></li>
 <li {if $sAction=='page' and $sEvent=='about'}class="active"{/if}><a href="{$DIR_WEB_ROOT}/{$ROUTE_PAGE_PAGE}/about/">{$aLang.page_about}</a></li>
</ul>


и добавляем ещё один пункт меню:

<li {if $sAction=='page' and $sEvent=='faq'}class="active"{/if}><a href="{$DIR_WEB_ROOT}/{$ROUTE_PAGE_PAGE}/faq/">FAQ</a></li>


Вот такая нехитрая операция позволяет добавлять в меню дополнительные пункты. Надеюсь, в следующих версиях это будет делаться автоматом, как в большинстве CMS.

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

avatar
Спасибо.)
  • jofe
  • 0
avatar
Тут надо учесть еще один момент, с которым я столкнулся на собственном опыте.
В файле stylе.css нужно будет увеличить минимальный размер контейнера содержащего в себе пункты меню, иначе, при использовании некоторых нестандартных шаблонов, у владельцев маленьких мониторов или при уменьшенном окне браузера информация о аккаунте будет заползать под пункты меню.
Для этого в файле stylе.css нужно изменить размер в данной строчке
#container { min-width: 1050px; }

У меня стоит 1500px для 2-х добавленных пунктов меню, если добавляете 1 — сверните окно до тех пор, пока данные о пользователе не сползут под пункты меню и играйтесь со значением.
  • Judge
  • 0
avatar
Спасибо ;)
avatar
Lesso пишет:

<li {if $sAction=='page' and $sEvent=='faq'}class="active"{/if}><a href="{$DIR_WEB_ROOT}/{$ROUTE_PAGE_PAGE}/faq/">FAQ</a></li>


В данном примере вы испольузете голый текст «FAQ» (/faq/">FAQ) вместо вывода {$aLang.page_faq}. Конечно, для того, чтобы это сработало нужно будет отредактировать еще один файл: /templates/language/modules/page/russian.php. Нужно добавить туда значение {$aLang.page_faq}

'page_faq' => 'FAQ',


Но зато, если ссылок на страницу FAQ больше одной, то текст ссылки достаточно поменять только в языковом файле
avatar
Не представлял, что это нужно объяснять кому-то :(
  • Mmka
  • 0
avatar
Не подскажете, а как прописать обычную ссылку (на другой сайт, на блог нашего сайта), чтобы она могла становиться активной при переходе (смена шрифта)?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.