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?

Foi útil?

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!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top