public function _createContent(&$toReturn)
 {
     //Getting the user.
     //Create Services, and DAO
     $tpl = new CopixTpl();
     $id_blog = $this->getParam('id_blog', '');
     $tpl->assign('blog', $this->getParam('blog', null));
     $tpl->assign('id_blog', $id_blog);
     $tpl->assign('kind', $this->getParam('kind', ''));
     $tpl->assign('tabBlogFunctions', $this->getParam('tabBlogFunctions', null));
     $tpl->assign('can_format_articles', CopixConfig::get('blog|blog.default.can_format_articles'));
     $tpl->assign('RESULT', $this->getParam('RESULT', ''));
     $parent = Kernel::getModParentInfo("MOD_BLOG", $id_blog);
     if ($parent) {
         $mods = Kernel::getModEnabled($parent['type'], $parent['id'], '', 0, 1);
         // _dump($mods);
         $mods = Kernel::filterModuleList($mods, 'MOD_MAGICMAIL');
         if (count($mods)) {
             $magicmail_infos = _dao('module_magicmail')->get($mods[0]->module_id);
             $tpl->assign('magicmail_infos', $magicmail_infos);
             // _dump($magicmail_infos);
             /*
                'id' => '32',
                'login' => 'cepapeti',
                'domain' => 'magicmail.iconito.fr',
             */
         }
     }
     // retour de la fonction :
     $toReturn = $tpl->fetch('blog.show.tpl');
     return true;
 }
 /**
  * Récupération de tous les agendas en base de données
  * @author Audrey Vassal <*****@*****.**>
  * @since 2006/07/24
  * @return array tableau d'objet agenda
  */
 public function getAvailableAgenda()
 {
     //var_dump($_SESSION);
     if (!_sessionGet('modules|agenda|his')) {
         $serviceAuth = new AgendaAuth();
         $res = array();
         $ags = array();
         // 1. Son agenda perso
         $userInfo = Kernel::getUserInfo();
         // Création des modules inexistants.
         Kernel::createMissingModules($userInfo["type"], $userInfo["id"]);
         // Liste des modules activés.
         $modsList = Kernel::getModEnabled($userInfo["type"], $userInfo["id"]);
         foreach ($modsList as $modInfo) {
             if ($modInfo->module_type == "MOD_AGENDA" && $modInfo->module_id) {
                 $ags[] = $modInfo->module_id;
             }
         }
         // 2. Ceux de sa classe, son école, ses groupes...
         $mynodes = Kernel::getNodes();
         foreach ($mynodes as $nodes) {
             foreach ($nodes as $node) {
                 //print_r($node);
                 if (substr($node['type'], 0, 5) == 'USER_') {
                     continue;
                 }
                 $modules = Kernel::getModEnabled($node['type'], $node['id']);
                 $agenda = Kernel::filterModuleList($modules, 'MOD_AGENDA');
                 if ($agenda && $serviceAuth->getCapability($agenda[0]->module_id) >= $serviceAuth->getRead()) {
                     $ags[] = $agenda[0]->module_id;
                 }
             }
         }
         //print_r($ags);
         $daoAgenda =& CopixDAOFactory::getInstanceOf('agenda|agenda');
         $agendas = $daoAgenda->findAgendasInIds($ags);
         foreach ($agendas as $agenda) {
             $tmp = new stdClass();
             $tmp->id_agenda = $agenda->id_agenda;
             $tmp->title_agenda = $agenda->title_agenda;
             $tmp->desc_agenda = $agenda->desc_agenda;
             $tmp->type_agenda = $agenda->type_agenda;
             /*
                       $tmp = array (
                           'id_agenda' => $agenda->id_agenda,
                           'title_agenda' => $agenda->title_agenda,
                           'desc_agenda' => $agenda->desc_agenda,
                           'type_agenda' => $agenda->type_agenda,
                       );
             */
             $res[] = $tmp;
         }
         //die();
         //$sess = $daoAgenda->findAll ();
         _sessionSet('modules|agenda|his', serialize($res));
     }
     return unserialize(_sessionGet('modules|agenda|his'));
 }
 public function processAdmin()
 {
     //check if the user is admin :
     if (!Kernel::isAdmin()) {
         return $this->error('charte.noRight', true, '||');
     }
     $ppo = new CopixPPO();
     $ppo->errors = isset($this->flash->errors) ? $this->flash->errors : null;
     $ppo->success = isset($this->flash->success) ? $this->flash->success : null;
     $ppo->chartes = $this->service('CharteService')->getChartesTypes();
     $ppo->radio = array(1 => 'oui', 0 => 'non');
     $ppo->idClasseur = $ppo->idMalle = null;
     $modsAvailable = Kernel::getModAvailable($this->user->type);
     $malleAvailable = Kernel::filterModuleList($modsAvailable, 'MOD_MALLE');
     // Malle activée
     if (!empty($malleAvailable)) {
         $modsEnabled = Kernel::getModEnabled($this->user->type, $this->user->idEn);
         $mal = Kernel::filterModuleList($modsEnabled, 'MOD_MALLE');
         // Si la malle est bien initialisée
         if (!empty($mal)) {
             $ppo->idMalle = $mal[0]->module_id;
         } else {
             return $this->error('charte.admin.noMalle', true, 'malle||');
         }
     } else {
         $classeurAvailable = Kernel::filterModuleList($modsAvailable, 'MOD_CLASSEUR');
         // Classeur activé
         if (!empty($classeurAvailable)) {
             Kernel::createMissingModules($this->user->type, $this->user->idEn);
             $modsEnabled = Kernel::getModEnabled($this->user->type, $this->user->idEn);
             $classeur = Kernel::filterModuleList($modsEnabled, 'MOD_CLASSEUR');
             if (!empty($classeur)) {
                 $ppo->idClasseur = $classeur[0]->module_id;
             }
         }
     }
     CopixHTMLHeader::addCSSLink(_resource("styles/module_charte.css"));
     return _arPPO($ppo, 'charte.admin.tpl');
 }
 public function _createContent(&$toReturn)
 {
     //Getting the user.
     //Create Services, and DAO
     $tpl = new CopixTpl();
     $id_blog = $this->getParam('id_blog', '');
     //capability
     //$tpl->assign ('canManageDocument' , BlogAuth::canMakeInBlog('ADMIN_DOCUMENTS',create_blog_object($id_blog)));
     // On regarde si le parent a un album photos
     $parent = Kernel::getModParentInfo("MOD_BLOG", $id_blog);
     //print_r($parent);
     if ($parent) {
         $mods = Kernel::getModEnabled($parent['type'], $parent['id']);
         $mods = Kernel::filterModuleList($mods, 'MOD_MALLE');
         if ($mods) {
             $tpl->assign('album', $mods[0]->module_id);
         }
     }
     $tpl->assign('id_blog', $id_blog);
     $tpl->assign('kind', $this->getParam('kind', ''));
     // retour de la fonction :
     $toReturn = $tpl->fetch('blog.show.document.tpl');
     return true;
 }
 /**
  * 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);
 }
 /**
  * Fonction qui prépare l'affichage de la vue semaine
  */
 public function getVueSemaine()
 {
     CopixHTMLHeader::addCSSLink(_resource("styles/module_agenda.css"));
     CopixHtmlHeader::addJSLink(CopixUrl::get() . 'js/iconito/module_agenda.js');
     $obj = new AgendaService();
     $listAgendas = $obj->getAvailableAgenda();
     $agendaService = new AgendaService();
     $dateService = new DateService();
     if (($params = $this->_getSessionSemaineParams()) == null) {
         $params = new SemaineParams();
         $params->numSemaine = $this->getRequest('numSemaine', $dateService->dateToWeeknum(mktime()), true);
         $params->annee = $this->getRequest('annee', date('Y'), true);
     } else {
         $params->numSemaine = $this->getRequest('numSemaine', $params->numSemaine, true);
         $params->annee = $this->getRequest('annee', $params->annee, true);
     }
     //pour savoir si on a cliqué sur un agenda à afficher
     if (_request('updateAgendaAffiches')) {
         $arIdAgendas = array();
         foreach ($listAgendas as $agenda) {
             if (_request('agendas_' . $agenda->id_agenda)) {
                 $arIdAgendas[$agenda->id_agenda] = $agenda->id_agenda;
             }
         }
         $agendaService->setAgendaAffiches($arIdAgendas);
     }
     //on récupère en session les agendas à afficher
     $params->agendas = $agendaService->getAgendaAffiches();
     //on met à jour la session
     $this->_setSessionSemaineParams($params);
     //on determine la date de début et de fin de la semaine en cours d'affichage
     $dateDebutSemaine = date('Ymd', $dateService->numweekToDate($params->numSemaine, $params->annee, 1));
     //date au format bdd
     $dateFinSemaine = date('Ymd', $dateService->numweekToDate($params->numSemaine, $params->annee, 0));
     //date au format bdd
     $arEventsSemaine = array();
     //on récupère tous les évènements de la semaine en cours de vue
     foreach ((array) $params->agendas as $idAgenda) {
         $arEventsSemaine[$idAgenda] = $agendaService->checkEventOfAgendaInBdd($idAgenda, $dateDebutSemaine, $dateFinSemaine);
     }
     //on classe ces évènements par jour
     $arEventByDay = $agendaService->getEventsByDay($arEventsSemaine, $dateDebutSemaine, $dateFinSemaine);
     //on ordonne les évènements par ordre croissant d'heure de début d'évènement dans la journée
     $arEventByDay = $agendaService->getEventsInOrderByDay($arEventByDay);
     //on détermine l'heure de début et l'heure de fin pour l'affichage du calendrier
     //on travail sur des heures sans séparateur pour pouvoir les comparer
     $heureDeb = CopixConfig::get('agenda|heuredebcal');
     $heureFin = CopixConfig::get('agenda|heurefincal');
     foreach ((array) $arEventByDay as $jours) {
         if (!isset($jours->events)) {
             continue;
         }
         //print_r($jours);
         foreach ((array) $jours->events as $event) {
             if ($event->alldaylong_event == 0) {
                 if ($dateService->heureWithSeparateurToheureWithoutSeparateur($event->heuredeb_event) < $dateService->heureWithSeparateurToheureWithoutSeparateur($heureDeb)) {
                     $heureDeb = $dateService->heureWithSeparateurToheureWithoutSeparateur($event->heuredeb_event);
                 }
                 if ($dateService->heureWithSeparateurToheureWithoutSeparateur($heureFin) < $dateService->heureWithSeparateurToheureWithoutSeparateur($event->heurefin_event)) {
                     $heureFin = $dateService->heureWithSeparateurToheureWithoutSeparateur($event->heurefin_event);
                 }
             }
         }
     }
     //on arrondit à l'heure inférieure pour l'heure de début et à l'heure supérieure pour l'heure de fin
     $heureDeb = substr($heureDeb, 0, 2);
     if (substr($heureFin, 2, 2) == 0) {
         //si les minutes sont à 0, on arrondit à l'heure
         $heureFin = substr($heureFin, 0, 2);
     } else {
         //si les minutes ne sont pas à 0, on arrondit à l'heure supérieure
         $heureFin = substr($heureFin, 0, 2) + 1;
     }
     //on récupère les leçons de la semaine à afficher
     $arLecons = $agendaService->getLeconsByDay((array) $params->agendas, $dateDebutSemaine, $dateFinSemaine);
     // On récupère les travaux de la semaine par agenda
     $travailDAO = _ioDAO('cahierdetextes|cahierdetextestravail');
     $agenda2cahier = array();
     $arTravauxEnClasse = array();
     $arTravauxAFaire = array();
     foreach ($params->agendas as $agendaId) {
         $agendaInfos = Kernel::getModParentInfo('MOD_AGENDA', $agendaId);
         $agendaType = AgendaType::getAgendaTypeForNode($agendaInfos['type'], $agendaInfos['id']);
         $mods = Kernel::getModEnabled($agendaInfos['type'], $agendaInfos['id']);
         $cahierDeTextes = Kernel::filterModuleList($mods, 'MOD_CAHIERDETEXTES');
         $agendaLevel = Kernel::getLevel($agendaInfos['type'], $agendaInfos['id']);
         if (isset($cahierDeTextes[0])) {
             $agenda2cahier[$agendaId] = $cahierDeTextes[0]->module_id;
             $travauxEnClasse = $travailDAO->findTravauxEnClasseByAgendaParJour($agendaId, $dateDebutSemaine, $dateFinSemaine, $agendaInfos['type'], $agendaInfos['id'], $agendaLevel);
             if (!is_null($travauxEnClasse)) {
                 foreach ($travauxEnClasse as $date => $travail) {
                     $arTravauxEnClasse[$date][$agendaId] = $travail;
                 }
             }
             $travauxAFaire = $travailDAO->findTravauxAFaireByAgendaParJour($agendaId, $dateDebutSemaine, $dateFinSemaine, $agendaInfos['type'], $agendaInfos['id'], $agendaLevel);
             if (!is_null($travauxAFaire)) {
                 foreach ($travauxAFaire as $date => $travail) {
                     $arTravauxAFaire[$date][$agendaId] = $travail;
                 }
             }
         }
     }
     //récupération de la liste des agendas affichés
     $listAgendasAffiches = $obj->getAgendaAffiches();
     //template pour agenda
     $tplAgenda = new CopixTpl();
     $tplAgenda->assign('MAIN_AGENDA', CopixZone::process('agenda|agendavuesemaine', array('elementsSemaineAffichee' => $params, 'arEventByDay' => $arEventByDay, 'heureDeb' => $heureDeb, 'heureFin' => $heureFin, 'arLecons' => $arLecons, 'arTravauxEnClasse' => $arTravauxEnClasse, 'arTravauxAFaire' => $arTravauxAFaire, 'agenda2cahier' => $agenda2cahier)));
     $title = $obj->getCurrentTitle();
     //template principal
     $tpl = new CopixTpl();
     $tpl->assign('TITLE_PAGE', $title['title']);
     $menu = $agendaService->getAgendaMenu('week');
     $tpl->assign('MENU', $menu);
     $tpl->assign('MAIN', $tplAgenda->fetch('agenda|main.agenda.tpl'));
     return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl);
 }
 /**
  * Edition d'un mémo - * Enseignant *
  */
 public function processEditerMemo()
 {
     $ppo = new CopixPPO();
     if (is_null($ppo->cahierId = _request('cahierId', null))) {
         return CopixActionGroup::process('generictools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.errorOccurred'), 'back' => CopixUrl::get('')));
     } elseif (Kernel::getLevel('MOD_CAHIERDETEXTES', $ppo->cahierId) < PROFILE_CCV_PUBLISH) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('kernel|kernel.error.noRights'), 'back' => CopixUrl::get('')));
     }
     // Récupération des paramètres
     $ppo->jour = _request('jour', date('d'));
     $ppo->mois = _request('mois', date('m'));
     $ppo->annee = _request('annee', date('Y'));
     $ppo->msgSuccess = _request('msgSuccess', false);
     $ppo->dateSelectionnee = mktime(0, 0, 0, $ppo->mois, $ppo->jour, $ppo->annee);
     $ppo->format = CopixConfig::get('cahierdetextes|format_par_defaut');
     $cahierInfos = Kernel::getModParent('MOD_CAHIERDETEXTES', $ppo->cahierId);
     $ppo->nodeInfos = array('type' => $cahierInfos[0]->module_type, 'id' => $cahierInfos[0]->module_id);
     if (is_null($memoId = _request('memoId', null))) {
         $ppo->memo = _record('cahierdetextes|cahierdetextesmemo');
     } else {
         $memoDAO = _ioDAO('cahierdetextes|cahierdetextesmemo');
         $ppo->memo = $memoDAO->get($memoId);
         $ppo->memo->date_creation = CopixDateTime::yyyymmddToDate($ppo->memo->date_creation);
         $ppo->memo->date_validite = CopixDateTime::yyyymmddToDate($ppo->memo->date_validite);
         $ppo->memo->date_max_signature = CopixDateTime::yyyymmddToDate($ppo->memo->date_max_signature);
         // Récupération des élèves liés au mémo
         $memo2eleveDAO = _ioDAO('cahierdetextes|cahierdetextesmemo2eleve');
         $ppo->elevesSelectionnes = $memo2eleveDAO->findElevesParMemo($ppo->memo->id);
         // Récupération des fichiers liés au mémo
         $fichierMalleDAO = _ioDAO('malle|malle_files');
         $fichierClasseurDAO = _ioDAO('classeur|classeurfichier');
         $memo2fichiersDAO = _ioDAO('cahierdetextes|cahierdetextesmemo2files');
         $memo2fichiers = $memo2fichiersDAO->retrieveByMemo($ppo->memo->id);
         $ppo->fichiers = array();
         $fichiers = array();
         foreach ($memo2fichiers as $memo2fichier) {
             if ($memo2fichier->module_file == 'MOD_MALLE') {
                 if ($fichier = $fichierMalleDAO->get($memo2fichier->file_id)) {
                     $ppo->fichiers[] = array('type' => $memo2fichier->module_file, 'id' => $memo2fichier->file_id, 'nom' => $fichier->nom);
                 }
             } elseif ($memo2fichier->module_file == 'MOD_CLASSEUR') {
                 if ($fichier = $fichierClasseurDAO->get($memo2fichier->file_id)) {
                     $ppo->fichiers[] = array('type' => $memo2fichier->module_file, 'id' => $memo2fichier->file_id, 'nom' => $fichier);
                 }
             }
         }
     }
     if (CopixRequest::isMethod('post')) {
         $cahierInfos = Kernel::getModParent('MOD_CAHIERDETEXTES', $ppo->cahierId);
         $ppo->memo->classe_id = $cahierInfos[0]->node_id;
         $ppo->memo->date_creation = CopixDateTime::dateToyyyymmdd(_request('memo_date_creation', null));
         $ppo->memo->date_validite = CopixDateTime::dateToyyyymmdd(_request('memo_date_validite', null));
         $ppo->memo->message = _request('memo_message', null);
         $ppo->memo->avec_signature = _request('memo_avec_signature', 0);
         $ppo->memo->date_max_signature = CopixDateTime::dateToyyyymmdd(_request('memo_date_max_signature', null));
         $ppo->memo->supprime = 0;
         $ppo->elevesSelectionnes = _request('eleves', array());
         $ppo->fichiers = _request('memo_fichiers', array());
         // Traitement des erreurs
         $ppo->erreurs = array();
         if ($ppo->memo->date_creation == '') {
             $ppo->erreurs[] = CopixI18N::get('cahierdetextes|cahierdetextes.error.noCreationDate');
         }
         if ($ppo->memo->date_validite == '') {
             $ppo->erreurs[] = CopixI18N::get('cahierdetextes|cahierdetextes.error.noValidityDate');
         }
         if (!is_null($ppo->memo->date_validite) && $ppo->memo->date_validite < $ppo->memo->date_creation) {
             $ppo->erreurs[] = CopixI18N::get('cahierdetextes|cahierdetextes.error.wrongValidityDate');
         }
         if ($ppo->memo->message == '') {
             $ppo->erreurs[] = CopixI18N::get('cahierdetextes|cahierdetextes.error.noContent');
         }
         if ($ppo->memo->avec_signature && $ppo->memo->date_max_signature == '') {
             $ppo->erreurs[] = CopixI18N::get('cahierdetextes|cahierdetextes.error.noSignatureDate');
         }
         if (!is_null($ppo->memo->date_max_signature) && !is_null($ppo->memo->date_validite) && ($ppo->memo->date_max_signature > $ppo->memo->date_validite || $ppo->memo->date_max_signature < $ppo->memo->date_creation)) {
             $ppo->erreurs[] = CopixI18N::get('cahierdetextes|cahierdetextes.error.wrongMaxSignatureDate');
         }
         if (empty($ppo->elevesSelectionnes)) {
             $ppo->erreurs[] = CopixI18N::get('cahierdetextes|cahierdetextes.error.noStudents');
         }
         if (!empty($ppo->fichiers)) {
             $ppo->fichiers = array_unique($ppo->fichiers);
             // Récupération de l'identifiant de la malle du node
             $mods = Kernel::getModEnabled($cahierInfos[0]->node_type, $cahierInfos[0]->node_id);
             if ($malle = Kernel::filterModuleList($mods, 'MOD_MALLE')) {
                 $malleId = $malle[0]->module_id;
             }
             // Récupération des identifiants de classeur
             $classeurIds = array();
             // Classeur du node
             $mods = Kernel::getModEnabled($cahierInfos[0]->node_type, $cahierInfos[0]->node_id);
             if ($classeur = Kernel::filterModuleList($mods, 'MOD_CLASSEUR')) {
                 $classeurIds[] = $classeur[0]->module_id;
             }
             // Classeur personnel
             $mods = Kernel::getModEnabled(_currentUser()->getExtra('type'), _currentUser()->getExtra('id'));
             if ($classeur = Kernel::filterModuleList($mods, 'MOD_CLASSEUR')) {
                 $classeurIds[] = $classeur[0]->module_id;
             }
             // On détermine s'il s'agit de documents de la malle ou du classeur
             foreach ($ppo->fichiers as $fichierInfos) {
                 $fichierInfos = explode('-', $fichierInfos);
                 if ($fichierInfos[0] == 'MOD_MALLE') {
                     // Erreur : le fichier n'appartient pas à la malle du node
                     if (!$fichierMalleDAO->isFileOfMalle($fichierInfos[1], $malleId)) {
                         $ppo->erreurs[] = CopixI18N::get('cahierdetextes|cahierdetextes.error.invalidFile');
                         break;
                     } else {
                         $fichier = $fichierMalleDAO->get($fichierInfos[1]);
                         $fichiers[] = array('type' => $fichierInfos[0], 'id' => $fichierInfos[1], 'nom' => $fichier->nom);
                     }
                 } elseif ($fichierInfos[0] == 'MOD_CLASSEUR') {
                     $fichier = $fichierClasseurDAO->get($fichierInfos[1]);
                     // Erreur : le fichier n'appartient pas aux classeurs disponible à l'utilisateur
                     if (!in_array($fichier->classeur_id, $classeurIds)) {
                         $ppo->erreurs[] = CopixI18N::get('cahierdetextes|cahierdetextes.error.invalidFile');
                         break;
                     } else {
                         $fichiers[] = array('type' => $fichierInfos[0], 'id' => $fichierInfos[1], 'nom' => $fichier);
                     }
                 }
             }
         }
         if (!empty($ppo->erreurs)) {
             $ppo->memo->date_creation = _request('memo_date_creation', null);
             $ppo->memo->date_validite = _request('memo_date_validite', null);
             $ppo->memo->date_max_signature = _request('memo_date_max_signature', null);
             if (isset($fichiers)) {
                 $ppo->fichiers = $fichiers;
             }
             $modParentInfo = Kernel::getModParentInfo('MOD_CAHIERDETEXTES', $ppo->cahierId);
             $ppo->TITLE_PAGE = $modParentInfo['nom'];
             return _arPPO($ppo, 'editer_memo.tpl');
         }
         $memoDAO = _ioDAO('cahierdetextes|cahierdetextesmemo');
         $memo2eleveDAO = _ioDAO('cahierdetextes|cahierdetextesmemo2eleve');
         $memo2fichierDAO = _ioDAO('cahierdetextes|cahierdetextesmemo2files');
         // Création
         if ($ppo->memo->id == '') {
             // Insertion de l'enregistrement "memo"
             $memoDAO->insert($ppo->memo);
         } else {
             // Mise à jour de l'enregistrement "memo"
             $memoDAO->update($ppo->memo);
             // Suppression des relations memo - eleves existantes
             $memo2eleveDAO->deleteByMemo($ppo->memo->id);
             // Suppression des relations memo - fichiers existantes
             $memo2fichierDAO->deleteByMemo($ppo->memo->id);
         }
         // Insertion des nouveaux liens memo > eleve
         foreach ($ppo->elevesSelectionnes as $eleveId) {
             $memo2eleve = _record('cahierdetextes|cahierdetextesmemo2eleve');
             $memo2eleve->memo_id = $ppo->memo->id;
             $memo2eleve->eleve_id = $eleveId;
             $memo2eleveDAO->insert($memo2eleve);
         }
         // Insertion des liens "mémo > fichiers"
         if (!empty($fichiers)) {
             foreach ($fichiers as $fichier) {
                 $memo2fichier = _record('cahierdetextes|cahierdetextesmemo2files');
                 $memo2fichier->memo_id = $ppo->memo->id;
                 $memo2fichier->module_file = $fichier['type'];
                 $memo2fichier->file_id = $fichier['id'];
                 $memo2fichierDAO->insert($memo2fichier);
             }
         }
         return _arRedirect(CopixUrl::get('cahierdetextes||voirMemos', array('cahierId' => $ppo->cahierId, 'msgSuccess' => CopixI18N::get('cahierdetextes|cahierdetextes.message.success'))));
     }
     $modParentInfo = Kernel::getModParentInfo('MOD_CAHIERDETEXTES', $ppo->cahierId);
     $ppo->TITLE_PAGE = $modParentInfo['nom'];
     return _arPPO($ppo, 'editer_memo.tpl');
 }
 /**
  * Préparation de l'édition d'un blog.
  */
 public function processGetShowBlog()
 {
     $id_blog = $this->getRequest('id_blog', null);
     $blogDAO = CopixDAOFactory::create('blog|blog');
     $blog = $blogDAO->get($id_blog);
     if (!BlogAuth::canMakeInBlog('ACCESS_ADMIN', $blog)) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('blog.error.cannotManageBlog'), 'back' => $blog ? CopixUrl::get('|', array('blog' => $blog->url_blog)) : CopixUrl::get('||')));
     }
     if ($id_blog == null) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('blog.error.param'), 'back' => CopixUrl::get('||')));
     }
     $kind = $this->getRequest('kind', '0');
     $tpl = new CopixTpl();
     $tabBlogFunctions = null;
     $result = null;
     if ($kind == '0') {
         // Articles
         CopixHTMLHeader::addCSSLink(_resource("styles/module_blog.css"));
         $selectCategory = $this->getRequest('selectCategory', '');
         $selectMonth = $this->getRequest('selectMonth', '');
         $id_bact = $this->getRequest('id_bact', '');
         $result = CopixZone::process('ShowBlogArticle', array('id_blog' => $id_blog, 'blog' => $blog, 'kind' => $kind, 'selectCategory' => $selectCategory, 'selectMonth' => $selectMonth, 'id_bact' => $id_bact, 'p' => $this->getRequest('p', '')));
     } else {
         if ($kind == '1') {
             // Catégories
             $result = CopixZone::process('ShowBlogCategory', array('id_blog' => $id_blog, 'kind' => $kind));
         } else {
             if ($kind == '2') {
                 // Liens
                 $result = CopixZone::process('ShowBlogLink', array('id_blog' => $id_blog, 'kind' => $kind));
             } else {
                 if ($kind == '3') {
                     // Photos
                     $can = BlogAuth::canMakeInBlog('ADMIN_PHOTOS', $blog);
                     if ($can) {
                         $parent = Kernel::getModParentInfo("MOD_BLOG", $id_blog);
                         if ($parent) {
                             $mods = Kernel::getModEnabled($parent['type'], $parent['id']);
                             $mods = Kernel::filterModuleList($mods, 'MOD_ALBUM');
                             if ($mods && $mods[0]) {
                                 return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('album||go', array('id' => $mods[0]->module_id)));
                             }
                         }
                     }
                     // Si on arrive là, c'est pas normal
                     $result = CopixZone::process('ShowBlogPhoto', array('id_blog' => $id_blog, 'kind' => $kind));
                 } else {
                     if ($kind == '7') {
                         // Documents
                         $can = BlogAuth::canMakeInBlog('ADMIN_DOCUMENTS', $blog);
                         if ($can) {
                             $parent = Kernel::getModParentInfo("MOD_BLOG", $id_blog);
                             if ($parent) {
                                 $mods = Kernel::getModEnabled($parent['type'], $parent['id']);
                                 $mods = Kernel::filterModuleList($mods, 'MOD_MALLE');
                                 if ($mods && $mods[0]) {
                                     return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('malle||go', array('id' => $mods[0]->module_id)));
                                 }
                             }
                         }
                         // Si on arrive là, c'est pas normal
                         $result = CopixZone::process('ShowBlogDocument', array('id_blog' => $id_blog, 'kind' => $kind));
                     } else {
                         if ($kind == '5') {
                             // Pages
                             $result = CopixZone::process('ShowBlogPage', array('id_blog' => $id_blog, 'kind' => $kind));
                         } else {
                             if ($kind == '6') {
                                 // RSS
                                 $result = CopixZone::process('ShowBlogFluxRss', array('id_blog' => $id_blog, 'kind' => $kind));
                             } else {
                                 if ($kind == '8') {
                                     // Droits particuliers sur le blog
                                     $result = CopixZone::process('ShowBlogDroits', array('blog' => $blog, 'kind' => $kind, 'errors' => $this->getRequest('errors'), 'membres' => $this->getRequest('membres'), 'droit' => $this->getRequest('droit')));
                                 } else {
                                     if ($kind == '9') {
                                         // Stats du blog
                                         $result = CopixZone::process('stats|module', array('module_type' => 'MOD_BLOG', 'module_id' => $id_blog, 'date' => $this->getRequest('date'), 'mois' => $this->getRequest('mois'), 'annee' => $this->getRequest('annee'), 'url' => CopixUrl::get('blog|admin|showBlog', array("id_blog" => $id_blog, "kind" => $kind)), 'errors' => $this->getRequest('errors')));
                                     } else {
                                         // Options
                                         $kind = 4;
                                         $tabFunctions = returnAllBlogFunctions();
                                         $blogFunctionsDAO = CopixDAOFactory::create('blog|blogfunctions');
                                         $resBlogFunctions = $blogFunctionsDAO->get($id_blog);
                                         $tabBlogFunctions = array();
                                         if ($resBlogFunctions != null) {
                                             foreach ($tabFunctions as $fct) {
                                                 eval('if($resBlogFunctions->' . $fct->value . '==\'1\')array_push($tabBlogFunctions, $fct);');
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     $menu = getBlogAdminMenu($blog, $kind);
     $tpl->assign('TITLE_PAGE', $blog->name_blog);
     $tpl->assign('MENU', $menu);
     // _dump($blog);
     $tpl->assign('MAIN', CopixZone::process('ShowBlog', array('id_blog' => $id_blog, 'blog' => $blog, 'kind' => $kind, 'tabBlogFunctions' => $tabBlogFunctions, 'RESULT' => $result)));
     return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl);
 }
 /**
  * Affiche la série de boutons permettant à l'utilisateur de mettre en forme simplement le texte qu'il saisit dans une zone de texte libre.
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2005/12/28
  * @param string $field Nom du champ dans le formulaire. Correspond à l'attribut "name" et "id" dans le template (les deux doivent être positionnés)
  * @param string $format Format de la zone de saisie (wiki, html, fckeditor...)
  * @param array $objet (option) Module dans lequel se trouve la barre wiki, dans un tableau indexé avec TYPE et ID (exemple: type=>MOD_BLOG, ID=>4). Si positionné, on va vérifier si le parent de cet objet a un album photos, une malle et un classeur, et si oui on affiche les liens vers l'album photos, la malle et le classeur en mode popup
  */
 public function _createContent(&$toReturn)
 {
     $tpl = new CopixTpl();
     $field = $this->getParam('field', NULL);
     $format = $this->getParam('format', NULL);
     $object = $this->getParam('object', NULL);
     $withAlbum = $this->getParam('withAlbum', true);
     CopixHtmlHeader::addJSLink(CopixUrl::get() . 'js/iconito/wikibuttons.js');
     if ($field && $format) {
         $buttonAlbum = $buttonMalle = $buttonClasseur = array();
         // Bouton album photos et malle
         $buttons = array();
         // Tableau avec les boutons
         switch ($format) {
             case "wiki":
                 CopixHtmlHeader::addJSLink(CopixUrl::get() . 'js/iconito/format_' . $format . '.js');
                 $buttons[] = array('titre' => CopixI18N::get('wikibuttons.bold'), 'accesskey' => 'g', 'tabindex' => 10, 'link' => "javascript:bbstyle('','{$field}',0);");
                 // Gras
                 $buttons[] = array('titre' => CopixI18N::get('wikibuttons.italic'), 'accesskey' => 'i', 'tabindex' => 11, 'link' => "javascript:bbstyle('','{$field}',2);");
                 // Italique
                 $buttons[] = array('titre' => CopixI18N::get('wikibuttons.image'), 'accesskey' => 'm', 'tabindex' => 12, 'link' => "javascript:bblink('','{$field}',12);");
                 // Image
                 $buttons[] = array('titre' => CopixI18N::get('wikibuttons.link'), 'accesskey' => 'l', 'tabindex' => 13, 'link' => "javascript:bblink('','{$field}',8);");
                 // Lien
                 $buttons[] = array('titre' => CopixI18N::get('wikibuttons.hr'), 'accesskey' => 'h', 'tabindex' => 14, 'link' => "javascript:bbcar('','{$field}',4);");
                 // HR
                 $buttons[] = array('titre' => CopixI18N::get('wikibuttons.h1'), 'accesskey' => 'j', 'tabindex' => 15, 'link' => "javascript:bblink('','{$field}',20);");
                 // H1
                 $buttons[] = array('titre' => CopixI18N::get('wikibuttons.h2'), 'accesskey' => 'v', 'tabindex' => 16, 'link' => "javascript:bblink('','{$field}',22);");
                 // H2
                 $buttons[] = array('titre' => CopixI18N::get('wikibuttons.h3'), 'accesskey' => 'w', 'tabindex' => 17, 'link' => "javascript:bblink('','{$field}',24);");
                 // H3
                 break;
             case "dokuwiki":
                 CopixHtmlHeader::addJSLink(CopixUrl::get() . 'js/iconito/format_' . $format . '.js');
                 $buttons[] = array('titre' => CopixI18N::get('wikibuttons.bold'), 'accesskey' => 'g', 'tabindex' => 10, 'link' => "javascript:bbstyle('','{$field}',0);", 'icon' => 'bold.png');
                 // Gras
                 $buttons[] = array('titre' => CopixI18N::get('wikibuttons.italic'), 'accesskey' => 'i', 'tabindex' => 11, 'link' => "javascript:bbstyle('','{$field}',2);", 'icon' => 'italic.png');
                 // Italique
                 $buttons[] = array('titre' => CopixI18N::get('wikibuttons.underline'), 'accesskey' => 's', 'tabindex' => 12, 'link' => "javascript:bbstyle('','{$field}',4);", 'icon' => 'underline.png');
                 // Souligne
                 $buttons[] = array('titre' => CopixI18N::get('wikibuttons.image'), 'accesskey' => 'm', 'tabindex' => 12, 'link' => "javascript:bblink('','{$field}',12);", 'icon' => 'image.png');
                 // Image
                 $buttons[] = array('titre' => CopixI18N::get('wikibuttons.link'), 'accesskey' => 'l', 'tabindex' => 13, 'link' => "javascript:bblink('','{$field}',8);", 'icon' => 'linkextern.png');
                 // Lien
                 $buttons[] = array('titre' => CopixI18N::get('wikibuttons.email'), 'accesskey' => 'e', 'tabindex' => 13, 'link' => "javascript:bblink('','{$field}',10);", 'icon' => '../../tpl/default/images/mail_icon.gif');
                 // Email
                 $buttons[] = array('titre' => CopixI18N::get('wikibuttons.hr'), 'accesskey' => 'h', 'tabindex' => 14, 'link' => "javascript:bbcar('','{$field}',4);", 'icon' => 'hr.png');
                 // HR
                 $buttons[] = array('titre' => CopixI18N::get('wikibuttons.h1'), 'accesskey' => 'j', 'tabindex' => 15, 'link' => "javascript:bblink('','{$field}',20);", 'icon' => 'h1.png');
                 // H1
                 $buttons[] = array('titre' => CopixI18N::get('wikibuttons.h2'), 'accesskey' => 'v', 'tabindex' => 16, 'link' => "javascript:bblink('','{$field}',22);", 'icon' => 'h2.png');
                 // H2
                 $buttons[] = array('titre' => CopixI18N::get('wikibuttons.h3'), 'accesskey' => 'w', 'tabindex' => 17, 'link' => "javascript:bblink('','{$field}',24);", 'icon' => 'h3.png');
                 // H3
                 $buttons[] = array('titre' => CopixI18N::get('wikibuttons.ul'), 'accesskey' => 'w', 'tabindex' => 17, 'link' => "javascript:bbcar('','{$field}',5);", 'icon' => 'ul.png');
                 // UL
                 $buttons[] = array('titre' => CopixI18N::get('wikibuttons.ol'), 'accesskey' => 'w', 'tabindex' => 17, 'link' => "javascript:bbcar('','{$field}',6);", 'icon' => 'ol.png');
                 // OL
                 break;
         }
         if ($object) {
             $user_type = _currentUser()->getExtra('type');
             $user_id = _currentUser()->getExtra('id');
             if ('USER' === $object) {
                 Kernel::createMissingModules($user_type, $user_id);
                 $parent = array('type' => $user_type, 'id' => $user_id);
             } elseif (preg_match('/^MOD_/', $object['type'])) {
                 $parent = Kernel::getModParentInfo($object['type'], $object['id']);
             } else {
                 $parent = Kernel::getNodeInfo($object['type'], $object['id']);
             }
             if ($parent) {
                 $mods = Kernel::getModEnabled($parent['type'], $parent['id']);
                 $alb = Kernel::filterModuleList($mods, 'MOD_ALBUM');
                 if ($alb && $withAlbum) {
                     $url = CopixUrl::get('album||getpopup', array('album_id' => $alb[0]->module_id, 'field' => $field, 'format' => $format));
                     $buttonAlbum = array('titre' => CopixI18N::get('wikibuttons.album'), 'accesskey' => 'a', 'tabindex' => 18, 'link' => $url);
                     // Album photos
                 }
                 $mal = Kernel::filterModuleList($mods, 'MOD_MALLE');
                 if ($mal) {
                     $url = CopixUrl::get('malle|malle|getMallePopup', array('id' => $mal[0]->module_id, 'field' => $field, 'format' => $format));
                     $buttonMalle = array('titre' => CopixI18N::get('wikibuttons.malleTxt'), 'accesskey' => 'd', 'tabindex' => 19, 'link' => $url);
                     // Malle
                 }
                 $cla = Kernel::filterModuleList($mods, 'MOD_CLASSEUR');
                 if ($cla) {
                     $url = CopixUrl::get('classeur||getClasseurPopup', array('classeurId' => $cla[0]->module_id, 'field' => $field, 'format' => $format, 'withPersonal' => 1, 'moduleType' => $object['type'], 'moduleId' => $object['id']));
                     $buttonClasseur = array('titre' => CopixI18N::get('wikibuttons.classeurTxt'), 'accesskey' => 'd', 'tabindex' => 20, 'link' => $url);
                     // Classeur
                 }
             }
         }
         $tpl->assign('format', $format);
         $tpl->assign('buttons', $buttons);
         $tpl->assign('buttonAlbum', $buttonAlbum);
         $tpl->assign('buttonMalle', $buttonMalle);
         $tpl->assign('buttonClasseur', $buttonClasseur);
         $tpl->assign('field', $field);
         $toReturn = $tpl->fetch('wikibuttons.tpl');
     }
     return true;
 }