Définir des boutons et entrées dans les menus

Pour ajouter des boutons dans l’espace privé il suffit de renseigner une entrée menu dans le fichier paquet.xml.

Par exemple, le plugin ’statistiques’ implémente 1 entrée de menu :

  1. <menu nom="statistiques_visites" icone="images/statistiques-48.png" titre="icone_statistiques_visites" />

Description :

  • nom reçoit l’identifiant unique du bouton, qui sert entre autre aux sous-menus à indiquer le nom de leur bouton parent. C’est le nom du fichier exec qui sert à afficher la page,
  • icone : optionnel, indique le chemin de l’icone,
  • titre : texte du bouton, qui peut-être une chaîne de langue « plugin:chaine »,

Autorisations

Les boutons sont affichés par défaut pour toutes les personnes connectées à l’interface privée. Pour modifier cette configuration, il faut créer des autorisations spécifiques pour les boutons (et donc utiliser le pipeline d’autorisation pour charger les autorisations nouvelles du plugin).

Les fonctions d’autorisation ont un nom défini précisément
- comme toutes les autorisations, le préfixe est autoriser_
- le radical est l’identifiant du bouton dont les underscores ont été supprimés.
- le suffixe est _menu_dist

Par exemple, pour les 2 boutons du plugin statistiques, les fonctions d’autorisation sont :

function autoriser_statistiques_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
    return autoriser('voirstats', $type, $id, $qui, $opt);
}

Les pages de la partie privée de SPIP peuvent également proposer une barre d’onglet. Voir Définir des onglets

Exemple

Dans le menu Édition, une entrée Auteurs amène à la page de présentation des auteurs, à partir de laquelle, il est possible de choisir d’afficher les visiteurs. On peut ajouter à ce même menu une entrée qui accède directement à la page des visiteurs en ajoutant la ligne suivante au paquet.xml de votre plugin :

  1. <menu nom="visiteurs" titre="Visiteurs" parent="menu_edition" icone="images/auteur-16.png" />

Auteur Matthieu Marcillaud Publié le : Mis à jour : 03/04/19

Traductions : English, français