Ir para o conteúdo

ID único nos menus em blocos


Criado por Marco Paris, Out 02 2010 00:41

1 resposta neste tópico
  • Por favor, faça o login para responder

#1 Marco Paris

Marco Paris
  • Marco Paris
  • Colaborador
  • 8 Revisões

Revisou 02 outubro 2010 - 00:41

Todos os créditos são Marcus da Drupal Brasil. Foi muito útil pra mim e trago pra cá.

Normalmente, quando se cria um menu no Drupal ele também tem a possibilidade de ser exibido como um bloco. Porém, os itens deste menu não possuem ID's únicos, o que limita algumas possibilidades de formatação ou de manipulação através de javascript.

O código abaixo deve ser colocado no template.php do seu tema, e resolve este problema. Recomenda-se que você limpe o cache após implementá-lo.

Observe que dependendo do starter theme que você utilizar, talvez esta função nem seja necessária...

Não é necessário incluir as tags PHP no código abaixo.


<?php
/**
* coloca classes e ids em itens do menu em um bloco
*/

function phptemplate_menu_item($link, $has_children, $menu = '', $in_active_trail = FALSE, $extra_class = NULL) {
$class = ($menu ? 'expanded' : ($has_children ? 'collapsed' : 'leaf'));

if (!empty($extra_class)) {
$class .= ' '. $extra_class;
}
if ($in_active_trail) {
$class .= ' active-trail';
}
static $contador = 0;
$contador +=1;

$id .= 'item-' . $contador;

return '<li id="'.$id.'" class="'. $class .'">'. $link . $menu ."</li>\n";
}
?>


#2 Venicios Ribeiro

Venicios Ribeiro
  • Venicios Ribeiro
  • Colaborador
  • 2 Revisões

Revisou 21 outubro 2010 - 08:07

Muito útil.
--
Venicios Ribeiro
interface, cms, front-end and back-end developer
-------------------------------------------




1 usuário(s) está(ão) lendo este código

1 membro(s), 0 visitante(s) e 0 membros anônimo(s)