So laden Sie alle untergeordneten Blöcke in die Steuerung

7

Ich verwende Ajax zum Hinzufügen zum Warenkorb, daher muss die Seitenleiste des Warenkorbs aktualisiert werden.

Ich habe versucht, diesen Code in Controller, um den Block zu rendern.

Mage::app()->getLayout()->getBlockSingleton('page/html')->setTemplate("page/html/upper.phtml")->toHtml();

Der übergeordnete Block wird jedoch nicht und die untergeordneten Blöcke nicht gerendert.

Und Layoutdatei ist

   <block type="core/text_list" name="upper" as="upper" template="page/html/upper.phtml">
       <block type="checkout/cart" name="top.cart" as="cart_overview">
            <action method="setCartTemplate"><value>checkout/topcart.phtml</value></action>
            <action method="setEmptyTemplate"><value>checkout/cart/cartEmpty.phtml</value></action>
            <action method="chooseTemplate"/>
            <action method="addItemRender"><type>simple</type><block>checkout/cart_item_renderer</block><template>checkout/cart/sidebar/default.phtml</template></action>
            <action method="addItemRender"><type>grouped</type><block>checkout/cart_item_renderer_grouped</block><template>checkout/cart/sidebar/default.phtml</template></action>
            <action method="addItemRender"><type>configurable</type><block>checkout/cart_item_renderer_configurable</block><template>checkout/cart/sidebar/default.phtml</template></action>
       </block>
   </block>

Wie kann ich einen untergeordneten Block im Controller rendern?

Assistiere mir.

VijayS91
quelle

Antworten:

9

Bitte versuchen Sie diesen Code: -

$layout         = Mage::app()->getLayout();
 $block_header   = $layout->createBlock('block/block')->setTemplate('template_url');

 $block_links1  = $layout->createBlock('block/block','block_name')->setTemplate('template_url');
 $block_header->setChild('block_as',$block_links1);

 $block_links2  = $layout->createBlock('block/block','block_name')->setTemplate('template_url');
 $block_header->setChild('block_as',$block_links2);

 $block_links    = $layout->createBlock('block/block','block_name')->setTemplate('template_url');
 $block_header->setChild('block_as',$block_links);

 $block_links->addItemRender('configurable','checkout/cart_item_renderer_configurable','checkout/cart/sidebar/default.phtml');
 $slide = $block_header->toHtml();
Surya
quelle
'block_as' muss eine Zeichenfolge sein, die Sie für die Vorlage <? = $ this-> getChildHtml ('tops1')?> getChildHtml senden.
Cherven
2

Ich habe den folgenden Code ausprobiert:

$layout         = Mage::app()->getLayout();
$block_header   = $layout->createBlock('page/html')->setTemplate('page/html/upper.phtml');
$block_links1   = $layout->createBlock('grana_checkout/sidebar','grana_checkout_topbar')->setTemplate('grana/checkout/topbar.phtml');
$block_header->setChild('grana_topbar',$block_links1);
$block_links2   = $layout->createBlock('box/box','active.grana.box')->setTemplate('grana/box.phtml');
$block_header->setChild('grana_box',$block_links2);
$block_links    = $layout->createBlock('checkout/cart','top.cart')->setTemplate('checkout/topcart.phtml');
$block_header->setChild('cart_overview',$block_links);
$block_links->addItemRender('configurable','checkout/cart_item_renderer_configurable','checkout/cart/sidebar/default.phtml');
$slide = $block_header->toHtml();
VijayS91
quelle
Hat das Ihr Problem behoben? Wenn ja, geben Sie bitte an, dass dies die Lösung ist.
Raphael bei Digital Pianism