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
Chargement de la vérification…