2011-06-27 40 views
2

我想显示所有产品类别在我的模块的管理端在System.xml作为多选。如何显示所有(产品)类别在管理端列表:Magento

$_category = Mage::getModel('catalog/category')->load(); 
$collection = Mage::getModel('catalog/category')->getCategories($_category->entity_id); 
$helper = Mage::helper('catalog/category'); 

foreach($collection as $cat){ 
    if($_category->getIsActive()){ 
     $cur_category = Mage::getModel('catalog/category')->load($cat->getId());      
     $helper->getCategoryUrl($cat); 
     echo $cat->getName(); 
    } 
} 

但是,这并不表明我所想要的,我想要的只是产品类别....能有人的想法吧......感谢名单。

回答

2

要显示系统配置中的分类选择,我已经通过扩展Mage模型类和方法找到了解决方案。

Mage_Adminhtml_Model_System_Config_Source_Category

和删除行。

->addPathFilter('^1/[0-9]+$') 

现在它在系统配置中显示多选选项。在这里您可以从列表中选择多类..

1
?php $_helper = Mage::helper('catalog/category') ?> 
<?php $_categories = $_helper->getStoreCategories() ?> 
<?php $currentCategory = Mage::registry('current_category') ?> 

<?php if (count($_categories) > 0): ?> 
    <ul> 
     <?php foreach($_categories as $_category): ?> 
      <li> 
       <a href="<?php echo $_helper->getCategoryUrl($_category) ?>"> 
        <?php echo "<b>".$_category->getName(). $_category->getId()."</b>" ?> 
       </a> 
       <?php $_category = Mage::getModel('catalog/category')->load($_category->getId()) ?> 
       <?php $_subcategories = $_category->getChildrenCategories() ?> 
       <?php if (count($_subcategories) > 0): ?> 
        <ul> 
         <?php foreach($_subcategories as $_subcategory): ?> 
          <li> 
           <a href="<?php echo $_helper->getCategoryUrl($_subcategory) ?>"> 
            <?php echo "--".$_subcategory->getName() ?> 
           </a> 
          </li> 
         <?php endforeach; ?> 
        </ul> 
       <?php endif; ?> 
      </li> 
     <?php endforeach; ?> 
    </ul> 
<?php endif; ?> 
2

我工作Magento的1.7,我没有看到一个包含一行 - > addPathFilter('^ 1/[0-9] + $ ')

但是,删除以下行为我工作。 - > addRootLevelFilter()

+0

看起来他们在1.7中将正则表达式更改为实际函数。这个功能可以做同样的事情,所以只要做一下Nahid做的事情,然后发表评论。 – Adad64

相关问题