Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用特定种类的管理面板获取Magento类别_Php_Magento - Fatal编程技术网

Php 使用特定种类的管理面板获取Magento类别

Php 使用特定种类的管理面板获取Magento类别,php,magento,Php,Magento,我编写了下面的代码来组合一个定制的类别菜单。一切正常,但希望类别的顺序与管理员面板中定义的顺序相同,其中包含拖放功能 <?php $subCats = Mage::getModel('catalog/category')->load(76)->getChildren(); $dispositosCatIds = explode(',',$subCats); ?> <ul class="menu"> <?php $controleNum =

我编写了下面的代码来组合一个定制的类别菜单。一切正常,但希望类别的顺序与管理员面板中定义的顺序相同,其中包含拖放功能

<?php
    $subCats = Mage::getModel('catalog/category')->load(76)->getChildren();
    $dispositosCatIds = explode(',',$subCats);
?>
<ul class="menu">
<?php $controleNum = 0; ?>
<?php foreach($dispositosCatIds as $dispositoCatId): ?>
<?php $aparelhoCat = Mage::getModel('catalog/category')->load($dispositoCatId); ?>
<?php if($aparelhoCat->getIsActive()): ?>
    <li class="<?php print $controleNum ? '' : 'submenu first'; ?>"><a class="drop" href="<?php echo $aparelhoCat->getUrl(); ?>"> <span><?php echo $aparelhoCat->getName(); ?></span></a> <!--Begin 6 column Item  -->
    <div class="dropdown_6columns">
    <div class="inner"><span class="title"><?php echo $aparelhoCat->getName(); ?></span>
    <div class="col_2">
    <div class="col_2 firstcolumn"><img src="<?php echo $aparelhoCat->getImageUrl(); ?>" alt="<?php echo $aparelhoCat->getName(); ?>" /></div>
    </div>
    <div class="col_4" style="margin-bottom: 20px;">
        <?php echo $aparelhoCat->getDescription(); ?>
    </div>
    <div class="col_2 categorias-super"><span class="title_col">Produtos para <?php echo $aparelhoCat->getName(); ?></span> 
    <?php $subSubCats = $aparelhoCat->getChildrenCategories();?>

    <?php if (count($subSubCats) > 0): ?>
        <?php //$controleNumLI = 0; ?>
        <ul style="list-style: none; float: none !important;">
        <?php foreach($subSubCats as $_subcategory): //Rodando entre as categorias de Um dispositivo ?>
            <?php if($_subcategory->getIsActive()): ?>
                <li class="level1 <?php //print $controleNumLI ? '' : 'first'; ?>"> <a href="<?php echo $_subcategory->getUrl(); ?>"><?php echo $_subcategory->getName(); ?></a></li>
                <?php //$controleNumLI += 1; ?>
            <?php endif; ?>
        <?php endforeach; ?>
        </ul>
    <?php endif; ?>
    </div>
    </div>
    </div>
    </li>
    <?php $controleNum += 1; ?>
<?php endif; ?>    
<?php endforeach; ?>
</ul>

    “>
我尝试使用其他模式()可以做到这一点,但我做不到。函数返回的问题是ID按升序排列的字符串


一些想法?

这是我用来以管理员的顺序在下拉框中显示类别的代码…键是setOrder('path','ASC'))

你可以这样做:

我明白了:

$dispositovosCategoryId = 76;
$dispositovosCategoryIds = Mage::getModel('catalog/category')->getCollection()
    ->addFieldToFilter('parent_id', array('eq'=>$dispositovosCategoryId))
    ->addAttributeToFilter('is_active',array('eq'=>true))
    ->addAttributeToSelect('level')
    ->setOrder('position','ASC')
    ->addAttributeToSelect('name','url','image')
    ->load();

谢谢。但是你的代码只会按顶级类别的顺序返回类别。我会尝试更改它,如果成功,我会在这里发表评论。如果你有任何建议,我将不胜感激。
$dispositovosCategoryId = 76;
$dispositovosCategoryIds = Mage::getModel('catalog/category')->getCollection()
    ->addFieldToFilter('parent_id', array('eq'=>$dispositovosCategoryId))
    ->addAttributeToFilter('is_active',array('eq'=>true))
    ->addAttributeToSelect('level')
    ->setOrder('position','ASC')
    ->addAttributeToSelect('name','url','image')
    ->load();