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

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

Аватар пользователя pazitiff pazitiff 2 сентября 2012 в 18:08

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

Комментарии

Аватар пользователя ser_house ser_house 2 сентября 2012 в 18:50

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

Аватар пользователя pazitiff pazitiff 2 сентября 2012 в 19:15

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

Аватар пользователя Shok211 Shok211 2 сентября 2012 в 19:49

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

Аватар пользователя pazitiff pazitiff 10 ноября 2015 в 11:48

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

Аватар пользователя pazitiff pazitiff 2 сентября 2012 в 21:35

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

Аватар пользователя gorr gorr 2 сентября 2012 в 21:42

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

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

Аватар пользователя pazitiff pazitiff 2 сентября 2012 в 22:01

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

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

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

Аватар пользователя pazitiff pazitiff 2 сентября 2012 в 22:20

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

Аватар пользователя pazitiff pazitiff 2 сентября 2012 в 22:25

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

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

Аватар пользователя parshin.pn parshin.pn 2 сентября 2012 в 22:38

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

Аватар пользователя pazitiff pazitiff 2 сентября 2012 в 22:43

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

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

Аватар пользователя parshin.pn parshin.pn 2 сентября 2012 в 22:56

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

Аватар пользователя pazitiff pazitiff 2 сентября 2012 в 22:57

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

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

Аватар пользователя Shok211 Shok211 3 сентября 2012 в 13:49

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

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

Аватар пользователя pazitiff pazitiff 4 сентября 2012 в 13:49

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

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

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

Аватар пользователя fgvlasov fgvlasov 10 ноября 2015 в 11:48

Тоже стояла проблема, нужно было сделать Главное меню с добавлением картинок как в прикрепленном файле.
Добавил Главное меню в регион 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";
}

Аватар пользователя kpuk kpuk 2 сентября 2014 в 20:03

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