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

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

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

Комментарии

Аватар пользователя Ильич Рамирес Санчес Ильич Рамирес Санчес 5 апреля 2009 в 9:55

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

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

Аватар пользователя Azerot Azerot 5 апреля 2009 в 11:26

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

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

Аватар пользователя Dark_kz Dark_kz 5 апреля 2009 в 12:06

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

Аватар пользователя Azerot Azerot 5 апреля 2009 в 12:27

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

Аватар пользователя Ильич Рамирес Санчес Ильич Рамирес Санчес 5 апреля 2009 в 14:38

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

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

Аватар пользователя Azerot Azerot 5 апреля 2009 в 17:49

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

Аватар пользователя Geldora Geldora 5 апреля 2009 в 18:25

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

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

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

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

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

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

Аватар пользователя Azerot Azerot 5 апреля 2009 в 19:20

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

Аватар пользователя Вадыч Вадыч 5 апреля 2009 в 20:43

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

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

Аватар пользователя veligursky veligursky 5 июня 2009 в 19:00

Походу ТС все го лишь нужно вывести все элементы главного меню в в виде дерева и простилизировать его. В 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 -->

Аватар пользователя Geldora Geldora 6 июня 2009 в 17:35

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

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