Personnaliser le menu système des documents

But de ce document

Il est possible dans Freedom d'ajouter de nouveaux menus personnalisés pour chaque famille sur vos documents comme expliqué ici ou .

Mais il n'est pas possible de modifier les menus proposés par défaut (ex : Propriété, Post-it,..)

Cependant il existe une astuce permettant d'y arrivé alors que cela n'était pas prévu au départ par Freedom.

Comme cette astuce n'était pas prévu dans Freedom, il n'est pas garantie qu'elle fonctionnera toujours dans les prochaines versions de Freedom

Comment fonctionne l'affichage du menu

Avant d'expliquer comment modifier ce menu, il peut-être intéressant de comprendre comment ce menu fonctionne.

Pour afficher un document, Freedom utilise l'action “FDL_CARD” :

Le fichier « FDL / Layout / fdl_card.xml » contient :

[ZONE FDL:VIEWCARD]

Le fichier « FDL / Layout / viewcard.xml » contient :

[ZONE FDL:VIEWBARMENU]

Le fichier « FDL / Layout / viewbarmenu.xml contient :

[BLOCK LINKS]
...
[ENDBLOCK LINKS]

Le fichier « FDL / viewbarmenu.php » contient :

include_once("FDL/popupdocdetail.php");

Le fichier « FDL/popupdocdetail.php » contient :

$tlink=array(
        "headers"=>array("descr"=>_("Properties"),
        "url"=>"$surl&app=FDL&action=IMPCARD&zone=FDL:VIEWPROPERTIES:T&id=$docid",
        "confirm"=>"false",
	"control"=>"false",
	"tconfirm"=>"",
	"target"=>"headers",
	"visibility"=>POPUP_CTRLACTIVE,
	"submenu"=>"",
	"barmenu"=>"false"),

Ce fichier alimente donc le tableau “$tlink” contenant l'ensemble des propriétés des menus.

Ce tableau $tlink est alimenté par plusieurs fonctions :

  • getpopupdocdetail : Menus systèmes principaux
  • addCvPopup : Menus du contrôle de vue du document
  • addStatesPopup : Menu du cycle de vie du document
  • addFamilyPopup : Menu spécifiques à la famille
  • changeMenuVisibility : Change la visibilité des menus en fonction de différents critères

Donc ce tableau $tlink contient à la fois les menus du système et les menus spécifiques à la famille et ceux-ci sont ajoutés à la fin.

Donc, si nous ajoutons un menu à la famille portant le même nom que le menu système celui-ci prendra ça place et il sera donc possible de le personnaliser.

Liste des attributs des menus

Voici la liste des attributs extraite du fichier « FDL/popupdocdetail.php » :

headers Propriétés
latestRévision courante
editdocÉditer
deleteSupprimer
restoreRestaurer
editstate
lockdocVerrouiller
unlockdocDéverrouiller
reviseRéviser
editprofChanger de profil
privateprofRendre priver
publicprofRendre public
histoHistorique
duplicateDupliquer
accessAccessibilités
tobasketAjouter au porte-documents
chgiconChanger d'icône
addpostitAjouter un post-it
createforumCréer forum
openforumOuvrir forum
closeforumFermer le forum
toxml
relationsRelations du document
pathListe des chemins d'accès
referenceRecherche des documents liés

Exemples de modifications de menus

D'une manière générale, il est possible de personnaliser les menus du système de la même façon que les menus associés à la famille. Il est possible de :

  • les renommer
  • les déplacer dans un sous-menu ou dans le menu “Autres”
  • les supprimer
  • modifier le lien
  • les afficher s'ils respectent une contrainte calculé

Voici quelques exemples !

Placer le menu « Historique » sous le menu « Autres » ou accessible en appuyant sur la touche CTRL :

idattr label type vis link option
ATTRhistoHistorique du documentmenuW%S%app=FREEDOM&action=HISTO&id=%I%lcontrol=yes

Cacher le menu « Relations du document »

Pour cela, il faut ajouter dans le fichier Méthode associé à la famille la fonction « cachemenu » :

public function cachemenu() {
	return MENU_INVISIBLE;
}

Pour afficher ce menu en fonction de différents critères (ex : groupe de l'utilisateur), il est possible d'adapter la fonction précédente

idattr label type vis link phpfunc
ATTRrelationsRelations du documentmenuW%S%app=FREEDOM&action=RNAVIGATE&id=%I%::cachemenu()

Remettre la configuration du menu par défaut

Pour cela, il suffit de passer la visibilité de l'attribut de la famille à « H » :

idattr label type vis link phpfunc
ATTRrelationsRelations du documentmenuH%S%app=FREEDOM&action=RNAVIGATE&id=%I%::cachemenu()
contribution/cookbook/menu_doc_perso.txt · Dernière modification: 09/03/2010 11:56 (édition externe)