예제 #1
0
 /**
  * CategoryValues ::= Value {"/" Value } .
  * @param Mana_Seo_Model_ParsedUrl $token
  * @return bool
  */
 protected function _parseCategoryValues($token)
 {
     $cNotFound = Mana_Seo_Model_ParsedUrl::CORRECT_NOT_FOUND_CATEGORY_FILTER_URL_KEY;
     /* @var $seo Mana_Seo_Helper_Data */
     $seo = Mage::helper('mana_seo');
     // get category id defined by page URL key, or store root category is for non category pages
     if (!$token->getCategoryPath()) {
         $token->setCategoryId($this->_getCategoryIdByPageUrlKey($token))->setCategoryPath($seo->getCategoryPath($token->getCategoryId()));
     }
     if (($text = $token->getTextToBeParsed()) && ($tokens = $this->_scanUntilSeparator($token, $this->_schema->getCategorySeparator()))) {
         // get all valid attribute value URL keys
         if ($tokens = $this->_getCategoryValueUrlKeys($tokens)) {
             foreach ($tokens as $token) {
                 // read the rest values. Return if exact match found
                 if ($this->_parseCategoryValues($token)) {
                     return true;
                 }
             }
             return false;
         } else {
             if (!$this->_correct($token, $cNotFound, __LINE__, $text)) {
                 return false;
             }
         }
     }
     $this->_setCategoryFilter($token, $token->getCategoryId());
     return $this->_parseParameters($token->zoomOut());
 }