Référence — Les hooks de Fast⚡︎CMS
Les plugins étendent Fast⚡︎CMS en se branchant sur des hooks : des points d'extension déclenchés à des moments précis du rendu (front, admin, connexion, formulaires…). Voici la référence des hooks disponibles et leur rôle.
Enregistrer un hook
Dans le fichier principal de votre plugin, enregistrez une fonction de rappel sur un hook via le gestionnaire de plugins :
function registerMonPluginHooks($pm) {
$pm->registerHook('frontend_footer', 'MonPlugin_footer');
}
function MonPlugin_footer() { echo '<!-- mon HTML -->'; }Certains hooks reçoivent un tableau de paramètres modifiable (ex. frontend_parse_content, form_validate) : on lit/écrit dans ce tableau et on le retourne.
Initialisation
| Hook | Rôle |
|---|---|
init | Au chargement des plugins. Point d'entrée pour initialiser le plugin (enregistrer ses hooks, charger sa configuration). |
frontend_init | Tout début du rendu d'une page publique. Permet d'intercepter la requête avant rendu (le marketplace traite ?rm_action= ici) ou de préparer des données. |
Front — rendu public
| Hook | Rôle |
|---|---|
frontend_header | Dans le <head> des pages publiques : injecter CSS, balises meta, préconnexions. |
frontend_main | Zones structurantes du gabarit public (autour du menu et du contenu) pour insérer du HTML. |
frontend_footer | Juste avant </body> côté public : bannières, widgets (ex. consentement cookies). |
frontend_footerJS | Injecter du JavaScript en fin de page publique. |
frontend_parse_content | Filtrer ou enrichir le contenu d'une page avant rendu. Reçoit content, pageId, pageType, parsed — pour gérer des shortcodes ou ajouter son propre contenu. |
Administration
| Hook | Rôle |
|---|---|
admin_header | Dans le <head> de l'administration. |
admin_main | Zones structurantes du gabarit admin. |
admin_footer | Bas de page de l'administration. |
admin_footerJS | Injecter du JavaScript en fin de page d'administration. |
admin_home | Tableau de bord : exécuter du code au chargement du dashboard. |
admin_home_view | Tableau de bord : ajouter des cartes ou widgets à l'affichage. |
admin_plugins_menu | Ajouter une entrée au menu latéral de l'admin (page d'administration d'un plugin). |
admin_page_content | Remplace le champ d'édition du contenu dans le formulaire de page : c'est là que les éditeurs WYSIWYG (Jodit, TinyMCE, EasyMDE…) se branchent. |
admin_page_summary | Idem pour le champ « résumé » d'un article. |
Connexion & mot de passe
| Hook | Rôle |
|---|---|
login_header | En-tête (<head>) de la page de connexion. |
login_main | Gabarit de la page de connexion. |
login_form | Ajouter des éléments au formulaire de connexion. |
login_footerJS | JavaScript en fin de page de connexion. |
login_validate | Valider la soumission de connexion (ex. captcha, protection anti-bruteforce). |
login | Action déclenchée lors d'une connexion réussie. |
forget_password_header | En-tête des pages « mot de passe oublié » et réinitialisation. |
Formulaires & commentaires
| Hook | Rôle |
|---|---|
form_field | Ajouter un champ à un formulaire de contact (ex. champ captcha anti-bot). |
form_validate | Valider la soumission d'un formulaire (anti-spam, captcha). |
comment_form | Ajouter des éléments au formulaire de commentaire. |
comment_validate | Valider ou filtrer un commentaire avant enregistrement (anti-spam). |
Sécurité
| Hook | Rôle |
|---|---|
csp_sources | Enrichir l'allowlist Content-Security-Policy (autoriser des sources externes, ex. scripts d'analyse). |
Astuce
Un même plugin peut s'enregistrer sur plusieurs hooks. Gardez chaque rappel court et sans effet de bord sur le cœur — c'est la clé d'une installation qui reste propre.
Pour le contexte, (re)lisez la partie 4 — Étendre Fast⚡︎CMS avec les plugins.
Commentaires
Aucun commentaire pour le moment. Soyez le premier à réagir !
Commenter