mikuli.cz

:)
git clone https://git.sr.ht/~ashymad/mikuli.cz
Log | Files | Refs

commit 77196b4e6e446475d587eb89d106f9f03b2c1cde
parent 5568460a81b23d196d17f88f424427ebe8fe7167
Author: markseu <mark2011@mayberg.se>
Date:   Tue,  3 Feb 2015 14:00:01 +0100

Core update (better date handling)

Diffstat:
MREADME.md | 2+-
Msystem/config/language-en.ini | 2++
Msystem/core/core.php | 36+++++++++++++++++++++++++++++++-----
3 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/README.md b/README.md @@ -1,4 +1,4 @@ -Yellow 0.4.25 +Yellow 0.4.26 ============= [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/markseu/yellowcms) diff --git a/system/config/language-en.ini b/system/config/language-en.ini @@ -18,5 +18,7 @@ webinterfaceNew = + webinterfaceUserHelp = Help webinterfaceUserHelpUrl = https://github.com/markseu/yellowcms/wiki webinterfaceUserLogout = Logout +dateMonths = January, February, March, April, May, June, July, August, September, October, November, December +dateWeekdays = Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday paginationPrevious = ← Previous paginationNext = Next → diff --git a/system/core/core.php b/system/core/core.php @@ -5,7 +5,7 @@ // Yellow main class class Yellow { - const Version = "0.4.25"; + const Version = "0.4.26"; var $page; //current page var $pages; //pages from file system var $config; //configuration @@ -463,7 +463,6 @@ class YellowPage function parseMeta($pageError = "") { $this->metaData = array(); - $this->set("modified", date("c", is_readable($this->fileName) ? filemtime($this->fileName) : 0)); $this->set("title", $this->yellow->toolbox->createTextTitle($this->location)); $this->set("sitename", $this->yellow->config->get("sitename")); $this->set("author", $this->yellow->config->get("author")); @@ -474,6 +473,7 @@ class YellowPage $this->set("language", $this->yellow->toolbox->findLanguageFromFile($this->fileName, $this->yellow->config->get("contentDir"), $this->yellow->config->get("contentRootDir"), $this->yellow->config->get("language"))); + $this->set("modified", date("c", $this->yellow->toolbox->findModifiedFromFile($this->fileName))); $this->set("parser", $this->yellow->config->get("parser")); if(preg_match("/^(\xEF\xBB\xBF)?\-\-\-[\r\n]+(.+?)[\r\n]+\-\-\-[\r\n]+/s", $this->rawData, $parsed)) @@ -623,10 +623,10 @@ class YellowPage } // Return page meta data as human readable date, HTML encoded - function getFormatted($key, $dateFormat = "") + function getFormatted($key) { - if(empty($dateFormat)) $dateFormat = $this->yellow->text->get("languageDateFormat"); - return htmlspecialchars(date($dateFormat, strtotime($this->get($key)))); + $dateFormat = $this->yellow->text->get("languageDateFormat"); + return $this->yellow->text->getDateFormatted($dateFormat, strtotime($this->get($key))); } // Return page content, HTML encoded or raw format @@ -1378,6 +1378,20 @@ class YellowText return htmlspecialchars($this->getText($key, $this->language)); } + // Return human readable date, HTML encoded + function getDateFormatted($dateFormat, $timestamp) + { + $dateMonths = preg_split("/,\s*/", $this->get("dateMonths")); + $dateWeekdays = preg_split("/,\s*/", $this->get("dateWeekdays")); + $month = $dateMonths[date('n', $timestamp) - 1]; + $weekday = $dateWeekdays[date('N', $timestamp) - 1]; + $dateFormat = preg_replace("/(?<!\\\)F/", addcslashes($month, 'A..Za..z'), $dateFormat); + $dateFormat = preg_replace("/(?<!\\\)M/", addcslashes(substru($month, 0, 3), 'A..Za..z'), $dateFormat); + $dateFormat = preg_replace("/(?<!\\\)D/", addcslashes(substru($weekday, 0, 3), 'A..Za..z'), $dateFormat); + $dateFormat = preg_replace("/(?<!\\\)l/", addcslashes($weekday, 'A..Za..z'), $dateFormat); + return htmlspecialchars(date($dateFormat, $timestamp)); + } + // Return text strings function getData($filterStart = "", $language = "") { @@ -1942,6 +1956,18 @@ class YellowToolbox } return $fileNames; } + + // Return modification date from file path, Unix time + function findModifiedFromFile($fileName) + { + $modified = is_readable($fileName) ? filemtime($fileName) : 0; + if($modified == 0) + { + $path = dirname($fileName); + $modified = is_readable($path) ? filemtime($path) : 0; + } + return $modified; + } // Return theme/template name from file path function findNameFromFile($fileName, $pathBase, $nameDefault, $fileExtension)