Magento 中的子类别列表

     2023-03-06     63

关键词:

【中文标题】Magento 中的子类别列表【英文标题】:Sub category listing in Magento 【发布时间】:2013-11-29 17:58:24 【问题描述】:

我环顾四周,发现了很多关于提取父 ID 和子猫列表的信息,但这略有不同,我似乎无法找到答案,我还不是 PHP 专家(还) 所以对我放轻松。我尝试了各种方法,但最终都出现了错误。

我创建了一个 phtml 模板,用于在主导航下方的内联链接块中显示父类别的子类别。我用管理员的静态块调用这个模板,它工作正常,但是当我导航到子类别页面时,链接块消失了,显然是因为这段代码调用了父级的子猫,但当你实际上在子猫。这是我目前使用的代码:

<?php if (!Mage::registry('current_category')) return ?>
<?php $_categories = $this->getCurrentChildCategories() ?>
<?php $_count = is_array($_categories)?count($_categories):$_categories->count(); ?>
<?php if($_count): ?>
    <div class="category-products <?php echo Mage::getModel('catalog/layer')->getCurrentCategory()->getName(); ?>">
        <dl id="narrow-by-list2">
            <dt></dt>
            <dd>
                <ol class="subcat_list">
                <?php foreach ($_categories as $_category): ?>
                    <?php if($_category->getIsActive()): ?>
                    <li>
                        <a href="<?php echo $this->getCategoryUrl($_category) ?>"<?php if ($this->isCategoryActive($_category)): ?> class="current"<?php endif; ?>><?php echo $this->htmlEscape($_category->getName()) ?></a>
                    </li>
                    <?php endif; ?>
                <?php endforeach ?>
                </ol>
            </dd>
        </dl>
        <script type="text/javascript">decorateDataList('narrow-by-list2')</script>
    </div>
<?php endif; ?>

关于如何修改它以便在我实际查看子猫时列表保留在那里的任何想法? 非常感谢

【问题讨论】:

【参考方案1】:

环顾四周后,我终于偶然发现了我需要的东西 感谢 MagikSwapna 的投入,它帮助我更了解了一些事情

我最终得到了这个

    <div class="category-products <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('parent_cat_name')->toHtml() ?>">
<?php  echo "<ol class='subcat_list'>"; ?>

 <?php
    $currentCat = Mage::registry('current_category');

    if ( $currentCat->getParentId() == Mage::app()->getStore()->getRootCategoryId() )
    
        // current category is a toplevel category
        $loadCategory = $currentCat;

    
    else
    
        // current category is a sub-(or subsub-, etc...)category of a toplevel category
        // load the parent category of the current category
        $loadCategory = Mage::getModel('catalog/category')->load($currentCat->getParentId());
        // @TODO enhance for more nested category levels to display sub-categories
        
    $subCategories = explode(',', $loadCategory->getChildren());

    foreach ( $subCategories as $subCategoryId )
    
        $cat = Mage::getModel('catalog/category')->load($subCategoryId);

        if($cat->getIsActive())
        
            if($crcat == $cat->getName())                                                   //Check if current category is this subcategory
                echo '<li><b><a href="'.$cat->getURL().'">'.$cat->getName().'</a></b>'.'</li>'; //If yes display it as bold (Currently Selected)
            else                                                                            //
                echo '<li><a href="'.$cat->getURL().'">'.$cat->getName().'</a>'.'</li>';        //Otherwise display it as normal
        
    

?>
<?php  echo "</ol>"; ?>
</div>

它工作正常,我创建了一个用于类别页面的自定义布局,如果在非类别相关页面中使用它会引发错误,但它可以工作! 最后。

【讨论】:

