Merge branch '10400' into data_engine

This commit is contained in:
Fred Tempez 2020-11-02 13:45:12 +01:00
commit 6634e99569
18 changed files with 110 additions and 48 deletions

View File

@ -20,10 +20,15 @@
- Thème : import d'un thème, d'administration impossible. - Thème : import d'un thème, d'administration impossible.
- Thème : import d'un thème, nettoyage du dossier tmp. - Thème : import d'un thème, nettoyage du dossier tmp.
- Thème administration : modification de l'appel du code CSS permettant une mise à jour du thème sans vider le cache. - Thème administration : modification de l'appel du code CSS permettant une mise à jour du thème sans vider le cache.
- Thème du menu : alignement inopérant. - Thème du menu : alignement inopérant ; arrière-plan semi-transparent non uniforme.
- Amélioration : - Amélioration :
- Thème menu : couleurs du sous menu.
- Mise en page du corps des mails de notification. - Mise en page du corps des mails de notification.
- Paramètres de localisation. - Paramètres de localisation.
- Modification :
- Changement de noms de classe :
- navLevel1 devient navMain
- navLevel2 devient navSub
- Mise à jour : - Mise à jour :
- TinyMCE 4.9.11 - TinyMCE 4.9.11

View File

@ -219,7 +219,8 @@ class helper {
'normal' => 'rgba(' . $rgba[0] . ',' . $rgba[1] . ',' . $rgba[2] . ',' . $rgba[3] . ')', 'normal' => 'rgba(' . $rgba[0] . ',' . $rgba[1] . ',' . $rgba[2] . ',' . $rgba[3] . ')',
'darken' => 'rgba(' . max(0, $rgba[0] - 15) . ',' . max(0, $rgba[1] - 15) . ',' . max(0, $rgba[2] - 15) . ',' . $rgba[3] . ')', 'darken' => 'rgba(' . max(0, $rgba[0] - 15) . ',' . max(0, $rgba[1] - 15) . ',' . max(0, $rgba[2] - 15) . ',' . $rgba[3] . ')',
'veryDarken' => 'rgba(' . max(0, $rgba[0] - 20) . ',' . max(0, $rgba[1] - 20) . ',' . max(0, $rgba[2] - 20) . ',' . $rgba[3] . ')', 'veryDarken' => 'rgba(' . max(0, $rgba[0] - 20) . ',' . max(0, $rgba[1] - 20) . ',' . max(0, $rgba[2] - 20) . ',' . $rgba[3] . ')',
'text' => self::relativeLuminanceW3C($rgba) > .22 ? "#222" : "#DDD" 'text' => self::relativeLuminanceW3C($rgba) > .22 ? "#222" : "#DDD",
'rgb' => 'rgb(' . $rgba[0] . ',' . $rgba[1] . ',' . $rgba[2] . ')'
]; ];
} }

View File

