0 Пользователей и 1 Гость просматривают эту тему.
  • 15 Ответов
  • 2186 Просмотров
*

d.zasypkin

  • Новичок
  • 4
  • 0 / 0
Задача следующая:

В главном меню есть несколько разделов, для каждого из которых используются в дизайне разные цвета и картинки.

На данный момент это реализовано следующим образом:
Код: php
<body id="body" class="page<?php echo JRequest::getInt( 'Itemid' )?>">

По классам, заданным id, настроены СSS.

В php я не силён, этот способ посчитал для себя наиболее подходящим.

Проблема в том, что у дочерних пунктов в главном меню свои id, и, во-первых, получается слишком громоздкий код в CSS, а во вторых, непосвященный юзер вообще не может адекватно создать новый подпункт меню.
Подскажите, как можно выводить id только пунктов меню первого уровня, или как иначе можно решить задачу.

Плодить темплейты тоже не хотелось бы.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Код
<?php
$menu = &JSite::getMenu();
$active = $menu->getActive();
$chapter = isset($active)? $active->tree[0] : null;
?>
<body id="body" class="page<?php echo $chapter ?>">

Вот только я не помню там дерево идет от предков к потомкам или наоборот... Если наоборот то вместо $active->tree[0] будет array_shift($active->tree) (кажется)
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

d.zasypkin

  • Новичок
  • 4
  • 0 / 0
Код
<?php
$menu = &JSite::getMenu();
$active = $menu->getActive();
$chapter = isset($active)? $active->tree[0] : null;
?>
<body id="body" class="page<?php echo $chapter ?>">

Вот только я не помню там дерево идет от предков к потомкам или наоборот... Если наоборот то вместо $active->tree[0] будет array_shift($active->tree) (кажется)

Всё работает, большое спасибо!
*

d.zasypkin

  • Новичок
  • 4
  • 0 / 0
Код
<?php
$menu = &JSite::getMenu();
$active = $menu->getActive();
$chapter = isset($active)? $active->tree[0] : null;
?>
<body id="body" class="page<?php echo $chapter ?>">

Вот только я не помню там дерево идет от предков к потомкам или наоборот... Если наоборот то вместо $active->tree[0] будет array_shift($active->tree) (кажется)

Совсем забыл!

Есть ещё сопряжённый вопрос более эстетического толка.

Как можно вызвать Псевдоним раздела меню, а не айдишник?
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Код: php
<?php
$menu = &JSite::getMenu();
$active = $menu->getActive();
$chapter_id = isset($active)? $active->tree[0] : null;
$chapter = ($menu->getItem($chapter_id))? $menu->getItem($chapter_id) : $menu->getDefault();
$alias = $chapter->alias;
?>
<body id="body" class="page<?php echo $alias ?>">
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

d.zasypkin

  • Новичок
  • 4
  • 0 / 0
Код: php
<?php
$menu = &JSite::getMenu();
$active = $menu->getActive();
$chapter_id = isset($active)? $active->tree[0] : null;
$chapter = ($menu->getItem($chapter_id))? $menu->getItem($chapter_id) : $menu->getDefault();
$alias = $chapter->alias;
?>
<body id="body" class="page<?php echo $alias ?>">

Предел мечтаний)
Еще раз спасибо!
*

HYBRID

  • Захожу иногда
  • 229
  • 46 / 0
  • Они захватят мир
Даник, плюс тебе за то что помог развитию идеи, похожая идея как у d.zasypkin летала где-то в голове а тут бац и готовое решение для этого :)
http://hybrid-lab.com - лаборатория
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Еще вместо алиаса тут можно употребить Суффикс класса страницы - прописывается в параметрах пункта меню
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

HYBRID

  • Захожу иногда
  • 229
  • 46 / 0
  • Они захватят мир
пора тебе завести свой блог "полезные рецепты для joomla" ;)
http://hybrid-lab.com - лаборатория
*

Garrison

  • Новичок
  • 5
  • 0 / 0
А подскажите с помощью какого "сниппета" можно добавить id не текущего пункта меню, как в примерах выше а присвоить вложенным пунктам меню id родителя? то. е. к примеру есть меню вида
колбаса
-вареная
-копченная

