/**
  * Affichage de la fiche d'une ecole
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2008/09/03
  * @param integer $id Id de l'ecole
  * @param integer $popup 1 pour afficher la fiche en popup Fancybox
  */
 public function fiche()
 {
     $id = $this->getRequest('id', null);
     $iPopup = CopixRequest::getInt('popup');
     $ecoleDAO = CopixDAOFactory::create('kernel|kernel_bu_ecole');
     $ficheDAO = CopixDAOFactory::create("fiches_ecoles");
     $criticErrors = array();
     if (!($rEcole = $ecoleDAO->get($id))) {
         $criticErrors[] = CopixI18N::get('fichesecoles.error.param');
     } elseif (!FichesEcolesService::canMakeInFicheEcole($id, 'VIEW')) {
         $criticErrors[] = CopixI18N::get('kernel|kernel.error.noRights');
     }
     if ($criticErrors) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => implode('<br/>', $criticErrors), 'back' => CopixUrl::get('annuaire||')));
     }
     $rFiche = $ficheDAO->get($id);
     $tpl = new CopixTpl();
     CopixHtmlHeader::addJSLink(CopixUrl::get() . 'js/iconito/module_fichesecoles.js');
     $fiche = CopixZone::process('fiche', array('rEcole' => $rEcole, 'rFiche' => $rFiche));
     $main = $fiche;
     $title = $rEcole->nom;
     if ($rEcole->type) {
         $title .= ' (' . $rEcole->type . ')';
     }
     $tpl->assign('TITLE_PAGE', $title);
     // Get vocabulary catalog to use
     $nodeVocabularyCatalogDAO = _ioDAO('kernel|kernel_i18n_node_vocabularycatalog');
     $vocabularyCatalog = $nodeVocabularyCatalogDAO->getCatalogForNode('BU_ECOLE', $rEcole->numero);
     if (strtolower($rEcole->type) == 'crèche') {
         $tpl->assign('TITLE_CONTEXT', CopixI18N::get('kernel|kernel.codes.mod_fichesecoles_creche'));
     } else {
         $tpl->assign('TITLE_CONTEXT', CopixCustomI18N::get('kernel|kernel.codes.mod_fiche%%structure%%', array('catalog' => $vocabularyCatalog->id_vc)));
     }
     $menu = array();
     $menu[] = array('url' => CopixUrl::get('public||getListBlogs'), 'txt' => CopixCustomI18N::get('public|public.blog.annuaire.%%structures%%', array('catalog' => $vocabularyCatalog->id_vc)));
     if (Kernel::is_connected()) {
         $menu[] = array('url' => CopixUrl::get('annuaire||getAnnuaireEcole', array('ecole' => $rEcole->numero)), 'txt' => CopixCustomI18N::get('annuaire|annuaire.back%%structure%%', array('catalog' => $vocabularyCatalog->id_vc)));
     }
     if (CopixConfig::exists('|can_annuaire_menu') && !CopixConfig::get('|can_annuaire_menu')) {
         $menu = array();
     }
     $tpl->assign('MENU', $menu);
     $tpl->assign("MAIN", $main);
     if ($iPopup) {
         $ppo = new CopixPPO();
         $ppo->fiche = $fiche;
         $ppo->TITLE = $title;
         return _arPPO($ppo, array('template' => 'fiche_popup.tpl', 'mainTemplate' => 'main|main_fancy.php'));
     }
     return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl);
 }
 /**
  * Supression d'un utilisateur
  */
 public function processDelete()
 {
     if (CopixRequest::getInt('confirm') == 1) {
         $sp = _daoSp();
         $sp->addCondition('user_dbgroup', '=', 'auth|dbuserhandler:' . CopixRequest::getInt('id'));
         _ioDAO('dbgroup_users')->deleteBy($sp);
         _ioDAO('dbuser')->delete(CopixRequest::getInt('id'));
         return _arRedirect(_url('auth|users|'));
     } else {
         if (!($user = _ioDAO('dbuser')->get(CopixRequest::getInt('id')))) {
             throw new Exception('Utilisateur introuvable');
         }
         return CopixActionGroup::process('generictools|Messages::getConfirm', array('message' => _i18n('auth.confirmDeleteUser', $user->login_dbuser), 'confirm' => _url('auth|users|delete', array('id' => $user->id_dbuser, 'confirm' => 1)), 'cancel' => _url('auth|users|')));
     }
 }
 /**
  * Supression d'un groupe d'utilisateur
  */
 public function processDelete()
 {
     if (CopixRequest::getInt('confirm') == 1) {
         $sp = _daoSp();
         $sp->addCondition('id_dbgroup', '=', CopixRequest::getInt('id'));
         _ioDAO('dbgroup_users')->deleteBy($sp);
         _ioDAO('dbgroup')->delete(CopixRequest::getInt('id'));
         return _arRedirect(_url('auth|groups|'));
     } else {
         if (!($group = _ioDAO('dbgroup')->get(CopixRequest::getInt('id')))) {
             throw new Exception('Groupe introuvable');
         }
         return CopixActionGroup::process('generictools|Messages::getConfirm', array('message' => _i18n('auth.confirmDeleteGroup', $group->caption_dbgroup), 'confirm' => _url('auth|groups|delete', array('id' => $group->id_dbgroup, 'confirm' => 1)), 'cancel' => _url('auth|groups|')));
     }
 }
 public function processQuiz()
 {
     $pId = CopixRequest::getInt('id', false);
     if (!$pId) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('quiz.errors.noQuiz'), 'back' => CopixUrl::get('quiz|admin|')));
     }
     //get the quiz's informations
     $QuizData = _ioDAO('quiz_quiz')->get($pId);
     if ($QuizData == null || count($QuizData) == 0) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('quiz.errors.noQuiz'), 'back' => CopixUrl::get('quiz||')));
     }
     $author = Kernel::getUserInfo('ID', $QuizData->id_author, array('link_data' => true));
     $ppo = new CopixPPO();
     $ppo->quiz = $QuizData;
     $ppo->author = $author;
     $ppo->MENU[] = array('txt' => $this->i18n('quiz.admin.listActive'), 'type' => 'list-active', 'url' => $this->url('quiz|default|default', array('qaction' => 'list')));
     $ppo->MENU[] = array('txt' => $this->i18n('quiz.admin.listAll'), 'type' => 'list', 'url' => $this->url('quiz|admin|list'));
     $ppo->MENU[] = array('txt' => $this->i18n('quiz.admin.new'), 'type' => 'create', 'url' => $this->url('quiz|admin|modif', array('qaction' => 'new')));
     return _arPPO($ppo, 'admin.quiz.tpl');
 }
 /**
  * Soumission du formulaire d'�criture d'un minimail (envoie le minimail)
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2005/10/18
  * @see getNewForm()
  * @param string $dest Logins du(des) destinataire(s)
  * @param string $title Titre du minimail
  * @param string $message Corps du minimail
  * @param string $go Forme de soumission : preview (pr�visualiser) ou send (enregistrer)
  */
 public function doSend()
 {
     $dest = _request("dest") ? _request("dest") : "";
     $title = _request("title") ? _request("title") : "";
     $message = _request("message") ? _request("message") : "";
     $format = _request("format") ? _request("format") : "";
     $go = _request("go") ? _request("go") : 'preview';
     $iReply = CopixRequest::getInt('reply');
     $iForward = CopixRequest::getInt('forward');
     $destTxt = $dest;
     $destTxt = str_replace(array(" "), "", $destTxt);
     $destTxt = str_replace(array(",", ";"), ",", $destTxt);
     $destin = array_unique(explode(",", $destTxt));
     $fromId = _currentUser()->getId();
     $errors = array();
     if (!$dest) {
         $errors[] = CopixI18N::get('minimail.error.typeDest');
     }
     if (!$title) {
         $errors[] = CopixI18N::get('minimail.error.typeTitle');
     }
     if (!$message) {
         $errors[] = CopixI18N::get('minimail.error.typeMessage');
     }
     if (!$format) {
         $errors[] = CopixI18N::get('minimail.error.typeFormat');
     }
     $tabDest = array();
     // On v�rifie que les destinataires existent
     while (list(, $login) = each($destin)) {
         if (!$login) {
             continue;
         }
         $userInfo = Kernel::getUserInfo("LOGIN", $login, array('strict' => true));
         //print_r("login=$login");
         //print_r($userInfo);
         if (!$userInfo) {
             $errors[] = CopixI18N::get('minimail.error.badDest', array($login));
         } elseif ($userInfo["user_id"] == $fromId) {
             $errors[] = CopixI18N::get('minimail.error.writeHimself');
         } else {
             $droits = Kernel::getUserInfoMatrix($userInfo);
             if ($droits['communiquer']) {
                 $tabDest[$userInfo["user_id"]] = $userInfo["user_id"];
             } else {
                 $errors[] = CopixI18N::get('minimail.error.cannotWrite', array($login));
             }
         }
     }
     // On v�rifie les pi�ces jointes
     CopixConfig::get('minimail|attachment_size');
     //print_r($_FILES);
     for ($i = 1; $i <= 3; $i++) {
         if (isset($_FILES['attachment' . $i]) && !is_uploaded_file($_FILES['attachment' . $i]['tmp_name'])) {
             switch ($_FILES['attachment' . $i]['error']) {
                 case 0:
                     //no error; possible file attack!
                     $errors[] = CopixI18N::get('minimail|minimail.error.upload_default', $i);
                     break;
                 case 1:
                     //uploaded file exceeds the upload_max_filesize directive in php.ini
                     $errors[] = CopixI18N::get('minimail|minimail.error.upload_toobig', $i);
                     break;
                 case 2:
                     //uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the html form
                     $errors[] = CopixI18N::get('minimail|minimail.error.upload_toobig', $i);
                     break;
                 case 3:
                     //uploaded file was only partially uploaded
                     $errors[] = CopixI18N::get('minimail|minimail.error.upload_partial', $i);
                     break;
                 case 4:
                     //no file was uploaded
                     break;
                 default:
                     $errors[] = CopixI18N::get('minimail|minimail.error.upload_default', $i);
                     break;
             }
         }
     }
     if (!$errors) {
         if (!$errors && $go == 'save') {
             $serv = CopixClassesFactory::create("MinimailService");
             $send = $serv->sendMinimail($title, $message, $fromId, $tabDest, $format);
             if (!$send) {
                 $errors[] = CopixI18N::get('minimail.error.send');
             }
         }
         if (!$errors && $go == 'save') {
             // Reponse ou forward ?
             if ($iReply) {
                 // On verifie qu'on est destinataire
                 if ($inDest = _ioDAO('minimail_to')->selectDestFromIdAndToUser($iReply, $fromId)) {
                     _doQuery("UPDATE module_minimail_to SET is_replied=1 WHERE id=:id", array(':id' => $inDest->id2));
                 }
             } elseif ($iForward) {
                 $message = _ioDAO('minimail_from')->get($iForward);
                 // Si on etait l'expediteur
                 if ($message && $message->from_id == $fromId) {
                     _doQuery("UPDATE module_minimail_from SET is_forwarded=1 WHERE id=:id", array(':id' => $iForward));
                     // Si on etait destinataire
                 } elseif ($message && ($inDest = _ioDAO('minimail_to')->selectDestFromIdAndToUser($iForward, $fromId))) {
                     _doQuery("UPDATE module_minimail_to SET is_forwarded=1 WHERE id=:id", array(':id' => $inDest->id2));
                 }
             }
             // Ajout des pieces jointes
             $attachments = array();
             $dataPath = realpath("../var/data");
             for ($i = 1; $i <= 3; $i++) {
                 if (isset($_FILES["attachment" . $i]) && isset($_FILES["attachment" . $i]["name"]) && $_FILES["attachment" . $i]["name"]) {
                     $name = $send . "_" . $_FILES["attachment" . $i]["name"];
                     $uploadFrom = $_FILES["attachment" . $i]["tmp_name"];
                     $uploadTo = $dataPath . "/minimail/" . $name;
                     if (move_uploaded_file($uploadFrom, $uploadTo)) {
                         $attachments[] = $name;
                     } else {
                         $errors[] = CopixI18N::get('minimail.error.send', array($i));
                     }
                 }
             }
             if (count($attachments) > 0) {
                 $DAOminimail_from = CopixDAOFactory::create("minimail_from");
                 $mp = $DAOminimail_from->get($send);
                 $mp->attachment1 = isset($attachments[0]) ? $attachments[0] : NULL;
                 $mp->attachment2 = isset($attachments[1]) ? $attachments[1] : NULL;
                 $mp->attachment3 = isset($attachments[2]) ? $attachments[2] : NULL;
                 $DAOminimail_from->update($mp);
             }
             //    update_message_pj ($res, $pj[0], $pj[1], $pj[2]);
             if (!$errors) {
                 $urlReturn = CopixUrl::get('|getListSend');
                 return new CopixActionReturn(COPIX_AR_REDIRECT, $urlReturn);
             }
         }
     }
     //_dump($message);
     return CopixActionGroup::process('minimail|minimail::getNewForm', array('dest' => $dest, 'title' => $title, 'message' => $message, 'format' => $format, 'errors' => $errors, 'preview' => $go == 'save' ? 0 : 1, 'reply' => $iReply, 'forward' => $iForward));
     //$url_return = CopixConfig::get('minimail|afterMsgSend');
     //$url_return = CopixUrl::get('minimail||getListSend');
 }
 public function processEndQuestions()
 {
     $pId = CopixRequest::getInt('id', false);
     if (!$pId || is_null(qSession('id')) || $pId != qSession('id')) {
         return CopixActionGroup::process('quiz|default::Quiz', array('id' => $pId));
     }
     $ppo = new CopixPPO();
     CopixHTMLHeader::addCSSLink(_resource("styles/module_quiz.css"));
     return _arPPO($ppo, 'end_questions.tpl');
 }
 /**
  * Supression d'un log
  */
 public function processDeleteProfile()
 {
     $profile = _request('profile');
     if (CopixRequest::getInt('confirm') == 1) {
         CopixLog::deleteProfile($profile);
         $profiles = CopixConfig::instance()->copixlog_getRegisteredProfiles();
         unset($profiles[$profile]);
         _class('LogConfigurationFile')->write($profiles);
         return _arRedirect(_url('log|admin'));
     } else {
         if (!in_array($profile, CopixConfig::instance()->copixlog_getRegistered())) {
             return _arRedirect(_url('log|admin'));
         }
         return CopixActionGroup::process('generictools|Messages::getConfirm', array('message' => _i18n('logs.delete', $profile), 'confirm' => _url('admin|log|deleteProfile', array('profile' => $profile, 'confirm' => 1)), 'cancel' => _url('admin|log|admin')));
     }
 }
 /**
  * Afficage de la liste des articles d'un blog.
  */
 public function processGetListArticle()
 {
     //var_dump($this);
     if (!_request('blog') && !_request('ecole')) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('blog.error.missingParameters'), 'back' => CopixUrl::get('||')));
     }
     //On verifie que le blog existe (on r�cup�re le blog avec son nom )
     if (_request('blog')) {
         $dao = CopixDAOFactory::create('blog|blog');
         if (!($blog = $dao->getBlogByName(_request('blog')))) {
             return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('blog.error.unableToFindBlog'), 'back' => CopixUrl::get('||')));
         }
     }
     //On verifie que le blog existe (on r�cup�re le blog l'id de l'�cole )
     if (CopixRequest::getInt('ecole')) {
         $blog = false;
         $mod = Kernel::getModEnabled('BU_ECOLE', CopixRequest::getInt('ecole'), 'MOD_BLOG');
         if ($mod) {
             $mod = Kernel::filterModuleList($mod, 'MOD_BLOG');
             if ($mod) {
                 if ($blog = _ioDAO('blog|blog')->getBlogById($mod[0]->module_id)) {
                     //print_r($blog);
                 }
             }
         }
         if (!$blog) {
             return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('blog.error.unableToFindBlog'), 'back' => CopixUrl::get('||')));
         }
     }
     // On v�rifie que le droit de lecture est pr�sent
     if (!BlogAuth::canMakeInBlog('READ', $blog)) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.noRights'), 'back' => CopixUrl::get('||')));
     }
     //si la cat�gorie est fournie on v�rifie qu'elle existe
     if (null != ($cat = $this->getRequest('cat', null))) {
         $daoCat = CopixDAOFactory::create('blog|blogarticlecategory');
         if (!($cat = $daoCat->getCategoryByName($blog->id_blog, $cat))) {
             return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('blog.error.unableToFindCat'), 'back' => CopixUrl::get('blog||', array('blog' => _request('blog')))));
         }
     }
     //		$menu = array();
     $parent = Kernel::getModParentInfo("MOD_BLOG", $blog->id_blog);
     $blog->parent = $parent;
     /*		if ($parent['type']=='CLUB') {
                 $droit = Kernel::getLevel($parent['type'], $parent['id']);
                 if (GroupeService::canMakeInGroupe('VIEW_HOME', $droit))
                     $menu[] = array('url'=>CopixUrl::get ('groupe||getHome', array("id"=>$parent['id'])), 'txt'=>CopixI18N::get ('blog.menuToGroup'));
             }
             if (BlogAuth::canMakeInBlog('ACCESS_ADMIN',$blog))
                 $menu[] = array('url'=>CopixUrl::get ('admin|showBlog', array("id_blog"=>$blog->id_blog)), 'txt'=>CopixI18N::get ('blog.menuAdmin'));
     */
     $menu = array();
     if (BlogAuth::canMakeInBlog('ACCESS_ADMIN', $blog)) {
         $menu = getBlogAdminMenu($blog);
     }
     CopixHTMLHeader::addCSSLink(CopixUrl::get('blog||getBlogCss', array('id_blog' => $blog->id_blog)));
     $tpl = new CopixTpl();
     $tpl->assign('TITLE_PAGE', $blog->name_blog);
     $tpl->assign('blog', $blog);
     $tpl->assign('MENU', $menu);
     $tpl->assign('ListArticle', CopixZone::process('ListArticle', array('blog' => $blog, 'cat' => $cat, 'date' => $this->getRequest('date', null), 'critere' => $this->getRequest('critere', null))));
     $tpl->assign('ListLink', CopixZone::process('ListLink', array('blog' => $blog)));
     $tpl->assign('ListCategory', CopixZone::process('ListCategory', array('blog' => $blog)));
     $tpl->assign('ListArchive', CopixZone::process('ListArchive', array('blog' => $blog)));
     $tpl->assign('ListPage', CopixZone::process('ListPage', array('blog' => $blog)));
     $tpl->assign('ListSearch', CopixZone::process('ListSearch', array('blog' => $blog)));
     $tpl->assign('ListFluxRss', CopixZone::process('ListFluxRss', array('blog' => $blog)));
     CopixHtmlHeader::addOthers('<link rel="alternate" href="' . CopixUrl::get('blog||rss', array("blog" => $blog->url_blog)) . '" type="application/rss+xml" title="' . htmlentities($blog->name_blog) . '" />');
     if ($blog->template) {
         $MAIN = $tpl->fetch($blog->template);
     } else {
         $MAIN = $tpl->fetch('blog_main.tpl');
     }
     $tpl->assign('MAIN', $MAIN);
     $tpl->assign('HEADER_MODE', 'compact');
     $plugStats = CopixPluginRegistry::get("stats|stats");
     $plugStats->setParams(array('module_id' => $blog->id_blog, 'parent_type' => $parent['type'], 'parent_id' => $parent['id']));
     return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl);
 }
 /**
  * Verouille les commentaires sur un élément
  */
 public function processLock()
 {
     // On teste si on peut rediriger le lien
     CopixRequest::assert('url_return');
     // On teste si on a un id
     if (_request('id') !== null) {
         $lock_status = CopixRequest::getInt('lock_status');
         if ($lock_status === 0) {
             if (_ioDAO('commentslocked')->countBy(_daoSp()->addCondition('locked_page_comment', '=', _request('id'))) != 0) {
                 _ioDAO('commentslocked')->deleteBy(_daoSp()->addCondition('locked_page_comment', '=', _request('id')));
             }
         } else {
             $objLocked = _record('commentslocked');
             $objLocked->locked_page_comment = _request('id');
             _ioDAO('commentslocked')->insert($objLocked);
         }
     }
     return _arRedirect(_request('url_return'));
 }
 /**
  * Supression d'un cache
  */
 public function processDeleteType()
 {
     $type = _request('type');
     if (CopixRequest::getInt('confirm') == 1) {
         if (Copixcache::exists($type)) {
             Copixcache::clear($type);
         }
         $types = CopixConfig::instance()->copixcache_getRegisteredProfiles();
         unset($types[$type]);
         _class('cacheConfigurationFile')->write($types);
         return _arRedirect(_url('cache|admin'));
     } else {
         if (!in_array($type, CopixConfig::instance()->copixcache_getRegistered())) {
             return _arRedirect(_url('cache|admin'));
         }
         return CopixActionGroup::process('generictools|Messages::getConfirm', array('message' => _i18n('cache.delete', $type), 'confirm' => _url('admin|cache|deleteType', array('type' => $type, 'confirm' => 1)), 'cancel' => _url('admin|cache|admin')));
     }
 }
 /**
  * Ecran de connexion
  */
 public function processForm()
 {
     $ppo = new CopixPPO();
     $ppo->TITLE_PAGE = _i18n('auth.connect');
     if (CopixAuth::getCurrentUser()->isConnected()) {
         $ppo->user = CopixAuth::getCurrentUser();
         return _arRedirect(_url('kernel||getHome'));
     }
     $config = CopixConfig::instance();
     if (count($config->copixauth_getRegisteredUserHandlers()) > 1 && CopixConfig::get('auth|multipleConnectionHandler')) {
         $ppo->noCredential = true;
     }
     $ppo->auth_url_return = CopixRequest::get('auth_url_return', _url('#'));
     $ppo->failed = array();
     if (CopixRequest::getInt('noCredential', 0)) {
         $ppo->failed[] = _i18n('auth.error.noCredentials');
     }
     if (CopixRequest::getInt('failed', 0)) {
         $ppo->failed[] = _i18n('auth.error.failedLogin');
     }
     $ppo->createUser = Copixconfig::get('auth|createUser');
     $ppo->conf_Saml_actif = CopixConfig::exists('default|conf_Saml_actif') ? CopixConfig::get('default|conf_Saml_actif') : 0;
     return _arPPO($ppo, 'login.form.php');
 }
 public function doFolder()
 {
     $kernel_service =& CopixClassesFactory::Create('kernel|kernel');
     if (!_request("album_id") || trim(_request("album_id")) == "" || !preg_match("/^[0-9]+\$/", _request("album_id"))) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('album.error.noalbumnumber'), 'back' => CopixUrl::get('||')));
     }
     $album_id = _request("album_id");
     if (Kernel::getLevel("MOD_ALBUM", $album_id) < PROFILE_CCV_PUBLISH) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.noRights'), 'back' => CopixUrl::get('||')));
     }
     $album_dao = CopixDAOFactory::create("album");
     $album = $album_dao->get($album_id);
     $dossier_id = CopixRequest::getInt('dossier_id', -1);
     if ($dossier_id == -1) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('album.error.nofoldernumber'), 'back' => CopixUrl::get('album||album', array('album_id' => $album_id))));
     }
     $dossier_dao = CopixDAOFactory::create("dossier");
     if ($dossier_id > 0) {
         $dossier = $dossier_dao->get($dossier_id);
         if ($dossier->dossier_album != $album_id) {
             return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('album.error.badfoldernumber'), 'back' => CopixUrl::get('album||album', array('album_id' => $album_id))));
         }
     } else {
         $dossier->dossier_id = 0;
         $dossier->dossier_album = $album_id;
         $dossier->dossier_parent = -1;
         $dossier->dossier_nom = CopixI18N::get('album|album.message.topfolder');
         $dossier->dossier_comment = "";
         $dossier->album_id = $album_id;
     }
     if (!_request("subaction")) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('album.error.badsubaction'), 'back' => CopixUrl::get('album||album', array('album_id' => $album_id, 'dossier_id' => $dossier_id))));
     }
     switch (_request("subaction")) {
         case 'new':
             $dossier_new = CopixDAOFactory::createRecord("dossier");
             $dossier_new->dossier_album = $album_id;
             $dossier_new->dossier_parent = $dossier_id;
             $dossier_new->dossier_nom = _request("folder_new", "Nouveau dossier");
             $dossier_new->dossier_comment = '';
             $dossier_new->dossier_date = date("Y-m-d H:i:s");
             $dossier_new->dossier_cle = substr(md5(microtime()), 0, 10);
             $dossier_new->dossier_public = '0';
             $dossier_dao->insert($dossier_new);
             return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('album|default|album', array('album_id' => $album_id, 'dossier_id' => $dossier_new->dossier_id)));
             break;
         case 'rename':
             $dossier->dossier_nom = _request("folder_rename");
             $dossier_dao->update($dossier);
             return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('album|default|album', array('album_id' => $album_id, 'dossier_id' => $dossier_id)));
             break;
         case 'move':
             $dossier->dossier_parent = _request("folder_move");
             $dossier_dao->update($dossier);
             return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('album|default|album', array('album_id' => $album_id, 'dossier_id' => $dossier_id)));
             break;
         case 'delete':
             // action=dofolder subaction=delete album_id=1& dossier_id=4 dossier_todo=moveparent
             Album::delFolder(_request("album_id"), _request("dossier_id"), _request("dossier_todo"));
             return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('album|default|album', array('album_id' => $album_id, 'dossier_id' => max(0, $dossier->dossier_parent))));
             break;
         default:
             return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('album.error.badsubaction'), 'back' => CopixUrl::get('album||album', array('album_id' => $album_id, 'dossier_id' => $dossier_id))));
             break;
     }
 }
 /**
  * Entree dans le module
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2010/08/26
  * @param integer $id Id du module
  */
 public function processGo()
 {
     $ppo = new CopixPPO();
     $iId = CopixRequest::getInt('id');
     $iSubmit = CopixRequest::getInt('submit');
     $this->addCss('styles/module_contact.css');
     $this->js->button('.button');
     $getLevel = Kernel::getLevel('MOD_CONTACT', $iId);
     //echo "getLevel=$getLevel";
     $rContact = _dao('contact|contacts')->get($iId);
     //print_r($rContact);
     if (!$rContact) {
         return $this->error('contact|contact.errors.param', true, CopixUrl::get('||'));
     }
     $ppo->types = _dao('contact|contacts_types')->findByContact($iId);
     $user = _currentUser();
     $possible = CopixConfig::get('|mailEnabled') == 1 && CopixConfig::get('|mailSmtpHost');
     if ($iSubmit) {
         // Submit du formulaire
         $record = _record('contact|contacts_messages');
         $record->contact = $iId;
         $record->to_email = $rContact->email;
         $record->date = date("Y-m-d H:i:s");
         $record->from_nom = _request('from_nom');
         $record->from_email = _request('from_email');
         $record->from_login = $user->getLogin();
         $record->from_user_id = $user->getId();
         $record->type = _request('type');
         $record->message = _request('message');
         $record->ip = $_SERVER["REMOTE_ADDR"];
         $check = _dao('contact|contacts_messages')->check($record);
         $ok = false;
         if (!is_array($check)) {
             // OK, pas d'erreurs
             _dao('contact|contacts_messages')->insert($record);
             if ($record->id) {
                 // Enregistrement bien passe
                 $type_nom = '';
                 foreach ($ppo->types as $type) {
                     if ($type->id == $record->type) {
                         $type_nom = $type->nom;
                     }
                 }
                 if ($possible) {
                     $to = $record->to_email;
                     $subject = $type_nom;
                     $message = CopixI18N::get('contact.mail.date') . " : " . date("d/m/Y H:i");
                     $message .= "\n" . CopixI18N::get('contact.mail.ip') . " : " . $record->ip;
                     $message .= "\n";
                     $message .= "\n" . CopixI18N::get('contact.mail.nom') . " : " . $record->from_nom;
                     if ($record->from_login) {
                         $message .= ' (' . $record->from_login . ')';
                     }
                     $message .= "\n" . CopixI18N::get('contact.mail.email') . " : " . $record->from_email;
                     $message .= "\n";
                     $message .= "\n" . CopixI18N::get('contact.mail.type') . " : " . $type_nom;
                     $message .= "\n" . CopixI18N::get('contact.mail.message') . " : " . $record->message;
                     $message .= "\n\n-- \n" . CopixUrl::get();
                     $from = $record->from_email;
                     $fromName = $record->from_nom;
                     if ($record->from_login) {
                         $fromName .= ' (' . $record->from_login . ')';
                     }
                     $cc = $cci = '';
                     $monMail = new CopixTextEMail($to, $cc, $cci, utf8_decode($subject), utf8_decode($message));
                     $send = $monMail->send(utf8_decode($from), utf8_decode($fromName));
                     if ($send) {
                         $ok = true;
                     } else {
                         $check = array(CopixI18N::get('contact|contact.errors.mailSend'));
                     }
                 } else {
                     $check = array(CopixI18N::get('contact|contact.errors.mailDisabledAfter'));
                 }
             } else {
                 $check = array(CopixI18N::get('contact|contact.errors.save'));
             }
         }
         $ppo->rForm = $record;
         $ppo->errors = $check;
         $ppo->ok = $ok;
     } else {
         $ppo->rForm = _record('contact|contacts_messages');
         foreach ($ppo->types as $type) {
             if ($type->is_default) {
                 $ppo->rForm->type = $type->id;
             }
         }
         $ppo->rForm->from_nom = trim($user->getExtra('prenom') . ' ' . $user->getExtra('nom'));
         $prefs = Prefs::getPrefs($user->getId());
         if (isset($prefs['prefs']['alerte_mail_email'])) {
             $ppo->rForm->from_email = $prefs['prefs']['alerte_mail_email'];
         }
         if (!$possible) {
             $ppo->errors = array(CopixI18N::get('contact|contact.errors.mailDisabled'));
         }
     }
     $ppo->TITLE_PAGE = $rContact->titre;
     return _arPPO($ppo, 'contact.tpl');
 }
 public function testInt()
 {
     $this->assertEquals(3, CopixRequest::getInt('element2'));
     $this->assertEquals(null, CopixRequest::getInt('elementFoo', null));
 }
 /**
  * Formulaire de saisie/modif d'un lien web
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2010/09/15
  */
 public function processPromptAddWeb()
 {
     $ppo = new CopixPPO();
     $ppo->id = CopixRequest::getInt('id');
     $ppo->folder = CopixRequest::getInt('folder');
     $ppo->rForm = new CopixPPO();
     $ppo->rForm->url = 'http://';
     return _arPPO($ppo, array('template' => 'popup_addweb.tpl', 'mainTemplate' => 'main|main_fancy.php'));
 }