2013-09-24 58 views
6

里面我已经根据本教程 http://blog.magikcommerce.com/how-to-show-most-viewed-best-selling-products-in-magento-store如何加载自定义PHP Magento的模块模板文件

我想从我的home.phtml模板文件调用块中创建一个自定义模块。

我打电话给我的静态阻止:

<?php 
$helper = Mage::helper('cms'); 
$source = Mage::getModel('cms/block')->load('my-block'); 
$processor = $helper->getPageTemplateProcessor(); 
$html = $processor->filter($source->getContent()); 
echo $html; 
?> 

它就像一个魅力,当然! ' 但我怎么能加载动态块,在我的情况下,在模板文件内。

我bestseller.phtml文件是:

app/design/frontend/default/default/template/catalog/product/bestseller.phtml 

我的类是:从一个模板文件

Mage_Catalog_Block_Product_Bestseller 

回答

17

加载模块是一个非常糟糕的风格,但它是可能的。

从模板文件

echo $this->getLayout()->createBlock('catalog/product_bestseller')->toHtml(); 

脏方式的清洁方式:
去你的布局XML文件中添加块像任何其它并参考其与

echo $this->getChildHtml('product_bestseller'); 

如果您在cms页面中使用设计下的“Layout Xml Updates”部分,如

<reference name="content"> 
    <block type="catalog/product_bestseller" name="product_bestseller" /> 
</reference> 
+0

完美!这个解决方案就像一个魅力! –

2

这个工作为1.5.1,也可以让你重新定位模板

$block = $this->getLayout() 
     ->createBlock('catalog/product_bestseller','product_bestseller', 
         array('template' => 'pathTo/template.phtml')); 
echo $block->setBlockId('whatever')->toHtml();