Per quelli come me che non amano navigare in un sito internet usando un unico menu, orizzontale o verticale che sia, e magari espandibile al passaggio del mouse con tecniche CSS o l’utilizzo di codice JavaScript.
Per quelli come me che preferiscono un menu principale orizzontale dove siano indicate le sezioni principali del sito:
Associato ad un menu secondario verticale nella colonna di sinistra o di destra, in cui vengano riportati i link alle pagine contenute nella sezione scelta.
In aggiunta, vogliono che il menu secondario venga visualizzato solo se esistono delle pagine figlio nella sezione scelta.
Ebbene, questo è possibile inserendo poche linee di codice nel template e usando solo i moduli inclusi nel core di CMS Made Simple.
Prima stampiamo il menu principale orizzontale dove sono indicate solo le sezioni principali del sito (le pagine di primo livello):
{menu number_of_levels="1"}
Adesso passiamo al menu secondario verticale:
<h2>Submenu</h2> {menu start_level="2" collapse="1"}
In questo caso però, il titolo <h2> verrebbe stampato senza nessun menu anche quando la sezione non contiene pagine figlio.
Per evitare che il titolo <h2> venga stampato quando la sezione non contiene pagine figlio, usiamo questo codice:
{capture assign=SubMenu}{menu start_level="2"}{/capture} {if $SubMenu} <h2>Submenu</h2> {menu start_level="2" collapse="1"} {/if}
Questo codice “cattura” nella variabile SubMenu il menu contenete le pagine di secondo livello della sezione, e se l’oggetto esiste lo stampa insieme ad un titolo <h2>.
Se poi vogliamo che il titolo <h2> del submenu sia il nome sella sezione stessa dobbiamo prima installare il modulo CGSimpleSmarty.
Con l’aiuto delle funzioni get_root_alias e get_page_menutext del modulo CGSimpleSmarty il codice da inserire nel template diventa:
{capture assign=SubMenu}{menu start_level="2"}{/capture} {if $SubMenu} <h2>{$cgsimple->get_page_menutext($cgsimple->get_root_alias(),'')}</h2> {menu start_level="2" collapse="1"} {/if}
Questo codice “cattura” nella variabile SubMenu il menu contenente le pagine di secondo livello della sezione, e se l’oggetto esiste lo stampa insieme ad un titolo <h2> che rappresenta il testo del menu corrispondente alla sezione a cui appartiene la pagina.