カテゴリから製品の位置を取得


7

Inchooのブログに従って、製品ビューページに[前へ] / [次へ]ボタンを実装しています。デフォルトのMagentoテーマで問題なく機能しますが、私のテーマでは、カテゴリーからの製品の位置の取得に問題があります。

製品のview.phtmlにコードを追加しました

<?php $_prev = $this->helper('retailon_productprevnext')->getPreviousProduct(); ?>
<?php $_next = $this->helper('retailon_productprevnext')->getNextProduct(); ?>
<?php if($_prev): ?><a class="product-prev" href="<?php echo $_prev;?>"><?php echo $this->__('< Previous')?></a><?php endif; ?>
<?php if($_next): ?><a class="product-next" href="<?php echo $_next;?>"><?php echo $this->__('Next >')?></a><?php endif; ?>

私のヘルパーの以前の製品のコードは次のとおりです:

     public function getPreviousProduct()
        {
            $prodId = Mage::registry('current_product')->getId();

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

            if($catArray){
var_dump($catArray); 
                $catArray = $catArray->getProductsPosition();

var_dump($catArray); 
/// Remaining code to return previous product

最初のダンプはカテゴリ配列情報を返しますが、2番目のダンプは値をダンプしていません。

を使用する代わりに、カテゴリ配列から製品の位置を取得できる他の方法はあります $catArray = $catArray->getProductsPosition();か?

回答:


1

最初のダンプが配列を返す場合、2番目のダンプが実際に実行されると私は驚きます。

$catArray = $catArray->getProductsPosition();

...非オブジェクトで関数を呼び出しているため、致命的なエラーが発生する必要があります。私の推測では、製品の位置データがcurrent-category-registryにロードされていません。だから私が試してみたいのは:

$category = Mage::getModel('catalog/category')->load($catArray['entity_id']);
$positions = $category->getProductsPosition();
Zend_Debug::dump($positions);

var_dumpが結果を出力する方法が原因で、OBJECTのvar_dumpを配列として誤って解釈している可能性があります。
ProxiBlue 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.