1

我正在使用 Magento CE 1.6.2 并希望显示来自特定类别的“新”产品。为此,我创建了一个像这样的静态块并传递了我想要的类别。

 {{block type="catalog/product_new" category_id="20" template="catalog/product/new.phtml"}} 

但是类别 ID 需要从我的 .phtml 文件之一中的代码动态传递。有没有办法创建一个我可以在这个静态块中使用的变量。就像我的 .phtml 代码是:

 $_categoryId = $this->getCurrentCategory()->getId(); //Store my category id

可以做一些事情,以便我可以像这样将此变量传递给我的静态块,

 {{block type="catalog/product_new" category_id="var $_categoryId" template="catalog/product/new.phtml"}} //Which is nothing but 20 so that it displays new products from only category 20

请帮忙 !

编辑:我找到了一个类似的链接。我追随它,但没有成功。 http://magentophp.blogspot.co.uk/2011/08/passing-paramters-to-magento-cms-static.html

任何人都可以帮助我点击链接并使其正常工作吗?

4

3 回答 3

2

它可能不完全符合您的要求,但可能会为您指明正确的方向:

在 phtml 文件中,您可以这样做:

$category = "23";
$this->getChild('home.catalog.product.new')->setData('category_id', $category);

echo $this->getChildHtml('home.catalog.product.new', false);

注意最后一个'false'是告诉它不要缓存块。

您还需要将它包含在您的布局文件中,如下所示:

<block type="catalog/product_new" name="home.catalog.product.new" alias="product_new" template="catalog/product/new.phtml"/>
于 2012-05-09T15:54:28.070 回答
1

你需要把

     $this->getChild('testpage')->setData("test", "xyz")
     echo $this->getChildHtml('testpage');

然后您可以通过以下方式调用/访问它

    $this->test; 
于 2012-11-05T06:57:13.733 回答
0

在 CMS 页面中使用,我们可以将变量放入如下块中:-

{{block type="yourmodule/testblock" product_id=10 template="module/yourmodule/bestproduct.phtml"}}

或订单对象相同:-

{{block type="yourmodule/testblock" order=$order template="module/yourmodule/bestproduct.phtml"}}
于 2017-06-01T09:58:51.747 回答