Je possède un module de produits en vedette que j'ai écrit et qui place un bloc personnalisé sur la page avec une liste de produits correspondant aux attributs que j'ai définis dans le bloc. À l'origine, j'avais réussi en ajoutant une ligne {{block...}}
à la section Contenu de la page CMS. Cela fonctionnait bien, mais je n'avais pas la barre de pagination. J'ai donc corrigé cela en retirant la ligne {{block...}}
de la section Contenu et en ajoutant du XML à la section Mise à jour XML de la présentation comme suit :
product_list_toolbar
my_attribute
Cela fonctionnait également très bien. J'ai ensuite décidé, étant donné qu'il y a tant d'instances de ce bloc, qu'il serait beaucoup plus propre d'ajouter un fichier XML au dossier de présentation de mon thème et d'y placer ce code. Ensuite, dans la section Mise à jour de la présentation, je pouvais simplement avoir ceci à la place :
other_attribute
J'ai donc créé un fichier appelé vps_featured.xml
et j'y ai ajouté ceci :
product_list_toolbar
Ce fichier XML de mise à jour de la présentation a été référencé dans le fichier config.xml
de mon module en vedette personnalisé. J'ai naïvement supposé que vps_featured.xml
serait incorporé dans la mise en page de la page uniquement lorsque mon bloc de produit en vedette VPS était sur la page, ce qui ne se produirait que dans ces quelques cas sur des pages CMS spéciales. Apparemment, ce n'est pas le cas. Cela a cassé toutes les autres pages, je suppose parce que cela viole le gestionnaire par défaut.
Cela m'amène à la question n°1 : Quand les fichiers XML de mise en page sont-ils inclus dans la mise en page de la page ? Sont-ils utilisés pour TOUTES les pages, peu importe si le module qui les référence est utilisé ou non ?
J'ai alors décidé d'essayer d'ajouter un nouveau gestionnaire de mise en page que je pourrais référencer lorsque je le souhaite dans mes pages CMS. J'ai modifié mon fichier XML de présentation pour que la partie principale soit dans les balises plutôt que dans les balises . Cela a ramené les autres pages à la vie, mais bien sûr, mes pages CMS ne fonctionnaient plus car ce gestionnaire de mise à jour de la présentation n'est pas utilisé sur ces pages. J'ai essayé d'ajouter à la section Mise à jour XML de la page CMS, mais cela n'a pas fonctionné (je ne m'y attendais pas).
Cela m'amène à la question n°2 : Quelle est la bonne façon d'y parvenir ?
Cela ne devrait pas être aussi difficile, mais clairement j'ai raté quelque chose. J'ai lu tout ce que je pouvais trouver sur les présentations, mais ce sont toujours des exemples simples, comme "ajouter ceci à TOUTES les pages de produit". Je ne veux pas ajouter quelque chose à TOUTES les pages CMS... seulement à quelques-unes d'entre elles. Suis-je obligé d'utiliser la section Mise à jour XML de la présentation pour les pages CMS en question ? J'ai l'impression qu'il doit y avoir une manière plus propre de le faire.
Merci,
Brian