/** * Fonction qui fait la vérification sur les champs de saisie du formulaire d'import * @author Audrey Vassal <*****@*****.**> * @access: private * @return array $toReturn tableau qui contient les erreurs de saisie de l'utilisateur */ public function _checkExport($obj) { $toReturn = array(); $datedeb = $datedebTs = null; $datefin = $datefinTs = null; if (isset($obj->datedeb_export)) { $datedeb = $obj->datedeb_export; $datedebTs = CopixDateTime::dateToTimestamp($datedeb); } if (isset($obj->datefin_export)) { $datefin = $obj->datefin_export; $datefinTs = CopixDateTime::dateToTimestamp($datefin); } //vérification si les champs sont bien remplis if (!$datedeb) { $toReturn[] = CopixI18N::get('agenda|agenda.error.nodatedeb'); } if (!$datefin) { $toReturn[] = CopixI18N::get('agenda|agenda.error.nodatefin'); } //vérification sur la cohérence des dates de début et de fin if ($datedeb && $datefin && $datedebTs && $datefinTs && $datedebTs > $datefinTs) { $toReturn[] = CopixI18N::get('agenda|agenda.error.inversiondate'); } if (!$obj->agenda) { $toReturn[] = CopixI18N::get('agenda|agenda.error.noagenda'); } return $toReturn; }
public function publish($id, $data) { $articleDAO = _dao('blog|blogarticle'); $article = _record('blog|blogarticle'); $article->id_blog = $id; $article->name_bact = $data['title']; $article->format_bact = 'wiki'; $article->sumary_bact = $data['body']; $article->sumary_html_bact = smarty_modifier_blog_format_article($article->sumary_bact, $article->format_bact); $article->content_bact = ''; $article->content_html_bact = smarty_modifier_blog_format_article($article->content_bact, $article->format_bact); $article->author_bact = 'Publication par mail...'; $article->date_bact = CopixDateTime::dateToTimestamp(date('d/m/Y')); $article->time_bact = timeToBD(date('H:i')); $article->url_bact = killBadUrlChars($article->name_bact); $article->sticky_bact = 0; $article->is_online = 1; $articleDAO->insert($article); $article->url_bact = killBadUrlChars($article->id_bact . '-' . $article->name_bact); $articleDAO->update($article); return "yo" . print_r($article, true) . "yo"; }
/** * Fonction qui donne le nombre de jour écoulés entre deux dates+heure * @author Audrey Vassal <*****@*****.**> * @since 2006/07/28 * @param date $pDateBegin au format jj/mm/aaaa * @param date $pDateEnd au format jj/mm/aaaa * @param date $pHeureDeb heure au format hh:mm * @param date $pHeureFin heure au format hh:mm * @return integer $nbDays nombre de jours qui se sont écoulés entre les deux dates */ public function getNomberDaysBeetweenTwoDates($pDateBegin, $pDateEnd, $pHeureBegin, $pHeureEnd) { //Extraction des données //list($jour1, $mois1, $annee1) = explode('/', $pDateBegin); //list($jour2, $mois2, $annee2) = explode('/', $pDateEnd); $pDate = CopixDateTime::dateToTimestamp($pDateBegin); $jour1 = substr($pDate, 6, 2); $mois1 = substr($pDate, 4, 2); $annee1 = substr($pDate, 0, 4); $pDate = CopixDateTime::dateToTimestamp($pDateEnd); $jour2 = substr($pDate, 6, 2); $mois2 = substr($pDate, 4, 2); $annee2 = substr($pDate, 0, 4); list($heure1, $minutes1) = explode(':', $pHeureBegin); list($heure2, $minutes2) = explode(':', $pHeureEnd); //Calcul des timestamp $timestamp1 = mktime($heure1, $minutes1, 0, $mois1, $jour1, $annee1); $timestamp2 = mktime($heure2, $minutes2, 0, $mois2, $jour2, $annee2); $nbDays = ($timestamp2 - $timestamp1) / 86400; return $nbDays; //echo abs($timestamp2 - $timestamp1)/(86400*7); //Affichage du nombre de semaine : 3.85 }
/** * Validation d'un article. */ public function doValidArticle() { CopixHTMLHeader::addJSLink(_resource("js/jquery/jquery.ui.datepicker-fr.js")); $id_blog = $this->getRequest('id_blog', null); $go = $this->getRequest('go', 'preview'); //die ("go=$go"); if ($id_blog == null) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('blog.error.param'), 'back' => CopixUrl::get('blog|admin|listBlog'))); } if (!BlogAuth::canMakeInBlog('ADMIN_ARTICLES', create_blog_object($id_blog))) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('blog.error.cannotManageCategory'), 'back' => CopixUrl::get('blog|admin|listBlog'))); } $tpl = new CopixTpl(); // On r�cup�re l'utilisateur connect� $user = BlogAuth::getUserInfos(); $articleDAO = CopixDAOFactory::create('blog|blogarticle'); // Cat�gories coch�es... $tabSelectCat = array(); if (_request('tabSelectCat')) { $tabSelectCat = (array) _request('tabSelectCat'); } $id_bact = $this->getRequest('id_bact', null); if (strlen($id_bact) == 0) { $id_bact = null; } $showErrors = false; if ($id_bact != null) { // EDITION D'UN ARTICLE $article = $articleDAO->get($id_bact); $this->_validFromPostProperties($article); if (!$article->date_bact) { $article->date_bact = date('d/m/Y'); } if (!$article->time_bact) { $article->time_bact = date('H:i'); } $article->date_bact = CopixDateTime::dateToTimestamp($article->date_bact); $article->time_bact = timeToBD($article->time_bact); $article->author_bact = $user->userId; $tpl->assign('TITLE_PAGE', CopixI18N::get('blog.get.edit.article.title')); //print_r($article); $errors = $articleDAO->check($article); if (count($tabSelectCat) == 0) { $errors = array(); array_push($errors, CopixI18N::get('blog.error.nocategoryselect')); } if ($errors != 1) { // Traitement des erreurs $showErrors = true; } elseif ($go == 'save') { // Modification dans la base $article->url_bact = killBadUrlChars($article->id_bact . '-' . $article->name_bact); $article->sumary_html_bact = smarty_modifier_blog_format_article($article->sumary_bact, $article->format_bact); $article->content_html_bact = smarty_modifier_blog_format_article($article->content_bact, $article->format_bact); $articleDAO->update($article); // Insertion dans la base blogarticle_blogarticlecategory $artctgDAO = CopixDAOFactory::create('blog|blogarticle_blogarticlecategory'); $artctgDAO->deleteAndInsert($article->id_bact, $tabSelectCat); return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('blog|admin|showBlog', array("id_blog" => $id_blog, "kind" => $this->getRequest('kind', '0')))); } } else { // CREATION D'UN ARTICLE $article = CopixDAOFactory::createRecord('blogarticle'); $this->_validFromPostProperties($article); if (!$article->date_bact) { $article->date_bact = date('d/m/Y'); } if (!$article->time_bact) { $article->time_bact = date('H:i'); } $article->date_bact = CopixDateTime::dateToTimestamp($article->date_bact); $article->time_bact = timeToBD($article->time_bact); $article->author_bact = $user->userId; $tpl->assign('TITLE_PAGE', CopixI18N::get('blog.get.create.article.title')); $errors = $articleDAO->check($article); if (count($tabSelectCat) == 0) { $errors = array(); array_push($errors, CopixI18N::get('blog.error.nocategoryselect')); } if ($errors != 1) { // Traitement des erreurs $showErrors = true; } elseif ($go == 'save') { // Insertion dans la base $article->sumary_html_bact = smarty_modifier_blog_format_article($article->sumary_bact, $article->format_bact); $article->content_html_bact = smarty_modifier_blog_format_article($article->content_bact, $article->format_bact); $articleDAO->insert($article); $article->url_bact = killBadUrlChars($article->id_bact . '-' . $article->name_bact); $articleDAO->update($article); // Insertion dans la base blogarticle_blogarticlecategory $artctgDAO = CopixDAOFactory::create('blog|blogarticle_blogarticlecategory'); $artctgDAO->deleteAndInsert($article->id_bact, $tabSelectCat); return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('blog|admin|showBlog', array("id_blog" => $id_blog, "kind" => $this->getRequest('kind', '0')))); } } // Pr�paration du filtre CATEGORIES $blogArticleCategoryDAO = CopixDAOFactory::create('blog|blogarticlecategory'); $resArticleCategory = $blogArticleCategoryDAO->findAllOrder($id_blog); $tabArticleCategory = array(); foreach ($resArticleCategory as $cat) { if (in_array($cat->id_bacg, $tabSelectCat)) { $cat->selected = true; } else { $cat->selected = false; } array_push($tabArticleCategory, $cat); } $article->time_bact = BDToTime($article->time_bact); $tpl->assign('BODY_ON_LOAD', "setDatePicker('#date_bact')"); $tpl->assign('MAIN', CopixZone::process('EditArticle', array('id_blog' => $id_blog, 'id_bact' => $id_bact, 'article' => $article, 'kind' => $this->getRequest('kind', '0'), 'errors' => $errors, 'showErrors' => $showErrors, 'tabArticleCategory' => $tabArticleCategory, 'preview' => $go == 'preview' ? 1 : 0))); return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl); }
/** * Fonction qui fait la v�rification sur les champs de saisie du formulaire d'ajout d'un �v�nement * @access: private * @return array $toReturn tableau qui contient les erreurs de saisie de l'utilisateur */ public function _check($obj) { $toReturn = array(); //var_dump($obj); $datedeb = $obj->datedeb_event; $datefin = $obj->datefin_event; $datejusquau = isset($obj->dateendrepeat_event) ? $obj->dateendrepeat_event : null; $datedebTs = CopixDateTime::dateToTimestamp($datedeb); $datefinTs = CopixDateTime::dateToTimestamp($datefin); $datejusquauTs = CopixDateTime::dateToTimestamp($datejusquau); //conversion des heures au format hhmm pour pouvoir les comparer $heuredeb = dateService::heureWithSeparateurToheureWithoutSeparateur($obj->heuredeb_event); $heurefin = dateService::heureWithSeparateurToheureWithoutSeparateur($obj->heurefin_event); $endrepeat_event = isset($obj->endrepeat_event) ? $obj->endrepeat_event : false; //$dateendrepeat_event = $this->getRequest('dateendrepeat_event', null); $repeat_event = isset($obj->repeat_event) ? $obj->repeat_event : false; //v�rification si les champs sont bien remplis if ($obj->title_event == null || $obj->title_event == '') { $toReturn[] = CopixI18N::get('agenda|agenda.error.notitle'); } if ($endrepeat_event == 'nbfois' && isset($obj->nb_fois) && !is_numeric($obj->nb_fois)) { $toReturn[] = CopixI18N::get('agenda|agenda.error.nbFoisIsNotNumeric'); } if (!$datedeb) { $toReturn[] = CopixI18N::get('agenda|agenda.error.nodatedeb'); } if (!$datefin) { $toReturn[] = CopixI18N::get('agenda|agenda.error.nodatefin'); } if ($obj->alldaylong_event == null && ($obj->heuredeb_event == null || $obj->heuredeb_event == '')) { $toReturn[] = CopixI18N::get('agenda|agenda.error.noheuredeb'); } if ($obj->alldaylong_event == null && ($obj->heurefin_event == null || $obj->heurefin_event == '')) { $toReturn[] = CopixI18N::get('agenda|agenda.error.noheurefin'); } if ($endrepeat_event == 'nbfois' && ($obj->nb_fois == '' || $obj->nb_fois == null)) { $toReturn[] = CopixI18N::get('agenda|agenda.error.nonbfois'); } if ($endrepeat_event == 'date' && ($datejusquau == '' || $datejusquau == null) && $obj->repeat == 1) { $toReturn[] = CopixI18N::get('agenda|agenda.error.nodateendrepeat'); } if ($endrepeat_event == 'date' && ($obj->endrepeat_event == '' || $obj->endrepeat_event == null)) { $toReturn[] = CopixI18N::get('agenda|agenda.error.nodatefinrepeat'); } if (isset($obj->repeat) && $obj->repeat == 1 && (!isset($obj->endrepeat_event) || $obj->endrepeat_event == null)) { $toReturn[] = CopixI18N::get('agenda|agenda.error.noprecisionrepeat'); } //var_dump($datedebTs); //var_dump($datefinTs); //v�rification sur le format des dates if ($datedeb) { if (CopixDateTime::timestampToDate($datedebTs) === false) { $toReturn[] = CopixI18N::get('agenda|agenda.error.formdatedeb'); } } if ($datefin) { if (CopixDateTime::timestampToDate($datefinTs) === false) { $toReturn[] = CopixI18N::get('agenda|agenda.error.formdatefin'); } } //v�rification sur la coh�rence des dates de d�but et de fin if ($datedeb && $datefin && $datedebTs && $datefinTs && $datedebTs > $datefinTs) { $toReturn[] = CopixI18N::get('agenda|agenda.error.inversiondate'); } if (isset($obj->repeat) && $obj->repeat == 1 && $datedebTs && $datejusquauTs && $obj->endrepeat_event != null && $datedebTs > $datejusquauTs && $obj->endrepeat_event == 'date') { $toReturn[] = CopixI18N::get('agenda|agenda.error.inversiondaterepeat'); } //v�rification sur la coh�rence des heures de d�but et de fin if ($datedebTs && $datefinTs && $datedebTs == $datefinTs && $heuredeb > $heurefin && $obj->alldaylong_event != 1 && ($obj->heurefin_event != null || $obj->heurefin_event != '')) { $toReturn[] = CopixI18N::get('agenda|agenda.error.inversionheure'); } if ($datejusquau) { if (CopixDateTime::timestampToDate($datejusquauTs) === false) { $toReturn[] = CopixI18N::get('agenda|agenda.error.formdatejusqu'); } } //v�rification sur le format des heures if ($obj->heuredeb_event != null || $obj->heuredeb_event != '') { if (!ereg("([0-2])?[0-9]:[0-5][0-9]", $obj->heuredeb_event)) { $toReturn[] = CopixI18N::get('agenda|agenda.error.formheuredeb'); } else { $heure = explode(":", $obj->heuredeb_event); if ($heure[0] < 0 || $heure[0] > 23 || $heure[1] < 0 || $heure[1] > 59) { $toReturn[] = CopixI18N::get('agenda|agenda.error.formheuredeb'); } } } if ($obj->heurefin_event != null || $obj->heurefin_event != '') { if (!ereg("([0-2])?[0-9]:[0-5][0-9]", $obj->heurefin_event)) { $toReturn[] = CopixI18N::get('agenda|agenda.error.formheurefin'); } else { $heure = explode(":", $obj->heurefin_event); if ($heure[0] < 0 || $heure[0] > 23 || $heure[1] < 0 || $heure[1] > 59) { $toReturn[] = CopixI18N::get('agenda|agenda.error.formheurefin'); } } } //v�rifier que la fr�quence de r�p�tition est coh�rente avec la dur�e de l'�v�nement if ($obj->datedeb_event && $obj->datefin_event && $obj->heuredeb_event && $obj->heurefin_event && $repeat_event == 'everyday_event' && DateService::getNomberDaysBeetweenTwoDates($obj->datedeb_event, $obj->datefin_event, $obj->heuredeb_event, $obj->heurefin_event) > 1) { $toReturn[] = CopixI18N::get('agenda|agenda.error.freqrepetitionday'); } if ($repeat_event == 'everyweek_event' && DateService::getNomberDaysBeetweenTwoDates($obj->datedeb_event, $obj->datefin_event, $obj->heuredeb_event, $obj->heurefin_event) > 7) { $toReturn[] = CopixI18N::get('agenda|agenda.error.freqrepetitionweek'); } if ($repeat_event == 'everymonth_event' && DateService::getNomberDaysBeetweenTwoDates($obj->datedeb_event, $obj->datefin_event, $obj->heuredeb_event, $obj->heurefin_event) > 28) { $toReturn[] = CopixI18N::get('agenda|agenda.error.freqrepetitionmonth'); } if ($repeat_event == 'everyyear_event' && DateService::getNomberDaysBeetweenTwoDates($obj->datedeb_event, $obj->datefin_event, $obj->heuredeb_event, $obj->heurefin_event) > 365) { $toReturn[] = CopixI18N::get('agenda|agenda.error.freqrepetitionyear'); } return $toReturn; }
/** * Enregistrement de la modification d'un membre d'un groupe * * @author Christophe Beyer <*****@*****.**> * @since 2007/01/09 * @param integer $id Id du groupe * @param string $user_type Type du membre * @param integer $user_id Id du membre * @param integer $droit Son nouveau droit * @param string $debut Sa nouvelle date de d�but de validit� * @param string $fin Sa nouvelle date de fin de validit� */ public function doModifyMember() { $dao = CopixDAOFactory::create("groupe"); $kernel_service =& CopixClassesFactory::Create('kernel|kernel'); $groupeService =& CopixClassesFactory::Create('groupe|groupeService'); $id = $this->getRequest('id', null); $user_type = $this->getRequest('user_type', null); $user_id = $this->getRequest('user_id', null); $droit = $this->getRequest('droit', null); $req_debut = $this->getRequest('debut', null); $req_fin = $this->getRequest('fin', null); //$debut = dateService::dateFrToDateBdd($req_debut); //$fin = dateService::dateFrToDateBdd($req_fin); $debut = CopixDateTime::dateToTimestamp($req_debut); $fin = CopixDateTime::dateToTimestamp($req_fin); $critical_errors = $errors = array(); $groupe = $dao->getGroupe($id); if (!$groupe) { $critical_errors[] = CopixI18N::get('groupe|groupe.error.noGroup'); } else { $mondroit = $kernel_service->getLevel("CLUB", $id); if (!$groupeService->canMakeInGroupe('ADMIN', $mondroit)) { $critical_errors[] = CopixI18N::get('kernel|kernel.error.noRights'); } else { // On v�rifie que le membre demand� fait bien partie du groupe /* et qu'il n'est pas le propri�taire */ $level = Kernel::getLevel('CLUB', $id, $user_type, $user_id); if ($level <= PROFILE_CCV_SHOW) { $critical_errors[] = CopixI18N::get('kernel|kernel.error.noRights'); } } } if ($critical_errors) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => implode('<br/>', $critical_errors), 'back' => CopixUrl::get('groupe||'))); } else { // Tests sur les dates if ($req_debut) { if (CopixDateTime::timestampToDate($debut) === false) { $errors[] = CopixI18N::get('groupe|groupe.error.formdatedeb'); } } if ($req_fin) { if (CopixDateTime::timestampToDate($fin) === false) { $errors[] = CopixI18N::get('groupe|groupe.error.formdatefin'); } } if ($req_debut && $req_fin && $debut && $fin && $debut > $fin) { $errors[] = CopixI18N::get('groupe|groupe.error.inversiondate'); } if ($droit && !$errors) { $dao = CopixDAOFactory::create("kernel|kernel_link_user2node"); $his = $dao->get($user_type, $user_id, "CLUB", $id); $his->droit = $droit; $his->debut = $debut ? $debut : NULL; $his->fin = $fin ? $fin : NULL; $dao->update($his); } if ($errors) { return CopixActionGroup::process('groupe|groupe::getHomeAdminMember', array('id' => $id, 'user_type' => $user_type, 'user_id' => $user_id, 'droit' => $droit, 'debut' => $req_debut, 'fin' => $req_fin, 'errors' => $errors)); } return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('groupe||getHomeAdminMembers', array("id" => $id))); } }