public function testToDateTime() { CopixI18N::setLang('fr'); $this->assertEquals('25/12/1976', CopixDateTime::timestampToDate(220316400)); $this->assertEquals('25/12/1976', CopixDateTime::yyyymmddToDate('19761225')); $this->assertEquals('25/12/1976 15:00:00', CopixDateTime::yyyymmddhhiissToDateTime('19761225150000')); CopixI18N::setLang('en'); $this->assertEquals('12/25/1976', CopixDateTime::YYYYMMDDToDate('19761225')); $this->assertNull(null); $this->assertFalse(CopixDateTime::YYYYMMDDToDate('1123761225')); $this->assertEquals('12/25/1976', CopixDateTime::timestampToDate(220316400)); $this->assertEquals('12/25/1976 15:00:00', CopixDateTime::yyyymmddhhiissToDateTime('19761225150000')); $this->assertEquals('12/25/1976 10:00:00', CopixDateTime::yyyymmddhhiissToDateTime('19761225100000')); }
/** * 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))); } }