Drupal - Добавить пользовательский HTML в li в меню ul? - PullRequest
0 голосов
/ 23 марта 2011

Можно ли как-нибудь написать html (как вы могли бы в блоке), и чтобы html отображался как элемент меню?

Моя ситуация такова, что мне нужен текст, который не является ссылкой наскажите «Следуйте за нами в:», а затем я хочу 2 изображения, которые оба являются ссылками на твиттер и фейсбук.

Меню html не может сделать это, так как требует, чтобы любой html, который вы пишете, был частью ссылки, ибыть той же ссылкой для этого пункта меню.http://drupal.org/project/menu_html

Я действительно хочу, чтобы HTML, который я добавлял, был в списке меню.Спасибо

ОБНОВЛЕНИЕ Код не работает хорошо в комментариях, поэтому я добавляю его здесь.Эта ссылка, кажется, была ближе всего к тому, что вы предлагали:

http://api.drupal.org/api/drupal/includes--menu.inc/function/theme_menu_item/6

Так что я добавил это в мой template.php:

function localhost_petitpim_menu_item($link, $has_children, $menu = '', $in_active_trail = FALSE, $extra_class = NULL) {
  $class = ($menu ? 'expanded' : ($has_children ? 'collapsed' : 'leaf'));
  if (!empty($extra_class)) {
    $class .= ' ' . $extra_class;
  }
  if ($in_active_trail) {
    $class .= 'active-trail myactive';
  }
  return '<li class="' . $class . '">' . $link . $menu . "</li>\n";
}

Все, что я сделалэто добавить класс «myactive», чтобы я мог видеть, работает ли он.Моя тема называется localhost_petitpim.Я обновил кеш.Моя тема настроена на «Перестроить реестр тем на каждой странице».Я не вижу, как применяется новый класс.Я сделал что-то не так?Спасибо

Ответы [ 2 ]

0 голосов
/ 16 июня 2011

Вы можете просто жестко кодировать текст и связанные изображения в ваших файлах tpl.php.Просто поместите html блок с нужным кодом в tpl.php после меню.Сделайте новую обертку вокруг меню и блока, если текущая HTML-структура вашей темы не поддерживает это решение.Блок должен быть смещен вправо или отображаться в строке в зависимости от HTML + CSS вашей темы.

Надеюсь, это поможет.

0 голосов
/ 23 марта 2011

Не очень хорошее решение, но оно работает.

  1. Добавьте две пустые записи меню в ваше меню.
  2. Переопределите метод theme_menu_link, реализовав phptemplate_menu_link в своем template.php file.
  3. В фильтре phptemplate_menu_link для вашей фиктивной записи и замените их любым HTML-кодом, который вам нравится.
...