From edac937b3523ca30db9a54cb062def47623366ab Mon Sep 17 00:00:00 2001 From: Fred Tempez Date: Tue, 7 Mar 2023 14:55:00 +0100 Subject: [PATCH] Fix positionnement des boutons de retour --- module/gallery/changes.md | 1 + module/gallery/gallery.php | 714 +++++++++++++----------- module/gallery/view/gallery/gallery.css | 7 - module/gallery/view/gallery/gallery.php | 6 +- 4 files changed, 398 insertions(+), 330 deletions(-) diff --git a/module/gallery/changes.md b/module/gallery/changes.md index 811f54b0..a2860585 100644 --- a/module/gallery/changes.md +++ b/module/gallery/changes.md @@ -1,5 +1,6 @@ # Version 3.8 - Version compare null, dataversion not initialize +- Bug de positionnement des boutons de retour # Version 3.7 - Multilinguisme # Version 3.61 diff --git a/module/gallery/gallery.php b/module/gallery/gallery.php index 08ea3c58..66c5cd57 100644 --- a/module/gallery/gallery.php +++ b/module/gallery/gallery.php @@ -14,7 +14,8 @@ * @link http://zwiicms.fr/ */ -class gallery extends common { +class gallery extends common +{ const VERSION = '3.8'; @@ -43,21 +44,21 @@ class gallery extends common { public static $config = []; public static $actions = [ - 'config' => self::GROUP_MODERATOR, - 'delete' => self::GROUP_MODERATOR, - 'dirs' => self::GROUP_MODERATOR, + 'config' => self::GROUP_MODERATOR, + 'delete' => self::GROUP_MODERATOR, + 'dirs' => self::GROUP_MODERATOR, 'sortGalleries' => self::GROUP_MODERATOR, - 'sortPictures' => self::GROUP_MODERATOR, - 'edit' => self::GROUP_MODERATOR, - 'add' => self::GROUP_MODERATOR, - 'theme' => self::GROUP_MODERATOR, - 'option' => self::GROUP_MODERATOR, - 'index' => self::GROUP_VISITOR + 'sortPictures' => self::GROUP_MODERATOR, + 'edit' => self::GROUP_MODERATOR, + 'add' => self::GROUP_MODERATOR, + 'theme' => self::GROUP_MODERATOR, + 'option' => self::GROUP_MODERATOR, + 'index' => self::GROUP_VISITOR ]; public static $sort = [ - self::SORT_ASC => 'Alphabétique ', - self::SORT_DSC => 'Alphabétique inverse', + self::SORT_ASC => 'Alphabétique ', + self::SORT_DSC => 'Alphabétique inverse', self::SORT_HAND => 'Manuel' ]; @@ -76,7 +77,7 @@ class gallery extends common { ]; public static $galleryThemeSizeWidth = [ - '9em' => 'Très petite', + '9em' => 'Très petite', '12em' => 'Petite', '15em' => 'Moyenne', '18em' => 'Grande', @@ -85,7 +86,7 @@ class gallery extends common { ]; public static $galleryThemeSizeHeight = [ - '9em' => 'Très petite', + '9em' => 'Très petite', '12em' => 'Petite', '15em' => 'Moyenne', '18em' => 'Grande', @@ -93,10 +94,10 @@ class gallery extends common { ]; public static $galleryThemeLegendHeight = [ - '.125em' => 'Très petite', - '.25em' => 'Petite', - '.375em' => 'Moyenne', - '.5em' => 'Grande', + '.125em' => 'Très petite', + '.25em' => 'Petite', + '.375em' => 'Moyenne', + '.5em' => 'Grande', '.625em' => 'Très grande' ]; @@ -104,27 +105,27 @@ class gallery extends common { '0em' => 'Aucune', '.1em' => 'Très fine', '.3em' => 'Fine', - '.5em' => 'Moyenne', + '.5em' => 'Moyenne', '.7em' => 'Epaisse', - '.9em' => 'Très épaisse' + '.9em' => 'Très épaisse' ]; public static $galleryThemeOpacity = [ - '1' => 'Aucun ', - '.9' => 'Très Discrète', - '.8' => 'Discrète', - '.7' => 'Moyenne', - '.6' => 'Forte', - '.5' => 'Très forte' + '1' => 'Aucun ', + '.9' => 'Très Discrète', + '.8' => 'Discrète', + '.7' => 'Moyenne', + '.6' => 'Forte', + '.5' => 'Très forte' ]; public static $galleryThemeMargin = [ - '0em' => 'Aucune', - '.1em' => 'Très petite', - '.3em' => 'Petite', - '.5em' => 'Moyenne', - '.7em' => 'Grande', - '.9em' => 'Très grande' + '0em' => 'Aucune', + '.1em' => 'Très petite', + '.3em' => 'Petite', + '.5em' => 'Moyenne', + '.7em' => 'Grande', + '.9em' => 'Très grande' ]; public static $galleryThemeRadius = [ @@ -146,31 +147,32 @@ class gallery extends common { ]; public static $galleryOptionBackPosition = [ - 'displayNone' => 'Masqué', - 'top' => 'Au-dessus', - 'bottom' => 'En dessous', + 'none' => 'Masqué', + 'top' => 'Au-dessus', + 'both' => 'Au-dessus et en dessous', + 'bottom' => 'En dessous', ]; - public static $galleryOptionBackAlign = [ - 'left' => 'A gauche', - 'center' => 'Au centre', - 'right' => 'A droite', + 'left' => 'A gauche', + 'center' => 'Au centre', + 'right' => 'A droite', ]; public static $formOptionSelect = ''; - /** + /** * Mise à jour du module * Appelée par les fonctions index et config */ - private function update() { + private function update() + { // Initialisation du module, créer les données si elles sont manquantes. $this->init(); - $versionData = $this->getData(['module',$this->getUrl(0),'config', 'versionData' ]); + $versionData = $this->getData(['module', $this->getUrl(0), 'config', 'versionData']); // Mise à jour 3.1 - if (version_compare($versionData, '3.1', '<') ) { + if (version_compare($versionData, '3.1', '<')) { if (is_dir(self::DATADIRECTORY . 'pages/')) { // Déplacer les données du dossier Pages $this->copyDir(self::DATADIRECTORY . 'pages/' . $this->getUrl(0), self::DATADIRECTORY . $this->getUrl(0)); @@ -179,7 +181,7 @@ class gallery extends common { $this->setData(['module', $this->getUrl(0), 'theme', 'style', str_replace('pages/', '', $style)]); } // Mettre à jour la version - $this->setData(['module',$this->getUrl(0),'config', 'versionData', '3.1' ]); + $this->setData(['module', $this->getUrl(0), 'config', 'versionData', '3.1']); } } @@ -189,11 +191,14 @@ class gallery extends common { * Config * Content */ - private function init() { + private function init() + { // Mise à jour d'une version inférieure, la gallery existe mais pas la variable content - if ($this->getData(['module', $this->getUrl(0)]) && - $this->getData(['module', $this->getUrl(0), 'content']) === NULL ) { + if ( + $this->getData(['module', $this->getUrl(0)]) && + $this->getData(['module', $this->getUrl(0), 'content']) === NULL + ) { // Changement de l'arborescence dans module.json $data = $this->getData(['module', $this->getUrl(0)]); @@ -208,9 +213,9 @@ class gallery extends common { unlink('module/gallery/view/gallery/gallery.css'); } // Stockage des données du thème de la gallery existant - if (is_array($this->getData(['theme','gallery']))) { - $data = $this->getData(['theme','gallery']); - $this->deleteData(['theme','gallery']); + if (is_array($this->getData(['theme', 'gallery']))) { + $data = $this->getData(['theme', 'gallery']); + $this->deleteData(['theme', 'gallery']); $this->setData(['module', $this->getUrl(0), 'theme', $data]); // Nom de la feuille de style $this->setData(['module', $this->getUrl(0), 'theme', 'style', self::DATADIRECTORY . $this->getUrl(0) . '/theme.css']); @@ -218,61 +223,63 @@ class gallery extends common { } // Variable commune - $fileCSS = self::DATADIRECTORY . $this->getUrl(0) . '/theme.css' ; + $fileCSS = self::DATADIRECTORY . $this->getUrl(0) . '/theme.css'; // Check la présence des données de thème - if ( $this->getData(['module', $this->getUrl(0), 'theme']) === null ) { + if ($this->getData(['module', $this->getUrl(0), 'theme']) === null) { require_once('module/gallery/ressource/defaultdata.php'); - $this->setData(['module', $this->getUrl(0), 'theme', theme::$defaultTheme]); + $this->setData(['module', $this->getUrl(0), 'theme', theme::$defaultTheme]); // Nom de la feuille de style - $this->setData(['module', $this->getUrl(0), 'theme', 'style', $fileCSS]); + $this->setData(['module', $this->getUrl(0), 'theme', 'style', $fileCSS]); } // Check la présence de la feuille de style - if ( !file_exists(self::DATADIRECTORY . $this->getUrl(0) . '/theme.css')) { + if (!file_exists(self::DATADIRECTORY . $this->getUrl(0) . '/theme.css')) { // Dossier de l'instance - if (!is_dir(self::DATADIRECTORY . $this->getUrl(0) )) { - mkdir (self::DATADIRECTORY . $this->getUrl(0), 0755, true); + if (!is_dir(self::DATADIRECTORY . $this->getUrl(0))) { + mkdir(self::DATADIRECTORY . $this->getUrl(0), 0755, true); } // Générer la feuille de CSS $content = file_get_contents('module/gallery/ressource/vartheme.css'); $themeCss = file_get_contents('module/gallery/ressource/theme.css'); // Injection des variables - $content = str_replace('#thumbAlign#',$this->getData(['module', $this->getUrl(0), 'theme', 'thumbAlign']),$content ); - $content = str_replace('#thumbWidth#',$this->getData(['module', $this->getUrl(0), 'theme', 'thumbWidth']),$content ); - $content = str_replace('#thumbHeight#',$this->getData(['module', $this->getUrl(0), 'theme', 'thumbHeight']),$content ); - $content = str_replace('#thumbMargin#',$this->getData(['module', $this->getUrl(0), 'theme', 'thumbMargin']),$content ); - $content = str_replace('#thumbBorder#',$this->getData(['module', $this->getUrl(0), 'theme', 'thumbBorder']),$content ); - $content = str_replace('#thumbBorderColor#',$this->getData(['module', $this->getUrl(0), 'theme', 'thumbBorderColor']),$content ); - $content = str_replace('#thumbOpacity#',$this->getData(['module', $this->getUrl(0), 'theme', 'thumbOpacity']),$content ); - $content = str_replace('#thumbShadows#',$this->getData(['module', $this->getUrl(0), 'theme', 'thumbShadows']),$content ); - $content = str_replace('#thumbShadowsColor#',$this->getData(['module', $this->getUrl(0), 'theme', 'thumbShadowsColor']),$content ); - $content = str_replace('#thumbRadius#',$this->getData(['module', $this->getUrl(0), 'theme', 'thumbRadius']),$content ); - $content = str_replace('#legendAlign#',$this->getData(['module', $this->getUrl(0), 'theme', 'legendAlign']),$content ); - $content = str_replace('#legendHeight#',$this->getData(['module', $this->getUrl(0), 'theme', 'legendHeight']),$content ); - $content = str_replace('#legendTextColor#',$this->getData(['module', $this->getUrl(0), 'theme', 'legendTextColor']),$content ); - $content = str_replace('#legendBgColor#',$this->getData(['module', $this->getUrl(0), 'theme', 'legendBgColor']),$content ); + $content = str_replace('#thumbAlign#', $this->getData(['module', $this->getUrl(0), 'theme', 'thumbAlign']), $content); + $content = str_replace('#thumbWidth#', $this->getData(['module', $this->getUrl(0), 'theme', 'thumbWidth']), $content); + $content = str_replace('#thumbHeight#', $this->getData(['module', $this->getUrl(0), 'theme', 'thumbHeight']), $content); + $content = str_replace('#thumbMargin#', $this->getData(['module', $this->getUrl(0), 'theme', 'thumbMargin']), $content); + $content = str_replace('#thumbBorder#', $this->getData(['module', $this->getUrl(0), 'theme', 'thumbBorder']), $content); + $content = str_replace('#thumbBorderColor#', $this->getData(['module', $this->getUrl(0), 'theme', 'thumbBorderColor']), $content); + $content = str_replace('#thumbOpacity#', $this->getData(['module', $this->getUrl(0), 'theme', 'thumbOpacity']), $content); + $content = str_replace('#thumbShadows#', $this->getData(['module', $this->getUrl(0), 'theme', 'thumbShadows']), $content); + $content = str_replace('#thumbShadowsColor#', $this->getData(['module', $this->getUrl(0), 'theme', 'thumbShadowsColor']), $content); + $content = str_replace('#thumbRadius#', $this->getData(['module', $this->getUrl(0), 'theme', 'thumbRadius']), $content); + $content = str_replace('#legendAlign#', $this->getData(['module', $this->getUrl(0), 'theme', 'legendAlign']), $content); + $content = str_replace('#legendHeight#', $this->getData(['module', $this->getUrl(0), 'theme', 'legendHeight']), $content); + $content = str_replace('#legendTextColor#', $this->getData(['module', $this->getUrl(0), 'theme', 'legendTextColor']), $content); + $content = str_replace('#legendBgColor#', $this->getData(['module', $this->getUrl(0), 'theme', 'legendBgColor']), $content); // Ecriture de la feuille de style - file_put_contents(self::DATADIRECTORY . $this->getUrl(0) . '/theme.css' , $content . $themeCss); + file_put_contents(self::DATADIRECTORY . $this->getUrl(0) . '/theme.css', $content . $themeCss); // Nom de la feuille de style - $this->setData(['module', $this->getUrl(0), 'theme', 'style', $fileCSS]); + $this->setData(['module', $this->getUrl(0), 'theme', 'style', $fileCSS]); } // Check la présence de la config - require_once('module/gallery/ressource/defaultdata.php'); - if ( is_null($this->getData(['module', $this->getUrl(0), 'config', 'showUniqueGallery'])) - || is_null($this->getData(['module', $this->getUrl(0), 'config', 'backPosition'])) - || is_null($this->getData(['module', $this->getUrl(0), 'config', 'backAlign'])) - || is_null($this->getData(['module', $this->getUrl(0), 'config', 'versionData'])) + + if ( + is_null($this->getData(['module', $this->getUrl(0), 'config', 'showUniqueGallery'])) + || is_null($this->getData(['module', $this->getUrl(0), 'config', 'backPosition'])) + || is_null($this->getData(['module', $this->getUrl(0), 'config', 'backAlign'])) + || is_null($this->getData(['module', $this->getUrl(0), 'config', 'versionData'])) ) { - $this->setData(['module', $this->getUrl(0), 'config', theme::$defaultData]); + require_once('module/gallery/ressource/defaultdata.php'); + $this->setData(['module', $this->getUrl(0), 'config', theme::$defaultData]); } // Contenu vide de la galerie - if (!is_array($this->getData(['module', $this->getUrl(0), 'content'])) ) { - $this->setData(['module', $this->getUrl(0), 'content', array() ]); + if (!is_array($this->getData(['module', $this->getUrl(0), 'content']))) { + $this->setData(['module', $this->getUrl(0), 'content', array()]); } } @@ -281,25 +288,30 @@ class gallery extends common { * Tri de la liste des galeries * */ - public function sortGalleries() { - if( isset($_POST['response']) ){ - $data = explode('&',$_POST['response']); - $data = str_replace('galleryTable%5B%5D=','',$data); - for($i=0;$isetData(['module', $this->getUrl(0), 'content', $data[$i], [ - 'config' => [ - 'name' => $this->getData(['module',$this->getUrl(0), 'content', $data[$i],'config','name']), - 'directory' => $this->getData(['module',$this->getUrl(0), 'content', $data[$i],'config','directory']), - 'homePicture' => $this->getData(['module',$this->getUrl(0), 'content', $data[$i],'config','homePicture']), - 'sort' => $this->getData(['module',$this->getUrl(0), 'content', $data[$i],'config','sort']), - 'position'=> $i, - 'fullScreen' => $this->getData(['module',$this->getUrl(0), 'content',$data[$i],'config','fullScreen']), - 'showPageContent' => $this->getData(['module',$this->getUrl(0), 'content',$data[$i],'config','showPageContent']) + public function sortGalleries() + { + if (isset($_POST['response'])) { + $data = explode('&', $_POST['response']); + $data = str_replace('galleryTable%5B%5D=', '', $data); + for ($i = 0; $i < count($data); $i++) { + $this->setData([ + 'module', $this->getUrl(0), + 'content', $data[$i], + [ + 'config' => [ + 'name' => $this->getData(['module', $this->getUrl(0), 'content', $data[$i], 'config', 'name']), + 'directory' => $this->getData(['module', $this->getUrl(0), 'content', $data[$i], 'config', 'directory']), + 'homePicture' => $this->getData(['module', $this->getUrl(0), 'content', $data[$i], 'config', 'homePicture']), + 'sort' => $this->getData(['module', $this->getUrl(0), 'content', $data[$i], 'config', 'sort']), + 'position' => $i, + 'fullScreen' => $this->getData(['module', $this->getUrl(0), 'content', $data[$i], 'config', 'fullScreen']), + 'showPageContent' => $this->getData(['module', $this->getUrl(0), 'content', $data[$i], 'config', 'showPageContent']) - ], - 'legend' => $this->getData(['module',$this->getUrl(0), 'content', $data[$i],'legend']), - 'positions' => $this->getData(['module',$this->getUrl(0), 'content', $data[$i],'positions']) - ]]); + ], + 'legend' => $this->getData(['module', $this->getUrl(0), 'content', $data[$i], 'legend']), + 'positions' => $this->getData(['module', $this->getUrl(0), 'content', $data[$i], 'positions']) + ] + ]); } } } @@ -308,25 +320,31 @@ class gallery extends common { * Tri de la liste des images * */ - public function sortPictures() { - if( isset($_POST['response']) ) { + public function sortPictures() + { + if (isset($_POST['response'])) { $galleryName = $_POST['gallery']; - $data = explode('&',$_POST['response']); - $data = str_replace('galleryTable%5B%5D=','',$data); + $data = explode('&', $_POST['response']); + $data = str_replace('galleryTable%5B%5D=', '', $data); // Sauvegarder - $this->setData(['module', $this->getUrl(0), 'content', $galleryName, [ - 'config' => [ - 'name' => $this->getData(['module',$this->getUrl(0), 'content', $galleryName,'config','name']), - 'directory' => $this->getData(['module',$this->getUrl(0),'content',$galleryName,'config','directory']), - 'homePicture' => $this->getData(['module',$this->getUrl(0),'content',$galleryName,'config','homePicture']), - 'sort' => $this->getData(['module',$this->getUrl(0),'content',$galleryName,'config','sort']), - 'position' => $this->getData(['module',$this->getUrl(0),'content',$galleryName,'config','position']), - 'fullScreen' => $this->getData(['module',$this->getUrl(0),'content',$galleryName,'config','fullScreen']) + $this->setData([ + 'module', $this->getUrl(0), + 'content', + $galleryName, + [ + 'config' => [ + 'name' => $this->getData(['module', $this->getUrl(0), 'content', $galleryName, 'config', 'name']), + 'directory' => $this->getData(['module', $this->getUrl(0), 'content', $galleryName, 'config', 'directory']), + 'homePicture' => $this->getData(['module', $this->getUrl(0), 'content', $galleryName, 'config', 'homePicture']), + 'sort' => $this->getData(['module', $this->getUrl(0), 'content', $galleryName, 'config', 'sort']), + 'position' => $this->getData(['module', $this->getUrl(0), 'content', $galleryName, 'config', 'position']), + 'fullScreen' => $this->getData(['module', $this->getUrl(0), 'content', $galleryName, 'config', 'fullScreen']) - ], - 'legend' => $this->getData(['module',$this->getUrl(0), 'content', $galleryName,'legend']), - 'positions' => array_flip($data) - ]]); + ], + 'legend' => $this->getData(['module', $this->getUrl(0), 'content', $galleryName, 'legend']), + 'positions' => array_flip($data) + ] + ]); } } @@ -334,25 +352,26 @@ class gallery extends common { /** * Configuration */ - public function config() { + public function config() + { // Mise à jour des données de module $this->update(); //Affichage de la galerie triée $g = $this->getData(['module', $this->getUrl(0), 'content']); - $p = helper::arrayColumn(helper::arrayColumn($g,'config'),'position'); - asort($p,SORT_NUMERIC); + $p = helper::arrayColumn(helper::arrayColumn($g, 'config'), 'position'); + asort($p, SORT_NUMERIC); $galleries = []; foreach ($p as $positionId => $item) { - $galleries [$positionId] = $g[$positionId]; + $galleries[$positionId] = $g[$positionId]; } // Traitement de l'affichage - if($galleries) { - foreach($galleries as $galleryId => $gallery) { + if ($galleries) { + foreach ($galleries as $galleryId => $gallery) { // Erreur dossier vide - if(is_dir($gallery['config']['directory'])) { - if(count(scandir($gallery['config']['directory'])) === 2) { + if (is_dir($gallery['config']['directory'])) { + if (count(scandir($gallery['config']['directory'])) === 2) { $gallery['config']['directory'] = '' . $gallery['config']['directory'] . ' (dossier vide)'; } } @@ -365,8 +384,8 @@ class gallery extends common { $gallery['config']['position'] + 1, $gallery['config']['name'], $gallery['config']['directory'], - template::button('galleryConfigEdit' . $galleryId , [ - 'href' => helper::baseUrl() . $this->getUrl(0) . '/edit/' . $galleryId . '/' . $_SESSION['csrf'], + template::button('galleryConfigEdit' . $galleryId, [ + 'href' => helper::baseUrl() . $this->getUrl(0) . '/edit/' . $galleryId . '/' . $_SESSION['csrf'], 'value' => template::ico('pencil'), 'help' => 'Configuration de la galerie ' ]), @@ -395,47 +414,55 @@ class gallery extends common { /** * Ajout d'une galerie */ - public function add() { + public function add() + { // Soumission du formulaire d'ajout d'une galerie - if($this->isPost()) { + if ($this->isPost()) { $galleryId = $this->getInput('galleryAddName', null, true); - $success = false; - if ($galleryId ) { + $success = false; + if ($galleryId) { $galleryId = helper::increment($this->getInput('galleryAddName', helper::FILTER_ID, true), (array) $this->getData(['module', $this->getUrl(0), 'content'])); $homePicture = ''; // définir une vignette par défaut $directory = $this->getInput('galleryAddDirectory', helper::FILTER_STRING_SHORT, true); $iterator = new DirectoryIterator($directory); $i = 0; - foreach($iterator as $fileInfos) { - if($fileInfos->isDot() === false AND $fileInfos->isFile() AND @getimagesize($fileInfos->getPathname())) { + foreach ($iterator as $fileInfos) { + if ($fileInfos->isDot() === false and $fileInfos->isFile() and @getimagesize($fileInfos->getPathname())) { $i += 1; // Créer la miniature si manquante - if (!file_exists( str_replace('source','thumb',$fileInfos->getPath()) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename()))) { - $this->makeThumb($fileInfos->getPathname(), - str_replace('source','thumb',$fileInfos->getPath()) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename()), - self::THUMBS_WIDTH); + if (!file_exists(str_replace('source', 'thumb', $fileInfos->getPath()) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename()))) { + $this->makeThumb( + $fileInfos->getPathname(), + str_replace('source', 'thumb', $fileInfos->getPath()) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename()), + self::THUMBS_WIDTH + ); } // Miniatures $homePicture = strtolower($fileInfos->getFilename()); - break; + break; } } // Le dossier de la galerie est vide if ($i > 0) { - $this->setData(['module', $this->getUrl(0), 'content', $galleryId, [ - 'config' => [ - 'name' => $this->getInput('galleryAddName'), - 'directory' => $this->getInput('galleryAddDirectory', helper::FILTER_STRING_SHORT, true), - 'homePicture' => $homePicture, - 'sort' => $this->getInput('galleryAddSort'), - 'position' => count($this->getData(['module', $this->getUrl(0), 'content'])) + 1, - 'fullScreen' => $this->getInput('galleryAddFullscreen', helper::FILTER_BOOLEAN), - 'showPageContent' => $this->getInput('galleryAddShowPageContent', helper::FILTER_BOOLEAN) - ], - 'legend' => [], - 'positions' => [] - ]]); + $this->setData([ + 'module', $this->getUrl(0), + 'content', + $galleryId, + [ + 'config' => [ + 'name' => $this->getInput('galleryAddName'), + 'directory' => $this->getInput('galleryAddDirectory', helper::FILTER_STRING_SHORT, true), + 'homePicture' => $homePicture, + 'sort' => $this->getInput('galleryAddSort'), + 'position' => count($this->getData(['module', $this->getUrl(0), 'content'])) + 1, + 'fullScreen' => $this->getInput('galleryAddFullscreen', helper::FILTER_BOOLEAN), + 'showPageContent' => $this->getInput('galleryAddShowPageContent', helper::FILTER_BOOLEAN) + ], + 'legend' => [], + 'positions' => [] + ] + ]); $success = true; } else { self::$inputNotices['galleryAddDirectory'] = "Le dossier sélectionné ne contient aucune image"; @@ -469,10 +496,11 @@ class gallery extends common { /** * Suppression */ - public function delete() { + public function delete() + { // $url prend l'adresse sans le token // La galerie n'existe pas - if($this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2)]) === null) { + if ($this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2)]) === null) { // Valeurs en sortie $this->addOutput([ 'access' => false @@ -501,18 +529,20 @@ class gallery extends common { /** * Liste des dossiers */ - public function dirs() { + public function dirs() + { // Valeurs en sortie $this->addOutput([ 'display' => self::DISPLAY_JSON, - 'content' => galleriesHelper::scanDir(self::FILE_DIR.'source') + 'content' => galleriesHelper::scanDir(self::FILE_DIR . 'source') ]); } /** * Édition */ - public function edit() { + public function edit() + { // Jeton incorrect if ($this->getUrl(3) !== $_SESSION['csrf']) { // Valeurs en sortie @@ -522,46 +552,50 @@ class gallery extends common { ]); } // Soumission du formulaire - if($this->isPost()) { + if ($this->isPost()) { // légendes - foreach((array) $this->getInput('legend', null) as $file => $legend) { + foreach ((array) $this->getInput('legend', null) as $file => $legend) { // Image de couverture par défaut si non définie $homePicture = $file; - $file = str_replace('.','',$file); + $file = str_replace('.', '', $file); $legends[$file] = helper::filter($legend, helper::FILTER_STRING_SHORT); } // Photo de la page de garde de l'album définie dans form - if (is_array($this->getInput('homePicture', null)) ) { + if (is_array($this->getInput('homePicture', null))) { // Extrait la couverture sélectionnée $homePicture = array_keys($this->getInput('homePicture', null))[0]; } // Sauvegarder - $this->setData(['module', $this->getUrl(0), 'content', $this->getUrl(2), [ - 'config' => [ - 'homePicture' => $homePicture, - // Données mises à jour par les options - 'name' => $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'config', 'name']), - 'directory' => $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'config', 'directory']), - 'sort' => $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2),'config','sort']), - 'position' => $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2),'config', 'position']), - 'fullScreen' =>$this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'config', 'fullScreen']), - 'showPageContent' =>$this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'config', 'showPageContent']) + $this->setData([ + 'module', $this->getUrl(0), + 'content', $this->getUrl(2), + [ + 'config' => [ + 'homePicture' => $homePicture, + // Données mises à jour par les options + 'name' => $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'config', 'name']), + 'directory' => $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'config', 'directory']), + 'sort' => $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'config', 'sort']), + 'position' => $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'config', 'position']), + 'fullScreen' => $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'config', 'fullScreen']), + 'showPageContent' => $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'config', 'showPageContent']) - ], - 'legend' => $legends, - 'positions' => $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'positions']) - ]]); + ], + 'legend' => $legends, + 'positions' => $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'positions']) + ] + ]); // Valeurs en sortie $this->addOutput([ - 'redirect' => helper::baseUrl() . $this->getUrl(0) . '/edit/' .$this->getUrl(2) . '/' . $_SESSION['csrf'] , + 'redirect' => helper::baseUrl() . $this->getUrl(0) . '/edit/' . $this->getUrl(2) . '/' . $_SESSION['csrf'], 'notification' => helper::translate('Modifications enregistrées'), 'state' => true ]); } // La galerie n'existe pas - if($this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2)]) === null) { + if ($this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2)]) === null) { // Valeurs en sortie $this->addOutput([ 'access' => false @@ -571,60 +605,62 @@ class gallery extends common { else { // Met en forme le tableau $directory = $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'config', 'directory']); - if(is_dir($directory)) { + if (is_dir($directory)) { $iterator = new DirectoryIterator($directory); - foreach($iterator as $fileInfos) { - if($fileInfos->isDot() === false AND $fileInfos->isFile() AND @getimagesize($fileInfos->getPathname())) { + foreach ($iterator as $fileInfos) { + if ($fileInfos->isDot() === false and $fileInfos->isFile() and @getimagesize($fileInfos->getPathname())) { // Créer la miniature RFM si manquante - if (!file_exists( str_replace('source','thumb',$fileInfos->getPath()) . '/' . strtolower($fileInfos->getFilename()))) { - $this->makeThumb($fileInfos->getPathname(), - str_replace('source','thumb',$fileInfos->getPath()) . '/' . strtolower($fileInfos->getFilename()), - 122); + if (!file_exists(str_replace('source', 'thumb', $fileInfos->getPath()) . '/' . strtolower($fileInfos->getFilename()))) { + $this->makeThumb( + $fileInfos->getPathname(), + str_replace('source', 'thumb', $fileInfos->getPath()) . '/' . strtolower($fileInfos->getFilename()), + 122 + ); } - self::$pictures[str_replace('.','',$fileInfos->getFilename())] = [ - $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'positions', str_replace('.','',$fileInfos->getFilename())]) + 1, + self::$pictures[str_replace('.', '', $fileInfos->getFilename())] = [ + $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'positions', str_replace('.', '', $fileInfos->getFilename())]) + 1, $fileInfos->getFilename(), - template::checkbox( 'homePicture[' . $fileInfos->getFilename() . ']', true, '', [ - 'checked' => $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2),'config', 'homePicture']) === $fileInfos->getFilename() ? true : false, + template::checkbox('homePicture[' . $fileInfos->getFilename() . ']', true, '', [ + 'checked' => $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'config', 'homePicture']) === $fileInfos->getFilename() ? true : false, 'class' => 'homePicture' ]), template::text('legend[' . $fileInfos->getFilename() . ']', [ - 'value' => $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'legend', str_replace('.','',$fileInfos->getFilename())]) + 'value' => $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'legend', str_replace('.', '', $fileInfos->getFilename())]) ]), - '' + '' ]; - self::$picturesId [] = str_replace('.','',$fileInfos->getFilename()); + self::$picturesId[] = str_replace('.', '', $fileInfos->getFilename()); } } // Tri des images switch ($this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'config', 'sort'])) { case self::SORT_HAND: - $positions = $this->getData(['module',$this->getUrl(0),'content', $this->getUrl(2),'positions']); + $positions = $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'positions']); if ($positions) { foreach ($positions as $key => $value) { - if (array_key_exists($key,self::$pictures)) { + if (array_key_exists($key, self::$pictures)) { $tempPictures[$key] = self::$pictures[$key]; - $tempPicturesId [] = $key; + $tempPicturesId[] = $key; } } // Images ayant été ajoutées dans le dossier mais non triées foreach (self::$pictures as $key => $value) { - if (!array_key_exists($key,$tempPictures)) { + if (!array_key_exists($key, $tempPictures)) { $tempPictures[$key] = self::$pictures[$key]; - $tempPicturesId [] = $key; + $tempPicturesId[] = $key; } } self::$pictures = $tempPictures; - self::$picturesId = $tempPicturesId; + self::$picturesId = $tempPicturesId; } break; case self::SORT_ASC: - ksort(self::$pictures,SORT_NATURAL); - sort(self::$picturesId,SORT_NATURAL); + ksort(self::$pictures, SORT_NATURAL); + sort(self::$picturesId, SORT_NATURAL); break; case self::SORT_DSC: - krsort(self::$pictures,SORT_NATURAL); - rsort(self::$picturesId,SORT_NATURAL); + krsort(self::$pictures, SORT_NATURAL); + rsort(self::$picturesId, SORT_NATURAL); break; } } @@ -642,18 +678,19 @@ class gallery extends common { /** * Accueil (deux affichages en un pour éviter une url à rallonge) */ - public function index() { + public function index() + { // Mise à jour des données de module $this->update(); // Une seule galerie, bifurquer sur celle-ci - $gallery = $this->getData(['module', $this->getUrl(0), 'config', 'showUniqueGallery']) === true && - count($this->getData(['module', $this->getUrl(0), 'content'])) === 1 - ? array_key_first($this->getData(['module', $this->getUrl(0), 'content'])) - : $this->getUrl(1); - if($gallery) { + $gallery = $this->getData(['module', $this->getUrl(0), 'config', 'showUniqueGallery']) === true && + count($this->getData(['module', $this->getUrl(0), 'content'])) === 1 + ? array_key_first($this->getData(['module', $this->getUrl(0), 'content'])) + : $this->getUrl(1); + if ($gallery) { // La galerie n'existe pas - if($this->getData(['module', $this->getUrl(0), 'content', $gallery]) === null) { + if ($this->getData(['module', $this->getUrl(0), 'content', $gallery]) === null) { // Valeurs en sortie $this->addOutput([ 'access' => false @@ -664,29 +701,46 @@ class gallery extends common { // Images de la galerie $directory = $this->getData(['module', $this->getUrl(0), 'content', $gallery, 'config', 'directory']); // Définir les options - self::$config['homePicture'] = $this->getData(['module',$this->getUrl(0),'content', $gallery,'config','homePicture']); - self::$config['fullScreen'] = $this->getData(['module',$this->getUrl(0),'content', $gallery,'config','fullScreen']) === true ? 'fullScreen' : ''; - self::$config['backPosition'] = ( $this->getData(['module', $this->getUrl(0), 'config', 'showUniqueGallery']) === true && - count($this->getData(['module', $this->getUrl(0), 'content'])) === 1 ) - ? 'displayNone' - :$this->getData(['module', $this->getUrl(0), 'config','backPosition']) ; - self::$config['backAlign'] = 'textAlign' . ucfirst($this->getData(['module', $this->getUrl(0), 'config','backAlign'])) ; - if(is_dir($directory) ) { + self::$config['homePicture'] = $this->getData(['module', $this->getUrl(0), 'content', $gallery, 'config', 'homePicture']); + self::$config['fullScreen'] = $this->getData(['module', $this->getUrl(0), 'content', $gallery, 'config', 'fullScreen']) === true ? 'fullScreen' : ''; + self::$config['backPositionTop'] = ( $this->getData(['module', $this->getUrl(0), 'config', 'backPosition']) === 'top'|| + $this->getData(['module', $this->getUrl(0), 'config', 'backPosition']) === 'both' ) + ? '' + : 'displayNone'; + self::$config['backPositionBottom'] = ( $this->getData(['module', $this->getUrl(0), 'config', 'backPosition']) === 'bottom'|| + $this->getData(['module', $this->getUrl(0), 'config', 'backPosition']) === 'both' ) + ? '' + : 'displayNone'; + self::$config['backAlign'] = 'textAlign' . ucfirst($this->getData(['module', $this->getUrl(0), 'config', 'backAlign'])); + + // Annulation de l'apparition des boutons si la galerie est unique + self::$config['backPositionTop'] = ($this->getData(['module', $this->getUrl(0), 'config', 'showUniqueGallery']) === true + && count($this->getData(['module', $this->getUrl(0), 'content'])) === 1) + ? 'displayNone' + : self::$config['backPositionTop']; + self::$config['backPositionBottom'] = ($this->getData(['module', $this->getUrl(0), 'config', 'showUniqueGallery']) === true + && count($this->getData(['module', $this->getUrl(0), 'content'])) === 1) + ? 'displayNone' + : self::$config['backPositionBottom']; + + if (is_dir($directory)) { $iterator = new DirectoryIterator($directory); - foreach($iterator as $fileInfos) { - if($fileInfos->isDot() === false AND $fileInfos->isFile() AND @getimagesize($fileInfos->getPathname())) { - self::$pictures[$directory . '/' . $fileInfos->getFilename()] = $this->getData(['module', $this->getUrl(0), 'content', $gallery, 'legend', str_replace('.','',$fileInfos->getFilename())]); - $picturesSort[$directory . '/' . $fileInfos->getFilename()] = $this->getData(['module', $this->getUrl(0), 'content', $gallery, 'positions', str_replace('.','',$fileInfos->getFilename())]); + foreach ($iterator as $fileInfos) { + if ($fileInfos->isDot() === false and $fileInfos->isFile() and @getimagesize($fileInfos->getPathname())) { + self::$pictures[$directory . '/' . $fileInfos->getFilename()] = $this->getData(['module', $this->getUrl(0), 'content', $gallery, 'legend', str_replace('.', '', $fileInfos->getFilename())]); + $picturesSort[$directory . '/' . $fileInfos->getFilename()] = $this->getData(['module', $this->getUrl(0), 'content', $gallery, 'positions', str_replace('.', '', $fileInfos->getFilename())]); // Créer la miniature si manquante - if (!file_exists( str_replace('source','thumb',$fileInfos->getPath()) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename()))) { - $this->makeThumb($fileInfos->getPathname(), - str_replace('source','thumb',$fileInfos->getPath()) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename()), - self::THUMBS_WIDTH); + if (!file_exists(str_replace('source', 'thumb', $fileInfos->getPath()) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename()))) { + $this->makeThumb( + $fileInfos->getPathname(), + str_replace('source', 'thumb', $fileInfos->getPath()) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename()), + self::THUMBS_WIDTH + ); } // Définir la Miniature - self::$thumbs[$directory . '/' . $fileInfos->getFilename()] = file_exists( str_replace('source','thumb',$directory) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename())) - ? str_replace('source','thumb',$directory) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename()) - : str_replace('source','thumb',$directory) . '/' . strtolower($fileInfos->getFilename()); + self::$thumbs[$directory . '/' . $fileInfos->getFilename()] = file_exists(str_replace('source', 'thumb', $directory) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename())) + ? str_replace('source', 'thumb', $directory) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename()) + : str_replace('source', 'thumb', $directory) . '/' . strtolower($fileInfos->getFilename()); } } @@ -702,24 +756,24 @@ class gallery extends common { break; } case self::SORT_DSC: - krsort(self::$pictures,SORT_NATURAL); + krsort(self::$pictures, SORT_NATURAL); break; case self::SORT_ASC: default: - ksort(self::$pictures,SORT_NATURAL); + ksort(self::$pictures, SORT_NATURAL); break; } } // Affichage du template - if(self::$pictures) { + if (self::$pictures) { // Valeurs en sortie $this->addOutput([ 'showBarEditButton' => true, 'title' => $this->getData(['module', $this->getUrl(0), 'content', $gallery, 'config', 'name']), 'view' => 'gallery', 'style' => file_exists($this->getData(['module', $this->getUrl(0), 'theme', 'style'])) - ? $this->getData(['module', $this->getUrl(0), 'theme', 'style']) - : '', + ? $this->getData(['module', $this->getUrl(0), 'theme', 'style']) + : '', 'showPageContent' => $this->getData(['module', $this->getUrl(0), 'content', $gallery, 'config', 'showPageContent']), ]); } @@ -737,41 +791,45 @@ class gallery extends common { else { // Tri des galeries suivant l'ordre défini $g = $this->getData(['module', $this->getUrl(0), 'content']); - $p = helper::arrayColumn(helper::arrayColumn($g,'config'),'position'); - asort($p,SORT_NUMERIC); + $p = helper::arrayColumn(helper::arrayColumn($g, 'config'), 'position'); + asort($p, SORT_NUMERIC); $galleries = []; foreach ($p as $positionId => $item) { - $galleries [$positionId] = $g[$positionId]; + $galleries[$positionId] = $g[$positionId]; } // Construire le tableau - foreach((array) $galleries as $galleryId => $gallery) { - if(is_dir($gallery['config']['directory'])) { + foreach ((array) $galleries as $galleryId => $gallery) { + if (is_dir($gallery['config']['directory'])) { $iterator = new DirectoryIterator($gallery['config']['directory']); - foreach($iterator as $fileInfos) { - if($fileInfos->isDot() === false AND $fileInfos->isFile() AND @getimagesize($fileInfos->getPathname())) { + foreach ($iterator as $fileInfos) { + if ($fileInfos->isDot() === false and $fileInfos->isFile() and @getimagesize($fileInfos->getPathname())) { self::$galleries[$galleryId] = $gallery; // L'image de couverture est-elle supprimée ? - if (file_exists( $gallery['config']['directory'] . '/' . $gallery['config']['homePicture'])) { + if (file_exists($gallery['config']['directory'] . '/' . $gallery['config']['homePicture'])) { // Créer la miniature si manquante - if (!file_exists( str_replace('source','thumb',$gallery['config']['directory']) . '/' . self::THUMBS_SEPARATOR . strtolower($gallery['config']['homePicture']))) { - $this->makeThumb($gallery['config']['directory'] . '/' . str_replace(self::THUMBS_SEPARATOR ,'',$gallery['config']['homePicture']), - str_replace('source','thumb',$gallery['config']['directory']) . '/' . self::THUMBS_SEPARATOR . strtolower($gallery['config']['homePicture']), - self::THUMBS_WIDTH); + if (!file_exists(str_replace('source', 'thumb', $gallery['config']['directory']) . '/' . self::THUMBS_SEPARATOR . strtolower($gallery['config']['homePicture']))) { + $this->makeThumb( + $gallery['config']['directory'] . '/' . str_replace(self::THUMBS_SEPARATOR, '', $gallery['config']['homePicture']), + str_replace('source', 'thumb', $gallery['config']['directory']) . '/' . self::THUMBS_SEPARATOR . strtolower($gallery['config']['homePicture']), + self::THUMBS_WIDTH + ); } // Définir l'image de couverture - self::$firstPictures[$galleryId] = file_exists( str_replace('source','thumb',$gallery['config']['directory']) . '/' . self::THUMBS_SEPARATOR . strtolower($gallery['config']['homePicture'])) - ? str_replace('source','thumb',$gallery['config']['directory']) . '/' . self::THUMBS_SEPARATOR . strtolower($gallery['config']['homePicture']) - : str_replace('source','thumb',$gallery['config']['directory']) . '/' . strtolower($gallery['config']['homePicture']); + self::$firstPictures[$galleryId] = file_exists(str_replace('source', 'thumb', $gallery['config']['directory']) . '/' . self::THUMBS_SEPARATOR . strtolower($gallery['config']['homePicture'])) + ? str_replace('source', 'thumb', $gallery['config']['directory']) . '/' . self::THUMBS_SEPARATOR . strtolower($gallery['config']['homePicture']) + : str_replace('source', 'thumb', $gallery['config']['directory']) . '/' . strtolower($gallery['config']['homePicture']); } else { // homePicture contient une image invalide, supprimée ou déplacée // Définir l'image de couverture, première image disponible - $this->makeThumb($fileInfos->getPath() . '/' . $fileInfos->getFilename(), - str_replace('source','thumb',$fileInfos->getPath()) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename()), - self::THUMBS_WIDTH); - self::$firstPictures[$galleryId] = file_exists( str_replace('source','thumb',$fileInfos->getPath()) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename())) - ? str_replace('source','thumb',$fileInfos->getPath()) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename()) - : str_replace('source','thumb',$fileInfos->getPath()) . '/' . strtolower($fileInfos->getFilename()); + $this->makeThumb( + $fileInfos->getPath() . '/' . $fileInfos->getFilename(), + str_replace('source', 'thumb', $fileInfos->getPath()) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename()), + self::THUMBS_WIDTH + ); + self::$firstPictures[$galleryId] = file_exists(str_replace('source', 'thumb', $fileInfos->getPath()) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename())) + ? str_replace('source', 'thumb', $fileInfos->getPath()) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename()) + : str_replace('source', 'thumb', $fileInfos->getPath()) . '/' . strtolower($fileInfos->getFilename()); } } continue(1); @@ -784,8 +842,8 @@ class gallery extends common { 'showPageContent' => true, 'view' => 'index', 'style' => file_exists($this->getData(['module', $this->getUrl(0), 'theme', 'style'])) - ? $this->getData(['module', $this->getUrl(0), 'theme', 'style']) - : '' + ? $this->getData(['module', $this->getUrl(0), 'theme', 'style']) + : '' ]); } } @@ -793,7 +851,8 @@ class gallery extends common { /** * Thème de la galerie */ - public function theme() { + public function theme() + { // Jeton incorrect if ($this->getUrl(2) !== $_SESSION['csrf']) { // Valeurs en sortie @@ -803,47 +862,51 @@ class gallery extends common { ]); } // Soumission du formulaire - if($this->isPost()) { + if ($this->isPost()) { // Dossier de l'instance - if (!is_dir(self::DATADIRECTORY . $this->getUrl(0) )) { - mkdir (self::DATADIRECTORY . $this->getUrl(0), 0755, true); + if (!is_dir(self::DATADIRECTORY . $this->getUrl(0))) { + mkdir(self::DATADIRECTORY . $this->getUrl(0), 0755, true); } - $this->setData(['module', $this->getUrl(0), 'theme', [ - 'thumbAlign' => $this->getinput('galleryThemeThumbAlign', helper::FILTER_STRING_SHORT), - 'thumbWidth' => $this->getinput('galleryThemeThumbWidth', helper::FILTER_STRING_SHORT), - 'thumbHeight' => $this->getinput('galleryThemeThumbHeight', helper::FILTER_STRING_SHORT), - 'thumbMargin' => $this->getinput('galleryThemeThumbMargin', helper::FILTER_STRING_SHORT), - 'thumbBorder' => $this->getinput('galleryThemeThumbBorder', helper::FILTER_STRING_SHORT), - 'thumbBorderColor' => $this->getinput('galleryThemeThumbBorderColor', helper::FILTER_STRING_SHORT), - 'thumbOpacity' => $this->getinput('galleryThemeThumbOpacity', helper::FILTER_STRING_SHORT), - 'thumbShadows' => $this->getinput('galleryThemeThumbShadows', helper::FILTER_STRING_SHORT), + $this->setData([ + 'module', $this->getUrl(0), + 'theme', + [ + 'thumbAlign' => $this->getinput('galleryThemeThumbAlign', helper::FILTER_STRING_SHORT), + 'thumbWidth' => $this->getinput('galleryThemeThumbWidth', helper::FILTER_STRING_SHORT), + 'thumbHeight' => $this->getinput('galleryThemeThumbHeight', helper::FILTER_STRING_SHORT), + 'thumbMargin' => $this->getinput('galleryThemeThumbMargin', helper::FILTER_STRING_SHORT), + 'thumbBorder' => $this->getinput('galleryThemeThumbBorder', helper::FILTER_STRING_SHORT), + 'thumbBorderColor' => $this->getinput('galleryThemeThumbBorderColor', helper::FILTER_STRING_SHORT), + 'thumbOpacity' => $this->getinput('galleryThemeThumbOpacity', helper::FILTER_STRING_SHORT), + 'thumbShadows' => $this->getinput('galleryThemeThumbShadows', helper::FILTER_STRING_SHORT), 'thumbShadowsColor' => $this->getinput('galleryThemeThumbShadowsColor', helper::FILTER_STRING_SHORT), - 'thumbRadius' => $this->getinput('galleryThemeThumbRadius', helper::FILTER_STRING_SHORT), - 'legendHeight' => $this->getinput('galleryThemeLegendHeight', helper::FILTER_STRING_SHORT), - 'legendAlign' => $this->getinput('galleryThemeLegendAlign', helper::FILTER_STRING_SHORT), - 'legendTextColor' => $this->getinput('galleryThemeLegendTextColor', helper::FILTER_STRING_SHORT), - 'legendBgColor' => $this->getinput('galleryThemeLegendBgColor', helper::FILTER_STRING_SHORT), + 'thumbRadius' => $this->getinput('galleryThemeThumbRadius', helper::FILTER_STRING_SHORT), + 'legendHeight' => $this->getinput('galleryThemeLegendHeight', helper::FILTER_STRING_SHORT), + 'legendAlign' => $this->getinput('galleryThemeLegendAlign', helper::FILTER_STRING_SHORT), + 'legendTextColor' => $this->getinput('galleryThemeLegendTextColor', helper::FILTER_STRING_SHORT), + 'legendBgColor' => $this->getinput('galleryThemeLegendBgColor', helper::FILTER_STRING_SHORT), 'showUniqueGallery' => $this->getinput('galleryThemeShowUniqueGallery', helper::FILTER_BOOLEAN), - 'style' => self::DATADIRECTORY . $this->getUrl(0) . '/theme.css', - ]]); + 'style' => self::DATADIRECTORY . $this->getUrl(0) . '/theme.css', + ] + ]); // Création des fichiers CSS $content = file_get_contents('module/gallery/ressource/vartheme.css'); $themeCss = file_get_contents('module/gallery/ressource/theme.css'); // Injection des variables - $content = str_replace('#thumbAlign#',$this->getinput('galleryThemeThumbAlign'),$content ); - $content = str_replace('#thumbWidth#',$this->getinput('galleryThemeThumbWidth'),$content ); - $content = str_replace('#thumbHeight#',$this->getinput('galleryThemeThumbHeight'),$content ); - $content = str_replace('#thumbMargin#',$this->getinput('galleryThemeThumbMargin'),$content ); - $content = str_replace('#thumbBorder#',$this->getinput('galleryThemeThumbBorder'),$content ); - $content = str_replace('#thumbBorderColor#',$this->getinput('galleryThemeThumbBorderColor'),$content ); - $content = str_replace('#thumbOpacity#',$this->getinput('galleryThemeThumbOpacity'),$content ); - $content = str_replace('#thumbShadows#',$this->getinput('galleryThemeThumbShadows'),$content ); - $content = str_replace('#thumbShadowsColor#',$this->getinput('galleryThemeThumbShadowsColor'),$content ); - $content = str_replace('#thumbRadius#',$this->getinput('galleryThemeThumbRadius'),$content ); - $content = str_replace('#legendAlign#',$this->getinput('galleryThemeLegendAlign'),$content ); - $content = str_replace('#legendHeight#',$this->getinput('galleryThemeLegendHeight'),$content ); - $content = str_replace('#legendTextColor#',$this->getinput('galleryThemeLegendTextColor'),$content ); - $content = str_replace('#legendBgColor#',$this->getinput('galleryThemeLegendBgColor'),$content ); + $content = str_replace('#thumbAlign#', $this->getinput('galleryThemeThumbAlign'), $content); + $content = str_replace('#thumbWidth#', $this->getinput('galleryThemeThumbWidth'), $content); + $content = str_replace('#thumbHeight#', $this->getinput('galleryThemeThumbHeight'), $content); + $content = str_replace('#thumbMargin#', $this->getinput('galleryThemeThumbMargin'), $content); + $content = str_replace('#thumbBorder#', $this->getinput('galleryThemeThumbBorder'), $content); + $content = str_replace('#thumbBorderColor#', $this->getinput('galleryThemeThumbBorderColor'), $content); + $content = str_replace('#thumbOpacity#', $this->getinput('galleryThemeThumbOpacity'), $content); + $content = str_replace('#thumbShadows#', $this->getinput('galleryThemeThumbShadows'), $content); + $content = str_replace('#thumbShadowsColor#', $this->getinput('galleryThemeThumbShadowsColor'), $content); + $content = str_replace('#thumbRadius#', $this->getinput('galleryThemeThumbRadius'), $content); + $content = str_replace('#legendAlign#', $this->getinput('galleryThemeLegendAlign'), $content); + $content = str_replace('#legendHeight#', $this->getinput('galleryThemeLegendHeight'), $content); + $content = str_replace('#legendTextColor#', $this->getinput('galleryThemeLegendTextColor'), $content); + $content = str_replace('#legendBgColor#', $this->getinput('galleryThemeLegendBgColor'), $content); $success = is_int(file_put_contents(self::DATADIRECTORY . $this->getUrl(0) . '/theme.css', $content . $themeCss)); // Valeurs en sortie $this->addOutput([ @@ -865,7 +928,8 @@ class gallery extends common { /** * Option de configuration de la galerie */ - public function option() { + public function option() + { /** * Options applicables à toutes les galeries du module */ @@ -879,14 +943,19 @@ class gallery extends common { ]); } // Soumission du formulaire - if($this->isPost()) { + if ($this->isPost()) { // Sauver la configuration de la galerie - $this->setData(['module', $this->getUrl(0), 'config', [ + $this->setData([ + 'module', $this->getUrl(0), + 'config', + [ 'showUniqueGallery' => $this->getinput('galleriesOptionShowUniqueGallery', helper::FILTER_BOOLEAN), - 'backPosition' => $this->getinput('galleryOptionBackPosition', null), - 'backAlign' => $this->getinput('galleryOptionBackAlign', null) - ]]); + 'backPosition' => $this->getinput('galleryOptionBackPosition'), + 'backAlign' => $this->getinput('galleryOptionBackAlign'), + 'versionData' => $this->getData(['module', $this->getUrl(0), 'config', 'versionData']), + ] + ]); // Valeurs en sortie $this->addOutput([ @@ -915,19 +984,19 @@ class gallery extends common { ]); } // Soumission du formulaire - if($this->isPost()) { + if ($this->isPost()) { // Le nom de la galerie est vide c'est le nom dans l'url qui est pris en compte $galleryId = !empty($this->getInput('galleryEditName')) ? $this->getInput('galleryEditName', helper::FILTER_ID, true) : $this->getUrl(3); // Sauvegarde des Valeurs non affectées par ce formulaire - $homePicture = $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(3), 'config', 'homePicture']); - $position = $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(3),'config','position']); - $legend = $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(3), 'legend']); - $positions = $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(3), 'positions']); + $homePicture = $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(3), 'config', 'homePicture']); + $position = $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(3), 'config', 'position']); + $legend = $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(3), 'legend']); + $positions = $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(3), 'positions']); // Le nom de la galerie n'est pas celui dans la BDD - if($galleryId !== $this->getUrl(3)) { + if ($galleryId !== $this->getUrl(3)) { // Incrémente le nouvel id de la galerie $galleryId = helper::increment($galleryId, $this->getData(['module', $this->getUrl(0), 'content'])); // Supprime l'ancienne galerie @@ -935,25 +1004,30 @@ class gallery extends common { } // Sauvegarder if ($this->getInput('galleryEditName')) { - $this->setData(['module', $this->getUrl(0), 'content', $galleryId, [ - 'config' => [ - 'name' => $this->getInput('galleryEditName', helper::FILTER_STRING_SHORT, true), - 'directory' => $this->getInput('galleryEditDirectory', helper::FILTER_STRING_SHORT, true), - 'sort' => $this->getInput('galleryEditSort'), - 'fullScreen' => $this->getInput('galleryEditFullscreen', helper::FILTER_BOOLEAN), - 'showPageContent' => $this->getInput('galleryEditShowPageContent', helper::FILTER_BOOLEAN), - // Données lues à partir du formulaire edit de la galerie avec la liste des images - 'homePicture' =>$homePicture, - 'position' => $position + $this->setData([ + 'module', $this->getUrl(0), + 'content', + $galleryId, + [ + 'config' => [ + 'name' => $this->getInput('galleryEditName', helper::FILTER_STRING_SHORT, true), + 'directory' => $this->getInput('galleryEditDirectory', helper::FILTER_STRING_SHORT, true), + 'sort' => $this->getInput('galleryEditSort'), + 'fullScreen' => $this->getInput('galleryEditFullscreen', helper::FILTER_BOOLEAN), + 'showPageContent' => $this->getInput('galleryEditShowPageContent', helper::FILTER_BOOLEAN), + // Données lues à partir du formulaire edit de la galerie avec la liste des images + 'homePicture' => $homePicture, + 'position' => $position - ], - 'legend' => $legend, - 'positions' => $positions - ]]); + ], + 'legend' => $legend, + 'positions' => $positions + ] + ]); } // Valeurs en sortie $this->addOutput([ - 'redirect' => helper::baseUrl() . $this->getUrl(0) . '/edit/' . $galleryId . '/' . $_SESSION['csrf'] , + 'redirect' => helper::baseUrl() . $this->getUrl(0) . '/edit/' . $galleryId . '/' . $_SESSION['csrf'], 'notification' => helper::translate('Modifications enregistrées'), 'state' => true ]); @@ -962,7 +1036,7 @@ class gallery extends common { self::$formOptionSelect = 'gallery'; // Valeurs en sortie $this->addOutput([ - 'title' => sprintf(helper::translate('Options de la galerie %s'), ucfirst( $this->getUrl(3)) ), + 'title' => sprintf(helper::translate('Options de la galerie %s'), ucfirst($this->getUrl(3))), 'view' => 'option' ]); } else { @@ -976,22 +1050,24 @@ class gallery extends common { } -class galleriesHelper extends helper { +class galleriesHelper extends helper +{ /** * Scan le contenu d'un dossier et de ses sous-dossiers * @param string $dir Dossier à scanner * @return array */ - public static function scanDir($dir) { + public static function scanDir($dir) + { $dirContent = []; $iterator = new DirectoryIterator($dir); - foreach($iterator as $fileInfos) { - if($fileInfos->isDot() === false AND $fileInfos->isDir()) { + foreach ($iterator as $fileInfos) { + if ($fileInfos->isDot() === false and $fileInfos->isDir()) { $dirContent[] = $dir . '/' . $fileInfos->getBasename(); $dirContent = array_merge($dirContent, self::scanDir($dir . '/' . $fileInfos->getBasename())); } } return $dirContent; } -} +} \ No newline at end of file diff --git a/module/gallery/view/gallery/gallery.css b/module/gallery/view/gallery/gallery.css index 275114c1..fa59c70e 100644 --- a/module/gallery/view/gallery/gallery.css +++ b/module/gallery/view/gallery/gallery.css @@ -12,10 +12,3 @@ * @link http://zwiicms.fr/ */ -#topBackPosition.bottom { - display: none; - } - -#bottomBackPosition.top{ - display: none; - } diff --git a/module/gallery/view/gallery/gallery.php b/module/gallery/view/gallery/gallery.php index 6d7721dd..7d68a83f 100644 --- a/module/gallery/view/gallery/gallery.php +++ b/module/gallery/view/gallery/gallery.php @@ -1,8 +1,6 @@ - -
+
'buttonGrey', 'href' => helper::baseUrl() . $this->getUrl(0), 'value' => template::ico('left') ]); ?> @@ -25,7 +23,7 @@
-
+
helper::baseUrl() . $this->getUrl(0),