Il est possible dans Freedom d'ajouter de nouveaux menus personnalisés pour chaque famille sur vos documents comme expliqué ici ou là.
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.
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 :
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.
Voici la liste des attributs extraite du fichier « FDL/popupdocdetail.php » :
| headers | Propriétés |
|---|---|
| latest | Révision courante |
| editdoc | Éditer |
| delete | Supprimer |
| restore | Restaurer |
| editstate | |
| lockdoc | Verrouiller |
| unlockdoc | Déverrouiller |
| revise | Réviser |
| editprof | Changer de profil |
| privateprof | Rendre priver |
| publicprof | Rendre public |
| histo | Historique |
| duplicate | Dupliquer |
| access | Accessibilités |
| tobasket | Ajouter au porte-documents |
| chgicon | Changer d'icône |
| addpostit | Ajouter un post-it |
| createforum | Créer forum |
| openforum | Ouvrir forum |
| closeforum | Fermer le forum |
| toxml | |
| relations | Relations du document |
| path | Liste des chemins d'accès |
| reference | Recherche des documents liés |
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 :
Voici quelques exemples !
| idattr | label | type | vis | link | option | |
|---|---|---|---|---|---|---|
| ATTR | histo | Historique du document | menu | W | %S%app=FREEDOM&action=HISTO&id=%I% | lcontrol=yes |
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 | |
|---|---|---|---|---|---|---|
| ATTR | relations | Relations du document | menu | W | %S%app=FREEDOM&action=RNAVIGATE&id=%I% | ::cachemenu() |
Pour cela, il suffit de passer la visibilité de l'attribut de la famille à « H » :
| idattr | label | type | vis | link | phpfunc | |
|---|---|---|---|---|---|---|
| ATTR | relations | Relations du document | menu | H | %S%app=FREEDOM&action=RNAVIGATE&id=%I% | ::cachemenu() |