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

v-v

  • Осваиваюсь на форуме
  • 87
  • 3
Помогите пожалуйста реализовать вывод меню.

Суть такова:
есть меню следующего вида

-Родительская категория 1
--Дочерняя категория 1.1
--Дочерняя категория 1.2
--Дочерняя категория 1.3

-Родительская категория 2
--Дочерняя категория 2.1
--Дочерняя категория 2.2
--Дочерняя категория 2.3

необходимо например чтобы при заходе на страницу "Родительская категория 1" в меню отображался только пункт Родительская категория 1 со всеми вложенными в него подпунктами, т.е показывался только текущий пункт меню и его подменю, если таковые имеются, а все остальные родительские пукты не отображались:

-Родительская категория 1
--Дочерняя категория 1.1
--Дочерняя категория 1.2
--Дочерняя категория 1.3
*

Shustry

  • Группа развития
  • 6430
  • 735
  • Рисую дизайны
Создаёте три других меню, пункты которых это псевдонимы пунктов вашего основного. И публикуете модули на соответствующих страницах. Для удобства вывода можно AdvancedModulesManager использовать.
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!
*

v-v

  • Осваиваюсь на форуме
  • 87
  • 3
Создаёте три других меню, пункты которых это псевдонимы пунктов вашего основного. И публикуете модули на соответствующих страницах. Для удобства вывода можно AdvancedModulesManager использовать.

спасибо за подсказку, решение хорошее, но слишком громоздкое, т.к страниц очень много.
 Я пытался допилить шаблон вывода в mod_menu, там где формируется дерево меню..но что то не получается с условием вывода
*

Shustry

  • Группа развития
  • 6430
  • 735
  • Рисую дизайны
Если знаете РНР, то вообще не проблема. Всё верно, делаете переопределение шаблона меню. Для первого уровня ($item->level == 1) делаете условие (если ссылка пункта та же, что и текущий URL, то выводить).
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!
*

Gover

  • Осваиваюсь на форуме
  • 184
  • 3
А в параметрах меню разве нет управления вложенностью выводимых пунктов?
*

Shustry

  • Группа развития
  • 6430
  • 735
  • Рисую дизайны
Управление то есть. Но у ТС задача шире. Нужно на определённых страницах показывать только активный ПЕРВЫЙ уровень. А такого в системе меню не предусмотренно в принципе. Как вариант конечно тупо скрыть средствами CSS неактивные пункты первого уровня. Тогда задача вообще элементарная была бы. v-v, такой вариант вам как?
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!
*

fbr

  • Живу я здесь
  • 1284
  • 142
Можно попробовать переопределить в default.php

Родительский пункт всегда .active, если даже текущим является вложенный пункт
Значит там нужно еще добавить флаг, типа $flag_active = true;

А перед выводом пункта поставить условие:

if ($flag_active ) {

72    echo '<li' . $class . '>';
...
}

Сам не проверял, но можете подумать
*

Shustry

  • Группа развития
  • 6430
  • 735
  • Рисую дизайны
fbr, да, с условием active даже проще, чем со сравнением урлов. Респект. Но дополнительную проверку на level конечно нужно добавить. Т.е. двойное условие.
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!
*

fbr

  • Живу я здесь
  • 1284
  • 142
ну это я упрощенно ))
на вскидку

Там может еще много чего придется добавить ..
*

v-v

  • Осваиваюсь на форуме
  • 87
  • 3
Управление то есть. Но у ТС задача шире. Нужно на определённых страницах показывать только активный ПЕРВЫЙ уровень. А такого в системе меню не предусмотренно в принципе. Как вариант конечно тупо скрыть средствами CSS неактивные пункты первого уровня. Тогда задача вообще элементарная была бы. v-v, такой вариант вам как?

нет, скрывать ненужное средствами CSS - это не то))

Можно попробовать переопределить в default.php

Родительский пункт всегда .active, если даже текущим является вложенный пункт
Значит там нужно еще добавить флаг, типа $flag_active = true;

А перед выводом пункта поставить условие:

if ($flag_active ) {

72    echo '<li' . $class . '>';
...
}

Сам не проверял, но можете подумать
fbr, да, с условием active даже проще, чем со сравнением урлов. Респект. Но дополнительную проверку на level конечно нужно добавить. Т.е. двойное условие.

пробовал я с active, но в результате получается что выводится только один активный пункт меню, без подменюшек. Если активна одна из подменюшек - то выводится она и ее родитель...ПХП знаю на уровне ликбеза...что то все таки делаю неправильно
*

fbr

  • Живу я здесь
  • 1284
  • 142
Я же написал, что на вскидку ))
Подумать нужно, потупить ...

Есть еще класс .deeper, который назначается родительскому пункту, которому позволено выводить подменю
Нужно обработать его, чтобы не резало пункты внутри него. Попробуйте сбросить флаг.

89   if ($item->deeper) {
             $flag_active = false;
        ....

В общем экспериментируйте! Все не так просто
*

Shustry

  • Группа развития
  • 6430
  • 735
  • Рисую дизайны
Сделайте дамп пункта меню, выложите сюда. Условие активности там по-моему другое должно быть. Активный (active) ВЕСЬ пункт меню. Включая подпункты. А текущий (curent) один.
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!
*

v-v

  • Осваиваюсь на форуме
  • 87
  • 3
Сделайте дамп пункта меню, выложите сюда. Условие активности там по-моему другое должно быть. Активный (active) ВЕСЬ пункт меню. Включая подпункты. А текущий (curent) один.

да, так и есть. Родительскому присваивается класс active parent, а дочернему current active
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Странно ведет себя стандартное меню. Помогите, люди добрые

Автор Little Muk

Ответов: 0
Просмотров: 45
Последний ответ 24.09.2017, 23:20:34
от Little Muk
Меню во всю ширину

Автор mastamatey

Ответов: 9
Просмотров: 117
Последний ответ 20.09.2017, 13:25:44
от mastamatey
Пункт меню - Блог категорий

Автор Pusr

Ответов: 0
Просмотров: 32
Последний ответ 19.09.2017, 13:02:33
от Pusr
Вывести только материал без оформления

Автор SuschnosT

Ответов: 0
Просмотров: 53
Последний ответ 18.09.2017, 13:25:04
от SuschnosT
Как сделать два разных меню для конкретных страниц\?

Автор aniangeless

Ответов: 1
Просмотров: 70
Последний ответ 17.09.2017, 13:32:50
от vipiusss