come ottimizzare caricare tutte le categorie con l'immagine


8

in questo momento, ho due foreach nidificati per scorrere tutta la categoria ed è estremamente lento (3-4s sul mio server locale). Penso che il problema sia che uso -> LOAD () per ottenere il percorso dell'immagine per la categoria figlio. c'è un altro modo di farlo? o dovrei semplicemente ridisegnare l'intera interfaccia di navigazione? qualche suggerimento?

$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;

Risposte:


3

Non so se anche questo funzioni, ma puoi provare a lavorare con Mage_Catalog_Model_Resource_Category_Tree

Questa classe dovrebbe darti la possibilità di attraversare l'albero, ma dopo aver caricato tutte le categorie.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.