Merge branch '10600' into 11000

This commit is contained in:
fredtempez 2021-04-12 18:14:02 +02:00
commit ba06a9f69a
10 changed files with 149 additions and 143 deletions

View File

@ -16,7 +16,7 @@
## version 10.6.00 ## version 10.6.00
Cette version apporte aux modules une autonomie complète par rapport au noyau. Cette version apporte aux modules une autonomie complète par rapport au noyau.
- mise à jour interne (fonction update) - mise à jour interne (fonction update)
- feuille de style propres aux instances (fonction initCss) - feuille de style propres aux instances (fonction init)
- Modifications : - Modifications :
- Nombre d'éléments ou d'articles par page : l'option est propre aux modules et n'est plus gérées dans la configuration du CMS. - Nombre d'éléments ou d'articles par page : l'option est propre aux modules et n'est plus gérées dans la configuration du CMS.
- Module Search : en l'absence de texte dans le bouton Rechercher, une loupe est affichée. - Module Search : en l'absence de texte dans le bouton Rechercher, une loupe est affichée.

View File

@ -61,22 +61,23 @@ Pour revenir à la version 8, renommez ce fichier "data.json".
[R] vendor Librairies extérieures [R] vendor Librairies extérieures
[F] core.js.php Cœur javascript [F] core.js.php Cœur javascript
[F] core.php Cœur PHP [F] core.php Cœur PHP
[R] module Modules de page [R] module Modules de page
[R] blog Blog [R] blog Blog
[R] form Gestionnaire de formulaires [R] form Gestionnaire de formulaires
[R] gallery Galerie [R] gallery Galerie
[R] news Nouvelles [R] news Nouvelles
[R] redirection Redirection [R] redirection Redirection
[R] site Contenu du site [R] site Contenu du site
[R] backup Sauvegardes automatiques [R] backup Sauvegardes automatiques
[R] data Répertoire des données [R] data Répertoire des données
[R] fr Dossier localisé [R] fr Dossier localisé
[F] page.json Données des pages [F] page.json Données des pages
[F] module.json Données des modules de pages [F] module.json Données des modules de pages
[R] modules Personnalisation des modules ou données propres
[F] admin.css Thème des pages d'administration [F] admin.css Thème des pages d'administration
[F] admin.json Données de thème des pages d'administration [F] admin.json Données de thème des pages d'administration
[F] blacklist.json Journalisation des tentatives de connexion avec des comptes inconnus [F] blacklist.json Journalisation des tentatives de connexion avec des comptes inconnus
[F] config.json Configuration du site [F] config.json Configuration du site
[F] core.json Configuration du noyau [F] core.json Configuration du noyau
@ -90,7 +91,7 @@ Pour revenir à la version 8, renommez ce fichier "data.json".
[R] source Ressources diverses [R] source Ressources diverses
[R] thumb Miniatures des images [R] thumb Miniatures des images
[R] tmp Répertoire temporaire [R] tmp Répertoire temporaire
[F] index.php Fichier d'initialisation de ZwiiCMS [F] index.php Fichier d'initialisation de ZwiiCMS
[F] robots.txt Filtrage des répertoires accessibles aux robots des moteurs de recherche [F] robots.txt Filtrage des répertoires accessibles aux robots des moteurs de recherche
[F] sitemap.xml Plan du site [F] sitemap.xml Plan du site

View File

