Меню картинками drupal 7

Вс, 02/09/2012 - 14:08

Здравствуйте, очень нужен совет... Итак, задача заключается в том, чтобы используя D7 сделать меню картиками. Но прежде я расскажу что я делал.
1. Как я понимаю, для d6 есть модуль imagemenu, но для D7 его нет
2. Вариант с CSS сделать картику бекграундом мне не подходит
3. Костыли со вставкой в шаблон линка и обработка тем же css тоже не подходит
3. Пробовал создавать новый тип контента, в нём поле с картинкой, далее создать нужные ноды и далее views вывести картинки в блоке которые ссылаются на ноду (эмулируя тем самым меню), но и этот, на певый взгляд самый идеальный вариант, мне неподошёл.
Всё дело в том, что среди пунктов меню, должен быть пункт формы обратной связи, который включается встроенным в ядро модулем и по дизайну сайта, должен быть в одном ряду с остальными пунктами меню и выводится картинкой.
В идеале если б можно было при редактировании меню добавлять к нужным пунктам картики, а title скрывать, то проблема была бы решена, но такого модуля я ненашёл. Может быть кто то решал уже данную проблему?

0 Спасибо

Комментарии

Аватар пользователя ser_house
4 года 7 months назад ser_house #

Menu attributes не подойдет? Правда, он глючный какой-то — у меня он после создания материала сбрасывает класс у одного из пунктов меню, причем пункт выбирается рандомно)

0 Спасибо
Аватар пользователя pazitiff
4 года 7 months назад pazitiff #

Спасибо за совет, поставил menu_attributes, посмотрел, но мне это не подходит. Это очень хорошо подходит, чтобы придать пунктам меню разные стили офрмления. Можно конечно присвоить id или класс и использовать костыли с CSS, но мне нужно чтоб код генерировался с тегом img.

0 Спасибо
Аватар пользователя Shok211
4 года 7 months назад Shok211 #

Вы бы sketch накидали к примеру https://moqups.com/ возможно вам и подсказал бы.
Тут 2 варианта либо переопределять menu_theme либо добиться эмитации меню через views (Что у вас не получилось)

0 Спасибо
Аватар пользователя pazitiff
1 год 5 months назад pazitiff #

