comment optimiser le chargement de toutes les catégories avec l'image


8

en ce moment, j'ai deux foreach imbriqués pour parcourir toute la catégorie, et c'est extrêmement lent (3-4s sur mon serveur local). Je pense que le problème est que j'utilise -> LOAD () pour obtenir le chemin de l'image pour la catégorie enfant. existe-t-il une autre façon de procéder? ou je devrais juste repenser toute l'interface de navigation? toute suggestion?

$categories = Mage::getSingleton('catalog/category')
    ->getCollection()
    ->addAttributeToSelect('id')
    ->addAttributeToSelect('name')
    ->addAttributeToSelect('url_key')
    ->addAttributeToSelect('url')
    ->addAttributeToFilter('level',2)
    ->addIsActiveFilter()
    ->addAttributeToSort('position');

foreach ($categories as $category): 
    $id = $category->getId();
    $children = $category->getChildrenCategories();
    $name = $category->getName();
    $url_path = $category->getUrl();        

    foreach ($children as $child):                                      
        $childId = $child->getId();
        $thisChild = Mage::getSingleton('catalog/category')->load($childId);
        $name = $thisChild->getName();
        $url_key = $thisChild->getUrlKey(); 
        $url_path = $child->getUrl();
        $img = $thisChild->getImageUrl();   
    endforeach;
endforeach;

Réponses:


3

Je ne sais pas si cela fonctionne même, mais vous pouvez essayer de travailler avec Mage_Catalog_Model_Resource_Category_Tree

Cette classe devrait vous donner la possibilité de parcourir l'arbre, mais après avoir chargé toutes les catégories.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.