我正在研究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任何人都可以帮我按照链接开始工作吗?
答案 0 :(得分: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"/>
答案 1 :(得分:1)
您需要输入
$this->getChild('testpage')->setData("test", "xyz")
echo $this->getChildHtml('testpage');
然后你可以通过
来调用/访问它 $this->test;
答案 2 :(得分:0)
在CMS页面中使用, 我们可以将变量放入一个块中,如: -
{{block type="yourmodule/testblock" product_id=10 template="module/yourmodule/bestproduct.phtml"}}
订单对象的OR相同: -
{{block type="yourmodule/testblock" order=$order template="module/yourmodule/bestproduct.phtml"}}