Pluxopolis

Tout savoir pour devenir un pro de PluXml, mais pas seulement...

Personnaliser le menu d'administration d'un plugin

Rédigé par Stéphane 2 commentaires

Lorsqu'un fichier admin.php est présent dans le dossier d'un plugin, un menu dans la sidebar d'administration est automatiquement ajouté, à condition que les droits d'accès à ce menu aient été définis pour le profil de l'utilisateur connecté. Ce menu permet de visualiser le contenu de la page admin.php

Par défaut le menu porte le nom du plugin et est positionné à la fin de la liste des tous les menus de la sidebar.

Nous allons voir comment changer son nom et comment le positionner dans la liste des menus.

Rappelons tout d'abord comment autoriser l'accès au fichier admin.php

Définir les droits d'accès au fichier admin.php

Même si le fichier admin.php est présent dans le dossier de notre plugin et que les droits pour y accéder n'ont pas été définis, PluXml fait un contrôle et interdit de visualiser le contenu de admin.php

Lorsqu'un utilisateur se connecte à l'administration de PluXml, il possède un profil qui lui a été définit par l'administrateur du site. Ces droits sont identifiés dans le code de PluXml par des constantes:

  • PROFIL_ADMIN
  • PROFIL_MANAGER
  • PROFIL_MODERATOR
  • PROFIL_EDITOR
  • PROFIL_WRITER
Chaque profil permet des actions différents dans l'administration
  Articles Catégories Commentaires Pages Statiques Paramètres
Administrateur X X X X X
Manager X X X X  
Modérateur X X X    
Editeur X X      
Rédacteur X        

Pour limiter donc l'accès au fichier admin.php en fonction du profil de l'utilisateur, il faut dans le code de notre plugin utiliser la fonction setAdminProfil et spécifiant comme paramèters le ou les profils autorisés.

Exemple: pour n'autoriser que le profil PROFIL_ADMIN

$this->setAdminProfil(PROFIL_ADMIN);

Exemple: pour n'autoriser que les profils PROFIL_ADMIN et PROFIL_MANAGER


$this->setAdminProfil(PROFIL_ADMIN, PROFIL_MANAGER);

Nous voyons donc qu'il faut spécifier les profils que l'on veut autoriser en les séparant par une virgule.

La fonction setAdminProfil est à utiliser dans le constructeur du plugin.

class plxMonPlugin extends plxPlugin {
 
  public function __construct($default_lang) {
    # appel du constructeur de la classe plxPlugin (obligatoire)
    parent::__construct($default_lang);
    # droits pour accèder à la page admin.php du plugin
    $this->setAdminProfil(PROFIL_ADMIN);
  }
 
}

Changer le titre et positionner le menu dans la sidebar

Une seule fonction permet à la fois de changer le titre et de positionner le menu pour accèder au fichier admin.php
Cette fonction s'appelle: setAdminMenu et possède 3 paramètres:

paramètre 1    titre du menu
paramètre 2    position du menu dans la sidebar
paramètre 3    légende du menu (balise title du lien)

On peut donc l'appeler de cette façon

$this->setAdminMenu('Mon plugin', 2, 'Accès administration de mon plugin');
Cette instruction est à utiliser dans le constructeur de notre plugin

class plxMonPlugin extends plxPlugin {
 
  public function __construct($default_lang) {
    # appel du constructeur de la classe plxPlugin (obligatoire)
    parent::__construct($default_lang);
    # droits pour accèder à la page admin.php du plugin
    $this->setAdminProfil(PROFIL_ADMIN);
    # définition des propriétés du menu pour accèder à la page admin.php du plugin
    $this->setAdminMenu('Mon plugin', 2, 'Accès administration de mon plugin');
  }
 
}

Le résultat en image:

2 commentaires

#1  - jerrywham a dit :

Merci Stéphane pour cette astuce de laquelle j'étais passé à côté et pour ce site qui va vite devenir ma bible.

Répondre
#2  - Francis a dit :

Très intéressant et bien expliqué, merci Stéphane !

Répondre

Fil RSS des commentaires de cet article

Écrire un commentaire

Quelle est la quatrième lettre du mot zqdoo ?
Top