Ejemplo n.º 1
0
 public function parse($url)
 {
     $params = parent::parse($url);
     if (empty($params[$this->named]) || !$this->_match($params)) {
         return false;
     }
     $slugs = $this->_read();
     if (false === ($id = array_search($params[$this->named], $slugs))) {
         if (!($result = $this->_lookup(array($this->display => $params[$this->named])))) {
             return false;
         }
         $id = $result[$this->_getModel()->alias][$this->lookup];
     }
     $params['pass'][0] = $id;
     unset($params[$this->named]);
     return $params;
 }
Ejemplo n.º 2
0
 public function parse($url)
 {
     $params = parent::parse($url);
     // get cake standard
     if (empty($params) || !$this->_match($params)) {
         return false;
     }
     $slugs = array();
     foreach ($this->_slugOptions as $slug => $options) {
         if (!isset($params[$slug])) {
             return false;
         }
         $slugs[$slug] = $params[$slug];
         unset($params[$slug]);
         $callbacks = $this->getOption('callbacks', $options);
         if ($callbacks['parse'] !== false) {
             $slugs[$slug] = $callbacks['parse']($slugs[$slug]);
         }
     }
     if (!($id = $this->mapped($slugs))) {
         $result = $this->_lookup($this->_generateScope($slugs));
         if (!$result) {
             return false;
         }
         $id = $result[$this->_getModel()->alias][$this->_getModel()->primaryKey];
         $this->map($id, $slugs);
     }
     if (empty($params['pass'])) {
         $params['pass'] = array();
     }
     $params['pass'][] = $id;
     return $params;
 }