/** * @param Mana_Seo_Model_ParsedUrl $token * @return bool */ protected function _setToolbarValue($token) { $cParameterAlreadyMet = Mana_Seo_Model_ParsedUrl::CORRECT_PARAMETER_ALREADY_MET; $cInvalid = Mana_Seo_Model_ParsedUrl::CORRECT_INVALID_TOOLBAR_VALUE; if ($token->hasQueryParameter($token->getParameterUrl()->getInternalName())) { return $this->_correct($token, $cParameterAlreadyMet, __LINE__, $token->getParameterUrl()->getInternalName()); } $value = $token->getTextToBeParsed(); switch ($name = $token->getParameterUrl()->getInternalName()) { case 'p': if (!is_numeric($value)) { if (!$this->_correct($token, $cInvalid, __LINE__, $token->getText())) { return false; } } break; case 'order': if (!in_array($value, $this->_getAvailableToolbarOrders())) { if (!$this->_correct($token, $cInvalid, __LINE__, $token->getText())) { return false; } } break; case 'dir': if (!in_array($value, $this->_getAvailableToolbarDirections())) { if (!$this->_correct($token, $cInvalid, __LINE__, $token->getText())) { return false; } } break; case 'limit': if (!is_numeric($value) && !in_array($value, $this->_getAvailableToolbarLimits())) { if (!$this->_correct($token, $cInvalid, __LINE__, $token->getText())) { return false; } } break; case 'mode': if (!in_array($value, $this->_getAvailableToolbarModes())) { if (!$this->_correct($token, $cInvalid, __LINE__, $token->getText())) { return false; } } break; } $token->addQueryParameter($name, $token->getTextToBeParsed()); return true; }