\section{SecureMenu } \par Cette classe permet la création d'un menu dont les élements ({\em items}) ne seront affichés qu'aux utilisateurs ayant les droits d'accès suffisants pour y accéder. \subsection{Création d'un menu} Pour créer un menu, il suffit de créer un objet en appelant \verb+SecureMenu($level=0)+, où \verb+$level+ est le niveau d'accès nécessaire pour les futurs élements du menus si les droits d'accès ne leurs sont pas explicitement fixés. Si \verb+$level+ n'est pas spécifié, alors les élements seront accessibles à tous par défaut. \par Pour créer un menu il suffit donc de : \lstset{language=PHP} \begin{lstlisting} $exempleMenu1=new SecureMenu(); $exempleMenu2=new SecureMenu(); \end{lstlisting} \subsection{Ajouter des élements} \par Pour l'ajout d'un élements, on fait appel à la fonction \verb+addItem($identifiant,$titre,$page)+, où \verb+$identifiant+ est l'identifiant interne de l'élément du menu, \verb+$titre+ est le titre de l'élément, tel qu'il apparaîtra aux utilisateurs du menu, \verb+$page+ est la page cible affichée lors d'un clic sur l'élément du menu. \par Par exemple: \lstset{language=PHP} \begin{lstlisting} $exempleMenu1->addItem("id_interne_sommaire", "Sommaire", "index.php"); $exempleMenu1->addItem("id_interne2", "Definitions" "lexique.php"); \end{lstlisting} aura pour effet d'ajouter {\em "Sommaire"}\/ et {\em "Definitions"}\/ au menu, qui pointent respectivement sur les pages "\verb+index.php+" et "\verb+lexique.php+" \subsection{Gestion des droits} \par Par définition, une application utilisable par des utilisateurs n'ayant pas le droit aux mêmes actions, doit explicitement {\em restreindre} certaines zones à certaines personnes. \par Pour ce faire, il est nécessaire d'indiquer quels "les droits d'accès" autorisés aux zones restreintes, et indiquer a ces zones le droit d'accès de l'utilisateur actuel. \subsubsection{Fixer les droits sur un élément} \par Pour fixer un droit d'accès (qui régira son affichage en fonction de l'utilisateur) à un élement du menu, il suffit d'utiliser la méthode \verb+setItemLevel($identifiant,$level)+. Dans le prototype de cette fonction, \verb+$identifiant+ indique l'identifiant de l'élément du menu (comme vu dans \verb+addItem(...)+) et \verb+$level+ est le "droit d'accès minimum autorisé". \subsubsection{Indiquer au menu les droits actuels} \par Afin que le menu soit utilisable, il est nécessaire d'indiquer au menu les droits de l'utilisateur courant par la méthode \verb+setCurrentLevel($level)+, où \verb+$level+ est le "droit d'accès" de l'utilisateur courrant. Par exemple : \lstset{language=PHP} \begin{lstlisting} $menu=new SecureMenu(0); $menu->addItem("sommaire ", "Sommaire", "index.php"); $menu->setItemLevel("sommaire", 0); $menu->addItem("page_invisible", "Acces Membres" "membres.php"); $menu->setItemLevel("page_invisible", 1); $menu->setCurrentLevel(0); \end{lstlisting} aura pour effet de créer un menu dont seul l'élément {\em "Sommaire"} sera affiché, car le droit d'accès de l'utilisateur indiqué est insuffisant pour afficher l'entrée {\em "Acces Membres"} du menu. \subsection{Utiliser le menu} \par Une fois que les éléments ont été ajoutés et les droits d'accès fixés, le menu est prêt a être utilisé : il suffit d'appeller la méthode \verb+toHTML()+ qui génère et renvoie le code HTML correspondant au menu à l'endroit où la fonction est appelée. \lstset{language=PHP} \begin{lstlisting} $menu=new SecureMenu(); [...] print $menu->toHTML(); \end{lstlisting}