diff --git a/module/news/changes.md b/module/news/changes.md
index 3a0a12f4..c6628690 100644
--- a/module/news/changes.md
+++ b/module/news/changes.md
@@ -1,3 +1,6 @@
+# Versions 6.0
+- Ajoute deux nouvelles options pour afficher ou masquer la date et l'heure de l'article.
+- Corrige un mauvais format de la propriété buttonBack non stockée au type booléen.
# Versions 5.9
- Largeur d'un bouton de retour.
# Versions 5.7 - 5.8
diff --git a/module/news/news.php b/module/news/news.php
index bcd678e6..6b6c477e 100644
--- a/module/news/news.php
+++ b/module/news/news.php
@@ -16,7 +16,7 @@
class news extends common
{
- const VERSION = '5.9';
+ const VERSION = '6.0';
const REALNAME = 'News';
const DATADIRECTORY = self::DATA_DIR . 'news/';
@@ -124,11 +124,12 @@ class news extends common
$feeds = new \FeedWriter\RSS2();
// En-tête
- $feeds->setTitle($this->getData(['page', $this->getUrl(0), 'title']) ? $this->getData(['page', $this->getUrl(0), 'title']): '');
+ $feeds->setTitle($this->getData(['page', $this->getUrl(0), 'title']) ? $this->getData(['page', $this->getUrl(0), 'title']) : '');
$feeds->setLink(helper::baseUrl() . $this->getUrl(0));
if ($this->getData(['page', $this->getUrl(0), 'metaDescription'])) {
$feeds->setDescription($this->getData(['page', $this->getUrl(0), 'metaDescription']));
- };
+ }
+ ;
$feeds->setChannelElement('language', 'fr-FR');
$feeds->setDate(date('r', time()));
$feeds->addGenerator();
@@ -174,7 +175,8 @@ class news extends common
$publishedOn = $this->getInput('newsAddPublishedOn', helper::FILTER_DATETIME, true);
$publishedOff = $this->getInput('newsAddPublishedOff') ? $this->getInput('newsAddPublishedOff', helper::FILTER_DATETIME) : '';
$this->setData([
- 'module', $this->getUrl(0),
+ 'module',
+ $this->getUrl(0),
'posts',
$newsId,
[
@@ -288,7 +290,8 @@ class news extends common
// Fin feuille de style
$this->setData([
- 'module', $this->getUrl(0),
+ 'module',
+ $this->getUrl(0),
'theme',
[
'style' => $success ? self::DATADIRECTORY . $this->getUrl(0) . '/theme.css' : '',
@@ -300,7 +303,8 @@ class news extends common
]);
$this->setData([
- 'module', $this->getUrl(0),
+ 'module',
+ $this->getUrl(0),
'config',
[
'feeds' => $this->getInput('newsOptionShowFeeds', helper::FILTER_BOOLEAN),
@@ -310,7 +314,9 @@ class news extends common
'height' => $this->getInput('newsOptionHeight', helper::FILTER_INT, true),
'dateFormat' => $this->getInput('newsOptionDateFormat'),
'timeFormat' => $this->getInput('newsOptionTimeFormat'),
- 'buttonBack' => $this->getInput('newsOptionButtonBack'),
+ 'buttonBack' => $this->getInput('newsOptionButtonBack', helper::FILTER_BOOLEAN),
+ 'showDate' => $this->getInput('newsOptionShowDate', helper::FILTER_BOOLEAN),
+ 'showTime' => $this->getInput('newsOptionShowTime', helper::FILTER_BOOLEAN),
'versionData' => $this->getData(['module', $this->getUrl(0), 'config', 'versionData']),
]
]);
@@ -318,7 +324,7 @@ class news extends common
// Valeurs en sortie
$this->addOutput([
- 'redirect' => helper::baseUrl() . $this->getUrl(0) . '/option',
+ 'redirect' => helper::baseUrl() . $this->getUrl(0) . '/config',
'notification' => helper::translate('Modifications enregistrées'),
'state' => true
]);
@@ -428,7 +434,8 @@ class news extends common
$publishedOn = $this->getInput('newsEditPublishedOn', helper::FILTER_DATETIME, true);
$publishedOff = $this->getInput('newsEditPublishedOff') ? $this->getInput('newsEditPublishedOff', helper::FILTER_DATETIME) : '';
$this->setData([
- 'module', $this->getUrl(0),
+ 'module',
+ $this->getUrl(0),
'posts',
$newsId,
[
@@ -490,6 +497,8 @@ class news extends common
}
// L'article existe
else {
+ self::$dateFormat = $this->getData(['module', $this->getUrl(0), 'config', 'dateFormat']);
+ self::$timeFormat = $this->getData(['module', $this->getUrl(0), 'config', 'timeFormat']);
self::$articleSignature = $this->signature($this->getData(['module', $this->getUrl(0), 'posts', $this->getUrl(1), 'userId']));
// Valeurs en sortie
$this->addOutput([
@@ -609,6 +618,14 @@ class news extends common
// Mettre à jour la version
$this->setData(['module', $this->getUrl(0), 'config', 'versionData', '5.3']);
}
+ // Mise à jour 6.0
+ if (version_compare($versionData, '6.0', '<')) {
+ $this->setData(['module', $this->getUrl(0), 'config', 'buttonBack', true]);
+ $this->setData(['module', $this->getUrl(0), 'config', 'showTime', true]);
+ $this->setData(['module', $this->getUrl(0), 'config', 'showDate', true]);
+ // Mettre à jour la version
+ $this->setData(['module', $this->getUrl(0), 'config', 'versionData', '6.0']);
+ }
}
diff --git a/module/news/view/article/article.php b/module/news/view/article/article.php
index 1567e530..e55aab82 100644
--- a/module/news/view/article/article.php
+++ b/module/news/view/article/article.php
@@ -12,12 +12,28 @@
-
+
-
- getData(['module', $this->getUrl(0), 'posts', $this->getUrl(1), 'publishedOn']), self::$i18nUI) . ' ' . helper::dateUTF8('%H:%M', $this->getData(['module', $this->getUrl(0), 'posts', $this->getUrl(1), 'publishedOn']), self::$i18nUI); ?>
-
+
+ getData(['module', $this->getUrl(0), 'config', 'showDate']) === true
+ || $this->getData(['module', $this->getUrl(0), 'config', 'showTime']) === true
+ ): ?>
+ 'left']); ?>
+
+ getData(['module', $this->getUrl(0), 'config', 'showDate']) === true): ?>
+ getData(['module', $this->getUrl(0), 'posts', $this->getUrl(1), 'publishedOn']), self::$i18nUI); ?>
+
+ getData(['module', $this->getUrl(0), 'config', 'showDate']) === true
+ && $this->getData(['module', $this->getUrl(0), 'config', 'showTime']) === true
+ ): ?>
+
+
+ getData(['module', $this->getUrl(0), 'config', 'showTime']) === true): ?>
+ getData(['module', $this->getUrl(0), 'posts', $this->getUrl(1), 'publishedOn']), self::$i18nUI); ?>
+
isConnected() === true
and
diff --git a/module/news/view/index/index.php b/module/news/view/index/index.php
index f15d0b0e..8a97abe8 100644
--- a/module/news/view/index/index.php
+++ b/module/news/view/index/index.php
@@ -1,5 +1,6 @@
-
+
getData(['module', $this->getUrl(0), 'config', 'feeds'])): ?>
-
diff --git a/module/news/view/option/option.js.php b/module/news/view/option/option.js.php
new file mode 100644
index 00000000..831f333e
--- /dev/null
+++ b/module/news/view/option/option.js.php
@@ -0,0 +1,40 @@
+/**
+ * This file is part of Zwii.
+ *
+ * For full copyright and license information, please see the LICENSE
+ * file that was distributed with this source code.
+ *
+ * @author Rémi Jean
+ * @copyright Copyright (C) 2008-2018, Rémi Jean
+ * @author Frédéric Tempez
+ * @copyright Copyright (C) 2018-2024, Frédéric Tempez
+ * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International
+ * @link http://zwiicms.fr/
+ */
+
+$(document).ready(function() {
+ // Gestion du changement de la case "Afficher la date"
+ $('#newsOptionShowDate').change(function() {
+ var showDateChecked = $(this).is(':checked');
+
+ // Afficher ou masquer le wrapper de l'heure selon l'état de la date
+ if (showDateChecked) {
+ $('.timeWrapper').show();
+ } else {
+ $('.timeWrapper').hide();
+ // Désactiver l'option "Afficher l'heure" lorsque la date est désactivée
+ $('#newsOptionShowTime').prop('checked', false).trigger('change');
+ }
+
+ // Afficher ou masquer le format de la date
+ $('#newsOptionDateFormatWrapper').toggle(showDateChecked);
+ }).trigger('change'); // Déclenchement au chargement de la page
+
+ // Gestion du changement de la case "Afficher l'heure"
+ $('#newsOptionShowTime').change(function() {
+ var showTimeChecked = $(this).is(':checked');
+
+ // Afficher ou masquer le format de l'heure
+ $('#newsOptionTimeFormatWrapper').toggle(showTimeChecked);
+ }).trigger('change'); // Déclenchement au chargement de la page
+});
diff --git a/module/news/view/option/option.php b/module/news/view/option/option.php
index 5273f256..9d16be83 100644
--- a/module/news/view/option/option.php
+++ b/module/news/view/option/option.php
@@ -1,111 +1,123 @@
-
- 'buttonGrey',
- 'href' => helper::baseUrl() . $this->getUrl(0) . '/config',
- 'value' => template::ico('left')
- ]); ?>
-
-
-
-
+
+ 'buttonGrey',
+ 'href' => helper::baseUrl() . $this->getUrl(0) . '/config',
+ 'value' => template::ico('left')
+ ]); ?>
-
-
-
-
-
-
- 'Nombre de colonnes',
- 'selected' => $this->getData(['module', $this->getUrl(0),'config', 'itemsperCol'])
- ]); ?>
-
-
- 'Articles par page',
- 'selected' => $this->getData(['module', $this->getUrl(0),'config', 'itemsperPage'])
- ]); ?>
-
-
- 'Abrégé de l\'article',
- 'selected' => $this->getData(['module', $this->getUrl(0),'config', 'height'])
- ]); ?>
-
-
- 'Format des dates',
- 'selected' => $this->getData(['module', $this->getUrl(0), 'config', 'dateFormat'])
- ]); ?>
-
-
- 'Format des heures',
- 'selected' => $this->getData(['module', $this->getUrl(0), 'config', 'timeFormat'])
- ]); ?>
-
+
+
+
+
+
+
+
+
+
+
+ $this->getData(['module', $this->getUrl(0), 'config', 'showDate']),
+ ]); ?>
-
-
- $this->getData(['module', $this->getUrl(0), 'config', 'feeds']),
- 'help' => 'Flux limité aux articles de la première page.'
- ]); ?>
-
-
- $this->getData(['module', $this->getUrl(0), 'config', 'buttonBack'])
- ]); ?>
-
-
- 'Étiquette RSS',
- 'value' => $this->getData(['module', $this->getUrl(0), 'config', 'feedsLabel'])
- ]); ?>
-
+
+ 'Format des dates',
+ 'selected' => $this->getData(['module', $this->getUrl(0), 'config', 'dateFormat'])
+ ]); ?>
+
+
+ $this->getData(['module', $this->getUrl(0), 'config', 'showTime']),
+ ]); ?>
+
+
+ 'Format des heures',
+ 'selected' => $this->getData(['module', $this->getUrl(0), 'config', 'timeFormat'])
+ ]); ?>
+
+
+
+
+ 'Nombre de colonnes',
+ 'selected' => $this->getData(['module', $this->getUrl(0), 'config', 'itemsperCol'])
+ ]); ?>
+
+
+ 'Articles par page',
+ 'selected' => $this->getData(['module', $this->getUrl(0), 'config', 'itemsperPage'])
+ ]); ?>
+
+
+ 'Abrégé de l\'article',
+ 'selected' => $this->getData(['module', $this->getUrl(0), 'config', 'height'])
+ ]); ?>
+
+
+
+
+ $this->getData(['module', $this->getUrl(0), 'config', 'buttonBack'])
+ ]); ?>
+
+
+ $this->getData(['module', $this->getUrl(0), 'config', 'feeds']),
+ 'help' => 'Flux limité aux articles de la première page.'
+ ]); ?>
+
+
+ 'Texte de l\'étiquette RSS',
+ 'value' => $this->getData(['module', $this->getUrl(0), 'config', 'feedsLabel'])
+ ]); ?>
-
-
-
-
-
-
- 'Bordure',
- 'selected' => $this->getData(['module', $this->getUrl(0),'theme', 'borderStyle'])
- ]); ?>
-
-
- 'Épaisseur',
- 'selected' => $this->getData(['module', $this->getUrl(0),'theme', 'borderWidth'])
- ]); ?>
-
-
- 'colorPicker',
- 'help' => 'Couleur visible en l\'absence d\'une image. Le curseur horizontal règle le niveau de transparence.',
- 'label' => 'Couleur de la bordure',
- 'value' => $this->getData(['module', $this->getUrl(0),'theme', 'borderColor'])
- ]); ?>
-
-
- 'colorPicker',
- 'help' => 'Couleur visible en l\'absence d\'une image. Le curseur horizontal règle le niveau de transparence.',
- 'label' => 'Couleur du fond',
- 'value' => $this->getData(['module', $this->getUrl(0),'theme', 'backgroundColor'])
- ]); ?>
-
+
+
+
+
+
+
+
+ 'Bordure',
+ 'selected' => $this->getData(['module', $this->getUrl(0), 'theme', 'borderStyle'])
+ ]); ?>
+
+
+ 'Épaisseur',
+ 'selected' => $this->getData(['module', $this->getUrl(0), 'theme', 'borderWidth'])
+ ]); ?>
+
+
+ 'colorPicker',
+ 'help' => 'Couleur visible en l\'absence d\'une image. Le curseur horizontal règle le niveau de transparence.',
+ 'label' => 'Couleur de la bordure',
+ 'value' => $this->getData(['module', $this->getUrl(0), 'theme', 'borderColor'])
+ ]); ?>
+
+
+ 'colorPicker',
+ 'help' => 'Couleur visible en l\'absence d\'une image. Le curseur horizontal règle le niveau de transparence.',
+ 'label' => 'Couleur du fond',
+ 'value' => $this->getData(['module', $this->getUrl(0), 'theme', 'backgroundColor'])
+ ]); ?>
+
Version n°