где id пункта "колбаса" 20
какой "сниппет" добавить в код, чтобы в коде страницы у вложенных пунктах -вареная, и  -копченная присутствовал id родителя 20?
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Просмотрите сообщения внимательней. Тут как раз эта проблема и решалась. Только второй кусок кода вместо id выводил алиас пункта меню, чтоб было не <body class="page-47" /> а <body class="page-kolbasa" />
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Garrison

  • Новичок
  • 5
  • 0 / 0
Когда я подставляю код из примера выше у меня выходит не совсем то что нужно...  Вот меню:
Колбаса         (id20) (это сепаратор)
-вареная        (a class= "mainlevel")
-копченая      (a class= "mainlevel")
Деликатесы    (id21) (это сепаратор)
-ветчина        (a class= "mainlevel")
-грудинка       (a class= "mainlevel")


и вот классу mainlevel  нужно приписать  mainlevel-20  для вареной и копченой и mainlevel-21 для ветчины и грудинки. А у меня для всех прописывается mainlevel-20 если я открыл вареную или копченую и mainlevel-21 если соответственно ветчину или грудинку... Иными словами ВСЕМ подпунктам присваевается id того сепаратора, подменю которого сейчас открыто.

« Последнее редактирование: 01.02.2012, 16:59:43 от Garrison »
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
А, так вы имеете ввиду именно пункты меню, а не страницы, соответсвующие им. И для чего вам это нужно? Опишите задачу которую хотите решить
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Garrison

  • Новичок
  • 5
  • 0 / 0
Все очень просто  меню состоит из четырех сепараторов  каждый сепаратор имеет свой id которому соответствует свой цвет фона.  Цвет текста каждого подменю по замыслу должен соответсвовать цвету фона своего сепаратора.  сепаратор и подменю выводится примерно в вледующем виде:  
<div><h3 class="s5_am_toggler">
<p class="pas21">
<span class="separator">
<span>ГИГИЕНА ПРЕДПРИЯТИЯ</span></span>
</p></h3>

и подменю:

ul class="s5_am_innermenu">
<li class="s5_am_inner_li item27">
<a class="mainlevel69" href="/4/hugien/moduli-gigieniceskie.html">
<span>Модули гигиенические</span></a></li></ul></div>

для сепаратора я смог впихнуть в код модуля строку <p class="pas21">  и прописал в CSS для pas21 цвет фона. А вот для подменю цвет текста прописать не могу ибо сыы игнорирует все упрямо делая цвет таким который соответствует а class... Вот я и пытаюсь приписать mainlevel  id родного сепаратора чтобы потом указать ему цвет текста, и чтобы потом в будущем при добавлении новых подпунктов они сразу имели нужный стиль... Как видите сейчас там 69 что соответствует текущему пункту меню (ваш пример в работе)
« Последнее редактирование: 02.02.2012, 08:29:25 от Garrison »
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Что то вобще непонятная разметка. Такую разметку дает джумловское меню? Или что? где тут вобще джумловское меню используется? Это будет аккордеон? есть же готовые модули нормальные. Уверен все решается гораздо проще. Дайте ссылку на сайт.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Garrison

  • Новичок
  • 5
  • 0 / 0
Да разметку дает джумловский модуль   s5 accordion menu. Адрес сайта ****  Там на сайте два одинаковых левых меню аккордеон. Нижнее меню я сделал сначала но оно к сожалению иногда глючит . Поэтому я решил сделать такое же но на основе модуля  s5 accordion menu А он выдает такую вот разметку.
« Последнее редактирование: 02.02.2012, 21:28:21 от Garrison »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Пункт меню

Автор s120367

Ответов: 0
Просмотров: 155
Последний ответ 03.06.2018, 13:02:55
от s120367
Большое меню Joomla

Автор Amakeeva

Ответов: 1
Просмотров: 352
Последний ответ 22.01.2018, 13:17:45
от effrit
Как можно отображать имя пользователя в название меню?

Автор selimoff

Ответов: 27
Просмотров: 3410
Последний ответ 02.01.2018, 15:24:44
от logan-19
как сделать пункт меню не кликабельным?

Автор qweqweqwe

Ответов: 13
Просмотров: 6262
Последний ответ 07.09.2017, 01:45:49
от forzi
Сдвинуть пункты меню в левое положение

Автор wectra

Ответов: 6
Просмотров: 617
Последний ответ 12.07.2017, 21:09:01
от wectra