Domanda

Ho trascorso giorni alla ricerca di un semplice tutorial su come aggiungere filtri per una raccolta del prodotto. Se qualcuno ha un link a un buon tutorial o explantion Vorrei davvero apprezzare. Ho trovato una pelle Magento e il file list.phtml utilizza questo codice:

$products_collection = Mage::getModel( 'catalog/product' )
        ->getCollection()
        ->addAttributeToSelect( '*' )
        ->addCategoryFilter( $_cat )
        ->addOrder( 'position', 'ASC' );
    Mage::getSingleton( 'catalog/product_status' )->addSaleableFilterToCollection( $products_collection );
    Mage::getSingleton( 'catalog/product_visibility' )->addVisibleInCatalogFilterToCollection( $products_collection );
    Mage::getSingleton( 'cataloginventory/stock' )->addInStockFilterToCollection( $products_collection );

Non ho visto filtraggio fatto con questo metodo "addSaleableFilterToCollection". Quali altri attributi possono essere utilizzati in questo modo? Quali sono le possibili ragioni uno sviluppatore avrebbe usato questo approccio? La lista dei temi categoria non ha ancora ricevuto recensioni di installazione. Ho trovato il codice che genera le recensioni, ma credo che le recensioni non sono presenti nel modello del prodotto. Ho cercato

Mage::getSingleton( 'review/review' )->addReviewToCollection( $products_collection );

, ma che non ha fatto nulla.

Sono più interessato a imparare a pescare, invece di essere consegnato un pesce.

È stato utile?

Soluzione

Quali altri attributi possono essere utilizzati [per aggiungere filtri personalizzati]?

Letteralmente qualsiasi . E 'fino al capriccio / esigenze dello sviluppatore o piattaforma.

Quali sono le possibili ragioni uno sviluppatore avrebbe usato questo approccio?

In primo luogo, DRY . E 'probabile che le condizioni di filtro dovrebbero essere ripetute in più contesti, e proprio (sano di mente) di progettazione ci dice che la logica deve essere incapsulato in un metodo.

ho provato Mage::getSingleton( 'review/review' )->addReviewToCollection( $products_collection ); ma che non ha fatto nulla.

Mentre c'è un sacco di magia apparentemente voodoo-y in Magento (solitamente derivante dall'architettura evento o Varien_Object::__call(), questi filtri di raccolta devono essere attuate da qualche parte. Mi consiglia di cercare, come di seguito in app/code/ per trovare una data definizione:

$ grep -srl 'n addSaleableFilterToCollection'

Altri suggerimenti

Per una certa comprensione generale le diverse opzioni per le collezioni in Magento leggere questo articolo

Alcune collezioni può essere modificata utilizzando modelli di aggiungere filtri, in pratica questi modelli sono solo cambiando la query eseguita da Magento per recuperare l'insieme. È possibile utilizzare il seguente codice per stampare su richiesta di una certa collezione per vedere che cosa sta accadendo

var_dump((string)$collection->getSelect());

I filtri che hai detto in precedenza praticamente coprire tutti questi filtri misc credo. Creazione di un filtro recensione come la vostra che descrive potrebbe essere fatto scrivendo proprio interno che ha un metodo per unire le tabelle di revisione per la query di raccolta principale.

Comunque, sto non sono sicuro che sarei stato un buon corso di esecuzione azione saggia.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top