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')); }
public function get($id) { $get = false; $sp = _daoSp(); $sp->addCondition('idinter', '=', $id); if (count($r = $this->findBy($sp)) > 0) { $get = $r[0]; $now = date('d/m/Y'); $d1 = CopixDateTime::yyyymmddhhiissToTimeStamp($get->datederniere); $d2 = CopixDateTime::timestampToyyyymmdd($d1); $datederniere = CopixDateTime::yyyymmddToDate($d2, '/'); $get->depuis = round(CopixDateTime::timeBetween($datederniere, $now) / (60 * 60 * 24)); //var_dump($get->depuis); } return $get; }
/** * Plugin smarty type modifier * Purpose: format a date given by its timestamp (YYYMMDD) to a date according * to the current languages settings * if an incorrect date is given, returns the string without any modification * Input: YYYYMMDD * Output: (french) DD/MM/YYYY, (english) MM/DD/YYYY * Output plain text date if text is given as an extra parameter * * Example: {$date|datei18n} * {$date|datei18n:text} * * @return string */ function smarty_modifier_datei18n($string, $format = "") { // COPIX 3 /* if ($format == ""){ return (($date = CopixDateTime::yyyymmddToDate ($string)) !== false) ? $date : $string; }elseif ($format == "text"){ return (($date = CopixDateTime::yyyymmddToText ($string)) !== false) ? $date : $string; } */ require_once COPIX_UTILS_PATH . 'CopixDateTime.class.php'; // COPIX 2 if ($format == "") { return ($date = CopixDateTime::yyyymmddToDate($string)) !== false ? $date : $string; } elseif ($format == "text") { return ($date = CopixDateTime::yyyymmddToText($string)) !== false ? $date : $string; } elseif ($format == "date_short") { // JJ/MM/AAAA (fr) //var_dump($string); //return CopixDateTime::yyyymmddToDate($string); $mktime = smarty_make_timestamp($string); //var_dump($mktime.'/'.date('d/m/Y',$mktime)); $yyyymmdd = CopixDateTime::timestampToyyyymmdd($mktime); $res = CopixDateTime::yyyymmddToDate($yyyymmdd); return $res; /* return Kernel::ymd2dmy($string); $mktime = smarty_make_timestamp($string); $timestamp = date("Ymd", $mktime); //return (($date = CopixDateTime::timestampToDate ($timestamp)) !== false) ? $date : $string; $timestamp2 = CopixDateTime::dateToTimestamp ($string); var_dump($string); return (($timestamp==$timestamp2) ? CopixDateTime::timestampToDate ($timestamp) : $string); */ } elseif ($format == "date_short_time") { // JJ/MM/AAAA HHhMM (fr) $mktime = smarty_make_timestamp($string); return ($date = CopixDateTime::mktimeToDatetime($mktime)) !== false ? $date : $string; } }
/** * Récupère l'objet en session * Appelle les zones agendamenu et agendaeditlecon * @author Audrey Vassal <*****@*****.**> */ public function processGetEdit() { CopixHTMLHeader::addCSSLink(_resource("styles/module_agenda.css")); require_once COPIX_UTILS_PATH . 'CopixDateTime.class.php'; $serviceAuth = new AgendaAuth(); $serviceType = new AgendaType(); $serviceAgenda = new AgendaService(); $serviceDate = new DateService(); if (!($toEdit = $this->_getSessionLecon())) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('agenda.unableToGetEdited'), 'back' => CopixUrl::get('agenda|agenda|vueSemaine'))); } $serviceAuth->getCapability($toEdit->id_agenda); if ($serviceAuth->getCapability($toEdit->id_agenda) < $serviceAuth->getWriteLecon() || $serviceAgenda->getTypeAgendaByIdAgenda($toEdit->id_agenda) != $serviceType->getClassRoom()) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('agenda.error.enableToWrite'), 'back' => CopixUrl::get('agenda|agenda|vueSemaine'))); } $listAgendas = $serviceAgenda->getAvailableAgenda(); $listAgendasAffiches = $serviceAgenda->getAgendaAffiches(); //template pour agenda $tplAgenda = new CopixTpl(); $tplAgenda->assign('MAIN_AGENDA', CopixZone::process('agenda|agendaeditlecon', array('e' => _request('e'), 'errors' => _request('errors'), 'toEdit' => $toEdit))); //template principal $tpl = new CopixTpl(); $tpl->assign('TITLE_PAGE', CopixI18N::get('agenda|agenda.title.lecon', array('jour' => CopixDateTime::yyyymmddToDate($toEdit->date_lecon)))); $menu = $serviceAgenda->getAgendaMenu(''); $tpl->assign('MENU', $menu); $tpl->assign('MAIN', $tplAgenda->fetch('agenda|main.agenda.tpl')); return new CopixActionReturn(COPIX_AR_DISPLAY, $tpl); }
/** * validateGradeCreation * * Validation de la création d'une année scolaire * */ public function processValidateGradeCreation() { _currentUser()->assertCredential('group:[Admin]'); $ppo = new CopixPPO(); $dateDebut = _request('dateDebut', null); $dateFin = _request('dateFin', null); $ppo->grade = _record('kernel|kernel_bu_annee_scolaire'); $ppo->grade->id_as = substr($dateDebut, 6, 10); $ppo->grade->anneeScolaire = substr($dateDebut, 6, 10) . '-' . substr($dateFin, 6, 10); $ppo->grade->dateDebut = CopixDateTime::dateToyyyymmdd($dateDebut); $ppo->grade->dateFin = CopixDateTime::dateToyyyymmdd($dateFin); $current = _request('current', null); if ($current == 'on') { $ppo->grade->current = 1; } else { $ppo->grade->current = 0; } if (!$ppo->grade->dateDebut) { $ppo->errors[] = 'Saisissez une date de début'; } if (!$ppo->grade->dateFin) { $ppo->errors[] = 'Saisissez une date de fin'; } if ($ppo->grade->dateFin < $ppo->grade->dateDebut) { $ppo->errors[] = 'La date de fin doit être ultérieur à la date de début'; } $gradeDAO = _ioDAO('kernel|kernel_bu_annee_scolaire'); if ($gradeDAO->get($ppo->grade->id_as)) { $ppo->errors[] = 'Cette année scolaire existe déjà'; } if (!empty($ppo->errors)) { $ppo->grade->dateDebut = CopixDateTime::yyyymmddToDate($ppo->grade->dateDebut); $ppo->grade->dateFin = CopixDateTime::yyyymmddToDate($ppo->grade->dateFin); // Breadcrumbs $breadcrumbs = array(); $breadcrumbs[] = array('txt' => 'Gestion des années scolaires', 'url' => CopixUrl::get('gestionautonome||manageGrades')); $breadcrumbs[] = array('txt' => 'Ajout d\'une année scolaire'); $ppo->breadcrumbs = Kernel::PetitPoucet($breadcrumbs, ' » '); $ppo->MENU = $this->menu; return _arPPO($ppo, 'create_grade.tpl'); } if ($ppo->grade->current == 1) { if ($currentGrade = $gradeDAO->getCurrent()) { $currentGrade->dateDebut = str_replace('-', '', $currentGrade->dateDebut); $currentGrade->dateFin = str_replace('-', '', $currentGrade->dateFin); $currentGrade->current = 0; $gradeDAO->update($currentGrade); } } $gradeDAO->insert($ppo->grade); return _arRedirect(CopixUrl::get('gestionautonome||manageGrades', array('save' => 'gradeCreated'))); }
/** * 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'); }