2012-10-23 140 views
4

同级分类列表到目前为止,我觉得我在做某件事情是这样我需要在Magento 1.7

<?php 
$parentId = $_category->getParentId(); 
$cats = Mage::getModel('catalog/category')->load($parentId)->getChildred(); 
$catIds = explode(',',$cats); 
?> 

<ul> 
<?php foreach($catIds as $catId): ?> 
    <li> 
    <?php 
     $category=Mage::getModel('catalog/category')->load($catId) 
     echo $category->getName(); 
    ?> 
</li> 
<?php endforeach; ?> 
</ul> 

我想在子类横向移动,而不必去了一个层。

让我知道这是否合理。

+0

您能否请您清楚解释您想做什么。所以我们可以帮助您更好。 – Muk

回答

3

下面的代码将帮助您加载第2级(子)类别。您可以将$ _rootCatId设置为动态,也可以通过Mage :: app() - > getStore() - > getRootCategoryId();

$_rootCatId  = 2;//Root Category 
$_rootCategory = Mage::getModel('catalog/category')->load($_rootCatId); 
$_catName  = $_rootCategory->getName(); 
if($_rootCategory->hasChildren()) 
{ 
    $_collection = Mage::getResourceModel('catalog/category_collection') 
        ->addAttributeToFilter('is_active', 1) 
        ->addAttributeToSort('position', 'asc') 
        ->joinUrlRewrite() 
        ->addIdFilter($_rootCategory->getChildren()) 
        ->load(); 

    foreach($_collection AS $_sub) 
    { 
     $_subCat = Mage::getModel('catalog/category')->load($_sub->getId()); 

     if($_subCat->hasChildren()) 
     { 
      echo '<li class="leve10 nav-'. $_subCat->getId() .'">'; 
       echo '<a id="subCatLink">'; 
        echo '<span>'. $this->htmlEscape($_subCat->getName()) .'</span> 
        </a> 
      </li>'; 
      echo '<ul id="subCatUl" class="no-display" style="padding:0px 13px;">'; 
      $__collection = Mage::getResourceModel('catalog/category_collection') 
        ->addAttributeToFilter('is_active', 1) 
        ->addAttributeToSort('position', 'asc') 
        ->joinUrlRewrite() 
        ->addIdFilter($_subCat->getChildren()) 
        ->load(); 

      foreach($__collection AS $__sub) 
      { 
       $__subCat = Mage::getModel('catalog/category')->load($__sub->getId()); 
       echo '<li class="leve20 nav-'. $__subCat->getId() .'"> 
         <a href="'. $this->getCategoryUrl($__subCat) .'"> 
         <span>'. $this->htmlEscape($__subCat->getName()) .'</span> 
         </a> 
        </li>'; 
      } 
      echo '</ul>'; 
     } 
     else 
     { 
      echo '<li class="leve10 nav-'. $_subCat->getId() .'"> 
       <a href="'. $this->getCategoryUrl($_subCat) .'"> 
       <span>'. $this->htmlEscape($_subCat->getName()) .'</span> 
       </a> 
      </li>'; 
     } 
    } 
} 
else 
    echo 'No Categories Found...'; 
+0

在你的代码中,你有'Categories();',我刚刚删除了它。对我来说,打破了代码!除此之外,它的工作非常好。谢谢! – SPRBRN

+0

是的,我的不好。我将删除它。谢谢... :) –

1

假设你$_categoryMage_Catalog_Model_Category有效实例:

<?php $_siblings = $_category->getParentCategory()->getChildrenCategories(); ?> 
<ul> 
    <?php foreach($_siblings as $_sibling): ?> 
    <li> 
     <?php echo $_sibling->getName(); ?> 
    </li> 
    <?php endforeach; ?> 
</ul> 
+0

太容易了!谢谢! –