예제 #1
0
 /**
  * @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;
 }