Changelog
26.0.9.0
Nouveautés
-
Attribut
#[Hook]: nouvel attribut PHP permettant à un contrôleur (thème enfant, plugin) de surcharger le template et les variables d'un composant ou d'un point d'extension Twig, sans modifier le code source du thème. Voir documentation#[Hook]. -
Fonction Twig
hook(): nouvelle fonction permettant d'insérer des points d'extension dans les templates Twig. Retourne une chaîne vide si aucun contrôleur n'est attaché. Voir documentationhook(). -
Service
twig.hook(Elementum\Services\Twig\Hook) : nouveau service interne qui orchestre le pipeline de hooks Twig. Génère automatiquement un filtre WordPresselm.<hookName>pour chaque composant rendu et chaque appel àhook().register(name, template, args)— enregistre et applique les filtresattach(name, template, callable)— lie un callback à un hook (utilisé par#[Hook])formatName(string)— normalise les noms (/→.)get(name)/exist(name)— introspection
-
component()— support du hook : la fonction Twigcomponent()passe désormais par le serviceHookavant le rendu, ce qui permet de surcharger le template et les variables d'un composant via#[Hook]depuis un thème enfant ou un plugin. -
component()— passage desargsau callback : le callback enregistré sur un composant reçoit désormais les attributs passés àcomponent('name', args)en paramètre. -
Global Twig
post: nouvelle variable globale automatiquement disponible dans les templates singuliers. Injectée viaTwigGlobals::post(), c'est une instance de la façadePost. Disponible uniquement sur les templatessingleetsingular. -
Post::update()/Post::delete(): deux nouvelles méthodes sur la façadePostpour mettre à jour (wp_update_post) ou supprimer (wp_delete_post) le post courant. -
ObjectHelper::toArray(object): array: nouvel utilitaire de conversion d'objet en tableau associatif. -
Nouveaux helpers extraits de
Utils:Elementum\Helpers\WP— méthodes utilitaires WordPress (isCustomizePreview(),getActionsFired()).Elementum\Helpers\Menu— logique de construction de l'arbre de menu (getMenuByLocation(),getMenuTreeByLocation()).Elementum\Helpers\ArrayHelper— utilitaires tableaux/objets (toObject(),flatObject()).Elementum\Helpers\ObjectHelper— utilitaires objets (flatObject(),toArray()).
-
AssetsController::localize()— sécurité : la propriétépath(chemin serveur absolu) est désormais exclue de l'objetwindow.ELEMENTUMinjecté en JavaScript pourmain,themeetchild. -
Boilerplate
colors.yaml: tous les champs sont passés detype: coloràtype: color_contrastavec leurscheck_contrast_colors_idsrespectifs etadd_to_editor: truepour les couleurs de fond. Ajout du champactive: trueau niveau du panneau.
Corrections
-
CLI
new:child— boilerplate incomplet : la commandephp dobby new:childgénérait un thème enfant sanscomposer.json, rendant l'autoload PSR-4 (Elementum\Child\) non fonctionnel. Le boilerplatechildreçoit désormais.gitignore,composer.json,dobby,tsconfig.jsonetvite.config.js. -
Templates— priorité automatique poursingle: le template#[Template('single')]reçoit automatiquement une priorité de100pour laisser la possibilité aux CPT d'utilisersingularsans conflit. -
AppareanceGetters/CustomizeController: tous les appels aux méthodes dépréciées deUtilsremplacés par leurs équivalents dansArrayHelper,ObjectHelperetWP.
Internes
ControllerResolver: ajout du scan et de l'enregistrement de l'attribut#[Hook](registerHook()) dans la boucle de résolution des contrôleurs.- Suppression de
assets/src/Hooks/mountCustomizeField.js, remplacé parmountReactComponent.js.