Merge branch '10501' into 11000

This commit is contained in:
Fred Tempez 2021-03-23 08:43:56 +01:00
commit 1bd5e0b17c
12 changed files with 65 additions and 45 deletions

View File

@ -10,6 +10,13 @@
- Configuration du site : - Configuration du site :
- Activation et désactivation de la déconnexion automatique empêchant plusieurs sessions avec le même compte. - Activation et désactivation de la déconnexion automatique empêchant plusieurs sessions avec le même compte.
## version 10.5.01
- Modifications :
- Rechargement du fichier de style common.css et du jeu d'icônes du système après une mise à jour.
- News 2.3 : ajout de la signature du rédacteur dans le module news (actualités, idem module blog)
Corrections :
- Mode maintenance, titre non masqué d'une page personnalisée.
## version 10.5.00 ## version 10.5.00
**A partir de cette version, les versions de php inférieures à 7.2 ne sont plus supportées.** **A partir de cette version, les versions de php inférieures à 7.2 ne sont plus supportées.**
- Nouveauté : - Nouveauté :

View File

@ -108,7 +108,7 @@ class helper {
// Creation du ZIP // Creation du ZIP
$baseName = str_replace('/','',helper::baseUrl(false,false)); $baseName = str_replace('/','',helper::baseUrl(false,false));
$baseName = empty($baseName) ? 'ZwiiCMS' : $baseName; $baseName = empty($baseName) ? 'ZwiiCMS' : $baseName;
$fileName = $baseName . '-backup-' . date('Y-m-d-h-i-s', time()) . '.zip'; $fileName = $baseName . '-backup-' . date('Y-m-d-H-i-s', time()) . '.zip';
$zip = new ZipArchive(); $zip = new ZipArchive();
$zip->open($folder . $fileName, ZipArchive::CREATE | ZipArchive::OVERWRITE); $zip->open($folder . $fileName, ZipArchive::CREATE | ZipArchive::OVERWRITE);
$directory = 'site/'; $directory = 'site/';

View File

@ -1750,7 +1750,7 @@ class core extends common {
$css .= '.blogDate {color:' . $this->getData(['theme', 'text', 'textColor']) . ';}.blogPicture img{border:1px solid ' . $this->getData(['theme', 'text', 'textColor']) . '; box-shadow: 1px 1px 5px ' . $this->getData(['theme', 'text', 'textColor']) . ';}'; $css .= '.blogDate {color:' . $this->getData(['theme', 'text', 'textColor']) . ';}.blogPicture img{border:1px solid ' . $this->getData(['theme', 'text', 'textColor']) . '; box-shadow: 1px 1px 5px ' . $this->getData(['theme', 'text', 'textColor']) . ';}';
// Couleur fixée dans admin.css // Couleur fixée dans admin.css
//$css .= '.button.buttonGrey,.button.buttonGrey:hover{color:' . $this->getData(['theme', 'text', 'textColor']) . '}'; //$css .= '.button.buttonGrey,.button.buttonGrey:hover{color:' . $this->getData(['theme', 'text', 'textColor']) . '}';
$css .= '.container{max-width:' . $this->getData(['theme', 'site', 'width']) . '}'; $css .= '.container, .helpDisplayContent{max-width:' . $this->getData(['theme', 'site', 'width']) . '}';
$margin = $this->getData(['theme', 'site', 'margin']) ? '0' : '20px'; $margin = $this->getData(['theme', 'site', 'margin']) ? '0' : '20px';
// Marge supplémentaire lorsque le pied de page est fixe // Marge supplémentaire lorsque le pied de page est fixe
if ( $this->getData(['theme', 'footer', 'fixed']) === true && if ( $this->getData(['theme', 'footer', 'fixed']) === true &&
@ -2527,7 +2527,7 @@ class layout extends common {
$items .= '<span id="footerDisplayLegal"'; $items .= '<span id="footerDisplayLegal"';
$items .= $this->getData(['theme','footer','displayLegal']) === false ? ' class="displayNone" >' : '>'; $items .= $this->getData(['theme','footer','displayLegal']) === false ? ' class="displayNone" >' : '>';
if ($this->getData(['locale','legalPageId']) !== 'none') { if ($this->getData(['locale','legalPageId']) !== 'none') {
$items .= '<wbr>&nbsp;|&nbsp;<a href="' . helper::baseUrl() . $this->getData(['locale','legalPageId']) . '" data-tippy-content="Mentions Légales">Mentions légales</a>'; $items .= '<wbr>&nbsp;|&nbsp;<a href="' . helper::baseUrl() . $this->getData(['locale','legalPageId']) . '" data-tippy-content="Mentions légales">Mentions légales</a>';
} }
$items .= '</span>'; $items .= '</span>';
// Affichage du lien de connexion // Affichage du lien de connexion
@ -3116,7 +3116,11 @@ class layout extends common {
foreach($vendorFiles as $vendorFile) { foreach($vendorFiles as $vendorFile) {
switch(pathinfo($vendorFile, PATHINFO_EXTENSION)) { switch(pathinfo($vendorFile, PATHINFO_EXTENSION)) {
case 'css': case 'css':
echo '<link rel="stylesheet" href="' . helper::baseUrl(false) . $vendorPath . $vendorFile . '">'; // Force le rechargement lors d'une mise à jour du jeu d'icônes
$reload = $vendorPath === 'core/vendor/zwiico/'
? '?' . md5_file('core/vendor/zwiico/css/zwiico-codes.css')
: '';
echo '<link rel="stylesheet" href="' . helper::baseUrl(false) . $vendorPath . $vendorFile . $reload . '">';
break; break;
case 'js': case 'js':
echo '<script src="' . helper::baseUrl(false) . $vendorPath . $vendorFile . '"></script>'; echo '<script src="' . helper::baseUrl(false) . $vendorPath . $vendorFile . '"></script>';

View File

@ -1694,15 +1694,17 @@ th.col12 {
.helpDisplayContent { .helpDisplayContent {
display: none; display: none;
position: fixed;
width: 100%;
bottom: 15px;
padding: 2px 10px;
margin-left: -20px;
-webkit-box-shadow: 5px 5px 11px 0px #222222; -webkit-box-shadow: 5px 5px 11px 0px #222222;
box-shadow: 5px 5px 11px 0px #222222; box-shadow: 5px 5px 11px 0px #222222;
border-radius: 5px; border-radius: 5px;
padding: 2px 10px;
background-color:#333; background-color:#333;
color: white; color: white;
position: fixed;
z-index: 30; z-index: 30;
bottom: 5px;
} }
.helpDisplayButton { .helpDisplayButton {

View File

@ -11,7 +11,7 @@
<?php $layout->showFavicon(); ?> <?php $layout->showFavicon(); ?>
<?php $layout->showVendor(); ?> <?php $layout->showVendor(); ?>
<?php $layout->showAnalytics(); ?> <?php $layout->showAnalytics(); ?>
<link rel="stylesheet" href="<?php echo helper::baseUrl(false); ?>core/layout/common.css"> <link rel="stylesheet" href="<?php echo helper::baseUrl(false); ?>core/layout/common.css?<?php echo md5_file('core/layout/common.css');?>">
<link rel="stylesheet" href="<?php echo helper::baseUrl(false) . self::DATA_DIR; ?>theme.css?<?php echo md5_file(self::DATA_DIR.'theme.css'); ?>"> <link rel="stylesheet" href="<?php echo helper::baseUrl(false) . self::DATA_DIR; ?>theme.css?<?php echo md5_file(self::DATA_DIR.'theme.css'); ?>">
<link rel="stylesheet" href="<?php echo helper::baseUrl(false) . self::DATA_DIR; ?>custom.css?<?php echo md5_file(self::DATA_DIR.'custom.css'); ?>"> <link rel="stylesheet" href="<?php echo helper::baseUrl(false) . self::DATA_DIR; ?>custom.css?<?php echo md5_file(self::DATA_DIR.'custom.css'); ?>">
<!-- Détection RSS --> <!-- Détection RSS -->

View File

@ -19,9 +19,9 @@
<?php else: ?> <?php else: ?>
<?php echo template::speech('Aucun module installé.'); ?> <?php echo template::speech('Aucun module installé.'); ?>
<?php endif; ?> <?php endif; ?>
<div class="col10 helpDisplayContent"> <div class="helpDisplayContent">
<p>Exporter produit une archive au nom du module contenant les pages concernées ainsi que les données et ressources utilisées par le module dans ces pages. <p>Exporter produit une archive au nom du module contenant les pages concernées ainsi que les données et ressources utilisées par le module dans ces pages.</p>
Vous pouvez vous en servir comme d'une sauvegarde partielle ou pour transférer les pages et les données du module vers un autre site.</p> <p>Vous pouvez vous en servir comme d'une sauvegarde partielle ou pour transférer les pages et les données du module vers un autre site.</p>
<p>Une fois le module installé l'import permet de restaurer les pages et les données sauvegardées. Si une page de même nom existe sur votre site vous serez invité à modifier son nom.</p> <p>Une fois le module installé l'import permet de restaurer les pages et les données sauvegardées.
Si une page de même nom existe sur votre site vous serez invité à modifier son nom.</p>
</div> </div>

View File

@ -33,7 +33,9 @@ class maintenance extends common {
AND $this->getData(['page',$this->getData(['locale','page302'])]) ) { AND $this->getData(['page',$this->getData(['locale','page302'])]) ) {
$this->addOutput([ $this->addOutput([
'display' => self::DISPLAY_LAYOUT_LIGHT, 'display' => self::DISPLAY_LAYOUT_LIGHT,
'title' => $this->getData(['page',$this->getData(['locale','page302']),'title']), 'title' => $this->getData(['page',$this->getData(['locale','page302']),'hideTitle'])
? ''
: $this->getData(['page',$this->getData(['locale','page302']),'title']),
'content' => $this->getdata(['page',$this->getData(['locale','page302']),'content']), 'content' => $this->getdata(['page',$this->getData(['locale','page302']),'content']),
'view' => 'index' 'view' => 'index'
]); ]);

View File

@ -424,9 +424,11 @@ class theme extends common {
'imageContainer' => $this->getInput('themeHeaderImageContainer') 'imageContainer' => $this->getInput('themeHeaderImageContainer')
]]); ]]);
// Modification de la position du menu selon la position de la bannière // Modification de la position du menu selon la position de la bannière
switch ($this->getInput('themeHeaderPosition') && if ( $this->getInput('themeHeaderPosition') &&
$this->getData(['theme','menu','position']) !== 'site' && ( $this->getData(['theme','menu','position']) !== 'site' ||
$this->getData(['theme','menu','position']) !== 'top' ) { $this->getData(['theme','menu','position']) !== 'top') )
{
switch ($this->getInput('themeHeaderPosition')) {
case 'site' : case 'site' :
$position = str_replace ('body','site',$this->getData(['theme','menu','position'])); $position = str_replace ('body','site',$this->getData(['theme','menu','position']));
break; break;
@ -436,6 +438,7 @@ class theme extends common {
default: default:
$position = $this->getData(['theme','menu','position']); $position = $this->getData(['theme','menu','position']);
} }
}
$this->setData(['theme', 'menu', [ $this->setData(['theme', 'menu', [
'backgroundColor' => $this->getData(['theme', 'menu', 'backgroundColor']), 'backgroundColor' => $this->getData(['theme', 'menu', 'backgroundColor']),
@ -774,7 +777,7 @@ class theme extends common {
*/ */
private function zipTheme($modele) { private function zipTheme($modele) {
// Creation du dossier // Creation du dossier
$zipFilename = $modele . ' ' .date('d m Y').' '.date('H i s ').'.zip'; $zipFilename = $modele . date('Y-m-d-H-i-s', time()) . '.zip';
$zip = new ZipArchive(); $zip = new ZipArchive();
if ($zip->open(self::TEMP_DIR . $zipFilename, ZipArchive::CREATE | ZipArchive::OVERWRITE ) === TRUE) { if ($zip->open(self::TEMP_DIR . $zipFilename, ZipArchive::CREATE | ZipArchive::OVERWRITE ) === TRUE) {
switch ($modele) { switch ($modele) {

View File

@ -12,7 +12,7 @@
* @link http://zwiicms.fr/ * @link http://zwiicms.fr/
*/ */
$(document).ready(function(){ $(document).ready(function(){
$("header").css("line-height", ""); $("header").css("line-height", "");
$("header").css("height", ""); $("header").css("height", "");
}); });

View File

@ -80,14 +80,6 @@ $("input, select").on("change", function() {
css += 'nav{padding:0 10px;}'; css += 'nav{padding:0 10px;}';
} }
// Ajout du css au DOM
$("#themePreview").remove();
$("<style>")
.attr("type", "text/css")
.attr("id", "themePreview")
.text(css)
.appendTo("head");
// Position du menu // Position du menu
switch($("#themeMenuPosition").val()) { switch($("#themeMenuPosition").val()) {
case 'hide': case 'hide':
@ -129,6 +121,15 @@ $("input, select").on("change", function() {
$("nav").show().prependTo("#site"); $("nav").show().prependTo("#site");
break; break;
} }
// Ajout du css au DOM
$("#themePreview").remove();
$("<style>")
.attr("type", "text/css")
.attr("id", "themePreview")
.text(css)
.appendTo("head");
}); });
// //
// Lien de connexion (addClass() et removeClass() au lieu de hide() et show() car ils ne conservent pas le display-inline: block; de #themeMenuLoginLink) // Lien de connexion (addClass() et removeClass() au lieu de hide() et show() car ils ne conservent pas le display-inline: block; de #themeMenuLoginLink)

View File

@ -15,7 +15,7 @@
class news extends common { class news extends common {
const VERSION = '2.2'; const VERSION = '2.3';
const REALNAME = 'Actualités'; const REALNAME = 'Actualités';
const DELETE = true; const DELETE = true;
const UPDATE = '0.0'; const UPDATE = '0.0';
@ -304,6 +304,7 @@ class news extends common {
// News en fonction de la pagination // News en fonction de la pagination
for($i = $pagination['first']; $i < $pagination['last']; $i++) { for($i = $pagination['first']; $i < $pagination['last']; $i++) {
self::$news[$newsIds[$i]] = $this->getData(['module', $this->getUrl(0),'posts', $newsIds[$i]]); self::$news[$newsIds[$i]] = $this->getData(['module', $this->getUrl(0),'posts', $newsIds[$i]]);
self::$news[$newsIds[$i]]['userId'] = $this->signature($this->getData(['module', $this->getUrl(0), 'posts', $newsIds[$i], 'userId']));
} }
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([

View File

@ -15,7 +15,7 @@
<?php echo mb_detect_encoding(strftime('%d %B %Y', $news['publishedOn']), 'UTF-8', true) <?php echo mb_detect_encoding(strftime('%d %B %Y', $news['publishedOn']), 'UTF-8', true)
? strftime('%d %B %Y', $news['publishedOn']) ? strftime('%d %B %Y', $news['publishedOn'])
: utf8_encode(strftime('%d %B %Y', $news['publishedOn'])); ?> : utf8_encode(strftime('%d %B %Y', $news['publishedOn'])); ?>
- <?php echo $this->getData(['user', $news['userId'], 'firstname']) . ' ' . $this->getData(['user', $news['userId'], 'lastname']); ?> - <?php echo $news['userId']; ?>
<!-- Bloc edition --> <!-- Bloc edition -->
<?php if ( <?php if (