
Introduction
Les plugins permettent d'étendre les fonctionnalités de Flatboard de manière modulaire. Cette documentation vous guidera à travers le processus de création, d'activation et d'utilisation des plugins.
Structure d'un plugin
Chaque plugin doit être organisé selon la structure suivante :
plugins/
└── MonPlugin/
├── plugin.php # Fichier principal contenant le code du plugin
├── datas.json # Métadonnées et configuration du plugin
└── lang/ # Dossier de traductions
├── en.json
└── fr.json
Le fichier plugin.php
Ce fichier contient le code principal du plugin, y compris l'enregistrement des hooks :
Le fichier datas.json
Ce fichier contient les métadonnées du plugin et ses paramètres :
Système de hooks
Les hooks sont des points d'entrée qui permettent aux plugins d'injecter du code à des moments spécifiques de l'exécution.
Hooks disponibles :
Hooks système
init : Exécuté au démarrage de l'application
Hooks d'interface d'administration
admin_header : En-tête de l'interface d'administration
admin_footer : Pied de page de l'interface d'administration
admin_sidebar : Barre latérale d'administration
admin_plugins_menu : Menu des plugins dans l'administration
admin_dashboard : Tableau de bord d'administration
Hooks frontend
frontend_header : En-tête du site public
frontend_footer : Pied de page du site public
frontend_content : Contenu principal du site
frontend_sidebar : Barre latérale du site public
Hooks de contenu
content_before : Avant l'affichage du contenu
content_after : Après l'affichage du contenu
content_parse : Pendant le parsing du contenu
Hooks d'utilisateur
user_login : Au moment de la connexion d'un utilisateur
user_logout : Au moment de la déconnexion d'un utilisateur
Enregistrement des hooks
Pour enregistrer un hook, utilisez la méthode registerHook :
$pluginManager->registerHook('nom_du_hook', 'nom_de_la_fonction_callback');
La fonction de callback doit accepter au moins le paramètre $pluginManager :
function nom_de_la_fonction_callback(PluginManager $pluginManager, $additionalParam = null) {
// Votre code ici...
}
API du PluginManager
Méthodes principales
Gestion des pluginsisPluginActive($pluginName)
: Vérifie si un plugin est actifactivatePlugin($pluginName)
: Active un plugindeactivatePlugin($pluginName)
: Désactive un plugingetPlugins($activeOnly = false)
: Récupère la liste des plugins
Données des pluginsgetPlugin($pluginName)
: Récupère les informations d'un plugingetPluginData($pluginName)
: Récupère les données d'un pluginsavePluginData($pluginName, $data)
: Sauvegarde les données d'un plugingetPluginUrl($pluginName)
: Récupère l'URL d'un plugin
InternationalisationloadLanguage($pluginDir, $language = 'en')
: Charge les fichiers de langue d'un plugin
ConfigurationgetConfig()
: Récupère la configuration du système
Bonnes pratiques
2. Vérifiez toujours si le plugin est actif avant d'exécuter du code dans vos hooks
3. Utilisez des préfixes uniques pour vos fonctions pour éviter les conflits
4. Validez et échappez les entrées utilisateur pour éviter les failles de sécurité
5. Utilisez le système de langues pour rendre votre plugin internationalisable
6. Documentez votre code pour faciliter sa maintenance
7. Respectez les conventions de nommage pour une meilleure intégration
Dépannage
Le plugin n'apparaît pas dans la liste des plugins
- Vérifiez que la structure de dossiers est correcte
- Vérifiez que datas.json et plugin.php existent
- Vérifiez que datas.json est un JSON valide
Les hooks ne fonctionnent pas
- Vérifiez que la fonction d'enregistrement des hooks est correctement nommée (register{PluginName}Hooks)
- Vérifiez que vous avez bien enregistré vos hooks
- Vérifiez que les fonctions de callback existent et sont accessibles
Les modifications de configuration ne sont pas sauvegardées
- Vérifiez les permissions d'écriture sur le fichier datas.json
- Vérifiez que vous utilisez correctement la méthode savePluginData
Edited on 08 May 2025 14:14 by Fred.
J'ai la tête dans le... code 😜☠️
- documentation
-