Добавление тегов <span> вокруг каждого основного элемента в Drupal

StackOverflow https://stackoverflow.com/questions/1201558

  •  05-07-2019
  •  | 
  •  

Вопрос

Я бы хотел, чтобы мои основные ссылки в Drupal выглядели в коде следующим образом:

<a class="active" title="Go to the Foo Homepage" href="/"><span>Home</span></a>

Скорее, чем:

<a class="active" title="Go to the Foo Homepage" href="/">Home</a>

Поэтому я могу затем стилизовать span отдельно от a.

(Я знаю, это звучит немного странно, но это связано с отсутствием поддержки радиуса границ в IE в сочетании с невозможностью установить два фоновых изображения.)

Итак, знаете ли вы, где и как я могу заставить Drupal вставлять эти теги во все мои основные ссылки?

Это было полезно?

Решение

Я думаю, где-то в твоем page.tpl.php, у вас есть что-то вроде этого для отображения основного меню:

print theme('links', $primary_links, array('class' => 'links primary-links'));

Одно решение (возможно, не самый чистый, но должен работать) было бы перебирать элементы $primary_links, чтобы для каждого:

  • активировать режим HTML
  • обернуть title с <span> и </span>

Если ваше меню имеет только один уровень, я полагаю, это подойдет:

foreach ($primary_links as & $link) {
  $link['html'] = true;
  $link['title'] = '<span>' . $link['title'] . '</span>';
}

И после этого вы можете позвонить theme как ты уже делаешь сейчас.

При этом вы должны получить <span> теги вокруг текста ссылки, без их внедрения в titleатрибут <a> теги.


Если в вашем меню больше уровней, вам придется пройти дальше;либо с двумя сложными циклами, либо с какой-то рекурсией, если вы не знаете глубину своих меню.
(Я позволю тебе повеселиться;того, что я сказал, должно быть достаточно, чтобы вы начали ;-))


Кстати, это, вероятно, можно было бы сделать где-нибудь в template.php слишком...Может быть, это лучшее место;но я позволю вам решить, какое решение вы предпочитаете...


Веселиться !

Другие советы

Это должно помочь http://drupal.org/node/221382

Прокрутите вниз до этого комментария для получения окончательного решения. http://drupal.org/node/ 221382 # комментарий-755469 . Есть проблемы с выводом html, которые там решаются.

Для справки, в конце концов, я просто использовал модуль menu_html и ввел элементы меню как < span > пункт меню 1 < / span > в соответствующих диалоговых окнах.

На самом деле я получил < span > < span > расширенный пункт меню < / span > / span > в одном из них, поскольку он был расширен и уже имел фоновое изображение задавать. Теперь у него 3!

По крайней мере, мои изогнутые углы на моих вкладках теперь работают в IE. В другой раз IE впитывает 5/6 часов только потому, что не поддерживает CSS должным образом!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top