public function setPrefs()
 {
     if (0 && Kernel::isDemo()) {
         return Kernel::noDemo();
     }
     CopixHTMLHeader::addCSSLink(_resource("styles/module_prefs.css"));
     CopixHTMLHeader::addOthers('<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"/>');
     CopixHTMLHeader::addOthers('<META HTTP-EQUIV="Expires" CONTENT="-1"/>');
     CopixHTMLHeader::addOthers('<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"/>');
     $tpl = new CopixTpl();
     // Liste des modules qui peuvent avoir des préférences...
     $modules = Prefs::getModules();
     $arModulesPath = CopixConfig::instance()->arModulesPath;
     $datas = array();
     $errors = array();
     reset($modules);
     foreach ($modules as $mod_key => $mod_val) {
         foreach ($arModulesPath as $modulePath) {
             $class_file = $modulePath . $mod_val->rep . '/' . COPIX_CLASSES_DIR . 'mod' . $mod_val->rep . 'prefs.class.php';
             if (!file_exists($class_file)) {
                 continue;
             }
             $module_class =& CopixClassesFactory::Create($mod_val->rep . '|mod' . $mod_val->rep . 'prefs');
             reset($_POST);
             // Parcours de tous les parametres passé en POST, pour chaque module.
             foreach ($_POST as $post_key => $post_val) {
                 if (ereg('^' . $mod_val->rep . '_(.+)$', $post_key, $regs)) {
                     $datas[$mod_val->rep][$regs[1]] = $post_val;
                 }
             }
             // Appel de la fonction de vérification du module.
             if (method_exists($module_class, 'checkPrefs')) {
                 $d = isset($datas[$mod_val->rep]) ? $datas[$mod_val->rep] : null;
                 $error = $module_class->checkPrefs($mod_val->rep, $d);
                 if (sizeof($error)) {
                     $errors[$mod_val->rep] = $error;
                 }
             }
         }
     }
     if (sizeof($errors)) {
         //print_r($errors);
         //			$tplPrefs = new CopixTpl ();
         // Liste des modules disponibles...
         reset($modules);
         foreach ($modules as $mod_key => $mod_val) {
             foreach ($arModulesPath as $modulePath) {
                 $class_file = $modulePath . $mod_val->rep . '/' . COPIX_CLASSES_DIR . 'mod' . $mod_val->rep . 'prefs.class.php';
                 if (!file_exists($class_file)) {
                     continue;
                 }
                 // Chargement de la classe...
                 $module_class =& CopixClassesFactory::Create($mod_val->rep . '|mod' . $mod_val->rep . 'prefs');
                 // Récupération de la structure des prefs...
                 $d = isset($data[$mod_val->rep]) ? $data[$mod_val->rep] : null;
                 $pref = $module_class->getPrefs($d);
                 $pref['code'] = $mod_val->rep;
                 if (isset($pref['form'])) {
                     // Protection contre les modules aux prefs vides
                     foreach ($pref['form'] as $key => $val) {
                         if (isset($val['code']) && isset($_POST[$pref['code'] . '_' . $val['code']])) {
                             $pref['form'][$key]['value'] = $_POST[$pref['code'] . '_' . $val['code']];
                         }
                         //print_r($val);
                         if (isset($val['code']) && isset($errors[$pref['code']][$val['code']])) {
                             $pref['form'][$key]['error'] = $errors[$pref['code']][$val['code']];
                         }
                     }
                 }
                 $prefs[] = $pref;
             }
         }
         $tpl->assign('TITLE_PAGE', CopixI18N::get('prefs.moduleDescription'));
         $tpl->assign('MAIN', CopixZone::process('prefs|prefs', array('prefs' => $prefs)));
         return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl);
     } else {
         reset($modules);
         foreach ($modules as $mod_key => $mod_val) {
             foreach ($arModulesPath as $modulePath) {
                 $class_file = $modulePath . $mod_val->rep . '/' . COPIX_CLASSES_DIR . 'mod' . $mod_val->rep . 'prefs.class.php';
                 if (!file_exists($class_file)) {
                     continue;
                 }
                 $module_class =& CopixClassesFactory::Create($mod_val->rep . '|mod' . $mod_val->rep . 'prefs');
                 $d = isset($datas[$mod_val->rep]) ? $datas[$mod_val->rep] : null;
                 $module_class->setPrefs($mod_val->rep, $d);
             }
         }
     }
     return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('prefs|default|default', array('msg' => 'save')));
 }
 public function processLogout_Cas()
 {
     $ppo = new CopixPPO();
     $ppo->conf_Saml_CasLogoutUrl = CopixConfig::exists('default|conf_Saml_caslogouturl') ? CopixConfig::get('default|conf_Saml_caslogouturl') : 0;
     if ($ppo->conf_Saml_CasLogoutUrl) {
         CopixHTMLHeader::addOthers('<meta HTTP-EQUIV="REFRESH" content="3; url=' . _url('||') . '"');
     }
     return _arPpo($ppo, 'saml_logout_cas.tpl');
 }
 /**
  * Cr�ation des vignettes manquantes
  *
  * Si des vignettes sont � cr�er, cette page va cr�er une vignette et se recharger pour cr�er les suivantes.
  * Ceci permet d'afficher l'avanc� de la g�n�ration, et �viter les timeout.
  *
  * @author Fr�d�ric Mossmann <*****@*****.**>
  */
 public function vignettes()
 {
     CopixHTMLHeader::addCSSLink(_resource("styles/module_album.css"));
     if (!_request("album")) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('album.error.noalbum'), 'back' => CopixUrl::get('||')));
     }
     if (!_sessionGet('modules|album|vignettes|' . _request("key"))) {
         return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('album|default|album', array('album_id' => _request("album"), 'dossier_id' => _request("dossier"))));
         /*
         return CopixActionGroup::process ('genericTools|Messages::getError',
         array (	'message'=>CopixI18N::get ('album.error.nothumbscreate'),
                 'back'=>CopixUrl::get('album||album',array('album_id'=>_request("album")))));
         */
     }
     $finish = false;
     $tpl = new CopixTpl();
     $vignettes = _sessionGet('modules|album|vignettes|' . _request("key"));
     //print_r($vignettes);
     $image = array_shift($vignettes);
     _sessionSet('modules|album|vignettes|' . _request("key"), $vignettes);
     if ($image == NULL) {
         $finish = true;
         $tpl->assign('url_album', _request("album"));
         $tpl->assign('url_dossier', _request("dossier"));
         $tpl->assign('url_key', _request("key"));
         $tpl->assign('finish', $finish);
         $tpl->assign('message', CopixI18N::get('album.message.thumbs_end'));
         return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('album|default|album', array('album_id' => _request("album"), 'dossier_id' => _request("dossier"))));
         // return new CopixActionReturn (COPIX_AR_DISPLAY_IN, $tpl, "album|vignettes.tpl" );
     }
     $photo_dao = null;
     $ok = Album::createThumbnail($image['album'], $image['photo'], $image['ext'], $image['taille']);
     if (!$ok) {
         if (ereg("^([0-9]+)_([0-9a-fA-F]+)\$", $image['photo'], $photo_regs)) {
             if ($photo_dao == null) {
                 $photo_dao = CopixDAOFactory::create("photo");
             }
             $photo_dao->delete($photo_regs[1]);
         }
     }
     $pAlbum = _request("album");
     $pDossier = _request("dossier");
     $pKey = _request("key");
     $nb = _sessionGet('modules|album|vignettes|nb-' . $pKey);
     $vignettes = _sessionGet('modules|album|vignettes|' . $pKey);
     $tpl->assign('message', CopixI18N::get('album.message.thumbs_create', array($nb - sizeof($vignettes), $nb)));
     $tpl->assign('bar_max', $nb);
     $tpl->assign('bar_value', $nb - sizeof($vignettes));
     $result = $tpl->fetch('vignettes.tpl');
     $ppo = new CopixPPO();
     $ppo->result = $result;
     $ppo->TITLE_PAGE = CopixI18N::get('album|album.moduleDescription');
     CopixHTMLHeader::addCSSLink(_resource("styles/module_album.css"));
     if ($finish) {
         CopixHTMLHeader::addOthers('<meta HTTP-EQUIV="REFRESH" content="3; url=' . CopixUrl::get('album||album', array('album_id' => $pAlbum, 'dossier' => $pDossier)) . '"');
     } else {
         CopixHTMLHeader::addOthers('<meta HTTP-EQUIV="REFRESH" content="0; url=' . CopixUrl::get('album||vignettes', array('album' => $pAlbum, 'dossier' => $pDossier, 'key' => $pKey)) . '"');
     }
     $ppo->CAN_CLOSE = false;
     return _arPPO($ppo, array('template' => 'vignettes_ppo.tpl', 'mainTemplate' => 'default|main_popup.php'));
     //return new CopixActionReturn (COPIX_AR_DISPLAY_IN, $tpl, "album|vignettes.tpl" );
 }