Добавление тегов <span>вокруг каждого основного элемента в Drupal - PullRequest
1 голос
/ 29 июля 2009

Я бы хотел, чтобы мои основные ссылки в 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 отсутствует поддержка границы-радиуса в сочетании с невозможностью установить 2 фоновых изображения.)

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

Ответы [ 3 ]

2 голосов
/ 29 июля 2009

Я предполагаю, что где-то в вашем 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 тоже ... Может быть, лучше; но я позволю вам решить, какое решение вы предпочитаете ...


Веселись!

0 голосов
/ 31 июля 2009

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

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

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

0 голосов
/ 30 июля 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...