Ещё раз о выпадающем меню применительно к Primary Links

5 апреля 2009 в 2:57
Аватар пользователя Azerot Azerot 0 14

Поискал на этом сайте, поискал на Drupal.org модули, но так и не понял - неужели не существует способа сделать выпадающее меню для Primary Links по-человечески? Меня совершенно не устраивает, что например Nice Menu, который все советуют позволяет только шлёпать блоки - мне не нужен блок! Мне нужно, чтобы после установки модуля дочерние пункты Primary Links выводились выпадающим меню при наведении курсора мышки на родительский пункт меню. Именно так! Я не хочу размещать Primary Links в блоке, потому что этот блок будет показан не так и не в том месте, которое мне нужно. Мне нужно чтобы всё работало именно на том месте, куда выводит Primary Links тема. Так возможно это или нет на готовых решениях или надо своё ваять?

Комментарии

"Azerot" wrote:
не хочу размещать Primary Links в блоке, потому что этот блок будет показан не так и не в том месте, которое мне нужно.

туфту гоните, уважаемый.
написать CSS и кусок page.tpl чтбы блок показывать так и в том месте как вам нужно уже стало проблемой?
http://www.extrajob.by/ как пример вставки nice menus

5 апреля 2009 в 9:55

> написать CSS и кусок page.tpl чтбы блок показывать так и в том месте как вам нужно уже стало проблемой?
Написать можно что угодно, спору нет. Даже свой модуль, который будет делать то, что нужно. Я задал вопрос в надежде на то, что уже есть нормальное готовое решение.

> Вставляйте в тему, куда хотите
Вадыч, проблема в том, что такое не будет работать после сноса модуля! Получается, что у меня сайт будет завязан на ОБЯЗАТЕЛЬНОЕ наличие данного модуля, что разумеется мне не нужно!

5 апреля 2009 в 11:26

Если Вы хотите чтобы ваше меню стало выпадающем без модуля, пишите Javascript, подключайте его и проблема решена.

5 апреля 2009 в 12:06

Да я готов написать, не вопрос. Целью создания данного вопроса было узнать, есть ли уже ГОТОВЫЕ решения с нужной мне функциональностью? Если их нет - придётся писать, но вдруг кто знает такие решения?

5 апреля 2009 в 12:27

"Azerot" wrote:
олучается, что у меня сайт будет завязан на ОБЯЗАТЕЛЬНОЕ наличие данного модуля, что разумеется мне не нужно!

и это проблема? Smile
ну тада пишите свою темизацию главного меню + JS и в тему.
по сути будет та же работа что и подрубание nice menus Smile

5 апреля 2009 в 14:38

Спасибо за столь "полезный" совет. По-моему лучше написать модуль, который будет показывать подменю с JavaScript именно в том месте, где выводится само меню в ЛЮБОЙ теме. Тогда не надо править никаких тем и при отсутствии модуля будет работать самым обычным образом.

5 апреля 2009 в 17:49

"Azerot" wrote:
есть ли уже ГОТОВЫЕ решения с нужной мне функциональностью? Если их нет - придётся писать, но вдруг кто знает такие решения?

Есть, есть - и много.

Вариант 1. Вы же на шестерке? Меняете тему на ту, которая уже с предустановленной выпадающей меню. Обычно используется сускерфиш меню.

Вариант 2. Используя тему из №1 пишите сами свой цсс.

Вариант 3. Я так сделала, правда на 5ке. Передрала кусок темы не меняя его, из №1 в свою, получилось нормально - мне нравится - www.uchi.kz, синее меню вверху.

Короче, пишите свой сускерфиш, если не умеете, платите дизайнерам (я так собираюсь сделать после портирования) и все!

5 апреля 2009 в 18:25

Это был бы хороший выход для РАЗОВОЙ надобности.
Однако, если всё-таки задаться целью получить инструмент, которым потом можно пользоваться везде и всюду, лучше всё-таки писать модуль. Потому как я понимаю, что готовых решений таки нет.

5 апреля 2009 в 19:20

"Azerot" wrote:
> Вставляйте в тему, куда хотите
Вадыч, проблема в том, что такое не будет работать после сноса модуля! Получается, что у меня сайт будет завязан на ОБЯЗАТЕЛЬНОЕ наличие данного модуля, что разумеется мне не нужно!

Ну так сделайте проверку на наличие модуля и если есть модуль - выводите найсменю. Если модуля нет - primary_links.

5 апреля 2009 в 20:43

Походу ТС все го лишь нужно вывести все элементы главного меню в в виде дерева и простилизировать его. В 6 друпале это можна сделать через тему:

в template.php
function phptemplate_preprocess_page(&$vars) {
...
$vars['primary_links_tree'] = menu_tree(variable_get('menu_primary_links_source', 'primary-links'));
...
}      

в page.tpl.php

 <div id="primary-menu">
          <?php print $primary_links_tree; ?>
        </div><!-- /primary_menu -->

5 июня 2009 в 19:00

veligursky, случайно не знаете, как в эту функцию добавить кастомный id?

если в обычную функцию принт праймари_линкс, то это легко. если выводить дерево, то не знаю как... (просто у меня есть готовый цсс, а там стиль идет по Айди, а не по классу Sad а переделывать лень Smile

6 июня 2009 в 17:35