2012-05-14 77 views
0

到目前爲止,我還沒有設法找到任何已經滿足了我想要實現的東西的在線內容。我只是想在特定的類別中調用一個列表,但我希望能夠通過ID來定義哪些類別,例如,我希望能夠像下面這樣調用它們: -從類別ID中顯示特定的Magento類別

{{block type="catalog/navigation" name="catalog.category" template="developer/extension/script.phtml" ids="3,6,17,143,57"}} 

我已經根據父類別ID顯示了各個地方的子類別列表,但在有數百個子類別的情況下,顯示所有子類別並不總是實用的,所以我想知道如果現有的腳本可能被調整爲僅包含上述的特定類別?

<?php 
//gets all sub categories of parent category 'cat-id-4' 
    $cats = Mage::getModel('catalog/category')->load(4)->getChildren(); 
    $catIds = explode(',',$cats); 

    $categories = array(); 
foreach($catIds as $catId) { 
    $category = Mage::getModel('catalog/category')->load($catId); 
    $categories[$category->getName()] = array(
     'url' => $category->getUrl(), 
     'img' => $category->getImageUrl() 
    ); 
} 

ksort($categories, SORT_STRING); 
?> 
<ul> 
    <?php if($category->getIsActive()): ?> 
    <?php foreach($categories as $name => $data): ?> 
     <li> 
      <a href="<?php echo $data['url']; ?>" title="<?php echo  $name; ?>" alt="<?php echo $name; ?>"><?php echo $name; ?></a> 
     </li> 
    <?php endforeach; ?> 
    <?php endif; ?> 
</ul> 

如果有人可以建議我怎麼可能實現這個請,那將是太棒了 - 在此先感謝。

回答

2

這應該與給定的CMS塊代碼的工作:

<?php 
$catIds = explode(',', $this->getIds()); //<-- ONLY CHANGE MADE 

$categories = array(); 
foreach($catIds as $catId) { 
    $category = Mage::getModel('catalog/category')->load($catId); 
    $categories[$category->getName()] = array(
     'url' => $category->getUrl(), 
     'img' => $category->getImageUrl() 
    ); 
} 

ksort($categories, SORT_STRING); 
?> 
<ul> 
    <?php if($category->getIsActive()): ?> 
    <?php foreach($categories as $name => $data): ?> 
     <li> 
      <a href="<?php echo $data['url']; ?>" title="<?php echo $name; ?>" alt="<?php echo $name; ?>"><?php echo $name; ?></a> 
     </li> 
    <?php endforeach; ?> 
    <?php endif; ?> 
</ul> 
+0

這完美地工作。非常感謝 :) – zigojacko