/** * parse l'url rewrite pour en extraire les parametres (nav, parametres...) * @access public * @param string $sUrl url */ public function parseUrl($sUrl) { $sRootScript = $_SERVER['SCRIPT_NAME']; $sRootScript = str_replace(_root::getConfigVar('navigation.scriptname'), '', $sRootScript); $sUrl = str_replace($sRootScript, '', $sUrl); /*LOG*/ _root::getLog()->info('plugin_routing parseUrl(' . $sUrl . ')'); if (is_array($this->tRoute)) { foreach ($this->tRoute as $sPattern => $tUrl) { $sPattern = preg_replace('/:([^:])*:/', '([^/]*)', $sPattern); $sPattern = preg_replace('/\\//', '\\/', $sPattern); if (preg_match_all('/^' . $sPattern . '$/', $sUrl, $tTrouve)) { _root::getRequest()->loadModuleAndAction($tUrl['nav']); if (isset($tUrl['tParam']) and is_array($tTrouve[1])) { $j = 0; foreach ($tTrouve as $i => $found) { if ($i == 0) { continue; } $j = $i - 1; _root::setParam($tUrl['tParam'][$j], $found[0]); } } if (isset($tUrl['tParamHidden'])) { foreach ($tUrl['tParamHidden'] as $key => $val) { _root::setParam($key, $val); } } return; } } /*LOG*/ _root::getLog()->info('plugin_routing regle non trouve, utilisation de 404 loadModuleAndAction(' . $this->tRoute['404']['nav'] . ')'); if (_root::getConfigVar('urlrewriting.use4O4') == 1) { _root::getRequest()->loadModuleAndAction($this->tRoute['404']['nav']); } } }