function process()
 {
     if (ereg('.free.fr/', Request::getCurrentCompleteUrl())) {
         print "<h2>Attention ! Les utilisateurs de Free.fr doivent faire une opération très particulière pour faire fonctionner phpMyVisites, du fait des limitations techniques imposées par Free.fr.</h2>\n\t\t\t<p> Vous devez donc <u>OBLIGATOIREMENT</u> :</p>\n\t\t\t<ul><li>Créer un répertoire /include/ à la racine de votre site free</li>\n\t\t\t<li>Uploader dans ce nouveau répertoire vide <u>le contenu du répertoire /libs/ de phpmyvisites</u>, une fois phpmyvisites dézippé sur votre ordinateur</li>\n\t\t\t<li>Vous ne devez donc pas changer votre phpmyvisites que vous avez normalement déjà uploadé sur le serveur. Vous devez seulement réuploader les fichiers et répertoires contenus dans le répertoire /libs/ de phpmyvisites. Ces fichiers sont : PEAR.php, Cache/, QuickForm/, HTML/, XML/ (les autres sont facultatifs).</li>\n\t\t\t<li>A la fin de l'opération, vous devez donc avoir à la racine de votre site Free : <br>/include/PEAR.php<br> /include/XML/<br> /include/HTML/<br> etc.\n\t\t\t</ul>\n\t\t\t\n\t\t\t<p> En cas de problèmes consultez les forums de phpMyVisites mais surtout suivez scrupuleusement ces indications et tout se passera très bien !</p>\n\t\t\t\n\t\t\t\n\t\t\t<p><b>If you need these explanations in english, please ask in phpmyvisites forums</b></p>";
     }
     $this->tpl->assign("show_next_step", true);
 }
 function process()
 {
     $urlToGoAfter = str_replace('mod=login', '', Request::getCurrentCompleteUrl());
     // general input
     $formElements = array(array('text', 'form_login', $GLOBALS['lang']['login_login']), array('password', 'form_password', $GLOBALS['lang']['login_password']), array('hidden', 'form_url', $urlToGoAfter));
     $this->addElements($formElements);
     // validation rules
     $formRules = array(array('form_login', sprintf($GLOBALS['lang']['admin_required'], $GLOBALS['lang']['login_login']), 'required'), array('form_password', sprintf($GLOBALS['lang']['admin_required'], $GLOBALS['lang']['login_password']), 'required'));
     $this->addRules($formRules);
     // launche process
     return parent::process();
 }
 function redirectToModule($name)
 {
     $url = Request::getPhpmvRoot() . "index.php?mod=" . $name;
     if (Request::getCurrentCompleteUrl() != $url) {
         header("Location: {$url}");
         exit;
     }
 }
 /**
  * Charge le module demand�
  *
  */
 function loadModule()
 {
     $moduleName = $this->request->getModuleName();
     $db =& Db::getInstance();
     if (ereg('admin', $moduleName)) {
         $this->lang->reloadLangFile();
     }
     if (!$moduleName) {
         $moduleName = $this->defaultModuleName;
     }
     if ($moduleName == 'list_logos') {
         $authorized = true;
     } else {
         $b_writeDir = checkDirWritable();
         /**
          * very first : logo selection is allowed
          */
         /**
          * first look if installation is needed 
          */
         if (!is_file(INCLUDE_PATH . "/config/config.php") || !defined('DB_HOST') || !defined('SU_LOGIN') || !defined('INSTALL_OK')) {
             if (!Request::isCurrentModuleAnInstallModule()) {
                 Request::redirectToModule('install_welcome');
             }
             $authorized = true;
         } else {
             if (!$db->isReady() && substr_count(Request::getCurrentCompleteUrl(), 'mod=login') === 0 && substr_count(Request::getCurrentCompleteUrl(), 'mod=logout') === 0) {
                 Request::redirectToModule('admin_db_config');
             } else {
                 if ($b_writeDir === false) {
                     // case there is a write problem, we load server_info page to indicate the user the problem
                     $moduleName = 'admin_server_info';
                     $authorized = true;
                 } else {
                     if ($db->isReady()) {
                         if (version_compare($db->getVersion(), PHPMV_VERSION) == -1) {
                             $moduleName = 'admin_update';
                             $authorized = true;
                         } else {
                             if (version_compare($db->getVersion(), PHPMV_VERSION) == 1) {
                                 trigger_error("There is a problem : your database is more recent than your phpMyVisites files! Try to upload the last release of phpMyVisites on your server.", E_USER_ERROR);
                             }
                         }
                     }
                 }
             }
         }
     }
     /**
      * else it's ok! Load module
      */
     // update module in the object request, used for hidden field in the login form
     $this->request->setModuleName($moduleName);
     // manage the user, is he authorized to see this module ?
     $me =& User::getInstance();
     if (isset($authorized) || $me->isAuthorized($moduleName) || $this->request->isCrontabAllowed()) {
         $module = Module::factory($moduleName);
     } else {
         $module = Module::factory('login');
     }
     if (!is_subclass_of($module, 'Module')) {
         trigger_error('Unable to load: ' . $moduleName . ' module', E_USER_ERROR);
     }
     $module->init($this->request, null);
     $this->module =& $module;
 }