1: <?php
2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
26:
27: 28: 29: 30: 31: 32: 33:
34: class Mage_CatalogSearch_Block_Advanced_Result extends Mage_Core_Block_Template
35: {
36: protected function _prepareLayout()
37: {
38: if ($breadcrumbs = $this->getLayout()->getBlock('breadcrumbs')) {
39: $breadcrumbs->addCrumb('home', array(
40: 'label'=>Mage::helper('catalogsearch')->__('Home'),
41: 'title'=>Mage::helper('catalogsearch')->__('Go to Home Page'),
42: 'link'=>Mage::getBaseUrl()
43: ))->addCrumb('search', array(
44: 'label'=>Mage::helper('catalogsearch')->__('Catalog Advanced Search'),
45: 'link'=>$this->getUrl('*/*/')
46: ))->addCrumb('search_result', array(
47: 'label'=>Mage::helper('catalogsearch')->__('Results')
48: ));
49: }
50: return parent::_prepareLayout();
51: }
52:
53: public function setListOrders() {
54: $category = Mage::getSingleton('catalog/layer')
55: ->getCurrentCategory();
56:
57:
58: $availableOrders = $category->getAvailableSortByOptions();
59: unset($availableOrders['position']);
60:
61: $this->getChild('search_result_list')
62: ->setAvailableOrders($availableOrders);
63: }
64:
65: public function setListModes() {
66: $this->getChild('search_result_list')
67: ->setModes(array(
68: 'grid' => Mage::helper('catalogsearch')->__('Grid'),
69: 'list' => Mage::helper('catalogsearch')->__('List'))
70: );
71: }
72:
73: public function setListCollection() {
74: $this->getChild('search_result_list')
75: ->setCollection($this->_getProductCollection());
76: }
77:
78: protected function _getProductCollection(){
79: return $this->getSearchModel()->getProductCollection();
80: }
81:
82: public function getSearchModel()
83: {
84: return Mage::getSingleton('catalogsearch/advanced');
85: }
86:
87: public function getResultCount()
88: {
89: if (!$this->getData('result_count')) {
90: $size = $this->getSearchModel()->getProductCollection()->getSize();
91: $this->setResultCount($size);
92: }
93: return $this->getData('result_count');
94: }
95:
96: public function getProductListHtml()
97: {
98: return $this->getChildHtml('search_result_list');
99: }
100:
101: public function getFormUrl()
102: {
103: return Mage::getModel('core/url')
104: ->setQueryParams($this->getRequest()->getQuery())
105: ->getUrl('*/*/', array('_escape' => true));
106: }
107:
108: public function getSearchCriterias()
109: {
110: $searchCriterias = $this->getSearchModel()->getSearchCriterias();
111: $middle = ceil(count($searchCriterias) / 2);
112: $left = array_slice($searchCriterias, 0, $middle);
113: $right = array_slice($searchCriterias, $middle);
114:
115: return array('left'=>$left, 'right'=>$right);
116: }
117: }
118: