Remove empty categories from magento menu

前端 未结 3 603
忘掉有多难
忘掉有多难 2020-12-12 06:18

I want my main menu to not include any categories that are empty. I\'ve done this for the layered navigation very easily in the relevant phtml file by using



        
3条回答
  •  轮回少年
    2020-12-12 06:50

    path: app/design/frontend/rwd/default/template/page/html/topmenu/renderer.phtml

    Make this query (it is 0.0004 sec), under the foreach ($children as $child) {

    $mageconnection = Mage::getSingleton("core/resource")->getConnection("core_read");
    
    $query="select count(cataloginventory_stock_item.is_in_stock) as subcount,catalog_category_flat_store_1.`name` from catalog_category_flat_store_1 INNER JOIN
        catalog_category_product_index on catalog_category_product_index.category_id=catalog_category_flat_store_1.entity_id INNER JOIN
        cataloginventory_stock_item on cataloginventory_stock_item.product_id=catalog_category_product_index.product_id
        where cataloginventory_stock_item.is_in_stock=1 and catalog_category_product_index.category_id=";
    
    $subCatqueryId =  str_replace('category-node-', '', $child->getId());
    $prodCollection = $mageconnection->fetchAll("$query'{$subCatqueryId}'");
    
    if($prodCollection[0]["subcount"] > 0) {
    
    $child->setLevel($childLevel);
    $child->setIsFirst($counter == 1);
    // these are the existing code ..
    ...
    ...
      $counter++;
    }
    }
    

    It is very fast and secure way to control product count.

提交回复
热议问题