如何在phtml中调用块而不是通过布局?

Chr*_*ris 8 magento

我已禁用wishlist块的布局:

<block type="catalog/product_view" name="product.info.addtoto" as="addtoto" template="catalog/product/view/addto.phtml"/>
Run Code Online (Sandbox Code Playgroud)

我现在想在phtml中调用该块而不是将其添加到另一个布局.

我该如何直接调用它?

Jos*_*tey 31

虽然Prattski是正确的,这是一种糟糕的形式(我正在这样做),有时候开发时,这是一个有价值的调试技术,或者它产生了几个小时的编程差异.本着这种精神,这是做这件事的坏习惯:

<?php print $this->getLayout()
                 ->createBlock("catalog/product_view")
                 ->setTemplate("catalog/product/view/addto.phtml")
                 ->toHtml(); ?>
Run Code Online (Sandbox Code Playgroud)

如果有的话,请谨慎使用.


R T*_*R T 12

 echo  Mage::app()->getLayout()
        ->createBlock('somemodule/someblock')
        ->setSomeVariable($variable)
        ->setTemplate('somemodule/someblock.phtml')
        ->toHtml();
Run Code Online (Sandbox Code Playgroud)

这可以在任何地方用于调用块.setSomeVariable($variable)如果设置可以访问在someblock.phtml通过$this->getSomeVariable();