From 7062a5a89e8f98d13229c456e6b6155db8ece992 Mon Sep 17 00:00:00 2001 From: deltacms Date: Fri, 19 Apr 2024 17:04:02 +0200 Subject: [PATCH] Agenda 7.0 --- module/agenda/agenda.php | 101 +++++++++++++------------- module/agenda/view/config/config.php | 2 +- module/agenda/view/index/index.js.php | 2 +- 3 files changed, 53 insertions(+), 52 deletions(-) diff --git a/module/agenda/agenda.php b/module/agenda/agenda.php index 3f8b41e..4beaa39 100644 --- a/module/agenda/agenda.php +++ b/module/agenda/agenda.php @@ -137,15 +137,15 @@ class agenda extends common { unlink( self::DATAMODULE.'data/.htaccess'); } // Modification d'emplacement des dossiers de données des pages agenda dans la langue ciblée + if(!is_dir(self::DATA_DIR. self::$i18n.'/data_module' ) ) mkdir(self::DATA_DIR. self::$i18n.'/data_module' ); + mkdir(self::DATA_DIR. self::$i18n.'/data_module/agenda'); foreach( $this->getData(['page']) as $page => $value){ if( $value['moduleId'] === 'agenda' ) - if( is_dir( self::DATAMODULE.'data/'.$page)) $this->custom_copy( self::DATAMODULE.'data/'.$page , self::DATA_DIR. self::$i18n.'/data_module/'.$page); - if( is_dir( self::DATAMODULE.'data/'.$page.'_sauve')) $this->custom_copy( self::DATAMODULE.'data/'.$page.'_sauve' , self::DATA_DIR. self::$i18n.'/data_module/'.$page.'_sauve'); - if( is_dir( self::DATAMODULE.'data/'.$page.'_affiche')) $this->custom_copy( self::DATAMODULE.'data/'.$page.'_affiche' , self::DATA_DIR. self::$i18n.'/data_module/'.$page.'_affiche'); - if( is_dir( self::DATAMODULE.'data/'.$page.'_visible')) $this->custom_copy( self::DATAMODULE.'data/'.$page.'_visible' , self::DATA_DIR. self::$i18n.'/data_module/'.$page.'_visible'); + if( is_dir( self::DATAMODULE.'data/'.$page)) $this->custom_copy( self::DATAMODULE.'data/'.$page , self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$page); + if( is_dir( self::DATAMODULE.'data/'.$page.'_sauve')) $this->custom_copy( self::DATAMODULE.'data/'.$page.'_sauve' , self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$page.'_sauve'); + if( is_dir( self::DATAMODULE.'data/'.$page.'_affiche')) $this->custom_copy( self::DATAMODULE.'data/'.$page.'_affiche' , self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$page.'_affiche'); + if( is_dir( self::DATAMODULE.'data/'.$page.'_visible')) $this->custom_copy( self::DATAMODULE.'data/'.$page.'_visible' , self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$page.'_visible'); } - // Pour l'instant suppression manuelle de self::DATAMODULE.'data/' après la maj dans chaque langue avec page agenda car une page agenda pouvait avoir le même nom - // dans plusieurs langues et partager les mêmes données. Ce qui ne sera plus le cas. $this->setData(['module', $this->getUrl(0), 'config', 'versionData','7.0']); } } @@ -183,16 +183,16 @@ class agenda extends common { //Sauvegarder l'agenda if ($fichier_sauve !=''){ - $json_sauve = file_get_contents(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'/events.json'); - file_put_contents(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'_sauve/'.$fichier_sauve.'.json', $json_sauve); + $json_sauve = file_get_contents(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'/events.json'); + file_put_contents(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'_sauve/'.$fichier_sauve.'.json', $json_sauve); } //Charger un agenda sauvegardé if (strpos($fichier_restaure,'.json') !== false){ //Remplacement par le fichier de restauration - $json_restaure = file_get_contents(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'_sauve/'. $fichier_restaure); - file_put_contents(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'/events.json', $json_restaure); + $json_restaure = file_get_contents(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'_sauve/'. $fichier_restaure); + file_put_contents(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'/events.json', $json_restaure); //Sauvegarde dans data_sauve de l'agenda chargé $this->sauve($json_restaure); @@ -288,8 +288,8 @@ class agenda extends common { } else{ // Fichiers sauvegardés - if(is_dir(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'_sauve')) { - $dir=self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'_sauve'; + if(is_dir(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'_sauve')) { + $dir=self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'_sauve'; $values = scandir($dir); self::$savedFiles=[]; $values[0] = $text['agenda']['config'][0]; @@ -304,7 +304,7 @@ class agenda extends common { } } else { - self::$savedFiles = array(0 => $text['agenda']['config'][2].self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'_sauve'.$text['agenda']['config'][3]); + self::$savedFiles = array(0 => $text['agenda']['config'][2].self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'_sauve'.$text['agenda']['config'][3]); } // Fichiers ics if(is_dir(self::DATAFILE.'ics')) { @@ -366,7 +366,7 @@ class agenda extends common { * Liaison entre edition et suppression d'un évènement */ public function deleteEvent() { - $json = file_get_contents(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'/events.json'); + $json = file_get_contents(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'/events.json'); $lid = $this->getUrl(2); $sauve = true; $this->delete($lid, $sauve, $json); @@ -379,7 +379,7 @@ class agenda extends common { // Autorisation si groupe autorisé à modifier l'evt $lid $group = $this->getUser('group'); if ($group === false ) $group = 0; - $json = file_get_contents(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'/events.json'); + $json = file_get_contents(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'/events.json'); $tableau = json_decode($json, true); if( $group < $tableau[$lid]['groupe_mod'] ) { // Valeurs en sortie @@ -414,7 +414,7 @@ class agenda extends common { //Enregistrer le json et sauvegarder dans data_sauve si suppression de l'évènement et non modification if ($sauve == true){ - file_put_contents(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'/events.json', $json); + file_put_contents(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'/events.json', $json); $this->sauve($json); // Emission d'un mailing éventuel en récupérant les valeurs dans le $json initial @@ -465,12 +465,12 @@ class agenda extends common { // Lexique include('./module/agenda/lang/'. $this->getData(['config', 'i18n', 'langAdmin']) . '/lex_agenda.php'); //Sauvegarde dans data de l'agenda actuel bien qu'il soit déjà sauvegardé dans data_sauve - $json = file_get_contents(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'/events.json'); - file_put_contents(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'/events_'.date('YmdHis').'.json', $json); + $json = file_get_contents(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'/events.json'); + file_put_contents(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'/events_'.date('YmdHis').'.json', $json); //Enregistrer le nouveau fichier json vide $json='[]'; - file_put_contents(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'/events.json', $json); + file_put_contents(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'/events.json', $json); //Valeurs en sortie $this->addOutput([ @@ -643,7 +643,7 @@ class agenda extends common { if ($this->verif_date($date_debut,$date_fin)){ self::$sujet_mailing = $text['agenda']['creation'][0]; //Ajout et enregistrement de l'évènement - $json = file_get_contents(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'/events.json'); + $json = file_get_contents(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'/events.json'); $this->nouvel_evenement($evenement_texte,$date_debut,$date_fin,$couleur_fond,$couleur_texte,$groupe_visible,$groupe_mod,$mailing_val,$mailing_adresses,$categorie,$json); //Valeurs en sortie après prise en compte du formulaire @@ -761,7 +761,7 @@ class agenda extends common { include('./module/agenda/lang/'. $this->getData(['config', 'i18n', 'langAdmin']) . '/lex_agenda.php'); //Préparation avant l'édition de l'évènement self::$evenement['id'] = $lid; - $json = file_get_contents(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'/events.json'); + $json = file_get_contents(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'/events.json'); $tableau = json_decode($json, true); self::$evenement['groupe_lire'] = $tableau[$lid]['groupe_lire']; self::$evenement['groupe_mod'] = $tableau[$lid]['groupe_mod']; @@ -927,17 +927,18 @@ class agenda extends common { // Upload des ressources puis création des dossiers de sauvegarde de l'agenda $this->custom_copy('./module/agenda/ressource/data', self::DATA_DIR); $this->custom_copy('./module/agenda/ressource/file', self::FILE_DIR); - if(! is_dir(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0)))mkdir(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0)); - if(! is_dir(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'_sauve'))mkdir(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'_sauve'); - if(! is_dir(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'_visible')) mkdir(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'_visible'); - if(! is_dir(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'_affiche')) mkdir(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'_affiche'); - if(! is_dir(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0))) mkdir(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0)); + if(! is_dir(self::DATA_DIR. self::$i18n.'/data_module/agenda/'))mkdir(self::DATA_DIR. self::$i18n.'/data_module/agenda/'); + if(! is_dir(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0)))mkdir(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0)); + if(! is_dir(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'_sauve'))mkdir(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'_sauve'); + if(! is_dir(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'_visible')) mkdir(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'_visible'); + if(! is_dir(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'_affiche')) mkdir(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'_affiche'); + if(! is_dir(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0))) mkdir(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0)); if(! is_dir(self::DATAFILE.'categories')) mkdir(self::DATAFILE.'categories'); // copie des fichiers htaccess - copy( 'module/agenda/ressource/data/agenda/module/data/.htaccess', self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'_sauve/.htaccess' ); - copy( 'module/agenda/ressource/data/agenda/module/data/.htaccess', self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'_visible/.htaccess' ); - copy( 'module/agenda/ressource/data/agenda/module/data/.htaccess', self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'_affiche/.htaccess' ); - copy( 'module/agenda/ressource/data/agenda/module/data/.htaccess', self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'/.htaccess' ); + copy( 'module/agenda/ressource/data/agenda/module/data/.htaccess', self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'_sauve/.htaccess' ); + copy( 'module/agenda/ressource/data/agenda/module/data/.htaccess', self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'_visible/.htaccess' ); + copy( 'module/agenda/ressource/data/agenda/module/data/.htaccess', self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'_affiche/.htaccess' ); + copy( 'module/agenda/ressource/data/agenda/module/data/.htaccess', self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'/.htaccess' ); $this->addOutput([ 'notification' => $text['agenda']['index'][0], 'redirect' => helper::baseUrl() . $this->getUrl(0).'/config/', @@ -946,18 +947,18 @@ class agenda extends common { } else{ // Page renommée : détection du changement de nom de la page pour copier les dossiers avec leur nouveau nom - if(! is_dir(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0))){ + if(! is_dir(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0))){ $oldname = $this->getData(['module', $this->getUrl(0), 'name']); $newname = $this->getUrl(0); - $this->copyDir( self::DATA_DIR. self::$i18n.'/data_module/'.$oldname, self::DATA_DIR. self::$i18n.'/data_module/'.$newname); - $this->copyDir( self::DATA_DIR. self::$i18n.'/data_module/'.$oldname.'_visible' , self::DATA_DIR. self::$i18n.'/data_module/'.$newname.'_visible'); - $this->copyDir( self::DATA_DIR. self::$i18n.'/data_module/'.$oldname.'_sauve' , self::DATA_DIR. self::$i18n.'/data_module/'.$newname.'_sauve'); - $this->copyDir( self::DATA_DIR. self::$i18n.'/data_module/'.$oldname.'_affiche' , self::DATA_DIR. self::$i18n.'/data_module/'.$newname.'_affiche'); + $this->copyDir( self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$oldname, self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$newname); + $this->copyDir( self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$oldname.'_visible' , self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$newname.'_visible'); + $this->copyDir( self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$oldname.'_sauve' , self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$newname.'_sauve'); + $this->copyDir( self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$oldname.'_affiche' , self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$newname.'_affiche'); // suppression des anciens dossiers - $this->removeDir(self::DATA_DIR. self::$i18n.'/data_module/'.$oldname); - $this->removeDir(self::DATA_DIR. self::$i18n.'/data_module/'.$oldname.'_visible'); - $this->removeDir(self::DATA_DIR. self::$i18n.'/data_module/'.$oldname.'_sauve'); - $this->removeDir(self::DATA_DIR. self::$i18n.'/data_module/'.$oldname.'_affiche'); + $this->removeDir(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$oldname); + $this->removeDir(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$oldname.'_visible'); + $this->removeDir(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$oldname.'_sauve'); + $this->removeDir(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$oldname.'_affiche'); $this->addOutput([ 'notification' => $text['agenda']['index'][1], @@ -968,13 +969,13 @@ class agenda extends common { } } //Si le fichier events.json n'existe pas ou si sa taille est inférieure à 2 on le crée vide - if( is_file(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'/events.json') === false || - ( is_file(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'/events.json') === true && filesize(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'/events.json')<2)){ - file_put_contents(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'/events.json', '[]'); + if( is_file(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'/events.json') === false || + ( is_file(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'/events.json') === true && filesize(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'/events.json')<2)){ + file_put_contents(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'/events.json', '[]'); } //Création d'une copie d'events.json visible en fonction des droits - $json = file_get_contents(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'/events.json'); + $json = file_get_contents(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'/events.json'); $tableau = json_decode($json, true); foreach($tableau as $key=>$value){ if( isset($value['groupe_lire'])){ @@ -992,7 +993,7 @@ class agenda extends common { } } } - file_put_contents(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'_affiche/events.json',$json); + file_put_contents(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'_affiche/events.json',$json); // Affichage de la page agenda $this->addOutput([ @@ -1109,7 +1110,7 @@ class agenda extends common { $date_fin = substr($date_fin,0,16); //Ouverture et décodage du fichier json - if($json == ''){$json = file_get_contents(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'/events.json');} + if($json == ''){$json = file_get_contents(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'/events.json');} $tableau = json_decode($json, true); $keynew = count($tableau); @@ -1128,7 +1129,7 @@ class agenda extends common { $json = str_replace(']',$new,$json); //Enregistrement dans le fichier json et sauvegarde pour restauration par "Agenda précédent" - file_put_contents(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'/events.json', $json); + file_put_contents(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'/events.json', $json); $this->sauve($json); if($mailing_val === '1') $this->mailing($evenement_texte, $date_debut, $date_fin, $mailing_val, $mailing_adresses); } @@ -1139,10 +1140,10 @@ class agenda extends common { private function sauve($sauve_json) { //Sauvegarde du fichier json actuel - file_put_contents(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'_sauve/events_'.date('YmdHis').'.json', $sauve_json); + file_put_contents(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'_sauve/events_'.date('YmdHis').'.json', $sauve_json); //Effacement du plus ancien fichier de sauvegarde auto si le nombre de fichiers dépasse 10 - $dir=self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'_sauve'; + $dir=self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'_sauve'; $nom_fichier = scandir($dir); //Comptage du nombre de fichiers de sauvegarde auto $nb_sauve_auto = 0; @@ -1154,8 +1155,8 @@ class agenda extends common { } } if ($nb_sauve_auto > 10){ - $handle = opendir(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'_sauve'); - unlink(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0).'_sauve/'.$nom_fichier[$plus_ancien_clef]); + $handle = opendir(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'_sauve'); + unlink(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0).'_sauve/'.$nom_fichier[$plus_ancien_clef]); closedir($handle); } } diff --git a/module/agenda/view/config/config.php b/module/agenda/view/config/config.php index e835907..3790f3c 100644 --- a/module/agenda/view/config/config.php +++ b/module/agenda/view/config/config.php @@ -3,7 +3,7 @@ // Lexique include('./module/agenda/lang/'. $this->getData(['config', 'i18n', 'langAdmin']) . '/lex_agenda.php'); -if(! is_dir(self::DATA_DIR. self::$i18n.'/data_module/'.$this->getUrl(0))){ $readonly = true;}else{ $readonly = false;} +if(! is_dir(self::DATA_DIR. self::$i18n.'/data_module/agenda/'.$this->getUrl(0))){ $readonly = true;}else{ $readonly = false;} echo template::formOpen('configuration'); ?>
diff --git a/module/agenda/view/index/index.js.php b/module/agenda/view/index/index.js.php index 87622aa..8a06cf0 100644 --- a/module/agenda/view/index/index.js.php +++ b/module/agenda/view/index/index.js.php @@ -40,7 +40,7 @@ selectable: true, editable: true, //afficher les évènements à partir d'un fichier JSON - events : 'getUrl(0); ?>'+'_affiche/events.json?n='+'', + events : 'getUrl(0); ?>'+'_affiche/events.json?n='+'', //créer un évènement dateClick: function(info) { window.open('getUrl(0); ?>'+ '/da:'+ info.dateStr + 'vue:' + info.view.type + 'deb:' + calendar.formatIso(info.view.currentStart),'_self');