Adicionando marcas ao redor de cada item principal no Drupal
-
05-07-2019 - |
Pergunta
Eu gostaria minhas ligações primárias em Drupal para se parecer com isso no código:
<a class="active" title="Go to the Foo Homepage" href="/"><span>Home</span></a>
Em vez de:
<a class="active" title="Go to the Foo Homepage" href="/">Home</a>
Assim que puder, em seguida, o estilo span
separadamente do a
.
(Eu sei que soa como uma coisa um pouco estranha de fazer, mas que tem a ver com o trabalho em torno de falta de apoio border-radius juntamente com a incapacidade de definir 2 imagens de fundo do IE.)
Então, você sabe onde e como eu fico Drupal para inserir estas tags em todas as minhas ligações primárias?
Solução
Eu estou supondo que, em algum lugar em sua page.tpl.php
, você tem algo como isto para exibir o menu principal:
print theme('links', $primary_links, array('class' => 'links primary-links'));
Uma solução (pode não ser a mais limpa - mas deve funcionar) seria para iterar sobre os elementos da $primary_links
, para, para cada um,:
- Ativar HTML modo
- embrulhar o
title
com<span>
e</span>
Se o seu menu tem apenas um nível, acho que isso faria:
foreach ($primary_links as & $link) {
$link['html'] = true;
$link['title'] = '<span>' . $link['title'] . '</span>';
}
E, depois disso, você pode chamar theme
como você já está fazendo agora.
Com isso, você deve obter marcas <span>
espalhados pelo texto do link, sem tê-los injetado no atributo do title
das tags <a>
.
Eu você tem mais níveis em seu menu, você terá que iterate mais para baixo; ou com dois loops imbricados, ou com algum tipo de recursão se você não sabe a profundidade de seus menus.
(eu vou deixar você se divertir com isso, o que eu disse deve ser suficiente para você começar ;-))
Como nota, isso poderia provavelmente feito em algum lugar template.php
também ... Pode ser um lugar melhor; mas eu vou deixar você decidir qual solução você preferir ...
Divirta-se!
Outras dicas
Isso deve ajudar http://drupal.org/node/221382
Acesse esse recado para a solução final http://drupal.org/node/ 221382 # comment-755469 . Há problemas com a saída html que são resolvidos lá.
Para o registro, no final, eu usei apenas o menu_html módulo e entraram os itens do menu como <span>Menu Item 1</span>
nos diálogos relevantes.
Na verdade eu acabei com <span><span>Menu Item Expanded</span></span>
em um deles porque foi ampliado e já tinha um conjunto imagem de fundo. Ela agora tem 3!
Pelo menos meus cantos curvados sobre meus guias estão trabalhando agora no IE. Outra vez que o IE absorve 5/6 horas apenas porque ele não suporta CSS corretamente!