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

HookRôle
initAu chargement des plugins. Point d'entrée pour initialiser le plugin (enregistrer ses hooks, charger sa configuration).
frontend_initTout 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

HookRôle
frontend_headerDans le <head> des pages publiques : injecter CSS, balises meta, préconnexions.
frontend_mainZones structurantes du gabarit public (autour du menu et du contenu) pour insérer du HTML.
frontend_footerJuste avant </body> côté public : bannières, widgets (ex. consentement cookies).
frontend_footerJSInjecter du JavaScript en fin de page publique.
frontend_parse_contentFiltrer 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

HookRôle
admin_headerDans le <head> de l'administration.
admin_mainZones structurantes du gabarit admin.
admin_footerBas de page de l'administration.
admin_footerJSInjecter du JavaScript en fin de page d'administration.
admin_homeTableau de bord : exécuter du code au chargement du dashboard.
admin_home_viewTableau de bord : ajouter des cartes ou widgets à l'affichage.
admin_plugins_menuAjouter une entrée au menu latéral de l'admin (page d'administration d'un plugin).
admin_page_contentRemplace 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_summaryIdem pour le champ « résumé » d'un article.

Connexion & mot de passe

HookRôle
login_headerEn-tête (<head>) de la page de connexion.
login_mainGabarit de la page de connexion.
login_formAjouter des éléments au formulaire de connexion.
login_footerJSJavaScript en fin de page de connexion.
login_validateValider la soumission de connexion (ex. captcha, protection anti-bruteforce).
loginAction déclenchée lors d'une connexion réussie.
forget_password_headerEn-tête des pages « mot de passe oublié » et réinitialisation.

Formulaires & commentaires

HookRôle
form_fieldAjouter un champ à un formulaire de contact (ex. champ captcha anti-bot).
form_validateValider la soumission d'un formulaire (anti-spam, captcha).
comment_formAjouter des éléments au formulaire de commentaire.
comment_validateValider ou filtrer un commentaire avant enregistrement (anti-spam).

Sécurité

HookRôle
csp_sourcesEnrichir 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…