/** * 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()); }