public function _createContent(&$toReturn)
 {
     $tpl = new CopixTpl();
     $blog = $this->getParam('blog', '');
     $cat = $this->getParam('cat', null);
     $critere = $this->getParam('critere', null);
     //on récupère l'ensemble des articles du blog
     $dao = _dao('blog|blogarticle');
     if ($cat == null) {
         $date = $this->getParam('date', null);
         $arData = $dao->getAllArticlesFromBlog($blog->id_blog, $date);
     } else {
         $arData = $dao->getAllArticlesFromBlogByCat($blog->id_blog, $cat->id_bacg);
         $tpl->assign('cat', $cat);
     }
     //on filtre si on a fait une recherche sur les articles
     if ($critere != null) {
         $arData = $dao->getAllArticlesFromBlogByCritere($blog->id_blog, $critere);
     }
     //var_dump($arData);
     //on construit un tableau associatif entre l'identifiant de l'article et le nombre de commentaires
     foreach ($arData as $article) {
         //var_dump($article);
         $daoArticleComment =& CopixDAOFactory::getInstanceOf('blog|blogarticlecomment');
         $record = _record('blog|blogarticlecomment');
         $criteres = _daoSp();
         $criteres->addCondition('id_bact', '=', $article->id_bact);
         $criteres->addCondition('is_online', '=', 1);
         $resultat = $daoArticleComment->findBy($criteres);
         $arNbCommentByArticle[$article->id_bact] = count($resultat);
     }
     if (count($arData) > 0) {
         //encodage des URL des catégories pour caractères spéciaux
         foreach ($arData as $key => $data) {
             //Modification suite à apparition d'un warning due à l'absence de catégories , vboniface 06.11.2006
             $arData[$key]->key = $key;
             if (isset($arData[$key]->categories)) {
                 foreach ($arData[$key]->categories as $keyCat => $categorie) {
                     $arData[$key]->categories[$keyCat]->url_bacg = urlencode($categorie->url_bacg);
                 }
             }
         }
         if (count($arData) <= intval(CopixConfig::get('blog|nbMaxArticles'))) {
             $tpl->assign('pager', "");
             $tpl->assign('listArticle', $arData);
             $tpl->assign('arNbCommentByArticle', $arNbCommentByArticle);
         } else {
             $params = array('perPage' => intval(CopixConfig::get('blog|nbMaxArticles')), 'delta' => 5, 'recordSet' => $arData, 'template' => '|pager.tpl');
             $Pager = CopixPager::Load($params);
             $tpl->assign('pager', $Pager->GetMultipage());
             $tpl->assign('listArticle', $Pager->data);
             $tpl->assign('arNbCommentByArticle', $arNbCommentByArticle);
         }
         //rajout suite à bug mantis 54 vboniface 06.11.2006
         $tpl->assign('blog', $blog);
     }
     // retour de la fonction :
     $toReturn = $tpl->fetch('listarticle.tpl');
     return true;
 }
 public function _createContent(&$toReturn)
 {
     $agendaService = new AgendaService();
     $serviceDate = new DateService();
     //on détermine le jour d'affichage
     if ($this->getParam('day') == null) {
         $day = date('Ymd');
     } else {
         $day = $this->getParam('day');
     }
     //on récupère les évènements de la journée
     foreach ($this->getParam('arAgendasAffiches') as $idAgenda) {
         $arEventsSemaine[$idAgenda] = $agendaService->checkEventOfAgendaInBdd($idAgenda, $day, $day);
     }
     //on ordonne les évènements par ordre croissant d'heure de début d'évènement dans la journée
     $arEventByDay = $agendaService->getEventsByDay($arEventsSemaine, $day, $day);
     $arEventByDay = $agendaService->getEventsInOrderByDay($arEventByDay);
     //on simplifie le tableau pour le passer à la zone
     $arDayEvent = $arEventByDay[$day]->events;
     //on récupère la couleur d'affichage de chaque évènement
     //$arColorByEvent = $agendaService->getColorByIdEvent($arDayEvent);
     $arAgendas = $agendaService->getTilteAgendaByIdAgenda($this->getParam('arAgendasAffiches'));
     //on récupère la couleur d'affichage pour chaque agenda
     $boolCroise = array();
     $daoAgenda =& CopixDAOFactory::getInstanceOf('agenda|agenda');
     foreach ($this->getParam('arAgendasAffiches') as $id) {
         $agenda = $daoAgenda->get($id);
         $boolCroise[$agenda->type_agenda] = $boolCroise[$agenda->type_agenda] == false;
         $colors = $agendaService->getColorAgendaByIdAgenda($id);
         $arColorAgenda[$id] = $boolCroise[$agenda->type_agenda] ? $colors[0] : $colors[1];
     }
     $arEventToDisplay = array();
     foreach ($arDayEvent as $event) {
         $event->color = $arColorAgenda[$event->id_agenda];
         $arEventToDisplay[] = $event;
     }
     $jour = substr($day, 6, 2);
     $mois = $serviceDate->moisNumericToMoisLitteral(substr($day, 4, 2));
     $annee = substr($day, 0, 4);
     $tpl = new CopixTpl();
     $tpl->assign('jour', $jour);
     $tpl->assign('mois', $mois);
     $tpl->assign('annee', $annee);
     //$tpl->assign('arEvent'       , $arDayEvent);
     $tpl->assign('arEvent', $arEventToDisplay);
     $tpl->assign('arAgendas', $arAgendas);
     $tpl->assign('arColorByEvent', $arColorByEvent);
     $tpl->assign('arColorAgenda', $arColorAgenda);
     $toReturn = $tpl->fetch('aujourdhui.agenda.tpl');
     return true;
 }
 /**
  * Création d'un agenda
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2006/08/24
  * @param array $infos (option) informations permettant d'initialiser le blog. Index: title, node_type, node_id
  * @return integer l'Id de l'agenda créé ou NULL si erreur
  */
 public function create($infos = array())
 {
     $daoAgenda =& CopixDAOFactory::getInstanceOf('agenda|agenda');
     $res = null;
     $agenda = _record('agenda|agenda');
     if ($infos['title']) {
         $agenda->title_agenda = $infos['title'];
     } else {
         //$agenda->title_agenda = CopixI18N::get ('agenda|agenda.default.title');
         $agenda->title_agenda = "Agenda";
     }
     $agenda->desc_agenda = $agenda->title_agenda;
     $agenda->type_agenda = AgendaType::getAgendaTypeForNode($infos['node_type'], $infos['node_id']);
     $daoAgenda->insert($agenda);
     return $agenda->id_agenda !== NULL ? $agenda->id_agenda : NULL;
 }
 /**
  * Test d'une DAO automatique
  */
 public function testDAOAuto()
 {
     CopixDAOFactory::getInstanceOf('copixtestautodao')->findAll();
 }
 /**
  * Fonction qui est appelée lorsque l'on valide la saisie d'un évènement
  * Met à jour l'objet avec les données du formulaire
  * Vérifie les informations saisies dans le formulaire
  * @author Audrey Vassal <*****@*****.**>
  * @return redirige vers l'action "getVueSemaine" de l'actiongroup agenda
  */
 public function doValid()
 {
     $serviceAuth = new AgendaAuth();
     $serviceAgenda = new AgendaService();
     $serviceType = new AgendaType();
     if (!($toValid = $this->_getSessionLecon())) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('agenda.error.cannotFindSession'), 'back' => CopixUrl::get('agenda|agenda|vueSemaine')));
     }
     if ($serviceAuth->getCapability($toValid->id_agenda) < $serviceAuth->getWriteLecon() || $serviceAgenda->getTypeAgendaByIdAgenda($toValid->id_agenda) != $serviceType->getClassRoom()) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('agenda.error.enableToWrite'), 'back' => CopixUrl::get('agenda|agenda|vueSemaine')));
     }
     //demande de mettre l'objet à jour en fonction des valeurs saisies dans le formulaire
     $this->_validFromForm($toValid);
     $errors = $this->_check();
     if (count($errors) > 0) {
         $this->_setSessionLecon($toValid);
         return CopixActionGroup::process('agenda|Lecon::getEdit', array('e' => 1, 'errors' => $errors));
     } else {
         $daoLecon =& CopixDAOFactory::getInstanceOf('lecon');
         $record =& CopixDAOFactory::createRecord('lecon');
         $criteres = _daoSp();
         $criteres->addCondition('id_lecon', '=', $toValid->id_lecon);
         $resultat = $daoLecon->findBy($criteres);
         $modif = false;
         if (count($resultat) > 0) {
             //modification
             $record = $resultat[0];
             $modif = true;
         }
         $record->id_agenda = $toValid->id_agenda;
         $record->desc_lecon = $toValid->desc_lecon;
         $record->date_lecon = $toValid->date_lecon;
         if ($modif) {
             $daoLecon->update($record);
         } else {
             $daoLecon->insert($record);
         }
         //on vide la session
         $this->_setSessionLecon(null);
         return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('agenda|agenda|vueSemaine'));
     }
 }
 public function delete($id_blog)
 {
     //suppression du blog
     $blogDAO =& _dao('blog|blog');
     $blogDAO->delete($id_blog);
     //suppression des pages liées au blog
     $daoPage =& CopixDAOFactory::getInstanceOf('blog|blogpage');
     $record = _record('blog|blogpage');
     $criteres = _daoSp();
     $criteres->addCondition('id_blog', '=', $id_blog);
     $resultat = $daoPage->findBy($criteres);
     $daoPage =& _dao('blog|blogpage');
     foreach ($resultat as $page) {
         $daoPage->delete($page);
     }
     //suppression des liens liés au blog
     $daoLien =& CopixDAOFactory::getInstanceOf('blog|bloglink');
     $record = _record('blog|bloglink');
     $criteres = _daoSp();
     $criteres->addCondition('id_blog', '=', $id_blog);
     $resultat = $daoLien->findBy($criteres);
     foreach ($resultat as $lien) {
         $daoLien->delete($lien);
     }
     //suppression des catégories du blog
     $daoCategorie =& CopixDAOFactory::getInstanceOf('blog|blogarticlecategory');
     $record = _record('blog|blogarticlecategory');
     $criteres = _daoSp();
     $criteres->addCondition('id_blog', '=', $id_blog);
     $resultat = $daoCategorie->findBy($criteres);
     foreach ($resultat as $categorie) {
         $daoCategorie->delete($categorie);
     }
     //suppression des articles, des commentaires et des liens catégories / articles
     $arIdBact = array();
     $daoArticle =& CopixDAOFactory::getInstanceOf('blog|blogarticle');
     $record = _record('blog|blogarticle');
     $criteres = _daoSp();
     $criteres->addCondition('id_blog', '=', $id_blog);
     $resultat = $daoArticle->findBy($criteres);
     foreach ($resultat as $article) {
         $daoArticle->delete($article);
     }
     Kernel::unregisterModule("MOD_BLOG", $id_blog);
     return true;
 }
 /**
  * Fonction qui est appel�e lors de la suppression d'un �v�nement
  * R�cup�re l'objet 'event' en  base de donn�es gr�ce � l'id_event
  * Supprime l'objet en base de donn�es
  */
 public function doDelete()
 {
     $serviceAuth = new AgendaAuth();
     if (!_request('id_event')) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('agenda.error.missingParameters'), 'back' => CopixUrl::get('agenda|agenda|vueSemaine')));
     }
     $daoEvent =& CopixDAOFactory::getInstanceOf('event');
     if (!($toDelete = $daoEvent->get(_request('id_event')))) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('agenda.unableToFind'), 'back' => CopixUrl::get('agenda|agenda|vueSemaine')));
     }
     //on v�rifie si l'utilisateur a les droits de suppression sur l'agenda concern�
     if ($serviceAuth->getCapability($toDelete->id_agenda) < $serviceAuth->getModerate()) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('agenda.error.enableToWrite'), 'back' => CopixUrl::get('agenda|agenda|vueSemaine')));
     }
     //Confirmation screen ?
     if (!_request('confirm')) {
         return CopixActionGroup::process('genericTools|Messages::getConfirm', array('title' => CopixI18N::get('agenda.title.confirmdelevent'), 'message' => CopixI18N::get('agenda.message.confirmdelevent'), 'confirm' => CopixUrl::get('agenda|event|delete', array('id_event' => $toDelete->id_event, 'confirm' => '1')), 'cancel' => CopixUrl::get('agenda|agenda|vueSemaine')));
     }
     //Delete event
     $daoEvent->delete($toDelete->id_event);
     return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('agenda|agenda|vueSemaine'));
 }