Уважаемый Shok211, спасибо за идею со скечами, раньше не пользовался ими, очень удобно. Решил показать Вам шаблон, по которому и буду разрабатывать сайт. Меня интересует реализация верхнего горизонтального меню, иконки при наведении будут заменятся другими, с помощью css. Как видите, там присутствует форма обратной связи, которую через views картинкой не выведешь =(. Возможно я бы залез бы в PHP код если надо, но как программист - я начинающий, и куда копать чтобы сделать свой модуль с нужными мне функциями я пока не особо знаю. Надесь что в будущем разберусь с ядром друпала. Шаблон прикреплён к сообщению.

0 Спасибо
Аватар пользователя pazitiff
4 года 7 months назад pazitiff #
pazitiff написал:
parshin.pn написал:
1. http://drupal.org/project/menu_icons
2. http://scito.ch/comment/30
Не проверял, но может поможет

Спасибо, сейчас потестирую.

К сожалению модуль обрезает картинки

0 Спасибо
Аватар пользователя xSPiRiTx
4 года 7 months назад xSPiRiTx #

если меню не большое, то не проще ли его сверстать и вставить потом в page.tpl.php?

0 Спасибо
Аватар пользователя xSPiRiTx
4 года 7 months назад xSPiRiTx #

если меню не большое, то не проще ли его сверстать и вставить потом в page.tpl.php?

0 Спасибо
Аватар пользователя pazitiff
4 года 7 months назад pazitiff #

Я думал про этот вариант, но в данном случае он будет костылём, так как нужна автоматизация для использования сайта людьми не знакомыми с HTML. Этот вариант будет так сказать на крайний случай. Но всё равно спасибо за совет, для кого то возможно он окажется очень ценным.

0 Спасибо
Аватар пользователя gorr
4 года 7 months назад gorr #
xSPiRiTx написал:
если меню не большое, то не проще ли его сверстать и вставить потом в page.tpl.php?

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

0 Спасибо
Аватар пользователя pazitiff
4 года 7 months назад pazitiff #
gorr написал:
xSPiRiTx написал:
если меню не большое, то не проще ли его сверстать и вставить потом в page.tpl.php?

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

Вы имеете ввиду создать блок, загрузить в него несколько картинок, сделать картинки линками на нужные ноды и вставить всё это в нужный регион? Я правильно понял?

0 Спасибо
Аватар пользователя gorr
4 года 7 months назад gorr #

Ну да, может я конечно не правильно понял задачу.

0 Спасибо
Аватар пользователя xSPiRiTx
4 года 7 months назад xSPiRiTx #

http://drupalblog.ru/blog/module-menu-icons

все же может стоит попробовать покопать этот модуль и поискать причину почему картинки обрезаются. может там все дело только в css?

0 Спасибо
Аватар пользователя pazitiff
4 года 7 months назад pazitiff #

Чтож, благодарю всех за ценные советы, покопаю menu-icons и css, а также вариант с добавлением картинок в блок. Если вдруг у кого то есть еще какие то варианты, будет очень кстати добавить их в эту тему. Всё это обязательно пригодится людям ищущим ответы на этом форуме. Спасибо.

0 Спасибо
Аватар пользователя voviko
4 года 7 months назад voviko #

Делай блоком, потом в page.tpl найдешь ему место.

0 Спасибо
Аватар пользователя pazitiff
4 года 7 months назад pazitiff #
voviko написал:
Делай блоком, потом в page.tpl найдешь ему место.

Ну да, впринципе блоком будет самый безглючный вариант

0 Спасибо
Аватар пользователя voviko
4 года 7 months назад voviko #

Картинкам только папку задай отдельную...

0 Спасибо
Аватар пользователя parshin.pn
4 года 7 months назад parshin.pn #

По поводу обрезания картинок:
"When Imagecache is installed, you can choose an imagecache preset for uploaded images."
Проверьте настройки пресета, который используется для этих картинок и поменяйте на свои.

0 Спасибо
Аватар пользователя pazitiff
4 года 7 months назад pazitiff #
parshin.pn написал:
По поводу обрезания картинок:
"When Imagecache is installed, you can choose an imagecache preset for uploaded images."
Проверьте настройки пресета, который используется для этих картинок и поменяйте на свои.

У меня D7 и вместо image cache используется image style встроенный в ядро, но это не суть. Пробовал делать разные пресеты, картинка обрезается по высоте строки. Там явно нужно колдовать с CSS.

0 Спасибо
Аватар пользователя parshin.pn
4 года 7 months назад parshin.pn #

Если по высоте, то проверьте высоту родительских элементов.
Меню выводится списком, для ссылок родителем будет элемент li, попробуйте задать ему высоту.

0 Спасибо
Аватар пользователя pazitiff
4 года 7 months назад pazitiff #
parshin.pn написал:
Если по высоте, то проверьте высоту родительских элементов.
Меню выводится списком, для ссылок родителем будет элемент li, попробуйте задать ему высоту.

Пробовал, так почему то не выходит, возможно изза настроек шаблона. Возможно на самодельном шаблоне всё будет нормально.

0 Спасибо
Аватар пользователя Shok211
4 года 7 months назад Shok211 #

"Обратная связь" Что вы имеете виду под этим понятием ? Ссылку на форму ? Форму (её я вобще в шаблоне не заметил) ? Всплывающее окно.
Или что то иное ?.

Если вы хотите сделать как у вас в шаблоне то достаточно использовать Views.

0 Спасибо
Аватар пользователя pazitiff
4 года 7 months назад pazitiff #
Shok211 написал:
"Обратная связь" Что вы имеете виду под этим понятием ? Ссылку на форму ? Форму (её я вобще в шаблоне не заметил) ? Всплывающее окно.
Или что то иное ?.

Если вы хотите сделать как у вас в шаблоне то достаточно использовать Views.

В шаблоне в горизонтальном меню есть кнопка "Обратная связь", в свою очередь это подразумевает по задумке включения модуля contact. Так вот через views опианным выше способом, иконку для формы не выведешь. Сделал всё блоком, залинковал картинки, всё получилось, всем спасибо.

0 Спасибо
Аватар пользователя pazitiff
4 года 7 months назад pazitiff #

Всем привет, всё таки нашлось отличное решение проблемы. Постарался довольно подробно описать это на своём сайте http://infobsd.ru/content/menyu-iz-kartinok-drupal-7

0 Спасибо
Аватар пользователя fgvlasov
1 год 5 months назад fgvlasov #

Тоже стояла проблема, нужно было сделать Главное меню с добавлением картинок как в прикрепленном файле.
Добавил Главное меню в регион header.
Потом в template.php добавил код для темизации главного меню:

function _tro_menu_link__main_menu(array $variables) {
  $element = $variables['element'];
  $sub_menu = '';

  if ($element['#below']) {
    $sub_menu = drupal_render($element['#below']);
  }
  $output = l($element['#title'], $element['#href'], $element['#localized_options']);
  $output2 = l('<img src="/sites/all/themes/_tro/images/icon_'. $element['#href'].'.gif" alt="_">', $element['#href'], $options = array('html' => TRUE));
  return '<li' . drupal_attributes($element['#attributes']) . '>' . $output2 .''. $output . $sub_menu . "</li>\n";
}

0 Спасибо
Аватар пользователя kpuk
2 года 7 months назад kpuk #

http://drupal.org/project/menu_icons
модуль работает как надо, единственное что в админке может криво отображать картинку, но это правится стилями в админской теме, на фротнэнде он выводит как надо в указанном формате

0 Спасибо