protected function getParameters() { $Parameters = parent::getParameters(); $PageParameters = $this->_page->Parameters; if (empty($PageParameters)) { return $Parameters; } # /^(?P<action>\w+)?\/?(?P<month>\d+)?\/?(?P<year>\d+)?/ }
/** * Verifica che la pagina sia una news. * Se è così, controlla se ci sono i parametri per il permalink o per il numero di pagina. * Se non ci sono, assegna l'azione passata. * * @param string $path L'uri della pagina. * @return array|bool I parametri della pagina o, nel caso non sia una pagina news, false */ public function match($path) { $defaults = parent::match($path); if (false === $defaults) { return false; } $return = array(); $params = $this->_page->Parameters; if ('show' == $params[0] && isset($params[1])) { $return['action'] = 'permalink'; $return['news'] = $params[1]; $this->_page->shiftParameters(); $params = $this->_page->shiftParameters(); } elseif (is_numeric($params[0])) { $return['page'] = (int) $params[0]; $params = $this->_page->shiftParameters(); } elseif (isset($params[0])) { $return['action'] = $params[0]; $params = $this->_page->shiftParameters(); } return $return + $defaults; }