LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
27.05.2012, 22:24:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Горизонтальное меню (top menu) с многострочными пунктами  (Прочитано 1694 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
heathen
Гость
« : 16.10.2008, 16:29:12 »

Подскажите, плз, как сделать штатными средствами Joomla (или доп. модулями\компонентами) меню такого плана: http://www.itgorod.ru/tmp/test1.html ?

Само меню можно прямо в шаблоне прописать, но тогда активный пункт не выделяется, а это необходимо.
« Последнее редактирование: 16.10.2008, 16:41:46 от heathen » Записан
heathen
Гость
« Ответ #1 : 22.10.2008, 09:49:36 »

Ok, тогда второй вопрос - где производится замена символов < (скобок тегов) на &lt; ? Можно было бы теги прописать прямо в названии меню - если бы не эта замена.
Записан
heathen
Гость
« Ответ #2 : 22.10.2008, 12:48:31 »

Т.к. ответа я не получил, а тема мне кажется интересной, позволю себе привести результаты своих экспериментов.
Сразу говорю, что метод можно существенно улучшить (незначительно переписав для себя модуль mod_mainmenu), но мою локальную задачу он решает - так что дальше копать я не стал.

Чтобы получить (почти) стандартными средствами многострочные меню в стиле, ссылка на который дана выше, достаточно сделать следующее:

Закомментарить в файле <JoomlaRoot>/modules/mod_mainmenu/legacy.php строку № 119 (для Joomla 1.5.7):

Код:
// $mitem->name = stripslashes(htmlspecialchars($mitem->name));


После этого добавляем в файл стилей template.css похожий код:

Код:
/* header Top-nav */
#head-menu
{
margin: 0 auto;
text-align:center;
position: absolute;
vertical-align: middle;
z-index: 100;
background:#860038;
color:#f3f6f8;
width: 100%;
}

#head-menu ul
{
display:block;
list-style-type:none;
}

#head-menu ul li
{
display: inline;
}

#head-menu ul li a span
{
font-size:19pt;
font-weight: bold;
margin: 0 0 50px 0;
}

#head-menu ul li a {
background:#f3f6f8;
color:#860038;

width: 25%;

height: 55px;
text-align:center;
text-decoration: none;
font-size:9pt;
font-weight:normal;
vertical-align: middle;
float: left;
margin: 0;
padding: 10px 0 0 0;
}

#head-menu ul li a:link,#head-menu ul li a:visited
{
background:#f3f6f8;
color:#860038;
}

#head-menu ul li a:hover, #head-menu ul li a:active, #head-menu ul li a:focus, #head-menu #active_menu-nav
{
background:#860038;
color:#f3f6f8;
}


и в файл index.php код для вывода верхнего меню (у меня оно назначено на user3) :

Код:
<div id="head-menu">
<jdoc:include type="modules" name="user3" />
</div>

Названия (текст) пунктов меню должны выглядеть таким образом:
Код:
<span>О НАС</span><br />Будьте ближе

В настоящий момент недостатки метода в следующем:
  • чтобы добавить, например, пятый пункт меню, необходимо не только изменить само меню в админке, но и поправить template.css, тег #head-menu ul li a, опция width: 20%;
  • отключена замена символов типа & (амперсанд) на xhtml-чистый вариант amp;, посему рекомендую избегать их употребления в названиях пунктов.

Изменив css и названия пунктов меню можно делать хоть сотню строк. Только неудобно это - вручную прописывать все.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet