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; }
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; }