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

Аватар пользователя pazitiff

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

Тип материала:
Версия Drupal:
0 Thanks

Комментарии

Аватар пользователя ser_house
ser_house 6 лет назад

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

Аватар пользователя pazitiff
pazitiff 6 лет назад

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

Аватар пользователя Shok211
Shok211 6 лет назад

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

Аватар пользователя pazitiff
pazitiff 3 года назад

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

Аватар пользователя xSPiRiTx
xSPiRiTx 6 лет назад

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

Аватар пользователя xSPiRiTx
xSPiRiTx 6 лет назад

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

Аватар пользователя pazitiff
pazitiff 6 лет назад

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

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

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

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

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

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

Аватар пользователя gorr
gorr 6 лет назад

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

Аватар пользователя xSPiRiTx
xSPiRiTx 6 лет назад

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

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

Аватар пользователя pazitiff
pazitiff 6 лет назад

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

Аватар пользователя voviko
voviko 6 лет назад

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

Аватар пользователя pazitiff
pazitiff 6 лет назад
voviko написал:
Делай блоком, потом в page.tpl найдешь ему место.

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

Аватар пользователя voviko
voviko 6 лет назад

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

Аватар пользователя parshin.pn
parshin.pn 6 лет назад

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

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

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

Аватар пользователя parshin.pn
parshin.pn 6 лет назад

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

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

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

Аватар пользователя Shok211
Shok211 6 лет назад

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

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

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

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

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

Аватар пользователя fgvlasov
fgvlasov 3 года назад

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

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