Les menus pour les interfaces extui
====== Spécification du menu xml ======
Les menus relatif aux documents peuvent être déclarés dans un fichier xml.
Un menu est constitué d'éléments de menu "itemmenu" de type "menu" ou "separator". Ces élements de menu peuvent être placé directement dans la balise principale "menu" ou dans des sous-balises de "itemlistmenu". L'attribut "id" des "itemmenu" et des "itemlistmenu" est obligatoire.
===== Lien vers une url =====
Lien statique :
Lien vers une action de l'application.
:!: Les & doivent être remplacé par des & pour que le xml soit valide.
Vous pouvez utiliser le même format des parties variables (entre %) que lorsque vous définissez les liens dans les documents
L'attribut target défini le nom de la fenêtre vers lequel envoyer votre lien. Le nom "_blank" indique l'ouverture d'une nouvelle fenêtre.
Le nom "_self" indique l'ouverture dans la fenêtre courante. Le nom "_document" indique l'ouverture d'une fenêtre de type document.
===== Appel d'un code javascript =====
===== Contrôle de la visibilité =====
La visibilité du menu peut être rendu conditionnel suivant les règles de contrôle. La visibilité par défaut est "visible" sur les "itemmenu".
Vous pouvez changer la visibilité par défaut sur la valise "itemmenu" en modifiant l'attribut "visibility".
Le contrôle est applicable sur le document faisant référence au menu ou sur le dossier (optionnel) où se trouve le document.
La vérification d'un droit sur le document se fait par l'attribut "privilege".
Édition si l'utilisateur a le droit "edit" :
Il possible de modifier la visibilité suivant le retour d'une méthode du document.
Vous pouvez utiliser les méthodes de la classe doc ou pour un menu spécifique utiliser les méthodes spécifiques de votre classe documentaire.
Si la méthode retourne "true" alors la visibilité est changée.
L'appel de la méthode peut être préfixé par "!" pour indiquer la négation de celle-ci.
Action si le document n'est pas verrouillé :
Action si le document est une recherche temporaire ($this->doctype=="T") and ($this->defdoctype=="S")
Plusieurs controles peuvent être enchainés. Il sont tous exécutés les uns à la suite des autres dans l'ordre du xml.
===== Exemple complet =====
Exemple complet extrait du menu contextuel d'un document par défaut
====== Afficher un menu sur l'interface ======
====== Surcharger la barre de menu sur le document ======
====== Surcharger le menu contextuel sur un document ======
====== Surcharger le menu contextuel sur une sélection de documents ======
====== Surcharger un menu sur le contenu d'une collection ======