2011-11-02 3 views
1

J'ai dû changer une méthode de la classe Mage_Catalog_Model_Resource_Eav_Mysql4_Category de Magento. J'ai changé:Surcharger en toute sécurité la méthode Magento Core Resouce

public function getChildrenCategories($category) 
{ 
     $collection = $category->getCollection(); 
     /* @var $collection Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Collection */ 
     $collection->addAttributeToSelect('url_key') 
      ->addAttributeToSelect('name') 
      ->addAttributeToSelect('all_children') 
      ->addAttributeToSelect('is_anchor') 
      ->addAttributeToFilter('is_active', 1) 
      ->addIdFilter($category->getChildren()) 
      ->setOrder('position', 'ASC') 
      ->joinUrlRewrite() 
      ->load(); 
     return $collection; 
} 

Pour:

public function getChildrenCategories($category) 
{ 
      $collection = $category->getCollection(); 
      /* @var $collection Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Collection */ 
      $collection->addAttributeToSelect('url_key') 
       ->addAttributeToSelect('name') 
       ->addAttributeToSelect('all_children') 
       ->addAttributeToSelect('thumbnail') 
       ->addAttributeToSelect('is_anchor') 
       ->addAttributeToFilter('is_active', 1) 
       ->addIdFilter($category->getChildren()) 
       ->setOrder('position', 'ASC') 
       ->joinUrlRewrite() 
       ->load(); 
      return $collection; 
} 

Fondamentalement ajouté ->addAttributeToSelect('thumbnail') que je avais besoin pour obtenir cet attribut.

Je suis bloqué maintenant sur la façon de surcharger en toute sécurité cette fonction. J'ai copié la classe entière dans local > Mage > Catalog > Model > Resouce > Eav > Mysql4 > Category.php mais vraiment je n'ai besoin que de remplacer cette fonction.

Comment est-ce que je peux faire ceci?

Répondre

1

Vous devez remplacer toute la collection de ressources de votre module. Vous pouvez lire comment remplacer la collection de ressources dans ce forum thread.

+0

Merci, je vais vérifier cela – iamjonesy

Questions connexes