Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Appeler un bloc statique depuis un .phtml
 
ndrouard
Jr. Member
 
Total Posts:  12
Joined:  2008-08-27
 

Bonjour smile

Je suis en plein apprentissage de Magento, avec une boutique à développer pour une cliente.
J’en suis encore au stade du templating.

Je dois mettre un petit encart de texte (genre annonce promotionnelle...) à droite, qu’il serait mieux de pouvoir gérer depuis l’admin, au cas où elle veuille modifier son texte. J’ai donc procédé ainsi :

- dans layout/page.xml, rubrique <default>, j’ai mis :

<reference name="right">
    <
block type="core/template" name="promo" after="topSearch" template="callouts/promo.phtml" />
</
reference>

- puis j’ai créé le fichier template/callouts/promo.phtml avec

<div class="promo"><?php echo $this->getChildHtml('annonce'); ?></div>

- et j’ai créé dans l’admin un bloc statique ayant pour titre et identifiant ‘annonce’, associé à toutes les vues magasin (après l’avoir associé à ma vue dédiée, juste au cas où...), et activé.

Résultat : mon <div class="promo"> apparait bien dans ma page, mais vide. Impossible d’appeler le bloc statique de l’admin.
Juste au cas où, j’ai tenté faire, dans mon layout/page.xml :

<reference name="right">
    <
block type="core/template" name="promo" after="topSearch" template="callouts/promo.phtml" >
        <
action method="setBlockId"><block_id>annonce</block_id></action>
    </
block>
</
reference>
Mais ça ne change rien :(

Y’a une astuce pour faire cet appel, ou bien j’ai tout faux dans ma méthode ?

Merci smile

 
Magento Community Magento Community
Magento Community
Magento Community
 
SeL_
Magento Team
 
Avatar
Total Posts:  1140
Joined:  2007-10-10
Paris, France
 

Bonjour,

Le fait d’appeler la méthode getChildHtml(’annonce’) indique que Magento doit récupérer le contenu HTML d’un bloc enfant nommé “annonce”.
Or, dans ton cas, il n’y a pas de bloc enfant nommé “annonce”. Et il faut que ton bloc soit de type cms/block.

Pour cela, il faut modifier ton code comme ceci :

<reference name="right">
    <
block type="core/template" name="promo" after="topSearch" template="callouts/promo.phtml" >
        <
block type="cms/block" name="annonce">
            <
action method="setBlockId"><block_id>annonce</block_id></action>
        </
bloc>
    </
bloc>
</
reference>
 
Magento Community Magento Community
Magento Community
Magento Community
 
ndrouard
Jr. Member
 
Total Posts:  12
Joined:  2008-08-27
 

Cool, exactement ce qu’il me fallait
Merci smile

Petit à petit, je vais bien finir par la maitriser cette grammaire XML rasberry

 
Magento Community Magento Community
Magento Community
Magento Community
 
Jafangie
Jr. Member
 
Total Posts:  4
Joined:  2009-04-28
 

Salut,
Je me suis arraché les cheveux avec ce bout de code qui devrait marcher pourtant! oh oh
Faire un coller copier, n’est pas très bien… la preuve ce code ne peut pas marcher, il manque les 2 k au </block> de fermeture!
@+
Jafangie

 
Magento Community Magento Community
Magento Community
Magento Community
 
Gabriiiel
Guru
 
Avatar
Total Posts:  563
Joined:  2008-04-29
France - Paris
 

Absolument,

Voici le code corrigé pour les suivants :

<reference name="right">
    <
block type="core/template" name="promo" after="topSearch" template="callouts/promo.phtml" >
        <
block type="cms/block" name="annonce">
            <
action method="setBlockId"><block_id>annonce</block_id></action>
        </
block>
    </
block>
</
reference>
 
Magento Community Magento Community
Magento Community
Magento Community
 
itacshi
Jr. Member
 
Total Posts:  1
Joined:  2012-02-22
 

salam ana jdid m3akom

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top