在新模块中扩展Magento的功能

时间:2013-10-19 18:07:36

标签: php magento

我试图围绕如何在新模块中使用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中的块类型才能使用该函数或者执行此操作的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

你可以这样得到这个类别:

$_category = Mage::registry('current_category');

和这样的产品:

$_product = Mage::registry('current_product');

在使用之前,请检查它们的值不是null