如何在模板文件中加载自定义PHP Magento块

Gil*_*ino 6 templates block magento custom-component

我已根据本教程创建了一个自定义块 http://blog.magikcommerce.com/how-to-show-most-viewed-best-selling-products-in-magento-store

我想从我的home.phtml模板文件中调用Block.

我打电话给我的静态块:

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

当然,它就像一个魅力!'但是我如何在模板文件中加载动态块.

我的bestseller.phtml文件是:

app/design/frontend/default/default/template/catalog/product/bestseller.phtml
Run Code Online (Sandbox Code Playgroud)

我的班级是:

Mage_Catalog_Block_Product_Bestseller 
Run Code Online (Sandbox Code Playgroud)

小智 17

从模板文件加载块是一种非常糟糕的样式,但它是可能的.

从模板文件的脏方式

echo $this->getLayout()->createBlock('catalog/product_bestseller')->toHtml();
Run Code Online (Sandbox Code Playgroud)

干净的方式:
转到你的布局xml文件添加块像任何其他,并参考它

echo $this->getChildHtml('product_bestseller');
Run Code Online (Sandbox Code Playgroud)

如果您在cms页面中,请使用Design之类的"Layout Xml Updates"部分

<reference name="content">
    <block type="catalog/product_bestseller" name="product_bestseller" />
</reference>
Run Code Online (Sandbox Code Playgroud)