From e100a580add4a1dd4f8b6c34625791c3643282be Mon Sep 17 00:00:00 2001 From: fredtempez Date: Wed, 8 May 2024 18:47:43 +0200 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20des=20modules=201.10.01?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core.php | 2 +- module/blog/blog.php | 10 +++++----- module/blog/changes.md | 5 +++++ module/blog/ressource/feed-icon-16.gif | Bin module/blog/vendor/FeedWriter/ATOM.php | 0 module/blog/vendor/FeedWriter/Feed.php | 0 .../vendor/FeedWriter/InvalidOperationException.php | 0 module/blog/vendor/FeedWriter/Item.php | 0 module/blog/vendor/FeedWriter/README.md | 0 module/blog/vendor/FeedWriter/RSS1.php | 0 module/blog/vendor/FeedWriter/RSS2.php | 0 module/blog/vendor/furl/LICENSE | 0 module/blog/vendor/furl/README.md | 0 module/blog/vendor/furl/inc.json | 0 module/blog/vendor/furl/jquery.furl.js | 0 module/blog/view/add/add.css | 0 module/blog/view/add/add.js.php | 0 module/blog/view/add/add.php | 0 module/blog/view/article/article.css | 0 module/blog/view/article/article.js.php | 0 module/blog/view/comment/comment.css | 0 module/blog/view/comment/comment.js.php | 0 module/blog/view/comment/comment.php | 0 module/blog/view/config/config.css | 0 module/blog/view/config/config.js.php | 0 module/blog/view/config/config.php | 0 module/blog/view/edit/edit.css | 0 module/blog/view/edit/edit.js.php | 0 module/blog/view/edit/edit.php | 0 module/blog/view/index/index.css | 0 module/blog/view/option/option.css | 0 module/blog/view/rss/rss.php | 0 module/form/changes.md | 2 ++ module/form/form.php | 2 +- .../form/vendor/html-sortable/html-sortable.min.js | 0 module/form/vendor/html-sortable/inc.json | 0 module/form/vendor/html-sortable/lisezmoi.txt | 0 module/form/view/config/config.css | 0 module/form/view/config/config.php | 2 +- module/form/view/data/data.css | 0 module/gallery/changes.md | 2 ++ module/gallery/gallery.php | 2 +- module/gallery/ressource/theme.css | 0 module/gallery/ressource/vartheme.css | 0 module/gallery/vendor/tablednd/inc.json | 0 module/gallery/vendor/tablednd/lisez-moi.txt | 0 module/gallery/vendor/tablednd/tablednd.min.js | 0 module/gallery/view/config/config.css | 0 module/gallery/view/config/config.php | 2 +- module/gallery/view/edit/edit.css | 0 module/gallery/view/theme/theme.css | 0 module/news/changes.md | 4 ++++ module/news/news.php | 6 +++--- module/news/view/config/config.php | 2 +- module/redirection/changes.md | 2 ++ module/redirection/redirection.php | 2 +- module/redirection/view/config/config.css | 0 module/redirection/view/config/config.php | 2 +- module/redirection/view/index/index.css | 0 module/redirection/view/index/index.js.php | 2 +- module/search/changes.md | 2 ++ module/search/search.php | 2 +- module/search/view/config/config.css | 0 module/search/view/index/index.css | 0 module/slider/changes.md | 2 ++ 65 files changed, 37 insertions(+), 18 deletions(-) mode change 100644 => 100755 module/blog/ressource/feed-icon-16.gif mode change 100644 => 100755 module/blog/vendor/FeedWriter/ATOM.php mode change 100644 => 100755 module/blog/vendor/FeedWriter/Feed.php mode change 100644 => 100755 module/blog/vendor/FeedWriter/InvalidOperationException.php mode change 100644 => 100755 module/blog/vendor/FeedWriter/Item.php mode change 100644 => 100755 module/blog/vendor/FeedWriter/README.md mode change 100644 => 100755 module/blog/vendor/FeedWriter/RSS1.php mode change 100644 => 100755 module/blog/vendor/FeedWriter/RSS2.php mode change 100644 => 100755 module/blog/vendor/furl/LICENSE mode change 100644 => 100755 module/blog/vendor/furl/README.md mode change 100644 => 100755 module/blog/vendor/furl/inc.json mode change 100644 => 100755 module/blog/vendor/furl/jquery.furl.js mode change 100644 => 100755 module/blog/view/add/add.css mode change 100644 => 100755 module/blog/view/add/add.js.php mode change 100644 => 100755 module/blog/view/add/add.php mode change 100644 => 100755 module/blog/view/article/article.css mode change 100644 => 100755 module/blog/view/article/article.js.php mode change 100644 => 100755 module/blog/view/comment/comment.css mode change 100644 => 100755 module/blog/view/comment/comment.js.php mode change 100644 => 100755 module/blog/view/comment/comment.php mode change 100644 => 100755 module/blog/view/config/config.css mode change 100644 => 100755 module/blog/view/config/config.js.php mode change 100644 => 100755 module/blog/view/config/config.php mode change 100644 => 100755 module/blog/view/edit/edit.css mode change 100644 => 100755 module/blog/view/edit/edit.js.php mode change 100644 => 100755 module/blog/view/edit/edit.php mode change 100644 => 100755 module/blog/view/index/index.css mode change 100644 => 100755 module/blog/view/option/option.css mode change 100644 => 100755 module/blog/view/rss/rss.php mode change 100644 => 100755 module/form/vendor/html-sortable/html-sortable.min.js mode change 100644 => 100755 module/form/vendor/html-sortable/inc.json mode change 100644 => 100755 module/form/vendor/html-sortable/lisezmoi.txt mode change 100644 => 100755 module/form/view/config/config.css mode change 100644 => 100755 module/form/view/data/data.css mode change 100644 => 100755 module/gallery/ressource/theme.css mode change 100644 => 100755 module/gallery/ressource/vartheme.css mode change 100644 => 100755 module/gallery/vendor/tablednd/inc.json mode change 100644 => 100755 module/gallery/vendor/tablednd/lisez-moi.txt mode change 100644 => 100755 module/gallery/vendor/tablednd/tablednd.min.js mode change 100644 => 100755 module/gallery/view/config/config.css mode change 100644 => 100755 module/gallery/view/edit/edit.css mode change 100644 => 100755 module/gallery/view/theme/theme.css mode change 100644 => 100755 module/redirection/view/config/config.css mode change 100644 => 100755 module/redirection/view/index/index.css mode change 100644 => 100755 module/search/view/config/config.css mode change 100644 => 100755 module/search/view/index/index.css diff --git a/core/core.php b/core/core.php index f06ee2a..8f2499a 100644 --- a/core/core.php +++ b/core/core.php @@ -51,7 +51,7 @@ class common const ACCESS_TIMER = 1800; // Numéro de version - const ZWII_VERSION = '1.10.00'; + const ZWII_VERSION = '1.10.01'; // URL autoupdate const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/campus-update/raw/branch/master/'; diff --git a/module/blog/blog.php b/module/blog/blog.php index 8953705..c6fa2f3 100755 --- a/module/blog/blog.php +++ b/module/blog/blog.php @@ -16,7 +16,7 @@ class blog extends common { - const VERSION = '7.6'; + const VERSION = '7.8'; const REALNAME = 'Blog'; const DELETE = true; const UPDATE = '0.0'; @@ -196,9 +196,9 @@ class blog extends common $feeds = new \FeedWriter\RSS2(); // En-tête - $feeds->setTitle($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)); - $feeds->setDescription($this->getData(['page', $this->getUrl(0), 'metaDescription'])); + $feeds->setDescription($this->getData(['page', $this->getUrl(0), 'metaDescription']) ? $this->getData(['page', $this->getUrl(0), 'metaDescription']): ''); $feeds->setChannelElement('language', 'fr-FR'); $feeds->setDate(date('r', time())); $feeds->addGenerator(); @@ -361,7 +361,7 @@ class blog extends common self::$dateFormat = $this->getData(['module', $this->getUrl(0), 'config', 'dateFormat']); self::$timeFormat = $this->getData(['module', $this->getUrl(0), 'config', 'timeFormat']); self::$comments[] = [ - helper::dateUTF8(self::$dateFormat, $comment['createdOn']) . ' - ' . helper::dateUTF8(self::$timeFormat, $comment['createdOn']), + helper::dateUTF8(self::$dateFormat, $comment['createdOn'], self::$i18nUI) . ' - ' . helper::dateUTF8(self::$timeFormat, $comment['createdOn'], self::$i18nUI), $comment['content'], $comment['userId'] ? $this->getData(['user', $comment['userId'], 'firstname']) . ' ' . $this->getData(['user', $comment['userId'], 'lastname']) : $comment['author'], $buttonApproval, @@ -530,7 +530,7 @@ class blog extends common '' . $this->getData(['module', $this->getUrl(0), 'posts', $articleIds[$i], 'title']) . '', - helper::dateUTF8(self::$dateFormat, $this->getData(['module', $this->getUrl(0), 'posts', $articleIds[$i], 'publishedOn'])) . ' - ' . helper::dateUTF8(self::$timeFormat, $this->getData(['module', $this->getUrl(0), 'posts', $articleIds[$i], 'publishedOn'])), + helper::dateUTF8(self::$dateFormat, $this->getData(['module', $this->getUrl(0), 'posts', $articleIds[$i], 'publishedOn']), self::$i18nUI) . ' - ' . helper::dateUTF8(self::$timeFormat, $this->getData(['module', $this->getUrl(0), 'posts', $articleIds[$i], 'publishedOn']), self::$i18nUI), self::$states[$this->getData(['module', $this->getUrl(0), 'posts', $articleIds[$i], 'state'])], // Bouton pour afficher les commentaires de l'article template::button('blogConfigComment' . $articleIds[$i], [ diff --git a/module/blog/changes.md b/module/blog/changes.md index d5e5fa9..b25646a 100755 --- a/module/blog/changes.md +++ b/module/blog/changes.md @@ -1,3 +1,8 @@ + +# Version 7.8 +- Le flux RSS ne fonctionne pas si les méta de la page sont vides. +# Version 7.7 +- Contrôle de la variable de session liée au contenu. Evite des erreurs lorsque plusieurs onglets sont ouverts. # Version 7.6 - Mise à jour RSS Feed # Version 7.5 diff --git a/module/blog/ressource/feed-icon-16.gif b/module/blog/ressource/feed-icon-16.gif old mode 100644 new mode 100755 diff --git a/module/blog/vendor/FeedWriter/ATOM.php b/module/blog/vendor/FeedWriter/ATOM.php old mode 100644 new mode 100755 diff --git a/module/blog/vendor/FeedWriter/Feed.php b/module/blog/vendor/FeedWriter/Feed.php old mode 100644 new mode 100755 diff --git a/module/blog/vendor/FeedWriter/InvalidOperationException.php b/module/blog/vendor/FeedWriter/InvalidOperationException.php old mode 100644 new mode 100755 diff --git a/module/blog/vendor/FeedWriter/Item.php b/module/blog/vendor/FeedWriter/Item.php old mode 100644 new mode 100755 diff --git a/module/blog/vendor/FeedWriter/README.md b/module/blog/vendor/FeedWriter/README.md old mode 100644 new mode 100755 diff --git a/module/blog/vendor/FeedWriter/RSS1.php b/module/blog/vendor/FeedWriter/RSS1.php old mode 100644 new mode 100755 diff --git a/module/blog/vendor/FeedWriter/RSS2.php b/module/blog/vendor/FeedWriter/RSS2.php old mode 100644 new mode 100755 diff --git a/module/blog/vendor/furl/LICENSE b/module/blog/vendor/furl/LICENSE old mode 100644 new mode 100755 diff --git a/module/blog/vendor/furl/README.md b/module/blog/vendor/furl/README.md old mode 100644 new mode 100755 diff --git a/module/blog/vendor/furl/inc.json b/module/blog/vendor/furl/inc.json old mode 100644 new mode 100755 diff --git a/module/blog/vendor/furl/jquery.furl.js b/module/blog/vendor/furl/jquery.furl.js old mode 100644 new mode 100755 diff --git a/module/blog/view/add/add.css b/module/blog/view/add/add.css old mode 100644 new mode 100755 diff --git a/module/blog/view/add/add.js.php b/module/blog/view/add/add.js.php old mode 100644 new mode 100755 diff --git a/module/blog/view/add/add.php b/module/blog/view/add/add.php old mode 100644 new mode 100755 diff --git a/module/blog/view/article/article.css b/module/blog/view/article/article.css old mode 100644 new mode 100755 diff --git a/module/blog/view/article/article.js.php b/module/blog/view/article/article.js.php old mode 100644 new mode 100755 diff --git a/module/blog/view/comment/comment.css b/module/blog/view/comment/comment.css old mode 100644 new mode 100755 diff --git a/module/blog/view/comment/comment.js.php b/module/blog/view/comment/comment.js.php old mode 100644 new mode 100755 diff --git a/module/blog/view/comment/comment.php b/module/blog/view/comment/comment.php old mode 100644 new mode 100755 diff --git a/module/blog/view/config/config.css b/module/blog/view/config/config.css old mode 100644 new mode 100755 diff --git a/module/blog/view/config/config.js.php b/module/blog/view/config/config.js.php old mode 100644 new mode 100755 diff --git a/module/blog/view/config/config.php b/module/blog/view/config/config.php old mode 100644 new mode 100755 diff --git a/module/blog/view/edit/edit.css b/module/blog/view/edit/edit.css old mode 100644 new mode 100755 diff --git a/module/blog/view/edit/edit.js.php b/module/blog/view/edit/edit.js.php old mode 100644 new mode 100755 diff --git a/module/blog/view/edit/edit.php b/module/blog/view/edit/edit.php old mode 100644 new mode 100755 diff --git a/module/blog/view/index/index.css b/module/blog/view/index/index.css old mode 100644 new mode 100755 diff --git a/module/blog/view/option/option.css b/module/blog/view/option/option.css old mode 100644 new mode 100755 diff --git a/module/blog/view/rss/rss.php b/module/blog/view/rss/rss.php old mode 100644 new mode 100755 diff --git a/module/form/changes.md b/module/form/changes.md index 5aebcec..11c7f51 100644 --- a/module/form/changes.md +++ b/module/form/changes.md @@ -1,3 +1,5 @@ +# Version 4.3 +- Contrôle de la variable de session liée au contenu. Evite des erreurs lorsque plusieurs onglets sont ouverts. # Version 4.2 - Termes des commandes de profils # Version 4.1 diff --git a/module/form/form.php b/module/form/form.php index 2c97042..46a0e41 100644 --- a/module/form/form.php +++ b/module/form/form.php @@ -17,7 +17,7 @@ class form extends common { - const VERSION = '4.2'; + const VERSION = '4.3'; const REALNAME = 'Formulaire'; const DATADIRECTORY = ''; // Contenu localisé inclus par défaut (page.json et module.json) diff --git a/module/form/vendor/html-sortable/html-sortable.min.js b/module/form/vendor/html-sortable/html-sortable.min.js old mode 100644 new mode 100755 diff --git a/module/form/vendor/html-sortable/inc.json b/module/form/vendor/html-sortable/inc.json old mode 100644 new mode 100755 diff --git a/module/form/vendor/html-sortable/lisezmoi.txt b/module/form/vendor/html-sortable/lisezmoi.txt old mode 100644 new mode 100755 diff --git a/module/form/view/config/config.css b/module/form/view/config/config.css old mode 100644 new mode 100755 diff --git a/module/form/view/config/config.php b/module/form/view/config/config.php index dc3520f..b594e5f 100644 --- a/module/form/view/config/config.php +++ b/module/form/view/config/config.php @@ -53,7 +53,7 @@
'buttonGrey', - 'href' => helper::baseUrl() . 'page/edit/' . $this->getUrl(0) . '/' . self::$siteContent, + 'href' => helper::baseUrl() . 'page/edit/' . $this->getUrl(0) . '/' . self::$siteContent, 'value' => template::ico('left') ]); ?>
diff --git a/module/form/view/data/data.css b/module/form/view/data/data.css old mode 100644 new mode 100755 diff --git a/module/gallery/changes.md b/module/gallery/changes.md index dcce233..ee0354f 100644 --- a/module/gallery/changes.md +++ b/module/gallery/changes.md @@ -1,3 +1,5 @@ +# Version 4.2 +- Contrôle de la variable de session liée au contenu. Evite des erreurs lorsque plusieurs onglets sont ouverts. # Version 4.1 - Termes des commandes de profils # Version 4.0 diff --git a/module/gallery/gallery.php b/module/gallery/gallery.php index b1559ce..0f1d437 100644 --- a/module/gallery/gallery.php +++ b/module/gallery/gallery.php @@ -18,7 +18,7 @@ class gallery extends common { - const VERSION = '4.1'; + const VERSION = '4.2'; const REALNAME = 'Galerie'; const DATADIRECTORY = self::DATA_DIR . 'gallery/'; diff --git a/module/gallery/ressource/theme.css b/module/gallery/ressource/theme.css old mode 100644 new mode 100755 diff --git a/module/gallery/ressource/vartheme.css b/module/gallery/ressource/vartheme.css old mode 100644 new mode 100755 diff --git a/module/gallery/vendor/tablednd/inc.json b/module/gallery/vendor/tablednd/inc.json old mode 100644 new mode 100755 diff --git a/module/gallery/vendor/tablednd/lisez-moi.txt b/module/gallery/vendor/tablednd/lisez-moi.txt old mode 100644 new mode 100755 diff --git a/module/gallery/vendor/tablednd/tablednd.min.js b/module/gallery/vendor/tablednd/tablednd.min.js old mode 100644 new mode 100755 diff --git a/module/gallery/view/config/config.css b/module/gallery/view/config/config.css old mode 100644 new mode 100755 diff --git a/module/gallery/view/config/config.php b/module/gallery/view/config/config.php index 58e89ff..483cc51 100644 --- a/module/gallery/view/config/config.php +++ b/module/gallery/view/config/config.php @@ -3,7 +3,7 @@
'buttonGrey', - 'href' => helper::baseUrl() . 'page/edit/' . $this->getUrl(0) . '/' . self::$siteContent, + 'href' => helper::baseUrl() . 'page/edit/' . $this->getUrl(0) . '/' . self::$siteContent, 'value' => template::ico('left') ]); ?>
diff --git a/module/gallery/view/edit/edit.css b/module/gallery/view/edit/edit.css old mode 100644 new mode 100755 diff --git a/module/gallery/view/theme/theme.css b/module/gallery/view/theme/theme.css old mode 100644 new mode 100755 diff --git a/module/news/changes.md b/module/news/changes.md index 99f691b..192be02 100644 --- a/module/news/changes.md +++ b/module/news/changes.md @@ -1,3 +1,7 @@ +# Version 5.7 +- Le flux RSS ne fonctionne pas si les méta de la page sont vides. +# Version 5.6 +- Contrôle de la variable de session liée au contenu. Evite des erreurs lorsque plusieurs onglets sont ouverts. # Version 5.5 - Mise à jour RSS Feed # Version 5.4 diff --git a/module/news/news.php b/module/news/news.php index 0d2c6ea..63f582b 100644 --- a/module/news/news.php +++ b/module/news/news.php @@ -16,7 +16,7 @@ class news extends common { - const VERSION = '5.5'; + const VERSION = '5.7'; const REALNAME = 'News'; const DATADIRECTORY = self::DATA_DIR . 'news/'; @@ -124,9 +124,9 @@ class news extends common $feeds = new \FeedWriter\RSS2(); // En-tête - $feeds->setTitle($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)); - $feeds->setDescription($this->getData(['page', $this->getUrl(0), 'metaDescription'])); + $feeds->setDescription($this->getData(['page', $this->getUrl(0), 'metaDescription']) ? $this->getData(['page', $this->getUrl(0), 'metaDescription']): ''); $feeds->setChannelElement('language', 'fr-FR'); $feeds->setDate(date('r', time())); $feeds->addGenerator(); diff --git a/module/news/view/config/config.php b/module/news/view/config/config.php index 3866ccf..49cb9ec 100644 --- a/module/news/view/config/config.php +++ b/module/news/view/config/config.php @@ -3,7 +3,7 @@
'buttonGrey', - 'href' => helper::baseUrl() . 'page/edit/' . $this->getUrl(0). '/' . self::$siteContent, + 'href' => helper::baseUrl() . 'page/edit/' . $this->getUrl(0) . '/' . self::$siteContent, 'value' => template::ico('left') ]); ?>
diff --git a/module/redirection/changes.md b/module/redirection/changes.md index 3f02c3a..6c1ccfb 100644 --- a/module/redirection/changes.md +++ b/module/redirection/changes.md @@ -1,3 +1,5 @@ +# Version 2.2 +- Contrôle de la variable de session liée au contenu. Evite des erreurs lorsque plusieurs onglets sont ouverts. # Version 2.1 - Edition du module ou de la page impossible. # Version 2.0 diff --git a/module/redirection/redirection.php b/module/redirection/redirection.php index ae77e99..e96f45f 100644 --- a/module/redirection/redirection.php +++ b/module/redirection/redirection.php @@ -16,7 +16,7 @@ class redirection extends common { - const VERSION = '2.1'; + const VERSION = '2.2'; const REALNAME = 'Redirection'; const DATADIRECTORY = ''; // Contenu localisé inclus par défaut (page.json et module.json) diff --git a/module/redirection/view/config/config.css b/module/redirection/view/config/config.css old mode 100644 new mode 100755 diff --git a/module/redirection/view/config/config.php b/module/redirection/view/config/config.php index 911398f..d3b6d70 100644 --- a/module/redirection/view/config/config.php +++ b/module/redirection/view/config/config.php @@ -3,7 +3,7 @@
'buttonGrey', - 'href' => helper::baseUrl() . 'page/edit/' . $this->getUrl(0) . '/' . self::$siteContent, + 'href' => helper::baseUrl() . 'page/edit/' . $this->getUrl(0) . '/' . self::$siteContent, 'value' => template::ico('left') ]); ?>
diff --git a/module/redirection/view/index/index.css b/module/redirection/view/index/index.css old mode 100644 new mode 100755 diff --git a/module/redirection/view/index/index.js.php b/module/redirection/view/index/index.js.php index 061da9c..fe572c5 100644 --- a/module/redirection/view/index/index.js.php +++ b/module/redirection/view/index/index.js.php @@ -19,7 +19,7 @@ core.confirm( message, function() { - $(location).attr("href", "page/edit/getUrl(0) . '/' . self::$siteContent; ?>"); + $(location).attr("href", "page/edit/getUrl(0); ?>"); }, function() { $(location).attr("href", "getUrl(); ?>/force"); diff --git a/module/search/changes.md b/module/search/changes.md index ed6a703..556ad9e 100644 --- a/module/search/changes.md +++ b/module/search/changes.md @@ -1,3 +1,5 @@ +# Version 3.2 +- Contrôle de la variable de session liée au contenu. Evite des erreurs lorsque plusieurs onglets sont ouverts. # Version 3.1 - Initialise un module installé dans une page sans avoir ouvert la page de configuration sans lancer de mise à jour. # Version 3.0 diff --git a/module/search/search.php b/module/search/search.php index 7d9842d..bcdfddb 100644 --- a/module/search/search.php +++ b/module/search/search.php @@ -20,7 +20,7 @@ class search extends common { - const VERSION = '3.1'; + const VERSION = '3.2'; const REALNAME = 'Recherche'; const DATADIRECTORY = self::DATA_DIR . 'search/'; diff --git a/module/search/view/config/config.css b/module/search/view/config/config.css old mode 100644 new mode 100755 diff --git a/module/search/view/index/index.css b/module/search/view/index/index.css old mode 100644 new mode 100755 diff --git a/module/slider/changes.md b/module/slider/changes.md index 7cdee4f..7949f1f 100644 --- a/module/slider/changes.md +++ b/module/slider/changes.md @@ -1,3 +1,5 @@ +# Version 6.5 +- Contrôle de la variable de session liée au contenu. Evite des erreurs lorsque plusieurs onglets sont ouverts. # Version 6.4 - Corrige plusieurs bugs dans les fonctions de tri # Version 6.3