Example code for http://magento.stackexchange.com/questions/10566/sort-catalogsearch-by-2-attributes/10589.
Files:
- app/code/community/Emzee/Sorter/etc/config.xml
- app/code/community/Emzee/Sorter/Model/Observer.php
- app/etc/modules/Emzee_Sorter.xml
Example code for http://magento.stackexchange.com/questions/10566/sort-catalogsearch-by-2-attributes/10589.
Files:
<?xml version="1.0"?> | |
<config> | |
<modules> | |
<Emzee_Sorter> | |
<version>1.0.0</version> | |
</Emzee_Sorter> | |
</modules> | |
<global> | |
<models> | |
<emzee_sorter> | |
<class>Emzee_Sorter_Model</class> | |
</emzee_sorter> | |
</models> | |
<events> | |
<catalog_block_product_list_collection> | |
<observers> | |
<emzee_sorter> | |
<class>emzee_sorter/observer</class> | |
<method>catalogBlockProductListCollection</method> | |
</emzee_sorter> | |
</observers> | |
</catalog_block_product_list_collection> | |
</events> | |
</global> | |
</config> |
<?xml version="1.0"?> | |
<config> | |
<modules> | |
<Emzee_Sorter> | |
<active>true</active> | |
<codePool>community</codePool> | |
<depends></depends> | |
</Emzee_Sorter> | |
</modules> | |
</config> |
<?php | |
class Emzee_Sorter_Model_Observer | |
{ | |
/** | |
* @param Varien_Event_Observer $observer | |
* @return Emzee_Sorter_Model_Observer | |
*/ | |
public function catalogBlockProductListCollection(Varien_Event_Observer $observer) | |
{ | |
$request = Mage::app()->getFrontController()->getRequest(); | |
$action = $request->getModuleName() . '_' . $request->getControllerName() . '_' . $request->getActionName(); | |
if ($action === 'catalogsearch_result_index' || $action === 'catalogsearch_advanced_result') { | |
$collection = $observer->getEvent()->getCollection(); | |
$collection->addOrder('sort_2', Varien_Data_Collection::SORT_ORDER_DESC); | |
} | |
return $this; | |
} | |
} |