/**
 * Alias à CopixDAOFactory::getInstanceOf
 * @param 	string	$pDAOid	identifiant de la DAO à instancier de façon unique
 * @param 	string	$pConnectionName
 * @return	ICopixDAO
 * @see CopixDAOFactory::instanceOf
 */
function _ioDAO($pDAOid, $pConnectionName = null)
{
    return CopixDAOFactory::getInstanceOf($pDAOid, $pConnectionName);
}
 /**
  * Fonction qui retourne un tableau associant l'identifiant de l'évènement et sa couleur d'affichage
  * @author Audrey Vassal <*****@*****.**>
  * @since 2006/08/08
  * @param array $pArIdAgenda tableau d'identifiant d'agenda
  * @return array $arTitleAgenda tableau associant l'identifiant de l'agenda à son titre
  */
 public function getTilteAgendaByIdAgenda($pArIdAgenda)
 {
     foreach ($pArIdAgenda as $key => $idAgenda) {
         $daoSearchParams = _daoSp();
         $daoSearchParams->addCondition('id_agenda', '=', $idAgenda);
         $daoAgenda =& CopixDAOFactory::getInstanceOf('agenda|agenda');
         $arAgenda = $daoAgenda->findBy($daoSearchParams);
         if (count($arAgenda) > 0) {
             $arTitleAgenda[$key] = $arAgenda[0]->title_agenda;
         }
     }
     return $arTitleAgenda;
 }