0

我正试图围绕如何在新模块中使用 Magento 的本机功能。因此,对于一个简单的示例,假设我有一个基本的外壳,例如:

app/code/local/Me/Test/Block/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 中的块类型以便能够使用该功能还是正确的方法是什么?

4

1 回答 1

2

您可以通过以下方式获取类别:

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

和这样的产品:

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

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

于 2013-10-19T20:01:42.373 回答