【参考方案2】:
<?php $_helper = Mage::helper('catalog/category') ?>
    <?php $_categories = $_helper->getStoreCategories() ?>   
    <?php if (count($_categories) > 0): ?>
  <ul>
            <?php foreach($_categories as $_category): ?>
                    <li>                    
                    <a href="<?php echo $_helper->getCategoryUrl($_category) ?>"><?php echo $_category->getName() ?></a>                  
                    <?php $_category = Mage::getModel('catalog/category')->load($_category->getId()) ?>
                    <?php $_subcategories = $_category->getChildrenCategories() ?>
                    <?php if (count($_subcategories) > 0): ?>                                                                                                                                    
                         <?php foreach($_subcategories as $_subcategory): ?>
                                <h3><a href="<?php echo $_helper->getCategoryUrl($_subcategory) ?>"><?php echo $_subcategory->getName() ?></a></h3>
                                <!--sub sub category-->
                                <?php $_subcategory = Mage::getModel('catalog/category')->load($_subcategory->getId()) ?>                             
                                <?php $_subsubcategories = $_subcategory->getChildrenCategories() ?>
                                <?php if (count($_subsubcategories) > 0): ?>
                                   <ul>
                                    <?php foreach($_subsubcategories as $_subsubcategory): ?>
                                       <li>
                                          <a href="<?php echo $_helper->getCategoryUrl($_subsubcategory) ?>"><?php echo $_subsubcategory->getName() ?></a>            
                                          <?php $_subsubsubcategory = Mage::getModel('catalog/category')->load($_subsubcategory->getId()) ?>                             
                                          <?php $_subsubsubcategories = $_subsubcategory->getChildrenCategories() ?>
                                          <?php if (count($_subsubsubcategories) > 0): ?>                                                                                            
                                                   <ul>
                                                     <?php foreach($_subsubsubcategories as $_subsubsubcategory): ?>
                                                       <li>
                                                         <a href="<?php echo $_helper->getCategoryUrl($_subsubsubcategory) ?>"><span><?php echo $_subsubsubcategory->getName() ?></span></a>
                                                       </li> 
                                                     <?php endforeach; ?>
                                                   </ul>                                                                                               
                                          <?php endif; ?>
                                       </li> 
                                    <?php endforeach; ?>
                                   </ul>                                   
                               <?php endif; ?>
                                 <!--sub sub category-->                               
                         <?php endforeach; ?>                                                                                                                                                     
                    <?php endif; ?>
                    </li> 
             <?php endforeach; ?> 
  </ul> 
    <?php endif; ?>

【讨论】:

太棒了,非常感谢,我现在正在尝试不同的排列方式。顺便说一句,我的网站在这里ashfordweb-dev.co.uk/proaudio/monitoring/active-monitors.html 我仍然不完全确定如何在其中显示父子类别的链接,我正在尝试使用 getIsActive()); ?> 但它不起作用 有没有办法按字母顺序排序?

删除magento中的空类别

】删除magento中的空类别【英文标题】:Deletingemptycategoriesinmagento【发布时间】:2012-08-3105:26:12【问题描述】:如果其中没有产品,我想实现删除空类别和子类别。可能有100个类别。所以我不想为此使用后端。我有麻烦了,请帮帮... 查看详情

php从主类别中获取magento子类别列表(代码片段)

查看详情

Magento 类别页面未包含属性过滤器中的所有产品

】Magento类别页面未包含属性过滤器中的所有产品【英文标题】:Magentocategorypageisnotincludingallproductsintheattributefilters【发布时间】:2012-05-0123:07:09【问题描述】:我发现产品并不总是包含在***类别列表页面的属性过滤器中。我有一... 查看详情

如何在类别产品列表底部的 magento 2.1.8 中移动静态块

】如何在类别产品列表底部的magento2.1.8中移动静态块【英文标题】:Howtomovestaticblockinmagento2.1.8atthebottomofproductlistinCategory【发布时间】:2018-05-2119:46:20【问题描述】:我正在使用MAgento2.1.8,但我被困在将静态块移动到类别页面的... 查看详情

导航中的 Magento 类别和产品 - 子项

】导航中的Magento类别和产品-子项【英文标题】:Magentocategoriesandproductsinnavigation-child【发布时间】:2014-02-1903:09:57【问题描述】:我正在使用某种magento导航调整,它在主导航中显示类别和产品:但有一个问题:在我的类别中:Th... 查看详情

