0

新しいモジュールで Magento のネイティブ関数を使用する方法に頭を悩ませようとしています。簡単な例として、次のような基本的なシェルがあるとしましょう。

アプリ/コード/ローカル/私/テスト/ブロック/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();?>

しかし、それは空白を返します。誰かがこれについてもっと理解するのを手伝ってもらえますか? 関数を Container.phpにコピーしましたgetCurrentCategoryが、うまくいきませんでした。その機能を使用できるようにするには、layout.xml のブロック タイプを変更する必要がありますか、それともこれを行う適切な方法は何ですか?

4

1 に答える 1

2

この方法でカテゴリを取得できます。

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

そしてこのような製品:

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

使用する前に、それらの値が ではないことを確認してくださいnull

于 2013-10-19T20:01:42.373 に答える