public static function getCurrentSorting() { $session = Mage::getSingleton('core/session'); $allowedSorting = array_keys(self::getAllowedSorting()); if (empty($allowedSorting)) { return array(false, false); } // processing sort order $saveToSession = false; if ($sortOrder = AW_Kbase_Helper_Url::getParam(self::$_orderVarName)) { $saveToSession = true; } elseif ($sortOrder = Mage::app()->getRequest()->getParam(self::$_orderVarName)) { $saveToSession = true; } else { $sortOrder = $session->getKbaseSortOrder(); } if (!$sortOrder && !in_array($sortOrder, $allowedSorting)) { $sortOrder = reset($allowedSorting); } if ($saveToSession) { $session->setKbaseSortOrder($sortOrder); } // processing sort direction $saveToSession = false; if ($sortDir = AW_Kbase_Helper_Url::getParam(self::$_dirVarName)) { $saveToSession = true; } elseif ($sortDir = Mage::app()->getRequest()->getParam(self::$_dirVarName)) { $saveToSession = true; } else { $sortDir = $session->getKbaseSortDir(); } if (AW_Kbase_Model_Source_Sorting::SORT_ASC != $sortDir && AW_Kbase_Model_Source_Sorting::SORT_DESC != $sortDir) { $sortDir = AW_Kbase_Model_Source_Sorting::SORT_ASC; } if ($saveToSession) { $session->setKbaseSortDir($sortDir); } return array($sortOrder, $sortDir); }
public function searchAction() { $this->_checkRegistered(); $this->_checkFrontendEnabled(); if (!($query = ($key = AW_Kbase_Helper_Url::getParam(AW_Kbase_Helper_Url::URL_PARAM_NAME_QUERY)) ? $key : $this->getRequest()->getParam(AW_Kbase_Helper_Url::URL_PARAM_NAME_QUERY))) { $this->redirectHome(); return; } $this->loadLayout()->getLayout()->getBlock('kbase_search')->setQuery($query)->preparePage(); $this->renderLayout(); }
public function getLimit() { if ($this->_limit !== null) { return $this->_limit; } $limits = $this->getAvailableLimit(); $session = Mage::getSingleton('core/session'); $saveToSession = false; if ($limit = (int) AW_Kbase_Helper_Url::getParam($this->getLimitVarName())) { $saveToSession = true; } elseif ($limit = $this->getRequest()->getParam($this->getLimitVarName())) { $saveToSession = true; } else { $limit = $session->getKbasePagerLimit(); } if ($limit && isset($limits[$limit])) { if ($saveToSession) { $session->setKbasePagerLimit($limit); } return $limit; } $limits = array_keys($limits); return $limits[0]; }