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 :
Image

Le fichier datas.json
Ce fichier contient les métadonnées du plugin et ses paramètres :
Image

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 plugins
isPluginActive($pluginName) : Vérifie si un plugin est actif
activatePlugin($pluginName) : Active un plugin
deactivatePlugin($pluginName) : Désactive un plugin
getPlugins($activeOnly = false) : Récupère la liste des plugins

Données des plugins
getPlugin($pluginName) : Récupère les informations d'un plugin
getPluginData($pluginName) : Récupère les données d'un plugin
savePluginData($pluginName, $data) : Sauvegarde les données d'un plugin
getPluginUrl($pluginName) : Récupère l'URL d'un plugin

Internationalisation
loadLanguage($pluginDir, $language = 'en') : Charge les fichiers de langue d'un plugin

Configuration
getConfig() : 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.