/** * 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; }