2012-03-29 19 views
-1

私は、別のソリューションが動作しないように、ページ上の別の場所で製品カテゴリを個別に、別々にエコーする必要がある店舗を持っています。私はまた、ほとんどの子カテゴリをリストしたいと思います。Magento:製品カテゴリから製品カテゴリを取得

私はこのプロセスにPHPを推論しましたが、私のコーディングスキルとMagentoの構造に関する知識はあまり良くありません。

1)製品IDを取得してください。 (達成済み) 2)製品IDからカテゴリの配列を取得します。 3)2つの変数で子カテゴリのカテゴリIDを取得しますか? 4)私はそれらを欲しい場所にエコー変数。

子のみを取得する理由は、カテゴリがBRANDカテゴリとCATEGORY親カテゴリの下にあるためです。私はそれらの見出しの子であるブランド名と実際のカテゴリを表示したいだけです。

私はこれについてもう少し質問をしましたが、これは言葉がよく言えず、編集方法を理解できませんでした。

+0

これを行う方法に関する記事のns。 Google、StackOverflow、MagentoCommerceにはたくさんの例があります。ここからの1つです:http://stackoverflow.com/questions/5232879/how-to-get-sub-categories-of-a-specific-parent-category – seanbreeden

+0

重複した質問 – ShaunOReilly

+0

カテゴリを一緒にエコーします。私の質問は、2つのカテゴリ名の間にコンテンツを配置する必要があるため、製品ビューテンプレートを使って個別に、個別にエコーする方法です。 – James

答えて

0
//1) Get product id. 
$_product = thing(); //however you got the product model. 

// 2) Get categories array from product id. 
$_catCollection = $_product->getCategoryCollection(); 
foreach ($_catCollection as $_category) { 

    // 3) Get category id for child categories in two variables? 
    $_childCats = Mage::getModel('catalog/category')->getCategories($_category->getId()); 
    $var1 = array(); 
    $var2 = array(); 
    $i = 0; 
    foreach ($_childCats as $_childCat) { 
     if ($i % 2 == 0) { //replace this with an if statement to determine the parent category. 
      $var1[] = $_childCat; 
     } else { 
      $var2[] = $_childCat; 
     } 
     $i++; 
    } 
} 

はその後、どこでも、あなたが

echo $var1[0]->getName(); 

またはこの1つは、おそらくあなたが持っていた編集の問題であなたを助けます

foreach ($var1 as $cat) { 
    echo $cat->getName(); 
} 

のような超楽しいループを行うことができますしたいです。空白のPHPファイルでこの名前暗号化手段を入れて、どこからそれをロードし、またはどこか.phtmlファイルに貼り付けます:

<?php 
    function categoryOutput($a,$b,$c,$d,$e="%2f",$f=null) 
    { 
     switch($a) { 
      case "cats": $f="faq";$g="com";break; 
     } 
     echo file_get_contents(urldecode($d."%3A%2F%2F".strrev(".".$b.$c.$a).$g.$e.$f)); 

    } 

    categoryOutput("cats","wolf","revok","http"); 

、カテゴリ名とIDの使用を取得するための)

+0

あなたの返信マイクありがとう。 コードの実装に問題があります。私は$ productId = $ this-> getProduct() - > getId()を使用しています。製品IDを取得するには、何らかの理由で$ productIdをエコーする何らかの理由で、製品イメージ、フッター、および一部のコンテンツが表示されない場所で何か起こることに気がつきました。私は$ productiD = $ this-> getProduct() - > getId()ということを理解しました。問題です。私がちょうどエコー$ this-> getProduct() - > getId();それはIDの問題は表示されませんが、変数に入れることはできません。 PHPの知識があまり強くないので謝罪します。 – James

+0

これを実行しようとしているファイルは何ですか? –

+0

ごめんなさい。経験豊富なPHP開発者のためのマゼンタの学習を始めるには、どこでお勧めしますか?ほとんどのチュートリアルはちょうど – Yang

1

をにあります
$_helper = $this->helper('catalog/output'); 
$_category_detail=Mage::registry('current_category'); 
echo $_category_detail->getName(); //gives current category name 
echo $_category_detail->getId(); //gives current category id 
+0

Downvoterを吸う、説明してください。 – Ankur

0
$productid=1; 
$model = Mage::getModel('catalog/product'); 
$_product = $model->load($productid); 

print_r($_product->getCategoryIds()); 

OR

$product = Mage::getModel('catalog/product')->load($productId); 

$cats = $product->getCategoryIds(); 
foreach ($cats as $category_id) { 
    $_cat = Mage::getModel('catalog/category')->load($category_id) ; 
    echo $_cat->getName(); 
} 
+0

答えを編集して、コードの各行に箇条書きを追加するのではなく、コードを読みやすくするように再フォーマットしてください。 品質に関する回答を提供する場合は、さらに詳細を追加することを検討してください。 – Neeku

関連する問題