ti-enxame.com

Como posso estilizar o item de menu atual do Joomla ao usar o alias do item de menu como o tipo de item de menu no Joomla 2.5?

FUNDO

Não consigo estilizar o item de menu ativo atual no Joomla 2.5. Depois de muita pesquisa e discussão, verifica-se que meu problema se deve ao fato de eu estar usando um tipo de item de menu “menu item alias ”.

O exemplo abaixo ilustra meu problema.

Digamos que tenho um item de menu chamado "tutoriais" quando clico nele e vou para a página. Quero o tutorials menu item têm um estilo diferente para que o usuário saiba que está na página de tutoriais. Infelizmente, não há classe "atual" anexada ao menu, portanto, isso torna difícil (impossível?) Estilizar o item de menu que corresponde à página atual.

PERGUNTAS

  1. Como posso estilizar o item de menu atual do Joomla ao usar o alias do item de menu como o tipo de item de menu no Joomla 2.5?
  2. Se não conseguir estilizar, existe uma solução alternativa? Um hack ou uma alternativa ao alias do item de menu? Lembre-se de que não quero criar conteúdo duplicado.

PDATE1

Uma classe de active é adicionada ao menu atual. Aqui está um exemplo do que estou vendo quando clico no item de menu superior.

CSS classes for uppermost menu item which is the current page

O problema é que todos os itens do submenu também são estilizados. Como você evita isso? Aqui está o CSS de um submenu que é filho do item de menu atual (observe que a página atual é para o item de menu superior).

CSS for submenu item which is a child of the uppermost current menu item

ATUALIZAÇÃO2

Aceitei as respostas e brinquei com o CSS um pouco mais. Acontece que eu estava aplicando incorretamente o estilo CSS. Eu deveria ter usado li.active para estilizar o item de menu que corresponde à página atual.

1
TryHarder

Resposta 1: Existe algum status ativo no link do alias? Deveria haver - porque você pode usá-lo no lugar da corrente para esse caso específico. De fato, normalmente adiciono .active a todos os meus estilos .current para capturar esses tipos de links.

Resposta 2: Quanto a um truque, aqui está uma opção:

Adicione um ID do corpo para sua página.

Isso vai acima do doctype:

<?php
  $app = JFactory::getApplication();
  $menu = $app->getMenu()->getActive();
  $pageclass = '';

  if (is_object($menu))
    $pageclass = $menu->params->get('pageclass_sfx');
?>

E isso substitui

<body id="<?php echo $pageclass ? htmlspecialchars($pageclass) : 'default'; ?>">

Em seguida, no item de menu do Tutorial real (o não alias) - adicione uma classe de página. Agora, quando você for para a página do tutorial, um ID do corpo será exibido para sua página. Agora, pegue sua classe de item alias li e estilize sua aparência para corresponder ao estilo atual quando estiver dentro da ID do corpo.

1
Faye

O módulo de menu padrão no Joomla 2.5 anexa a classe ativa aos itens de menu ativos, evento ao tipo de item de menu alternativo.

É possível que seu modelo já contenha uma substituição de modelo para o módulo de menu, dando ao seu módulo um comportamento diferente.

De qualquer forma, é muito fácil modificar a saída do módulo de menu com sua substituição e adicionar as classes que você deseja.

2
FFrewin