/**
  * Include all object definitions that must be known during a session
  * and all works needed before session start
  *
  * @access private
  */
 function _beforeSessionStart()
 {
     parent::_beforeSessionStart();
     // needed for the Copix plugins
 }
 /**
  * @param CopixUrl    $urlorigin    url à transformer
  */
 function transformUrl($urlorigin)
 {
     $url = $urlorigin;
     // Attention, il faut une copie ici, pas une référence ! (PHP5 -> clone !)
     /*
     a) recupere module|desc|action -> obtient les infos pour la creation de l'url
     b) récupère un à un les parametres indiqués dans params à partir de CopixUrl
     c) remplace la valeur récupérée dans le result et supprime le paramètre de l'url
     d) remplace scriptname de CopixUrl par le resultat
     */
     $module = $url->get('module');
     if ($module === null) {
         $module = CopixContext::get();
     }
     $desc = $url->get('desc');
     if ($desc === null) {
         $desc = COPIX_DEFAULT_VALUE_DESC;
     }
     $action = $url->get('action');
     if ($action === null) {
         $action = COPIX_DEFAULT_VALUE_ACTION;
     }
     $id = $module . '|' . $desc . '|' . $action;
     //if ($module !== null && isset ($this->scriptnameList[$module])){
     //    $url->scriptName = $this->scriptnameList[$module];
     //}
     /*$_compile_createUrl = array('test1|default|default'=>
       array('test',true, array('annee','mois','id'), '/%1/%2/%3',''));
       */
     if (isset($this->dataCreateUrl[$id])) {
         $urlinfo =& $this->dataCreateUrl[$id];
         if ($urlinfo[1]) {
             $dturl =& $urlinfo[2];
             $result = $urlinfo[3];
             foreach ($dturl as $k => $param) {
                 $result = str_replace('%' . ($k + 1), $url->get($param), $result);
                 $url->del($param);
             }
             $url->pathInfo = $result;
         } else {
             $class = $urlinfo[2];
             $method = $urlinfo[3];
             $file = CopixCoordination::extractFilePath($module . '|' . $class, 'classes', '.url.php');
             if ($file) {
                 include_once $file;
                 $obj = new $class();
                 $url = $obj->{$method}($url);
             } else {
             }
         }
         // rajouter le suffixe
         if ($urlinfo[0] != '') {
             $url->pathInfo .= '.' . $urlinfo[0];
         }
         // indiquer l'entrypoint
         if ($urlinfo[4] != '') {
             $url->scriptName = $urlinfo[4];
         }
     }
     $url->del('module');
     $url->del('desc');
     $url->del('action');
     // vraiment supprimer ?
     return $url;
 }