Example #1
0
    /** 
     * 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']);
            }
        }
    }