Как вывести подменю в теме danland

Главные вкладки

Аватар пользователя devland devland 23 января 2015 в 17:23

Здравствуйте.

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

Суперфиш меню показывает в коде подменюшки, но при установке из коробки они не выпадают (видимо надо шаманить). Да и не хочется ставить доп модули (суперфиш и тп).

Вот код менюшки:

<?php<div id="menu">
<div id="rounded-menu-left"></div>
 <?php if ($main_menu || $page['superfish_menu']): ?>
      <div id="<?php print $main_menu 'nav' 'superfish' ?>">
        <?php 
                         
if ($main_menu) {
                  print 
theme('links__system_main_menu', array('links' => $main_menu));  
                      }
                      elseif (!empty(
$page['superfish_menu'])) {
                        print 
render ($page['superfish_menu']);
                      }
        
?>
      </div> <!-- end primary -->
    <?php endif; ?>
<div id="rounded-menu-right"></div>
</div> <!-- end menu -->?>

Вопрос: как заставить стандартное меню этой темы выдать подменюшки?

PS: сюда http://www.drupal.ru/node/81883 не отправлять, там не решение проблемы

Комментарии

Аватар пользователя devland devland 24 января 2015 в 10:54

Пробовал так:

строку:

print theme('links__system_main_menu', array('links' => $main_menu));

менял на такие варианты:

<?php print theme menu tree(menu tree($main_menu='links')); ?> (без <?php и ?> - просто чет не оформляется как код в этом комментарии)

<?php print theme menu tree(menu tree($main_menu='links__system_main_menu')); ?>

<?php print theme menu tree(menu tree($menu_name ='links')); ?>

<?php print theme menu tree(menu tree($menu_name ='links__system_main_menu')); ?>

не помогло. Может надо было менять строку:

<?php

"> ?>

В php не силен, подскажите логику стандартного вывода (который я привел выше):

Я понимаю так:
1. блок с id menu
2. блок rounded-menu-left (нафиг мне не нужен - оформление левого края менюшки)
3. <?php if ($main_menu || $page['superfish_menu']): ?> - если на стрнице есть $main_menu или суперфиш
4. То вывести его, назвав nav или superfish
5. if ($main_menu) { - если есть только $main_menu
то вывести links__system_main_menu (что это?) и массив ссылок из main_menu
6. Иначе вывести $page['superfish_menu']
и тд...

все-таки не понимаю, какая часть кода отвечает за вывод именно ПОДМЕНЮ?

Аватар пользователя amator amator 24 января 2015 в 14:05

А если:
1) создать другое меню и напихать в него все нужные пункты с подпунктами;
2) вывести это меню (в разделе Блоки) в нужном регионе сайта; и
3) если в коде появятся (а они по-любому появятся) пункты вместе с подпунктами, то дополнить это меню соответствующим модулем или компонентом jQuery, чтобы при наведении (или нажатии) на родительский пункт меню, выпадали дочерние пункты.

Аватар пользователя devland devland 24 января 2015 в 16:53

Спасибо за советы, но:
1. Стандартные менюшки, доступные в блоках при выводе в любом регионе не выдают подменю (хотя элементы списка (list-style) меняются - для элементов у которых есть выпадающие части)
2. При использовании Суперфиш меню выпадающие элементы в коде появляются - можно сделать, используя сторонние модули.

Я хотел бы средствами темы вывести, а в php и функциях друпала не силен.

Хотя бы ткните что почитать конкретно про вывод меню и подменю в друпале, а то ничего стоящего не нашел (видимо плохо искал)?

Аватар пользователя amator amator 24 января 2015 в 21:02

1) А на других темах меню нормально отображается?
2) И я писал не о стандартных меню, которые по умолчанию создаются Друпалом, а про новое меню, созданное тобой, то есть создай новое меню, выведи его в нужный регион, и посмотри результат.

Аватар пользователя Радист Радист 25 января 2015 в 5:30

В массиве $main_menu (array) находятся только родительские ссылки нулевого увроня. Можно, наверное как-то препроцессить и темизовать, но не лучше ли (для перформанса) поставить там новый регион $page['header'], и вывести туда блок с главным меню?

<?php
<div id="menu">
<
div id="rounded-menu-left"></div>
  <?
php if(isset($page['header'])): ?>
    <?php print render($page['header']); ?>
  <?php endif; ?>
<div id="rounded-menu-right"></div>
</div> <!-- end menu -->
?>

Потом с ccs спокойно подправить под старый стиль, если он так сильно понравился.

Аватар пользователя devland devland 25 января 2015 в 5:36

В смысле новое меню, созданное в Структура - Меню? тоже не дают результата

Заметил тут: в этой теме подменю можно вывести через secondary links, т.е. если в настройках меню указать для примари и секондари одно и то же меню, то подпункты появляются в подвале) Но мне так не надо, нужно обычное выпадающее

В других темах нормульно

Радист, щас попробую, спасибо

Аватар пользователя amator amator 25 января 2015 в 11:52

Nice Menus - видео
jquery menu
DHTML Menu

"devland" wrote:
Да и не хочется ставить доп модули (суперфиш и тп)

Модули для того и созданы, чтобы с их помощью добиваться нужного функционала в Друпале, так что не страдай х....нёй - качай. XD Без обид.

Аватар пользователя devland devland 26 января 2015 в 18:04

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

Аватар пользователя seven777 seven777 13 мая 2016 в 11:42

Всем добрый день. Подскажите, пожалуйста, как можно изменить положение ссылок меню в теме danland, чтобы они были не внизу, а сверху. И чтобы заголовок страниц сайта был не внизу, а сверху? Очень нужно.

Аватар пользователя seven777 seven777 13 мая 2016 в 11:42

Всем добрый день. Подскажите, пожалуйста, как можно изменить положение ссылок меню в теме danland, чтобы они были не внизу, а сверху. И чтобы заголовок страниц сайта был не внизу, а сверху? Очень нужно.