@ -677,12 +677,7 @@ class init extends common {
'config' => [ 'config' => [
'feeds' => true, 'feeds' => true,
'feedsLabel' => "Syndication RSS", 'feedsLabel' => "Syndication RSS",
"editConsent" => "all", 'itemsperPage' => 4
"commentMaxlength" => "500",
"commentApproved" => false,
"commentClose" => false,
"commentNotification" => false,
"commentGroupNotification" => 1
], ],
'posts' => [ 'posts' => [
'mon-premier-article' => [ 'mon-premier-article' => [
@ -700,6 +695,7 @@ class init extends common {
'picture' => 'galerie/landscape/meadow.jpg', 'picture' => 'galerie/landscape/meadow.jpg',
'hidePicture' => false, 'hidePicture' => false,
'pictureSize' => 20, 'pictureSize' => 20,
'picturePosition' => 'left',
'publishedOn' => 1548790902, 'publishedOn' => 1548790902,
'state' => true, 'state' => true,
'title' => 'Mon premier article', 'title' => 'Mon premier article',
@ -718,6 +714,7 @@ class init extends common {
'picture' => 'galerie/landscape/desert.jpg', 'picture' => 'galerie/landscape/desert.jpg',
'hidePicture' => false, 'hidePicture' => false,
'pictureSize' => 40, 'pictureSize' => 40,
'picturePosition' => 'right',
'publishedOn' => 1550432502, 'publishedOn' => 1550432502,
'state' => true, 'state' => true,
'title' => 'Mon deuxième article', 'title' => 'Mon deuxième article',
@ -736,6 +733,7 @@ class init extends common {
'picture' => 'galerie/landscape/iceberg.jpg', 'picture' => 'galerie/landscape/iceberg.jpg',
'hidePicture' => false, 'hidePicture' => false,
'pictureSize' => 100, 'pictureSize' => 100,
'picturePosition' => 'left',
'publishedOn' => 1550864502, 'publishedOn' => 1550864502,
'state' => true, 'state' => true,
'title' => 'Mon troisième article', 'title' => 'Mon troisième article',
@ -790,7 +788,7 @@ class init extends common {
] ]
], ],
], ],
'config' => [ 'theme' => [
'thumbAlign' => 'center', 'thumbAlign' => 'center',
'thumbWidth' => '18em', 'thumbWidth' => '18em',
'thumbHeight' => '15em', 'thumbHeight' => '15em',
@ -805,9 +803,11 @@ class init extends common {
'legendAlign' => 'center', 'legendAlign' => 'center',
'legendTextColor' => 'rgba(255, 255, 255, 1)', 'legendTextColor' => 'rgba(255, 255, 255, 1)',
'legendBgColor' => 'rgba(0, 0, 0, .6)', 'legendBgColor' => 'rgba(0, 0, 0, .6)',
'versionData' => '3.0',
'style' => 'site/data/modules/gallery/galeries.css' 'style' => 'site/data/modules/gallery/galeries.css'
], ],
'config' => [
'versionData' => '3.0'
],
], ],
'site-de-zwii' => [ 'site-de-zwii' => [
'url' => 'https://zwiicms.fr/', 'url' => 'https://zwiicms.fr/',

View File

@ -259,6 +259,13 @@ class page extends common {
} }
// Suppression // Suppression
else { else {
// Effacer le dossier du module
$moduleId = $this->getData(['page',$url[0],'moduleId']);
$modulesData = helper::getModules();
if (is_dir($modulesData[$moduleId]['dataDirectory'])) {
$this->removeDir( $modulesData[$moduleId]['dataDirectory'] );
}
// Effacer la page // Effacer la page
$this->deleteData(['page', $url[0]]); $this->deleteData(['page', $url[0]]);
$this->deleteData(['module', $url[0]]); $this->deleteData(['module', $url[0]]);
@ -313,6 +320,16 @@ class page extends common {
if ($this->getData(['module', $this->getUrl(2)]) !== null ) { if ($this->getData(['module', $this->getUrl(2)]) !== null ) {
$this->setData(['module', $pageId, $this->getData(['module', $this->getUrl(2)])]); $this->setData(['module', $pageId, $this->getData(['module', $this->getUrl(2)])]);
$this->deleteData(['module', $this->getUrl(2)]); $this->deleteData(['module', $this->getUrl(2)]);
// Renommer le dossier du module
$moduleId = $this->getData(['page',$this->getUrl(2),'moduleId']);
$modulesData = helper::getModules();
if (is_dir($modulesData[$moduleId]['dataDirectory'])) {
// Renommer la feuille de style
rename( $modulesData[$moduleId]['dataDirectory'],str_replace($this->geturl(2),$pageId, $modulesData[$moduleId]['dataDirectory']));
$this->removeDir($modulesData[$moduleId]['dataDirectory']);
// Mettre à jour le nom de la feuille de site
$this->setData(['module',$pageId,'theme','style',str_replace($this->geturl(2),$pageId, $modulesData[$moduleId]['dataDirectory'])]);
}
} }
// Si la page correspond à la page d'accueil, change l'id dans la configuration du site // Si la page correspond à la page d'accueil, change l'id dans la configuration du site
if($this->getData(['locale', 'homePageId']) === $this->getUrl(2)) { if($this->getData(['locale', 'homePageId']) === $this->getUrl(2)) {

View File

@ -20,11 +20,11 @@
$heure = mb_detect_encoding(strftime('%H:%M', $this->getData(['module', $this->getUrl(0), 'posts', $this->getUrl(1), 'publishedOn'])), 'UTF-8', true) $heure = mb_detect_encoding(strftime('%H:%M', $this->getData(['module', $this->getUrl(0), 'posts', $this->getUrl(1), 'publishedOn'])), 'UTF-8', true)
? strftime('%H:%M', $this->getData(['module', $this->getUrl(0), 'posts', $this->getUrl(1), 'publishedOn'])) ? strftime('%H:%M', $this->getData(['module', $this->getUrl(0), 'posts', $this->getUrl(1), 'publishedOn']))
: utf8_encode(strftime('%H:%M', $this->getData(['module', $this->getUrl(0), 'posts', $this->getUrl(1), 'publishedOn']))); : utf8_encode(strftime('%H:%M', $this->getData(['module', $this->getUrl(0), 'posts', $this->getUrl(1), 'publishedOn'])));
echo $date . ' à ' . $heure; echo $date . ' à ' . $heure;
?> ?>
<!-- Bloc edition --> <!-- Bloc edition -->
<?php if ( <?php if (
$this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD') $this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD')
AND AND
( // Propriétaire ( // Propriétaire
@ -55,7 +55,7 @@
<div id="rssFeed"> <div id="rssFeed">
<a type="application/rss+xml" href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/rss'; ?>" target="_blank"> <a type="application/rss+xml" href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/rss'; ?>" target="_blank">
<img src='module/news/ressource/feed-icon-16.gif' /> <img src='module/news/ressource/feed-icon-16.gif' />
<?php <?php
echo '<p>' . $this->getData(['module',$this->getUrl(0), 'config', 'feedsLabel']) . '</p>' ; echo '<p>' . $this->getData(['module',$this->getUrl(0), 'config', 'feedsLabel']) . '</p>' ;
?> ?>
</a> </a>

View File

@ -21,7 +21,6 @@
<?php echo template::submit('blogEditSubmit', [ <?php echo template::submit('blogEditSubmit', [
'value' => 'Publier' 'value' => 'Publier'
]); ?> ]); ?>
</div> </div>
</div> </div>
<div class="row"> <div class="row">

View File

@ -171,10 +171,7 @@ class gallery extends common {
$this->deleteData(['theme','gallery']); $this->deleteData(['theme','gallery']);
$this->setData(['module', $this->getUrl(0), 'theme', $data]); $this->setData(['module', $this->getUrl(0), 'theme', $data]);
// Nom de la feuille de style // Nom de la feuille de style
$this->setData(['module', $this->getUrl(0), 'theme', 'style', self::DATADIRECTORY . $moduleId . '.css']); $this->setData(['module', $this->getUrl(0), 'theme', 'style', self::DATADIRECTORY . $this->getUrl(0) . '/theme.css']);
} else {
// Theme par défaut
$this->init($this->geturl(0));
} }
// Nouvelle version // Nouvelle version
$this->setData(['module', $this->getUrl(0), 'config', 'versionData', '3.0']); $this->setData(['module', $this->getUrl(0), 'config', 'versionData', '3.0']);
@ -187,49 +184,50 @@ class gallery extends common {
* Config * Config
* Content * Content
*/ */
private function init($moduleId) { private function init() {
// Variable commune // Variable commune
$fileCSS = self::DATADIRECTORY . $moduleId . '.css' ; $fileCSS = self::DATADIRECTORY . $this->getUrl(0) . '/theme.css' ;
// Check la présence du thème // Check la présence du thème
if ( $this->getData(['module', $moduleId, 'theme']) === null ) { if ( $this->getData(['module', $this->getUrl(0), 'theme']) === null ) {
require_once('module/gallery/ressource/defaultdata.php'); require_once('module/gallery/ressource/defaultdata.php');
$this->setData(['module', $moduleId, '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]);
} }
// Check la présence de la feuille de style // Check la présence de la feuille de style
if ( !file_exists(self::DATADIRECTORY . $moduleId . '.css')) { if ( !file_exists(self::DATADIRECTORY . $this->getUrl(0) . '/theme.css')) {
// Dossier de l'instance // Dossier de l'instance
if (!is_dir(self::DATADIRECTORY )) { if (!is_dir(self::DATADIRECTORY . $this->getUrl(0) )) {
mkdir (self::DATADIRECTORY, 0777, true); mkdir (self::DATADIRECTORY . $this->getUrl(0), 0777, true);
} }
// Nom de la feuille de style
$this->setData(['module', $moduleId, 'theme', 'style', $fileCSS]);
// Générer la feuille de CSS // Générer la feuille de CSS
$content = file_get_contents('module/gallery/ressource/vartheme.css'); $content = file_get_contents('module/gallery/ressource/vartheme.css');
$themeCss = file_get_contents('module/gallery/ressource/theme.css'); $themeCss = file_get_contents('module/gallery/ressource/theme.css');
// Injection des variables // Injection des variables
$content = str_replace('#thumbAlign#',$this->getData(['module', $moduleId, 'theme', 'thumbAlign']),$content ); $content = str_replace('#thumbAlign#',$this->getData(['module', $this->getUrl(0), 'theme', 'thumbAlign']),$content );
$content = str_replace('#thumbWidth#',$this->getData(['module', $moduleId, 'theme', 'thumbWidth']),$content ); $content = str_replace('#thumbWidth#',$this->getData(['module', $this->getUrl(0), 'theme', 'thumbWidth']),$content );
$content = str_replace('#thumbHeight#',$this->getData(['module', $moduleId, 'theme', 'thumbHeight']),$content ); $content = str_replace('#thumbHeight#',$this->getData(['module', $this->getUrl(0), 'theme', 'thumbHeight']),$content );
$content = str_replace('#thumbMargin#',$this->getData(['module', $moduleId, 'theme', 'thumbMargin']),$content ); $content = str_replace('#thumbMargin#',$this->getData(['module', $this->getUrl(0), 'theme', 'thumbMargin']),$content );
$content = str_replace('#thumbBorder#',$this->getData(['module', $moduleId, 'theme', 'thumbBorder']),$content ); $content = str_replace('#thumbBorder#',$this->getData(['module', $this->getUrl(0), 'theme', 'thumbBorder']),$content );
$content = str_replace('#thumbBorderColor#',$this->getData(['module', $moduleId, 'theme', 'thumbBorderColor']),$content ); $content = str_replace('#thumbBorderColor#',$this->getData(['module', $this->getUrl(0), 'theme', 'thumbBorderColor']),$content );
$content = str_replace('#thumbOpacity#',$this->getData(['module', $moduleId, 'theme', 'thumbOpacity']),$content ); $content = str_replace('#thumbOpacity#',$this->getData(['module', $this->getUrl(0), 'theme', 'thumbOpacity']),$content );
$content = str_replace('#thumbShadows#',$this->getData(['module', $moduleId, 'theme', 'thumbShadows']),$content ); $content = str_replace('#thumbShadows#',$this->getData(['module', $this->getUrl(0), 'theme', 'thumbShadows']),$content );
$content = str_replace('#thumbShadowsColor#',$this->getData(['module', $moduleId, 'theme', 'thumbShadowsColor']),$content ); $content = str_replace('#thumbShadowsColor#',$this->getData(['module', $this->getUrl(0), 'theme', 'thumbShadowsColor']),$content );
$content = str_replace('#thumbRadius#',$this->getData(['module', $moduleId, 'theme', 'thumbRadius']),$content ); $content = str_replace('#thumbRadius#',$this->getData(['module', $this->getUrl(0), 'theme', 'thumbRadius']),$content );
$content = str_replace('#legendAlign#',$this->getData(['module', $moduleId, 'theme', 'legendAlign']),$content ); $content = str_replace('#legendAlign#',$this->getData(['module', $this->getUrl(0), 'theme', 'legendAlign']),$content );
$content = str_replace('#legendHeight#',$this->getData(['module', $moduleId, 'theme', 'legendHeight']),$content ); $content = str_replace('#legendHeight#',$this->getData(['module', $this->getUrl(0), 'theme', 'legendHeight']),$content );
$content = str_replace('#legendTextColor#',$this->getData(['module', $moduleId, 'theme', 'legendTextColor']),$content ); $content = str_replace('#legendTextColor#',$this->getData(['module', $this->getUrl(0), 'theme', 'legendTextColor']),$content );
$content = str_replace('#legendBgColor#',$this->getData(['module', $moduleId, 'theme', 'legendBgColor']),$content ); $content = str_replace('#legendBgColor#',$this->getData(['module', $this->getUrl(0), 'theme', 'legendBgColor']),$content );
// Ecriture de la feuille de style // Ecriture de la feuille de style
file_put_contents(self::DATADIRECTORY . $moduleId . '.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]);
} }
// Check Config // Check Config
if ( $this->getData(['module', $moduleId, 'config']) === null ) { if ( $this->getData(['module', $this->getUrl(0), 'config']) === null ) {
require_once('module/gallery/ressource/defaultdata.php'); require_once('module/gallery/ressource/defaultdata.php');
$this->setData(['module', $moduleId, 'config', theme::$defaultData]); $this->setData(['module', $this->getUrl(0), 'config', theme::$defaultData]);
} }
// Contenu vide de la galerie // Contenu vide de la galerie
@ -301,9 +299,7 @@ class gallery extends common {
$this->update(); $this->update();
// Initialisation d'un nouveau module // Initialisation d'un nouveau module
if ($this->getData(['module', $this->getUrl(0)]) === null) { $this->init();
$this->init($this->getUrl(0));
}
//Affichage de la galerie triée //Affichage de la galerie triée
$g = $this->getData(['module', $this->getUrl(0), 'content']); $g = $this->getData(['module', $this->getUrl(0), 'content']);
@ -589,9 +585,7 @@ class gallery extends common {
$this->update(); $this->update();
// Initialisation d'un nouveau module // Initialisation d'un nouveau module
if ($this->getData(['module', $this->getUrl(0)]) === null) { $this->init();
$this->init($this->getUrl(0));
}
// Images d'une galerie // Images d'une galerie
if($this->getUrl(1)) { if($this->getUrl(1)) {
@ -733,29 +727,26 @@ class gallery extends common {
} }
// Soumission du formulaire // Soumission du formulaire
if($this->isPost()) { if($this->isPost()) {
// Dossier de l'instance // Dossier de l'instance
if (!is_dir(self::DATADIRECTORY )) { if (!is_dir(self::DATADIRECTORY . $this->getUrl(0) )) {
mkdir (self::DATADIRECTORY, 0777, true); mkdir (self::DATADIRECTORY . $this->getUrl(0), 0777, true);
} }
$fileCSS = self::DATADIRECTORY . $this->getUrl(0) . '.css' ; $this->setData(['module', $this->getUrl(0), 'theme', [
// Fin feuille de style 'thumbAlign' => $this->getinput('galleryThemeThumbAlign', helper::FILTER_STRING_SHORT),
$this->getData(['module', $this->getUrl(0), 'theme', [ 'thumbWidth' => $this->getinput('galleryThemeThumbWidth', helper::FILTER_STRING_SHORT),
'thumbAlign' => $this->getinput('galleryThemeThumbAlign'), 'thumbHeight' => $this->getinput('galleryThemeThumbHeight', helper::FILTER_STRING_SHORT),
'thumbWidth' => $this->getinput('galleryThemeThumbWidth'), 'thumbMargin' => $this->getinput('galleryThemeThumbMargin', helper::FILTER_STRING_SHORT),
'thumbHeight' => $this->getinput('galleryThemeThumbHeight'), 'thumbBorder' => $this->getinput('galleryThemeThumbBorder', helper::FILTER_STRING_SHORT),
'thumbMargin' => $this->getinput('galleryThemeThumbMargin'), 'thumbBorderColor' => $this->getinput('galleryThemeThumbBorderColor', helper::FILTER_STRING_SHORT),
'thumbBorder' => $this->getinput('galleryThemeThumbBorder'), 'thumbOpacity' => $this->getinput('galleryThemeThumbOpacity', helper::FILTER_STRING_SHORT),
'thumbBorderColor' => $this->getinput('galleryThemeThumbBorderColor'), 'thumbShadows' => $this->getinput('galleryThemeThumbShadows', helper::FILTER_STRING_SHORT),
'thumbOpacity' => $this->getinput('galleryThemeThumbOpacity'), 'thumbShadowsColor' => $this->getinput('galleryThemeThumbShadowsColor', helper::FILTER_STRING_SHORT),
'thumbShadows' => $this->getinput('galleryThemeThumbShadows'), 'thumbRadius' => $this->getinput('galleryThemeThumbRadius', helper::FILTER_STRING_SHORT),
'thumbShadowsColor' => $this->getinput('galleryThemeThumbShadowsColor'), 'legendHeight' => $this->getinput('galleryThemeLegendHeight', helper::FILTER_STRING_SHORT),
'thumbRadius' => $this->getinput('galleryThemeThumbRadius'), 'legendAlign' => $this->getinput('galleryThemeLegendAlign', helper::FILTER_STRING_SHORT),
'legendHeight' => $this->getinput('galleryThemeLegendHeight'), 'legendTextColor' => $this->getinput('galleryThemeLegendTextColor', helper::FILTER_STRING_SHORT),
'legendAlign' => $this->getinput('galleryThemeLegendAlign'), 'legendBgColor' => $this->getinput('galleryThemeLegendBgColor', helper::FILTER_STRING_SHORT),
'legendTextColor' => $this->getinput('galleryThemeLegendTextColor'), 'style' => self::DATADIRECTORY . $this->getUrl(0) . '/theme.css'
'legendBgColor' => $this->getinput('galleryThemeLegendBgColor'),
'style' => $fileCSS,
]]); ]]);
// Création des fichiers CSS // Création des fichiers CSS
$content = file_get_contents('module/gallery/ressource/vartheme.css'); $content = file_get_contents('module/gallery/ressource/vartheme.css');
@ -775,7 +766,7 @@ class gallery extends common {
$content = str_replace('#legendHeight#',$this->getinput('galleryThemeLegendHeight'),$content ); $content = str_replace('#legendHeight#',$this->getinput('galleryThemeLegendHeight'),$content );
$content = str_replace('#legendTextColor#',$this->getinput('galleryThemeLegendTextColor'),$content ); $content = str_replace('#legendTextColor#',$this->getinput('galleryThemeLegendTextColor'),$content );
$content = str_replace('#legendBgColor#',$this->getinput('galleryThemeLegendBgColor'),$content ); $content = str_replace('#legendBgColor#',$this->getinput('galleryThemeLegendBgColor'),$content );
$success = file_put_contents($fileCSS, $content . $themeCss); $success = file_put_contents(self::DATADIRECTORY . $this->getUrl(0) . '/theme.css', $content . $themeCss);
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'redirect' => helper::baseUrl() . $this->getUrl() . '/theme', 'redirect' => helper::baseUrl() . $this->getUrl() . '/theme',

View File

@ -177,29 +177,27 @@ class news extends common {
$this->update(); $this->update();
// Initialisation d'un nouveau module // Initialisation d'un nouveau module
if ($this->getData(['module', $this->getUrl(0)]) === null) { $this->init();
$this->init($this->getUrl(0));
}
// Soumission du formulaire // Soumission du formulaire
if($this->isPost()) { if($this->isPost()) {
// Générer la feuille de CSS // Générer la feuille de CSS
$style = '.newsContent {height:' . $this->getInput('newsConfigItemsHeight',helper::FILTER_STRING_SHORT) . ';}'; $style = '.newsContent {height:' . $this->getInput('newsConfigItemsHeight',helper::FILTER_STRING_SHORT) . ';}';
$style .= '.newsBlur {background: linear-gradient(#333 ' . $this->getInput('newsConfigItemsBlur',helper::FILTER_STRING_SHORT) . ',#FFF );'; $style .= '.newsBlur {background: linear-gradient(#333 ' . $this->getInput('newsConfigItemsBlur',helper::FILTER_STRING_SHORT) . ',#FFF );';
$style .= ' background-clip: text;-webkit-background-clip: text;-webkit-text-fill-color: transparent;}'; $style .= ' background-clip: text;-webkit-background-clip: text;-webkit-text-fill-color: transparent;}';
// Dossier de l'instance // Dossier de l'instance
if (!is_dir(self::DATADIRECTORY)) { if (!is_dir(self::DATADIRECTORY . $this->getUrl(0))) {
mkdir (self::DATADIRECTORY, 0777, true); mkdir (self::DATADIRECTORY . $this->getUrl(0) . '/theme.css', 0777, true);
} }
$success = file_put_contents(self::DATADIRECTORY . $this->getUrl(0) . '.css' , $style ); $success = file_put_contents(self::DATADIRECTORY . $this->getUrl(0) . '/theme.css', $style );
// Fin feuille de style // Fin feuille de style
$this->setData(['module', $this->getUrl(0), 'theme',[ $this->setData(['module', $this->getUrl(0), 'theme',[
'style' => $success ? self::DATADIRECTORY . $this->getUrl(0) . '.css' : '', 'style' => $success ? self::DATADIRECTORY . $this->getUrl(0) . '/theme.css' : '',
'itemsHeight' => $this->getInput('newsConfigItemsHeight',helper::FILTER_STRING_SHORT), 'itemsHeight' => $this->getInput('newsConfigItemsHeight',helper::FILTER_STRING_SHORT),
'itemsBlur' => $this->getInput('newsConfigItemsBlur',helper::FILTER_STRING_SHORT) 'itemsBlur' => $this->getInput('newsConfigItemsBlur',helper::FILTER_STRING_SHORT)
]]); ]]);
@ -360,10 +358,7 @@ class news extends common {
$this->update(); $this->update();
// Initialisation d'un nouveau module // Initialisation d'un nouveau module
if ($this->getData(['module', $this->getUrl(0)]) === null) { $this->init();
$this->init($this->getUrl(0));
}
// Affichage d'un article // Affichage d'un article
if( if(
@ -454,37 +449,41 @@ class news extends common {
// Version 3.0 // Version 3.0
if ($this->getData(['module', $this->getUrl(0), 'config']) === NULL ) { if ($this->getData(['module', $this->getUrl(0), 'config']) === NULL ) {
// Données config et theme absentes du précédent module // Données config et theme absentes du précédent module
$this->init($this->getUrl(0)); $this->init();
} }
} }
/** /**
* Initialisation du thème d'un nouveau module * Initialisation du thème d'un nouveau module
*/ */
private function init($moduleId) { private function init() {
// Variable commune
$fileCSS = self::DATADIRECTORY . $moduleId . '.css' ;
// Données du module $fileCSS = self::DATADIRECTORY . $this->getUrl(0) . '/theme.css';
require_once('module/news/ressource/defaultdata.php');
$this->setData(['module', $moduleId, 'config',init::$defaultData ]);
// Données de thème
$this->setData(['module', $moduleId, 'theme',init::$defaultTheme ]);
// Générer la feuille de CSS // Données du module
$style = '.newsContent {height: ' . $this->getData([ 'module', $moduleId, 'theme', 'itemsHeight' ]) .';}'; if ($this->getData(['module', $this->getUrl(0) ]) === null) {
$style .= '.newsBlur {background: linear-gradient(#333 ' . $this->getData([ 'module', $moduleId, 'theme', 'itemsBlur' ]) . ',#FFF );'; require_once('module/news/ressource/defaultdata.php');
$style .= ' background-clip: text;-webkit-background-clip: text;-webkit-text-fill-color: transparent;}'; $this->setData(['module', $this->getUrl(0), 'config', init::$defaultData]);
// Données de thème
// Dossier de l'instance $this->setData(['module', $this->getUrl(0), 'theme', init::$defaultTheme]);
if (!is_dir(self::DATADIRECTORY)) { $this->setData(['module', $this->getUrl(0), 'theme', 'style', self::DATADIRECTORY . $this->getUrl(0) . '/theme.css' ]);
mkdir (self::DATADIRECTORY, 0777, true);
} }
// Sauver la feuille de style // Dossier de l'instance
file_put_contents(self::DATADIRECTORY .$moduleId . '.css' , $style ); if (!is_dir(self::DATADIRECTORY . $this->getUrl(0) )) {
mkdir (self::DATADIRECTORY . $this->getUrl(0) , 0777, true);
}
// Stocker le nom de la feuille de style // Check la présence de la feuille de style
$this->setData(['module', $moduleId, 'theme', 'style', self::DATADIRECTORY . $moduleId . '.css']); if ( !file_exists(self::DATADIRECTORY . $this->getUrl(0) . '/theme.css')) {
// Générer la feuille de CSS
$style = '.newsContent {height: ' . $this->getData([ 'module', $this->getUrl(0), 'theme', 'itemsHeight' ]) .';}';
$style .= '.newsBlur {background: linear-gradient(#333 ' . $this->getData([ 'module', $this->getUrl(0), 'theme', 'itemsBlur' ]) . ',#FFF );';
$style .= ' background-clip: text;-webkit-background-clip: text;-webkit-text-fill-color: transparent;}';
// Sauver la feuille de style
file_put_contents(self::DATADIRECTORY . $this->getUrl(0) . '/theme.css' , $style );
// Stocker le nom de la feuille de style
$this->setData(['module', $this->getUrl(0), 'theme', 'style', self::DATADIRECTORY . $this->getUrl(0) . '/theme.css']);
}
} }
} }

View File

@ -1,6 +1,6 @@
<?php <?php
class init extends search { class init extends search {
public static $defaultData = [ public static $defaultConfig = [
'previewLength' => 100, 'previewLength' => 100,
'resultHideContent' => false, 'resultHideContent' => false,
'placeHolder' => 'Un ou plusieurs mots-clés séparés par un espace ou par +', 'placeHolder' => 'Un ou plusieurs mots-clés séparés par un espace ou par +',

View File

@ -56,7 +56,7 @@ class search extends common {
if ($this->getData(['module', $this->getUrl(0), 'previewLength']) ) { if ($this->getData(['module', $this->getUrl(0), 'previewLength']) ) {
$data = $this->getData(['module', $this->getUrl(0)]); $data = $this->getData(['module', $this->getUrl(0)]);
// Feuille de style // Feuille de style
$fileCSS = self::DATADIRECTORY . $this->getUrl(0) . '.css' ; $fileCSS = self::DATADIRECTORY . $this->getUrl(0) . '/theme.css' ;
$this->setData(['module', $this->getUrl(0), 'config', [ $this->setData(['module', $this->getUrl(0), 'config', [
'submitText' => $this->getData(['module', $this->getUrl(0), 'submitText']), 'submitText' => $this->getData(['module', $this->getUrl(0), 'submitText']),
'placeHolder' => $this->getData(['module', $this->getUrl(0), 'placeHolder']), 'placeHolder' => $this->getData(['module', $this->getUrl(0), 'placeHolder']),
@ -70,8 +70,8 @@ class search extends common {
]]); ]]);
// Dossier de l'instance // Dossier de l'instance
if (!is_dir(self::DATADIRECTORY)) { if (!is_dir(self::DATADIRECTORY . $this->getUrl(0) )) {
mkdir (self::DATADIRECTORY, 0777, true); mkdir (self::DATADIRECTORY . $this->getUrl(0), 0777, true);
} }
// Générer la feuille de CSS // Générer la feuille de CSS
$style = '.keywordColor {background: ' . $this->getData(['module', $this->getUrl(0), 'theme', 'keywordColor']) . ';}'; $style = '.keywordColor {background: ' . $this->getData(['module', $this->getUrl(0), 'theme', 'keywordColor']) . ';}';
@ -91,29 +91,34 @@ class search extends common {
/** /**
* Initialisation du module * Initialisation du module
*/ */
private function init($moduleId){ private function init(){
// Variable commune
$fileCSS = self::DATADIRECTORY . $moduleId . '.css' ;
// Données du module
require_once('module/search/ressource/defaultdata.php');
$this->setData(['module', $moduleId, 'config',init::$defaultData ]);
// Données de thème
$this->setData(['module', $moduleId, 'theme',init::$defaultTheme ]);
// Générer la feuille de CSS $fileCSS = self::DATADIRECTORY . $this->getUrl(0) . '/theme.css' ;
$style = '.keywordColor {background: ' . $this->getData([ 'module', $moduleId, 'theme', 'keywordColor' ]) . ';}';
// Dossier de l'instance if ($this->getData(['module', $this->getUrl(0)]) === null) {
if (!is_dir(self::DATADIRECTORY)) { // Données du module
mkdir (self::DATADIRECTORY, 0777, true); require_once('module/search/ressource/defaultdata.php');
$this->setData(['module', $this->getUrl(0), 'config',init::$defaultConfig ]);
// Données de thème
$this->setData(['module', $this->getUrl(0), 'theme',init::$defaultTheme ]);
$this->setData(['module', $this->getUrl(0), 'theme', 'style', self::DATADIRECTORY . $this->getUrl(0) . '/theme.css' ]);
} }
// Sauver la feuille de style // Dossier de l'instance
file_put_contents(self::DATADIRECTORY .$moduleId . '.css' , $style ); if (!is_dir(self::DATADIRECTORY . $this->getUrl(0))) {
mkdir (self::DATADIRECTORY . $this->getUrl(0), 0777, true);
}
// Stocker le nom de la feuille de style // Check la présence de la feuille de style
$this->setData(['module', $moduleId, 'theme', 'style', self::DATADIRECTORY . $moduleId . '.css']); if ( !file_exists(self::DATADIRECTORY . $this->getUrl(0) . '/theme.css')) {
// Générer la feuille de CSS
$style = '.keywordColor {background: ' . $this->getData([ 'module', $this->getUrl(0), 'theme', 'keywordColor' ]) . ';}';
// Sauver la feuille de style
file_put_contents(self::DATADIRECTORY . $this->getUrl(0) . '/theme.css', $style );
// Stocker le nom de la feuille de style
$this->setData(['module', $this->getUrl(0) , 'theme', 'style', $fileCSS]);
}
} }
@ -124,20 +129,15 @@ class search extends common {
$this->update(); $this->update();
// Initialisation d'un nouveau module // Initialisation d'un nouveau module
if ($this->getData(['module', $this->getUrl(0)]) === null) { $this->init();
$this->init($this->getUrl(0));
}
if($this->isPost()) { if($this->isPost()) {
// Générer la feuille de CSS // Générer la feuille de CSS
$style = '.keywordColor {background:' . $this->getInput('searchKeywordColor') . ';}'; $style = '.keywordColor {background:' . $this->getInput('searchKeywordColor') . ';}';
// Dossier de l'instance
if (!is_dir(self::DATADIRECTORY)) {
mkdir (self::DATADIRECTORY , 0777, true);
}
$success = file_put_contents(self::DATADIRECTORY . $this->getUrl(0) . '.css' , $style ); $success = file_put_contents(self::DATADIRECTORY . $this->getUrl(0) . '/theme.css' , $style );
// Fin feuille de style // Fin feuille de style
// Soumission du formulaire // Soumission du formulaire
@ -150,7 +150,7 @@ class search extends common {
]]); ]]);
$this->setData(['module', $this->getUrl(0), 'theme',[ $this->setData(['module', $this->getUrl(0), 'theme',[
'keywordColor' => $this->getInput('searchKeywordColor'), 'keywordColor' => $this->getInput('searchKeywordColor'),
'style' => $success ? self::DATADIRECTORY . $this->getUrl(0) . '.css' : '', 'style' => $success ? self::DATADIRECTORY . $this->getUrl(0) . '/theme.css' : '',
]]); ]]);
@ -178,9 +178,8 @@ class search extends common {
$this->update(); $this->update();
// Initialisation d'un nouveau module // Initialisation d'un nouveau module
if ($this->getData(['module', $this->getUrl(0)]) === null) { $this->init();
$this->init($this->getUrl(0));
}
if($this->isPost()) { if($this->isPost()) {
//Initialisations variables //Initialisations variables