我试图围绕如何在新模块中使用Magento的本机功能。因此,对于一个简单的例子,我可以说我有一个基本的shell:
应用程序/代码/本地/ ME /测试/块/ Container.php
<?php
class Me_Test_Block_Container extends Mage_Core_Block_Template
{
}
在layout.xml中我插入了类别和产品页面独有的设计块:
<catalog_category_layered>
<reference name="after_body_start">
<block type="test/container" name="test.container" template="test/category_container.phtml"/>
</reference>
</catalog_category_layered>
<catalog_product_view>
<reference name="after_body_start">
<block type="test/container" name="test.container" template="test/product_container.phtml"/>
</reference>
</catalog_product_view>
</catalog_category_layered>
在那些phtml中,我试图使用函数在类别页面上获取当前类别,并在产品页面上获取产品sku。所以对于category_container.phtml中的类别页面,我试图使用函数
<?php $_category = $this->getCurrentCategory();?>
但它返回空白。有人可以帮我理解这个吗?我将getCurrentCategory
函数复制到Container.php中但是没有用。我是否应该更改layout.xml中的块类型才能使用该函数或者执行此操作的正确方法是什么?
答案 0 :(得分:2)
你可以这样得到这个类别:
$_category = Mage::registry('current_category');
和这样的产品:
$_product = Mage::registry('current_product');
在使用之前,请检查它们的值不是null
。