Magento ajouter un nouveau block
janvier 26, 2011 22 CommentairesIl est parfois judicieux de rajouter un bloc dans la structure de page magento. Les pages de structures (Les page 2columns-left; right….. ) présente dans magento ne permettent pas de faire tous les agencements que l’ont veut. Nous avons vu dans un précédent tutoriel comment ajouter un nouveau template d’agencement. Nous allons voir dans ce tutoriel comment ajouter un nouveau bloc au template de structure déjà existant.
Ajouter un nouveau bloc structurel dans magento
Rajouter la référence du bloc dans page
Dans le layout page.xml de votre thème magento sont déclarés les blocs qui vont structurer les pages. Il faut en rajouter un, dans l’exemple il se nommera « maref »
app/design/frontend/{votre interface}/{votre thème}/layout/page.xml
<block type="core/text_list" name="maref" as="maref"/>
Appeler le nouveau bloc dans les pages de structures
Dans le gabarit en question (ici 2colums-left.phtml), ajouter l’appel du bloc. Dans notre exemple len bloc apparaitra en haut des pages de catégorie. Donc on place le l’appel du nouveau bloc au dessus de la div col-main
... <div class="main"> <div class="befermain"><?php echo $this->getChildHtml('maref') ?></div> <div class="col-main"> <?php echo $this->getChildHtml('global_messages') ?> <?php echo $this->getChildHtml('content') ?> </div> <div class="col-left sidebar"><?php echo $this->getChildHtml('left') ?></div> </div> ...
Rajouter la référence dans le layout
Dans le layout ou on veut qu’il apparaisse (ou dans xml agencement du Back-office de magento). Dans notre exemple l’appel se fera dans catalog.xml.Ce qui ajoutera un bloc en haut des catégories.
Dans le noeud xml
<catalog_category_default translate="label">....
Ajoutez
<reference name="maref"> <block type="catalog/category_view" name="liste" template="bloggento/monfichier.phtml" /> </reference>
Voici le résultat sur un site développez par bloggento. Dans une catégorie on peut voir le bloc au dessus des 2 colonnes de structure. Bloc qui contient une petite image plus un texte sur toute la longueur de la page.
Liens Complémentaires
- Magento ajouter un template agencement
- Importer un template (Phtml) et bloc statique
- Importer un template (phtml) via back-office
- Magento et les templates PHTML
Bonjour,
Malgré toutes mes vérifications, le contenu du bloc ne s’affiche pas.
En activant le chemin des gabarits, je constate que le phtml n’est pas appelé, meme en essayant de le mettre dans différents types de pages…
Je n’arrive pas à comprendre, une idée svp ?
Bonjour,
Quel code tu as ajouté ?
Par exemple pour faire remonter les nouveaux produits dans une page de catégorie :
Dans mon template :
getChildHtml(‘producttabs’) ?>
Dans catalog.xml, dans le noeud catalog_category_default :
Dans page.xml, dans :
Entoure ton code de
Je pensais l’avoir mise..
Mail moi le code.
C’est ça ?
yes
Magento V 1.4.2.0
Au final j’aimerai arriver à afficher n’importe quel contenu dans un premier temps, mais le lien ne se fait pas.
Le getchild n’appel rien .
Ici j’ai choisi les produits les plus vus, mais c’est uniquement pour tester.
(le before n’est pas le bon)
Déjà pour afficher n’importe quel type de fichier appel un template de base ‘core/template donc
Ajoute un dossier « dossiertest » dans ton thème qui contient un fichier test.phtml
dans ce fichier tu mets texte.
Rien, cela ne change rien, rien ne s’affiche
getchild ne renvoie jamais rien
ajoute le même code que moi
tu peut garder tes noms mais supprime le translate et le
Ou as tu mis ce code dans page.xml ? A quel niveau ?
Dans la balise defaut, dans le block root, juste avant le block footer
Pour info, je précise que dans mon cas, je souhaite ajouter le bloc entre le bloc content et le bloc footer.
Plus précisément sous les 2 ou 3 colonnes de mes templates.
il manquait un simple « echo » de getChild() ….
Merci pour votre aide.
salut lulu,
En fin de semaine les echo sont difficiles a voir
Bon après avoir tester plusieurs fois, je n’y arrive toujours pas.
J’ai suivi ton tutoriel en prenant exactement ton code, j’ai juste modifier le nom du fichier par test.phtm qui contient juste le mot test
et rien n’y fait, rien ne s’affiche, et en activant le chemin des gabarits, je constate que le phtml n’est pas appelé.
la seul différence c’est que je souhaite placer mon block juste après la div main(quand je la place au même endroit que toi , je n’ai pas de résultat non plus.
je n’ai pas oublié de mettre mon echo.
une idée?
Bonjour,
Non pas d’idée ça devrait fonctionner, tu es sur que tu travaille bien dans le bon thème dans le bon template ? essaye de faire le tuto avec exactement les même code que moi, ( copier coller). Quand ton nouveau block sera appelé tu pourra essayer de le changer de place.
Bonjour ,
J’ai bien appliqué cette méthode , mais
le bloc ne s’affiche pas sur la HomePage , seulement sur les catégories contenants moins de 3 produits . Or j’ai bien modifier tous les gabarits .
Je débute avec Magento , alors S.V.P aidez moi .
Pour la page d’accueil il faut l’afficher dans le xml du back office.
…
Bonjour,
j’ai essayé pour mettre le titre et description des catégorie produit dans un block à part. Sa marche lorsque je suis sur la page catégorie, mais dès que je vais vais sur une autre page toute la page est en erreur !