it-swarm.dev

Come posso modellare la voce di menu Joomla corrente quando uso l'alias delle voci di menu come tipo di voce di menu in Joomla 2.5?

[~ ~ #] sfondo [~ ~ #]

Non riesco a definire l'attuale voce di menu attiva in Joomla 2.5. Dopo molte ricerche e ripercussioni si scopre che il mio problema è dovuto al fatto che sto usando un tipo di voce di menu di "menu item alias”.

L'esempio seguente illustra il mio problema.

Diciamo che ho una voce di menu chiamata "tutorial" quando faccio clic su di essa e vado a quella pagina, voglio il tutorials menu item avere uno stile diverso in modo che l'utente sappia che si trovano nella pagina dei tutorial. Sfortunatamente, non esiste una classe "corrente" collegata al menu, quindi questo rende difficile (impossibile?) Lo stile della voce di menu che corrisponde alla pagina corrente.

[~ ~ #] [domande ~ ~ #]

  1. Come posso modellare la voce di menu Joomla corrente quando uso l'alias delle voci di menu come tipo di voce di menu in Joomla 2.5?
  2. Se non riesco a modellarlo, c'è una soluzione alternativa? O un hack o un'alternativa all'alias delle voci di menu? Tieni presente che non voglio creare contenuti duplicati.

pdate1

Una classe di active viene aggiunta al menu corrente. Ecco un esempio di ciò che vedo quando faccio clic sulla voce di menu più in alto.

CSS classes for uppermost menu item which is the current page

Il problema è che anche tutti gli elementi del sottomenu sono in stile. Come puoi impedirlo ?? Ecco il CSS di un sottomenu che è figlio della voce di menu corrente (nota che la pagina corrente è per la voce di menu più in alto).

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

PDATE2

Ho preso le risposte a bordo e ho giocato un po 'di più con i CSS. Si scopre che stavo applicando erroneamente lo stile CSS. Avrei dovuto usare li.active per modellare la voce di menu che corrisponde alla pagina corrente.

1
TryHarder

Risposta 1: Esiste uno stato attivo sul collegamento alias? Ci dovrebbe essere - Perché puoi usarlo al posto di corrente per quel caso particolare. In effetti, in genere aggiungo .active a tutti i miei stili .current per catturare quei tipi di collegamenti.

Risposta 2: Per quanto riguarda un hack in giro, ecco un'opzione:

Aggiungi un ID corpo per la tua pagina.

Questo va oltre il doctype:

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

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

E questo sostituisce

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

Quindi, sulla tua voce di menu Tutorial (non alias), aggiungi una classe di pagine. Ora quando vai alla pagina del tutorial, verrà mostrato un ID del corpo per la tua pagina. Ora, prendi la tua classe di oggetti alias e abbina il suo aspetto in modo che corrisponda allo stile corrente quando sei dentro quell'ID del corpo.

1
Faye

Il modulo di menu predefinito in Joomla 2.5 aggiunge la classe attiva alle voci di menu attive, evento al tipo di voce di menu alias.

È possibile che il tuo modello contenga già una sostituzione del modello per il modulo menu, dando al tuo modulo un comportamento diverso.

In ogni caso, è molto semplice modificare l'output del modulo menu con la tua sostituzione e aggiungere le classi che desideri.

2
FFrewin