Menu
Inizio  Precedente  Successivo

 
Nel pacchetto trovate due file, di tipo XML, per la personalizzazione del menu Utente e del menu Amministratore o del Pannello di Controllo, se avete abilitato il flag opportuno, come spiegato in precedenza. I file si chiamano menuitems.xml e controlpanel.xml e devono stare nella stessa directory dei file di linguaggio. Nel pacchetto trovate anche il file menuitems2.xml, da usare in alternativa al file menuitems.xml; la differenza nei due file è l'uso di icone personalizzate per ogni voce del menu (tag <bullet> spiegata successivamente). Uno dei due file non usa icone per il menu, l'altro usa le icone contenute nei vari temi (directory "themes/nome_tema") nella sottodirectory "bullet".  
Questi due file vanno modificati a mano, con Notepad, e poi caricati sul sito; sarà reso disponibile, in seguito, un add-on per la modifica on-line.  
Come già detto in precedenza, fate attenzione a rispettare la sintassi del file xml e a non introdurre altre tag HTML: usate le variabili HTML al loro posto. Per esempio, usate &lt; per <, &gt; per >, &amp; per &, e così via.  
 
La struttura XML dei file è la seguente:  
<menu>  
   <element>  
      <text></text>  
      <link></link>  
      <target></target>  
      <bullet ></bullet>  
      <role></role>  
      <flag></flag>  
   </element>  
</menu>  
 
Con le seguenti regole:  
1.C'è un solo elemento <menu> di root  
2.Ci sono tanti elementi <element> quante sono le voci del menu  
3.Per ogni elemento <element> ci sono i sei elementi <text>, <link>, <target>, <bullet>, <role> e <flag>, magari vuoti, se non utilizzati per quella particolare voce  
 
<menu> ed <element> non hanno ulterori parametri, mentre spieghiamo il significato e i parametri degli altri elementi:  
 
<text>   è il testo che appare nel menu; può essere specificato in diversi modi:  
·senza nessun attributo: viene visualizzato il testo tra la tag di inizio e fine. Es.: <text>Album fotografico</text>  
·attributo type="translation": il valore specificato viene tradotto con la corrispondente etichetta del file di lingua. Es.: <text type="translation">LANG_NEWS</text>, produce il testo "Notizie" o "News" a seconda della lingua utilizzata dall'utente  
·attributo type="instruction": il testo specificato viene eseguito come una riga di programma ASP e ne viene visualizzato il risultato. Es.: <text type="instructions">LANG_NEWS &amp; " - " &amp; LANG_TO_VALIDATE</text>, produrrà il testo "Notizie – Da validare"  
 
<link>è l'URL che viene attivato quando si seleziona la voce di menu; può essere specificato negli stessi modi:  
·<link>http://www.altrosito.it</link> per attivare il link specificato  
·<link type="translation">GLOBAL_SITE_PATH</link> perr richiamare la "root" del proprio sito  
·<link type="instruction">GLOBAL_SITE_PATH &amp; GLOBAL_SITE_NEWS_PAGE</link> per richiamare la pagina delle "news"  
 
NOTA: se questo tag viene lasciato vuoto, viene prodotta una linea di testo non cliccabile, utile per introdurre sezioni nel menu  
 
<target>   serve a specificare in quale finestra fare apparire l'URL richiamato, con una delle seguenti sintassi:  
·vuoto o "_self": la nuova pagina appare nella stessa pagina e/o frame da cui viene richiamata. Es.: <target>_self</target>  
·"_blank": la nuova pagina appare in una nuova finestra del browser. Es.: <target>_blank</target>  
·"_top": la nuova pagina appare nella stessa pagina da cui viene richiamata, ma senza eventuali frames. Es.: <target>_top</target>  
·con attributi dell'oggetto "window" di JavaScript: la nuova pagina appare in una nuova finestra con le dimensioni e gli attributi specificati. Es.: <target>width=600,height=400,resizable=yes,scrollbars=yes</target> apre una nuova finestra 600x400 ridimensionabile con scroll bars....  
 
<bullet>   serve ad indicare quale icona utilizzare di fianco al nome del menu, con una delle seguenti sintassi:  
·vuoto: nessuna icona. Es. <bullet></bullet>  
·attributo type="instruction": il testo specificato viene eseguito come una riga di programma ASP e ne viene visualizzato il risultato. Es.: <bullet type="instruction">GLOBAL_SITE_THEMES_PATH &amp; sTheme &amp; "/bullet/downloads.gif"</bullet>, visualizza l'icona downloads.gif che si trova nella directory del tema prescelto dall'utente, nella sottodirectory "bullet". In questo modo è possibile avere icone personalizzate per tema.  
 
<role>serve a specificare CHI vedrà questa voce di menu: tutti o solo alcune persone a seconda del ruolo. Es.:  
·<role> </role> tutti gli utenti, per il menu Utenti o tutti gli utenti che hanno fatto login per il Pannello di Controllo  
·<role type="instruction">ROLE_USER</role> solo gli utenti che hanno fatto login  
·<role type="instruction">ROLE_xxxxx</role> solo gli utenti con ruolo specifico xxxxx  
·<role type="instruction">0</role> solo gli utenti che NON hanno fatto login  
·<role type="instruction">-1</role> appare sempre  
·<role type="instruction">-2</role> solo gli utenti con ruolo maggiore di "User"  
 
<flag>serve a specificare QUANDO questa riga deve apparire, a seconda di valori di configurazione o altro. Es.:  
·<flag></flag> la riga è sempre visualizzata  
·<flag type="instruction">GLOBAL_NEWS_TOP</flag> la riga viene visualizzata solo se il valore della variabile GLOBAL_NEWS_TOP è True (ossia > 0)  
·<flag type="instruction">0</flag> insieme all'istruzione <text type="translation"> LANG_EMPTY_SECTION </text> serve per inserire una riga vuota tra le voci del menu  
 
Se siete nel dubbio, guardate le righe già inserite nei file di default e copiate da quelle per inserire nuove voci con analoghe caratteristiche. Con questa nuova modalità di gestione dei menu, non è più necessario toccare il codice ASP per fare delle modifiche; è inoltre molto semplice ottenere un menu con icone personalizzate (fig.4.3) per ciascuna voce ed anche diverse per diversi tipi di "temi".