@ -392,12 +392,12 @@ $(document).ready(function(){
* Affiche le sous-menu quand il est sticky * Affiche le sous-menu quand il est sticky
*/ */
$("nav").mouseenter(function(){ $("nav").mouseenter(function(){
$("#navfixedlogout .navLevel2").css({ 'pointer-events' : 'auto' }); $("#navfixedlogout .navSub").css({ 'pointer-events' : 'auto' });
$("#navfixedconnected .navLevel2").css({ 'pointer-events' : 'auto' }); $("#navfixedconnected .navSub").css({ 'pointer-events' : 'auto' });
}); });
$("nav").mouseleave(function(){ $("nav").mouseleave(function(){
$("#navfixedlogout .navLevel2").css({ 'pointer-events' : 'none' }); $("#navfixedlogout .navSub").css({ 'pointer-events' : 'none' });
$("#navfixedconnected .navLevel2").css({ 'pointer-events' : 'none' }); $("#navfixedconnected .navSub").css({ 'pointer-events' : 'none' });
}); });
/** /**

View File

@ -1393,6 +1393,18 @@ class common {
$this->setData(['config', 'connect','captcha', true]); $this->setData(['config', 'connect','captcha', true]);
$this->setData(['core', 'dataVersion', 10302]); $this->setData(['core', 'dataVersion', 10302]);
} }
// Version 10.3.03
if ($this->getData(['core', 'dataVersion']) < 10303) {
// Activation par défaut du captcha à la connexion
$this->setData(['config', 'captchaStrong', false]);
$this->setData(['core', 'dataVersion', 10303]);
}
// Version 10.3.04
if ($this->getData(['core', 'dataVersion']) < 10304) {
// Couleur des sous menus
$this->setData(['theme', 'menu', 'backgroundColorSub', $this->getData(['theme', 'menu', 'backgroundColor']) ]);
$this->setData(['core', 'dataVersion', 10304]);
}
// Version 10.4.00 // Version 10.4.00
if ($this->getData(['core', 'dataVersion']) < 10400) { if ($this->getData(['core', 'dataVersion']) < 10400) {
// Ajouter le prénom comme pseudo et le pseudo comme signature // Ajouter le prénom comme pseudo et le pseudo comme signature
@ -1438,12 +1450,6 @@ class common {
} }
$this->setData(['core', 'dataVersion', 10400]); $this->setData(['core', 'dataVersion', 10400]);
} }
// Version 10.3.03
if ($this->getData(['core', 'dataVersion']) < 10303) {
// Activation par défaut du captcha à la connexion
$this->setData(['config', 'captchaStrong', false]);
$this->setData(['core', 'dataVersion', 10303]);
}
} }
} }
@ -1590,7 +1596,7 @@ class core extends common {
$css .= 'header span{color:' . $colors['normal'] . ';font-family:"' . str_replace('+', ' ', $this->getData(['theme', 'header', 'font'])) . '",sans-serif;font-weight:' . $this->getData(['theme', 'header', 'fontWeight']) . ';font-size:' . $this->getData(['theme', 'header', 'fontSize']) . ';text-transform:' . $this->getData(['theme', 'header', 'textTransform']) . '}'; $css .= 'header span{color:' . $colors['normal'] . ';font-family:"' . str_replace('+', ' ', $this->getData(['theme', 'header', 'font'])) . '",sans-serif;font-weight:' . $this->getData(['theme', 'header', 'fontWeight']) . ';font-size:' . $this->getData(['theme', 'header', 'fontSize']) . ';text-transform:' . $this->getData(['theme', 'header', 'textTransform']) . '}';
// Menu // Menu
$colors = helper::colorVariants($this->getData(['theme', 'menu', 'backgroundColor'])); $colors = helper::colorVariants($this->getData(['theme', 'menu', 'backgroundColor']));
$css .= 'nav,nav a{background-color:' . $colors['normal'] . '}'; $css .= 'nav,nav.navMain a{background-color:' . $colors['normal'] . '}';
$css .= 'nav a,#toggle span,nav a:hover{color:' . $this->getData(['theme', 'menu', 'textColor']) . '}'; $css .= 'nav a,#toggle span,nav a:hover{color:' . $this->getData(['theme', 'menu', 'textColor']) . '}';
$css .= 'nav a:hover{background-color:' . $colors['darken'] . '}'; $css .= 'nav a:hover{background-color:' . $colors['darken'] . '}';
$css .= 'nav a.active{color:' . $this->getData(['theme','menu','activeTextColor']) . ';}'; $css .= 'nav a.active{color:' . $this->getData(['theme','menu','activeTextColor']) . ';}';
@ -1602,8 +1608,11 @@ class core extends common {
$css .= 'nav a.active{color:' . $color2['text'] . '}';*/ $css .= 'nav a.active{color:' . $color2['text'] . '}';*/
} }
$css .= 'nav #burgerText{color:' . $colors['text'] . '}'; $css .= 'nav #burgerText{color:' . $colors['text'] . '}';
$css .= 'nav .navLevel1 a.active {border-radius:' . $this->getData(['theme', 'menu', 'radius']) . '}'; // Sous menu
$css .= '#menuLeft{float:' . $this->getData(['theme', 'menu', 'textAlign']) . '}'; $colors = helper::colorVariants($this->getData(['theme', 'menu', 'backgroundColorSub']));
$css .= 'nav .navSub a{background-color:' . $colors['normal'] . '}';
$css .= 'nav .navMain a.active {border-radius:' . $this->getData(['theme', 'menu', 'radius']) . '}';
$css .= '#menu{text-align:' . $this->getData(['theme', 'menu', 'textAlign']) . '}';
if($this->getData(['theme', 'menu', 'margin'])) { if($this->getData(['theme', 'menu', 'margin'])) {
if( if(
$this->getData(['theme', 'menu', 'position']) === 'site-first' $this->getData(['theme', 'menu', 'position']) === 'site-first'
@ -1723,7 +1732,9 @@ class core extends common {
exit(); exit();
} }
// Journalisation // Journalisation
$dataLog = strftime('%d/%m/%y',time()) . ';' . strftime('%R',time()) . ';' ; $dataLog = mb_detect_encoding(strftime('%d/%m/%y',time()), 'UTF-8', true)
? strftime('%d/%m/%y',time()) . ';' . strftime('%R',time()) . ';'
: utf8_encode(strftime('%d/%m/%y',time())) . ';' . utf8_encode(strftime('%R',time())) . ';' ;
$dataLog .= helper::getIp() . ';'; $dataLog .= helper::getIp() . ';';
$dataLog .= $this->getUser('id') ? $this->getUser('id') . ';' : 'anonyme' . ';'; $dataLog .= $this->getUser('id') ? $this->getUser('id') . ';' : 'anonyme' . ';';
$dataLog .= $this->getUrl(); $dataLog .= $this->getUrl();
@ -2413,7 +2424,7 @@ class layout extends common {
empty($childrenPageIds)) { empty($childrenPageIds)) {
continue; continue;
} }
$itemsLeft .= '<ul class="navLevel2">'; $itemsLeft .= '<ul class="navSub">';
foreach($childrenPageIds as $childKey) { foreach($childrenPageIds as $childKey) {
// Propriétés de l'item // Propriétés de l'item
$active = ($childKey === $currentPageId) ? 'active ' : ''; $active = ($childKey === $currentPageId) ? 'active ' : '';
@ -2487,7 +2498,7 @@ class layout extends common {
$itemsRight .= '<li><a id="barLogout" href="' . helper::baseUrl() . 'user/logout" data-tippy-content="Me déconnecter">' . template::ico('logout') . '</a></li>'; $itemsRight .= '<li><a id="barLogout" href="' . helper::baseUrl() . 'user/logout" data-tippy-content="Me déconnecter">' . template::ico('logout') . '</a></li>';
} }
// Retourne les items du menu // Retourne les items du menu
echo '<ul class="navLevel1" id="menuLeft">' . $itemsLeft . '</ul><ul class="navLevel1" id="menuRight">' . $itemsRight . '</ul>'; echo '<ul class="navMain" id="menuLeft">' . $itemsLeft . '</ul><ul class="navMain" id="menuRight">' . $itemsRight . '</ul>';
} }
/** /**
@ -2525,7 +2536,7 @@ class layout extends common {
continue; continue;
} }
// Propriétés de l'item // Propriétés de l'item
$active = ($parentPageId === $currentPageId OR in_array($currentPageId, $childrenPageIds)) ? 'active ' : ''; $active = ($parentPageId === $currentPageId OR in_array($currentPageId, $childrenPageIds)) ? ' class="active"' : '';
$targetBlank = $this->getData(['page', $parentPageId, 'targetBlank']) ? ' target="_blank"' : ''; $targetBlank = $this->getData(['page', $parentPageId, 'targetBlank']) ? ' target="_blank"' : '';
// Mise en page de l'item; // Mise en page de l'item;
// Ne pas afficher le parent d'une sous-page quand l'option est sélectionnée. // Ne pas afficher le parent d'une sous-page quand l'option est sélectionnée.
@ -2535,7 +2546,7 @@ class layout extends common {
AND $this->getUser('password') !== $this->getInput('ZWII_USER_PASSWORD') ) { AND $this->getUser('password') !== $this->getInput('ZWII_USER_PASSWORD') ) {
$items .= '<a href="'.$this->getUrl(1).'">'; $items .= '<a href="'.$this->getUrl(1).'">';
} else { } else {
$items .= '<a href="' . $active . helper::baseUrl() . $parentPageId . '"' . $targetBlank . '>'; $items .= '<a href="'. helper::baseUrl() . $parentPageId . '"' . $targetBlank . $active .'>';
} }
$items .= $this->getData(['page', $parentPageId, 'title']); $items .= $this->getData(['page', $parentPageId, 'title']);
$items .= '</a>'; $items .= '</a>';
@ -2548,7 +2559,7 @@ class layout extends common {
} }
// Propriétés de l'item // Propriétés de l'item
$active = ($childKey === $currentPageId) ? 'active ' : ''; $active = ($childKey === $currentPageId) ? ' class="active"' : '';
$targetBlank = $this->getData(['page', $childKey, 'targetBlank']) ? ' target="_blank"' : ''; $targetBlank = $this->getData(['page', $childKey, 'targetBlank']) ? ' target="_blank"' : '';
// Mise en page du sous-item // Mise en page du sous-item
$itemsChildren .= '<li class="menuSideChild">'; $itemsChildren .= '<li class="menuSideChild">';
@ -2557,7 +2568,7 @@ class layout extends common {
AND $this->getUser('password') !== $this->getInput('ZWII_USER_PASSWORD') ) { AND $this->getUser('password') !== $this->getInput('ZWII_USER_PASSWORD') ) {
$itemsChildren .= '<a href="'.$this->getUrl(1).'">'; $itemsChildren .= '<a href="'.$this->getUrl(1).'">';
} else { } else {
$itemsChildren .= '<a href="' .$active . helper::baseUrl() . $childKey . '"' . $targetBlank . '>'; $itemsChildren .= '<a href="' . helper::baseUrl() . $childKey . '"' . $targetBlank . $active . '>';
} }
$itemsChildren .= $this->getData(['page', $childKey, 'title']); $itemsChildren .= $this->getData(['page', $childKey, 'title']);

View File

@ -575,6 +575,11 @@ nav li ul li {
text-align: left; text-align: left;
} }
/*
nav .navSub a{
background-color:red !important;
}*/
nav li:hover ul { nav li:hover ul {
z-index: 8; z-index: 8;
opacity: 1; opacity: 1;
@ -589,13 +594,15 @@ nav a:hover {
text-decoration: none; text-decoration: none;
} }
nav #menuLeft {
/* Barre de menu */
#menuLeft {
display: inline-flex; display: inline-flex;
/*float: left;*/
} }
nav #menuRight { #menuRight {
display: inline-flex; display: inline-flex ;
float: right; float: right;
} }
@ -683,8 +690,8 @@ nav::before {
position: sticky; position: sticky;
} }
#navfixedconnected .navLevel2, #navfixedconnected .navSub,
#navfixedlogout .navLevel2 { #navfixedlogout .navSub {
pointer-events: none; pointer-events: none;
} }

