Brainleaf
Web Resources

Joomla

Durante lo sviluppo di un template per Joomla capita molto spesso di dover diversificare alcune parti del medesimo in base alla pagina visualizzata. Certo, a volte è possibile fare questo con gli strumenti che Joomla ci offre, come il caricamento di moduli associati ad una specifica voce di menu, ma in molti altri casi si rende necessario dover identificare, attraverso codice php, quale voce di menu è attiva al momento.

Vediamo quindi come poter procedere per recuperare l'id della voce di menu attiva e costruire così una condizione if che ci permetta di far verificare un dato evento soltanto al click su una specifica voce di menu.

Supponiamo che la voce che ci interessi abbia il nome di BLOG (questo nome è di pura fantasia) e che il nostro intento è caricare semplicemente un div con del testo all'interno della pagina blog.

Quello che dobbiamo fare come prima cosa è recarci nella gestione del menu e controllare quale sia l'ID della voce di menu che ci interessa, nel mio esempio BLOG. Supponiamo che in questo l'ID sia 100. Come capire dunque quando l'id 100 è attivo con un po' di codice php?

Semplice, l'operazione da eseguire è la seguente, prima di tutto andremo a ricavare l'id della voce di menu attiva e per questo basta inserire poche linee di php nel codice della pagina index.php del template.

<?php
$menus = &JSite::getMenu();
$menu  = $menus->getActive();
$itemid = $menu->id;
?>

Ora che abbiamo recuperato l'id della voce di menu attiva e lo abbiamo associato ad una variabile ($itemid), non dovremo far altro che istruire il template ad eseguire una data operazione soltanto se l'id corrisponde a quello che ci interessa (100 nel nostro esempio)

<?php if ($itemid == 100) : ?> 
<div class="divBlogMsg">Voce di menu BLOG attiva!</div>
<?php endif; ?>

Fatto questo il div con classe divBlogMsg comparirà soltanto se la voce di menu BLOG è stata cliccata ed è quindi attiva. In tutte le altre pagine questo div non comparirà mai.

Joomla SEF URLs by Artio