Magento中的缓慢类别导入

】Magento中的缓慢类别导入【英文标题】:slowcategoryimportinmagento【发布时间】:2011-03-2213:44:54【问题描述】:我编写了一个自定义适配器,用于使用高级配置文件导入6K类别。导入太慢了。我尝试将记录数从1增加到5,但没有帮助... 查看详情

获取magento中的所有类别

privatefunctiongetCategories(){ $categories=Mage::getModel('catalog/category')->getCollection()->addAttributeToSelect('*')->addIsActiveFilter();  $all=array();  foreach($categoriesas$c){ $all[$c->getId(&#... 查看详情

Prestashop 子类别中的子类别菜单

】Prestashop子类别中的子类别菜单【英文标题】:Prestashopsubcategoriesmenuinsideasubcategory【发布时间】:2013-04-0302:03:54【问题描述】:我正在尝试在所有子类别中显示prestashop类别的子类别菜单。默认情况下,您只能看到类别中的子类... 查看详情

从magento中的分层导航取消设置类别

...hthisXMLdefinitiontoremovethecategoryfiltersfromtheleft-layerednavigationinMagento.<referencename="catalog.leftnav"><actionmethod="unsetChild"><alias>category_filter</alias></action></reference> 查看详情

sql查询以检索magento中的所有产品id及其所属的类别。(代码片段)

查看详情

如何使magento过滤器像类别一样工作

】如何使magento过滤器像类别一样工作【英文标题】:howtomakemagentofilterworkslikecategory【发布时间】:2015-07-0106:20:10【问题描述】:我想让magento中的类别使用属性/过滤器。假设我有一个属性“CupAttr”,它不用于分层导航。然后我... 查看详情

在 magento 中调用块时未显示类别

】在magento中调用块时未显示类别【英文标题】:Categoriesnotshowingwhencallingblockinmagento【发布时间】:2014-03-1307:46:44【问题描述】:我正在使用Magento中的页面CMS功能调用静态块。它正在调用它,但每当我调用它时,类别都不会显示... 查看详情

找出mysql中的倒置层次结构列表

】找出mysql中的倒置层次结构列表【英文标题】:findoutlistofinvertedhierarchyinmysql【发布时间】:2013-10-0613:40:59【问题描述】:假设我有一个表(MysqlmyISAM)具有子->父关系(类别和多个级别的子类别)+--------+---------+|id|parent_id|+-------... 查看详情

产品列表中的 Magento 寻呼机

】产品列表中的Magento寻呼机【英文标题】:MagentoPageronproductlist【发布时间】:2012-12-1420:25:35【问题描述】:如何只在产品列表底部插入分页器?在我想要的产品列表顶部:“按相关性/畅销书/等排序”和“按:表格/列表排序项... 查看详情

Magmi 覆盖产品在类别中的位置

...11-2712:59:15【问题描述】:我正在使用Magmi将产品导入我的Magento商店。动态创建类别并导入产品。一切正常。除了一件事:每次我运行Magmi导入时,产品在Magento类别中的位置设置为0。这样我就无法按位置对产品进行排序。我在Magm... 查看详情

Magento:在产品页面中将产品选项显示为两列中的列表元素

】Magento:在产品页面中将产品选项显示为两列中的列表元素【英文标题】:Magento:DisplayProductOptionsinProductPageasListElementsinTwoColumns【发布时间】:2019-03-3107:23:09【问题描述】:有实际的Magento1.9.3情况...在产品页面中有很多配置选项... 查看详情

Magento列表按属性排序按属性排序而不是值排序

】Magento列表按属性排序按属性排序而不是值排序【英文标题】:Magentolistsortbyattributesortingbyattributeordernotvalues【发布时间】:2013-02-1808:52:23【问题描述】:我在magento中遇到了属性排序问题。我为用于对类别列表进行排序的产品创... 查看详情

php[woocommercecore]隐藏产品档案中的子类别产品计数(代码片段)

查看详情