View File

@ -695,7 +695,9 @@ class config extends common {
$d = $this->getData(['blacklist']); $d = $this->getData(['blacklist']);
$data = ''; $data = '';
foreach ($d as $key => $item) { foreach ($d as $key => $item) {
$data .= strftime('%d/%m/%y',$item['lastFail']) . ';' . strftime('%R',$item['lastFail']) . ';' ; $data .= mb_detect_encoding(strftime('%d/%m/%y',$item['lastFail']), 'UTF-8', true)
? strftime('%d/%m/%y',$item['lastFail']) . ';' . utf8_encode(strftime('%R',$item['lastFail'])) . ';'
: utf8_encode(strftime('%d/%m/%y',$item['lastFail'])) . ';' . utf8_encode(strftime('%R',$item['lastFail'])) . ';' ;
$data .= $key . ';' . $item['ip'] . ';' . $item['connectFail'] . PHP_EOL; $data .= $key . ';' . $item['ip'] . ';' . $item['connectFail'] . PHP_EOL;
} }
file_put_contents($fileName,$data,FILE_APPEND); file_put_contents($fileName,$data,FILE_APPEND);

View File

@ -138,6 +138,7 @@ class init extends common {
], ],
'menu' => [ 'menu' => [
'backgroundColor' => 'rgba(32, 59, 82, 1)', 'backgroundColor' => 'rgba(32, 59, 82, 1)',
'backgroundColorSub' => 'rgba(32, 59, 82, 1)',
'font' => 'Open+Sans', 'font' => 'Open+Sans',
'fontSize' => '1em', 'fontSize' => '1em',
'fontWeight' => 'normal', 'fontWeight' => 'normal',

View File

@ -490,6 +490,7 @@ class theme extends common {
if($this->isPost()) { if($this->isPost()) {
$this->setData(['theme', 'menu', [ $this->setData(['theme', 'menu', [
'backgroundColor' => $this->getInput('themeMenuBackgroundColor'), 'backgroundColor' => $this->getInput('themeMenuBackgroundColor'),
'backgroundColorSub' => $this->getInput('themeMenuBackgroundColorSub'),
'font' => $this->getInput('themeMenuFont'), 'font' => $this->getInput('themeMenuFont'),
'fontSize' => $this->getInput('themeMenuFontSize'), 'fontSize' => $this->getInput('themeMenuFontSize'),
'fontWeight' => $this->getInput('themeMenuFontWeight'), 'fontWeight' => $this->getInput('themeMenuFontWeight'),

View File

@ -43,7 +43,7 @@ $("input, select").on("change", function() {
var css = "@import url('https://fonts.googleapis.com/css?family=" + menuFont + "');"; var css = "@import url('https://fonts.googleapis.com/css?family=" + menuFont + "');";
var colors = core.colorVariants($("#themeMenuBackgroundColor").val()); var colors = core.colorVariants($("#themeMenuBackgroundColor").val());
// Couleurs du menu // Couleurs du menu
css += "nav,nav a{background-color:" + colors.normal + "}"; css += "nav,nav.navLevel1 a{background-color:" + colors.normal + "}";
css += "nav a,#toggle span,nav a:hover{color:" + $("#themeMenuTextColor").val() + "}"; css += "nav a,#toggle span,nav a:hover{color:" + $("#themeMenuTextColor").val() + "}";
css += "nav a:hover{background-color:" + colors.darken + "}"; css += "nav a:hover{background-color:" + colors.darken + "}";
if ($("#themeMenuActiveColorAuto").is(':checked')) { if ($("#themeMenuActiveColorAuto").is(':checked')) {
@ -51,10 +51,13 @@ $("input, select").on("change", function() {
} else { } else {
css += "nav a:hover{background-color:" + $("#themeMenuActiveColor").val() + ";color:" + $('#themeMenuActiveTextColor').val() + ";}"; css += "nav a:hover{background-color:" + $("#themeMenuActiveColor").val() + ";color:" + $('#themeMenuActiveTextColor').val() + ";}";
} }
// sous menu
var colors = core.colorVariants($("#themeMenuBackgroundColorSub").val());
css += 'nav .navSub a{background-color:' + colors.normal + '}';
// Taille, hauteur, épaisseur et capitalisation de caractères du menu // Taille, hauteur, épaisseur et capitalisation de caractères du menu
css += "#toggle span,#menu a{padding:" + $("#themeMenuHeight").val() + ";font-family:'" + menuFont.replace(/\+/g, " ") + "',sans-serif;font-weight:" + $("#themeMenuFontWeight").val() + ";font-size:" + $("#themeMenuFontSize").val() + ";text-transform:" + $("#themeMenuTextTransform").val() + "}"; css += "#toggle span,#menu a{padding:" + $("#themeMenuHeight").val() + ";font-family:'" + menuFont.replace(/\+/g, " ") + "',sans-serif;font-weight:" + $("#themeMenuFontWeight").val() + ";font-size:" + $("#themeMenuFontSize").val() + ";text-transform:" + $("#themeMenuTextTransform").val() + "}";
// Alignement du menu // Alignement du menu
css += "#menuLeft{float:" + $("#themeMenuTextAlign").val() + "}"; css += "#menu{text-align:" + $("#themeMenuTextAlign").val() + "}";
// Marge // Marge
if($("#themeMenuMargin").is(":checked")) { if($("#themeMenuMargin").is(":checked")) {
if( if(

View File

@ -17,7 +17,7 @@
<div class="block"> <div class="block">
<h4>Couleur</h4> <h4>Couleur</h4>
<div class="row"> <div class="row">
<div class="col6"> <div class="col4">
<?php echo template::text('themeMenuTextColor', [ <?php echo template::text('themeMenuTextColor', [
'class' => 'colorPicker', 'class' => 'colorPicker',
'help' => 'Le curseur horizontal règle le niveau de transparence.', 'help' => 'Le curseur horizontal règle le niveau de transparence.',
@ -25,7 +25,7 @@
'value' => $this->getData(['theme', 'menu', 'textColor']) 'value' => $this->getData(['theme', 'menu', 'textColor'])
]); ?> ]); ?>
</div> </div>
<div class="col6"> <div class="col4">
<?php echo template::text('themeMenuBackgroundColor', [ <?php echo template::text('themeMenuBackgroundColor', [
'class' => 'colorPicker', 'class' => 'colorPicker',
'help' => 'Le curseur horizontal règle le niveau de transparence.', 'help' => 'Le curseur horizontal règle le niveau de transparence.',
@ -33,6 +33,14 @@
'value' => $this->getData(['theme', 'menu', 'backgroundColor']) 'value' => $this->getData(['theme', 'menu', 'backgroundColor'])
]); ?> ]); ?>
</div> </div>
<div class="col4">
<?php echo template::text('themeMenuBackgroundColorSub', [
'class' => 'colorPicker',
'help' => 'Le curseur horizontal règle le niveau de transparence.',
'label' => 'Fond du sous-menu',
'value' => $this->getData(['theme', 'menu', 'backgroundColorSub'])
]); ?>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -466,7 +466,9 @@ class user extends common {
$notification = 'Trop de tentatives, accès bloqué durant ' . ($this->getData(['config', 'connect', 'timeout']) / 60) . ' minutes.'; $notification = 'Trop de tentatives, accès bloqué durant ' . ($this->getData(['config', 'connect', 'timeout']) / 60) . ' minutes.';
} }
// Journalisation // Journalisation
$dataLog = strftime('%d/%m/%y',time()) . ';' . strftime('%R',time()) . ';' ; $dataLog = mb_detect_encoding(strftime('%d/%m/%y',time()), 'UTF-8', true)
? strftime('%d/%m/%y',time()) . ';' . strftime('%R',time()) . ';'
: utf8_encode(strftime('%d/%m/%y',time())) . ';' . utf8_encode(strftime('%R',time())) . ';' ;
$dataLog .= helper::getIp() . ';'; $dataLog .= helper::getIp() . ';';
$dataLog .= $userId . ';' ; $dataLog .= $userId . ';' ;
$dataLog .= $this->getUrl() .';' ; $dataLog .= $this->getUrl() .';' ;

View File

@ -37,7 +37,6 @@ if(version_compare(PHP_VERSION, '5.6.0', '<')) {
date_default_timezone_set('Europe/Paris'); date_default_timezone_set('Europe/Paris');
setlocale (LC_ALL,'french','fr_Fr','fr_FR.utf8'); setlocale (LC_ALL,'french','fr_Fr','fr_FR.utf8');
/** /**
* Chargement des classes * Chargement des classes
*/ */

View File

@ -185,7 +185,9 @@ class blog extends common {
]); ]);
} }
self::$comments[] = [ self::$comments[] = [
strftime('%d %B %Y - %H:%M', $comment['createdOn']), mb_detect_encoding(strftime('%d %B %Y - %H:%M', $comment['createdOn']), 'UTF-8', true)
? strftime('%d %B %Y - %H:%M', $comment['createdOn'])
: utf8_encode(strftime('%d %B %Y - %H:%M', $comment['createdOn'])),
$comment['content'], $comment['content'],
$comment['userId'] ? $this->getData(['user', $comment['userId'], 'firstname']) . ' ' . $this->getData(['user', $comment['userId'], 'lastname']) : $comment['author'], $comment['userId'] ? $this->getData(['user', $comment['userId'], 'firstname']) . ' ' . $this->getData(['user', $comment['userId'], 'lastname']) : $comment['author'],
$buttonApproval, $buttonApproval,
@ -344,13 +346,17 @@ class blog extends common {
$approved = count($this->getData(['module', $this->getUrl(0), $articleIds[$i],'comment'])); $approved = count($this->getData(['module', $this->getUrl(0), $articleIds[$i],'comment']));
} }
// Met en forme le tableau // Met en forme le tableau
$date = mb_detect_encoding(strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), $articleIds[$i], 'publishedOn'])), 'UTF-8', true)
? strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), $articleIds[$i], 'publishedOn']))
: utf8_encode(strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), $articleIds[$i], 'publishedOn'])));
$heure = mb_detect_encoding(strftime('%H:%M', $this->getData(['module', $this->getUrl(0), $articleIds[$i], 'publishedOn'])), 'UTF-8', true)
? strftime('%H:%M', $this->getData(['module', $this->getUrl(0), $articleIds[$i], 'publishedOn']))
: utf8_encode(strftime('%H:%M', $this->getData(['module', $this->getUrl(0), $articleIds[$i], 'publishedOn'])));
self::$articles[] = [ self::$articles[] = [
'<a href="' . helper::baseurl() . $this->getUrl(0) . '/' . $articleIds[$i] . '" target="_blank" >' . '<a href="' . helper::baseurl() . $this->getUrl(0) . '/' . $articleIds[$i] . '" target="_blank" >' .
$this->getData(['module', $this->getUrl(0), $articleIds[$i], 'title']) . $this->getData(['module', $this->getUrl(0), $articleIds[$i], 'title']) .
'</a>', '</a>',
strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), $articleIds[$i], 'publishedOn'])) $date .' à '. $heure,
.' à '.
strftime('%H:%M', $this->getData(['module', $this->getUrl(0), $articleIds[$i], 'publishedOn'])),
self::$states[$this->getData(['module', $this->getUrl(0), $articleIds[$i], 'state'])], self::$states[$this->getData(['module', $this->getUrl(0), $articleIds[$i], 'state'])],
// Bouton pour afficher les commentaires de l'article // Bouton pour afficher les commentaires de l'article
template::button('blogConfigComment' . $articleIds[$i], [ template::button('blogConfigComment' . $articleIds[$i], [

View File

@ -3,8 +3,14 @@
<div class="col10"> <div class="col10">
<div class="blogDate"> <div class="blogDate">
<i class="far fa-calendar-alt"></i> <i class="far fa-calendar-alt"></i>
<?php echo strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'publishedOn'])); ?> <?php $date = mb_detect_encoding(strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'publishedOn'])), 'UTF-8', true)
à <?php echo strftime('%H:%M', $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'publishedOn'])); ?> ? strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'publishedOn']))
: utf8_encode(strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'publishedOn'])));
$heure = mb_detect_encoding(strftime('%H:%M', $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'publishedOn'])), 'UTF-8', true)
? strftime('%H:%M', $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'publishedOn']))
: utf8_encode(strftime('%H:%M', $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'publishedOn'])));
echo $date . ' à ' . $heure;
?>
</div> </div>
</div> </div>
<div class="col2"> <div class="col2">
@ -126,8 +132,10 @@
<?php foreach($module::$comments as $commentId => $comment): ?> <?php foreach($module::$comments as $commentId => $comment): ?>
<div class="block"> <div class="block">
<h4><?php echo $module::$commentsSignature[$commentId]; ?> <h4><?php echo $module::$commentsSignature[$commentId]; ?>
le <?php echo strftime('%d %B %Y - %H:%M', $comment['createdOn']); ?> le <?php echo mb_detect_encoding(strftime('%d %B %Y - %H:%M', $comment['createdOn']), 'UTF-8', true)
</h4> ? strftime('%d %B %Y - %H:%M', $comment['createdOn'])
: utf8_encode(strftime('%d %B %Y - %H:%M', $comment['createdOn']));
?>
<?php echo $comment['content']; ?> <?php echo $comment['content']; ?>
</div> </div>
<?php endforeach; ?> <?php endforeach; ?>

