Добавление тегов <span> вокруг каждого основного элемента в Drupal
-
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 должным образом!