Changeset 41

Show
Ignore:
Timestamp:
01/16/06 18:32:29 (3 years ago)
Author:
laurentj
Message:

un peu de travail sur les urls pour le futur plugin tpl jurl

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/jelix/core/jConfig.class.php

    r36 r41  
    5555            $config->trustedModules = array_keys($config->modulesPathList); 
    5656        } 
    57         $config->urlengine_specific_entrypoints = array_flip($config->urlengine_specific_entrypoints); 
     57        //$config->urlengine_specific_entrypoints = array_flip($config->urlengine_specific_entrypoints); 
    5858        return $config; 
    5959    } 
  • trunk/lib/jelix/core/jDefaultConfig.lib.php

    r35 r41  
    7676  'urlengine_specific_entrypoints' => 
    7777  array ( 
    78     //'mymodule' => 'index', 
     78     'index' => '@classic', 
     79     'xmlrpc'=> '@xmlrpc', 
     80     'jsonrpc'=>'@jsonrpc' 
    7981  ) 
    8082); 
  • trunk/lib/jelix/core/url/jUrl.class.php

    r39 r41  
    6767    public $pathInfo = ''; 
    6868 
     69     
     70    public $requestType =''; 
    6971    /** 
    7072    * initialise l'objet 
     
    128130            // on ne doit pas modifier les donn� de l'url, il nous faut donc un clone 
    129131            $urlobj= clone $this; 
    130             $urlobj->scriptName = 'index.php'; // pour le moment... �ester avec jUrl::getScript($urlobj->getParam('module'),$urlobj->getParam('action')); 
    131             $engine = & jUrl::getEngine(); 
     132            if($urlobj->requestType == ''){ 
     133               $urlobj->requestType = $gJCoord->request->type; 
     134            } 
     135            $urlobj->scriptName =  self::getScript($urlobj->requestType, $urlobj->getParam('module'),$urlobj->getParam('action')); 
     136            $engine = & self::getEngine(); 
    132137            $engine->create($urlobj); // set path info 
    133138        } 
     
    192197    * @param array $params associative array with the parameters 
    193198    */ 
    194     static function get ($dest = null, $params = array (), $forxml = false) { 
    195         if ($dest === null){ 
     199    static function get ($actSel = null, $params = array (), $forxml = false) { 
     200        if ($actSel === null){ 
    196201            return '/'.$GLOBALS['gJCoord']->request->url_script_path; 
    197202        } 
    198         if($dest == '@'){ 
     203        if($actSel == '@'){ 
    199204            $url = new jUrl('',array_merge($GLOBALS['gJCoord']->request->url->params,$params)); 
    200205        }else{ 
    201              
    202             $url = new jUrl('',array_merge($params,jUrl::getAction ($dest))); 
     206            $sel = new JSelectorAct($actSel); 
     207            $params['module'] = $sel->module; 
     208            $params['action'] = $sel->resource;             
     209            $url = new jUrl('',$params); 
     210            $url->requestType= $sel->request; 
    203211        } 
    204212 
     
    254262        $sel = new JSelectorAct($actionSelector); 
    255263        if($sel->isValid()){         
    256            return array('module'=>$sel->module, 'action'=>$sel->ressource); 
     264           return array('module'=>$sel->module, 'action'=>$sel->ressource, 'request'=>$sel->request); 
    257265        }else{ 
    258266          return false; 
     
    260268    } 
    261269 
    262     static function getScript($module,$requestType, $nosuffix=false){ 
     270    static function getScript($requestType, $module=null, $action=null, $nosuffix=false){ 
    263271        global $gJConfig; 
     272        static $urlspe = null; 
    264273        $script = $gJConfig->urlengine->default_entrypoint; 
    265274 
    266275        if(count($gJConfig->urlengine_specific_entrypoints)){ 
    267            $sep = $gJConfig->urlengine_specific_entrypoints; 
    268            if(isset($sep[$module.'~'.$requestType])){ 
    269                $script = $sep[$module.'~'.$requestType]; 
    270            }else if(isset($sep['*~'.$requestType])){ 
    271                $script = $sep['*~'.$requestType]; 
    272            }else if(isset($sep[$module])){ 
    273                $script = $sep[$module]; 
     276           if($urlspe == null){ 
     277               $urlspe = array(); 
     278               foreach($gJConfig->urlengine_specific_entrypoints as $entrypoint=>$sel){ 
     279                 $selectors = preg_split("/[\s,]+/", $sel); 
     280                 foreach($selectors as $sel){ 
     281                     $urlspe[$sel]= $entrypoint;                  
     282                 } 
     283               } 
     284           } 
     285 
     286           $found = false; 
     287           
     288           if($action && $action !='' && isset($sep[$module.'~'.$action.'@'.$requestType])){ 
     289                $script = $sep[$module.'~'.$action.'@'.$requestType]; 
     290                $found = true; 
     291           } 
     292                       
     293           if($module && $module !='' && !$found &&  isset($sep[$module.'~*@'.$requestType])){ 
     294                $script = $sep[$module.'~*@'.$requestType]; 
     295                $found = true; 
     296           } 
     297            
     298           if(!$found && isset($sep['@'.$requestType])){ 
     299               $script = $sep['@'.$requestType]; 
     300                $found = true; 
    274301           } 
    275302        } 
  • trunk/myapp/var/config/config.classic.ini.php.dist

    r23 r41  
    6868 
    6969[urlengine_specific_entrypoints] 
    70 ;/foo/index.php = "mymodule" 
    71 ;foo.php = "*~myaction" 
     70; nom_script_sans_suffix = "liste de selecteur d'action s�r�ar un espace" 
     71; selecteurs : 
     72;   m~a@r    -> pour action "a" du module "m" r�ndant au type de requete "r" 
     73;   m~*@r    -> pour toute action du module "m" r�ndant au type de requete "r" 
     74;   @r       -> toute action de tout module r�ndant au type de requete "r" 
    7275 
     76index = "@classic" 
     77xmlrpc = "@xmlrpc" 
     78jsonrpc = "@jsonrpc" 
  • trunk/testapp/var/config/config.classic.ini.php.dist

    r38 r41  
    6868 
    6969[urlengine_specific_entrypoints] 
    70 ;/foo/index.php = "mymodule" 
    71 ;foo.php = "*~myaction" 
     70; nom_script_sans_suffix = "liste de selecteur s�r�ar un espace" 
     71; selecteurs : 
     72;   m~a@r    -> pour action a du module m r�ndant au type de requete r 
     73;   m~*@r    -> pour toute action du module m r�ndant au type de requete r 
     74;   @r       -> toute action de tout module r�ndant au type de requete r 
    7275 
     76index = "@classic" 
     77xmlrpc = "@xmlrpc" 
     78jsonrpc = "@jsonrpc" 
     79  
     80 
Download in other formats: Unified Diff Zip Archive