View File

@ -37,7 +37,9 @@
</div> </div>
<div class="blogDate"> <div class="blogDate">
<i class="far fa-calendar-alt"></i> <i class="far fa-calendar-alt"></i>
<?php echo strftime('%d %B %Y', $article['publishedOn']); ?> <?php echo mb_detect_encoding(strftime('%d %B %Y - %H:%M', $article['publishedOn']), 'UTF-8', true)
? strftime('%d %B %Y', $article['publishedOn'])
: utf8_encode(strftime('%d %B %Y', $article['publishedOn'])); ?>
</div> </div>
<p class="blogContent"> <p class="blogContent">
<?php echo helper::subword(strip_tags($article['content']), 0, 400); ?>... <?php echo helper::subword(strip_tags($article['content']), 0, 400); ?>...

View File

@ -89,11 +89,15 @@ 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++) {
// Met en forme le tableau // Met en forme le tableau
$date = mb_detect_encoding(strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), $newsIds[$i], 'publishedOn'])), 'UTF-8', true)
? strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), $newsIds[$i], 'publishedOn']))
: utf8_encode(strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), $newsIds[$i], 'publishedOn'])));
$heure = mb_detect_encoding(strftime('%H:%M', $this->getData(['module', $this->getUrl(0), $newsIds[$i], 'publishedOn'])), 'UTF-8', true)
? strftime('%H:%M', $this->getData(['module', $this->getUrl(0), $newsIds[$i], 'publishedOn']))
: utf8_encode(strftime('%H:%M', $this->getData(['module', $this->getUrl(0), $newsIds[$i], 'publishedOn'])));
self::$news[] = [ self::$news[] = [
$this->getData(['module', $this->getUrl(0), $newsIds[$i], 'title']), $this->getData(['module', $this->getUrl(0), $newsIds[$i], 'title']),
strftime('%d %B %Y', $this->getData(['module', $this->getUrl(0), $newsIds[$i], 'publishedOn'])) $date .' à '. $heure,
.' à '.
strftime('%H:%M', $this->getData(['module', $this->getUrl(0), $newsIds[$i], 'publishedOn'])),
self::$states[$this->getData(['module', $this->getUrl(0), $newsIds[$i], 'state'])], self::$states[$this->getData(['module', $this->getUrl(0), $newsIds[$i], 'state'])],
template::button('newsConfigEdit' . $newsIds[$i], [ template::button('newsConfigEdit' . $newsIds[$i], [
'href' => helper::baseUrl() . $this->getUrl(0) . '/edit/' . $newsIds[$i]. '/' . $_SESSION['csrf'], 'href' => helper::baseUrl() . $this->getUrl(0) . '/edit/' . $newsIds[$i]. '/' . $_SESSION['csrf'],

View File

@ -10,7 +10,9 @@
</div> </div>
<div class="newsSignature"> <div class="newsSignature">
<i class="far fa-calendar-alt"></i> <i class="far fa-calendar-alt"></i>
<?php echo strftime('%d %B %Y', $news['publishedOn']); ?> <?php echo mb_detect_encoding(strftime('%d %B %Y', $news['publishedOn']), 'UTF-8', true)
? 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 $this->getData(['user', $news['userId'], 'firstname']) . ' ' . $this->getData(['user', $news['userId'], 'lastname']); ?>
</div> </div>
<div class="clearBoth"></div> <div class="clearBoth"></div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB