Personnaliser le menu d'administration d'un plugin
Rédigé par jack le 2 commentairese
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
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.phpCette 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:
DClassé dans : PluXml ,Mots clés : PluXml, Tuto
A propos de l'auteur, jack:
Webmestre de PluXopolis de 2018 à Avril 2023.
2 commentaires
Francis a dit : #2
Très intéressant et bien expliqué, merci Stéphane !
rFil RSS des commentaires de cet article
Les commentaires sont fermés.
jerrywham a dit : #1