From: ArthurHoaro Date: Sat, 1 Apr 2017 08:02:03 +0000 (+0200) Subject: Merge pull request #742 from ArthurHoaro/api/postLink X-Git-Tag: v0.9.0~18 X-Git-Url: https://git.immae.eu/?a=commitdiff_plain;h=4b385d6c344c4a0a0b424622833bc72974c21cb5;hp=68016e37983b882c51c6ac92da6f6cc1250676e5;p=github%2Fshaarli%2FShaarli.git Merge pull request #742 from ArthurHoaro/api/postLink REST API: implement POST link service --- diff --git a/application/Utils.php b/application/Utils.php index 5c077450..d6e06610 100644 --- a/application/Utils.php +++ b/application/Utils.php @@ -321,24 +321,26 @@ function normalize_spaces($string) * otherwise default format '%c' will be returned. * * @param DateTime $date to format. + * @param bool $time Displays time if true. * @param bool $intl Use international format if true. * * @return bool|string Formatted date, or false if the input is invalid. */ -function format_date($date, $intl = true) +function format_date($date, $time = true, $intl = true) { if (! $date instanceof DateTime) { return false; } if (! $intl || ! class_exists('IntlDateFormatter')) { - return strftime('%c', $date->getTimestamp()); + $format = $time ? '%c' : '%x'; + return strftime($format, $date->getTimestamp()); } $formatter = new IntlDateFormatter( setlocale(LC_TIME, 0), IntlDateFormatter::LONG, - IntlDateFormatter::LONG + $time ? IntlDateFormatter::LONG : IntlDateFormatter::NONE ); return $formatter->format($date); diff --git a/index.php b/index.php index 021fc6e9..863d5093 100644 --- a/index.php +++ b/index.php @@ -695,9 +695,11 @@ function showDaily($pageBuilder, $LINKSDB, $conf, $pluginManager) $dayDate = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $day.'_000000'); $data = array( + 'pagetitle' => $conf->get('general.title') .' - '. format_date($dayDate, false), 'linksToDisplay' => $linksToDisplay, 'cols' => $columns, 'day' => $dayDate->getTimestamp(), + 'dayDate' => $dayDate, 'previousday' => $previousday, 'nextday' => $nextday, ); diff --git a/tests/languages/de/UtilsDeTest.php b/tests/languages/de/UtilsDeTest.php index 545fa572..6c9c9adc 100644 --- a/tests/languages/de/UtilsDeTest.php +++ b/tests/languages/de/UtilsDeTest.php @@ -11,7 +11,16 @@ class UtilsDeTest extends UtilsTest public function testDateFormat() { $date = DateTime::createFromFormat('Ymd_His', '20170101_101112'); - $this->assertRegExp('/1. Januar 2017 (um )?10:11:12 GMT\+0?3(:00)?/', format_date($date, true)); + $this->assertRegExp('/1\. Januar 2017 (um )?10:11:12 GMT\+0?3(:00)?/', format_date($date, true, true)); + } + + /** + * Test date_format() without time. + */ + public function testDateFormatNoTime() + { + $date = DateTime::createFromFormat('Ymd_His', '20170101_101112'); + $this->assertRegExp('/1\. Januar 2017/', format_date($date, false,true)); } /** @@ -20,7 +29,16 @@ class UtilsDeTest extends UtilsTest public function testDateFormatDefault() { $date = DateTime::createFromFormat('Ymd_His', '20170101_101112'); - $this->assertEquals('So 01 Jan 2017 10:11:12 EAT', format_date($date, false)); + $this->assertEquals('So 01 Jan 2017 10:11:12 EAT', format_date($date, true, false)); + } + + /** + * Test date_format() using builtin PHP function strftime without time. + */ + public function testDateFormatDefaultNoTime() + { + $date = DateTime::createFromFormat('Ymd_His', '20170201_101112'); + $this->assertEquals('01.02.2017', format_date($date, false, false)); } /** diff --git a/tests/languages/en/UtilsEnTest.php b/tests/languages/en/UtilsEnTest.php index 7c829ac7..d8680b2b 100644 --- a/tests/languages/en/UtilsEnTest.php +++ b/tests/languages/en/UtilsEnTest.php @@ -11,7 +11,16 @@ class UtilsEnTest extends UtilsTest public function testDateFormat() { $date = DateTime::createFromFormat('Ymd_His', '20170101_101112'); - $this->assertRegExp('/January 1, 2017 (at )?10:11:12 AM GMT\+0?3(:00)?/', format_date($date, true)); + $this->assertRegExp('/January 1, 2017 (at )?10:11:12 AM GMT\+0?3(:00)?/', format_date($date, true, true)); + } + + /** + * Test date_format() without time. + */ + public function testDateFormatNoTime() + { + $date = DateTime::createFromFormat('Ymd_His', '20170101_101112'); + $this->assertRegExp('/January 1, 2017/', format_date($date, false, true)); } /** @@ -20,7 +29,16 @@ class UtilsEnTest extends UtilsTest public function testDateFormatDefault() { $date = DateTime::createFromFormat('Ymd_His', '20170101_101112'); - $this->assertEquals('Sun 01 Jan 2017 10:11:12 AM EAT', format_date($date, false)); + $this->assertEquals('Sun 01 Jan 2017 10:11:12 AM EAT', format_date($date, true, false)); + } + + /** + * Test date_format() using builtin PHP function strftime without time. + */ + public function testDateFormatDefaultNoTime() + { + $date = DateTime::createFromFormat('Ymd_His', '20170201_101112'); + $this->assertEquals('02/01/2017', format_date($date, false, false)); } /** diff --git a/tests/languages/fr/UtilsFrTest.php b/tests/languages/fr/UtilsFrTest.php index 45996ee2..0d50a878 100644 --- a/tests/languages/fr/UtilsFrTest.php +++ b/tests/languages/fr/UtilsFrTest.php @@ -14,13 +14,31 @@ class UtilsFrTest extends UtilsTest $this->assertRegExp('/1 janvier 2017 (à )?10:11:12 UTC\+0?3(:00)?/', format_date($date)); } + /** + * Test date_format() without time. + */ + public function testDateFormatNoTime() + { + $date = DateTime::createFromFormat('Ymd_His', '20170101_101112'); + $this->assertRegExp('/1 janvier 2017/', format_date($date, false, true)); + } + /** * Test date_format() using builtin PHP function strftime. */ public function testDateFormatDefault() { $date = DateTime::createFromFormat('Ymd_His', '20170101_101112'); - $this->assertEquals('dim. 01 janv. 2017 10:11:12 EAT', format_date($date, false)); + $this->assertEquals('dim. 01 janv. 2017 10:11:12 EAT', format_date($date, true, false)); + } + + /** + * Test date_format() using builtin PHP function strftime without time. + */ + public function testDateFormatDefaultNoTime() + { + $date = DateTime::createFromFormat('Ymd_His', '20170201_101112'); + $this->assertEquals('01/02/2017', format_date($date, false, false)); } /** diff --git a/tpl/default/daily.html b/tpl/default/daily.html index d8c91078..29d845d5 100644 --- a/tpl/default/daily.html +++ b/tpl/default/daily.html @@ -44,7 +44,7 @@
-

{function="strftime('%A %d, %B %Y', $day)"}

+

{function="format_date($dayDate, false)"}

{loop="$daily_about_plugin"} diff --git a/tpl/default/js/shaarli.js b/tpl/default/js/shaarli.js index 30d8ed6f..edcf2809 100644 --- a/tpl/default/js/shaarli.js +++ b/tpl/default/js/shaarli.js @@ -255,10 +255,9 @@ window.onload = function () { * Remove CSS target padding (for fixed bar) */ if (location.hash != '') { - var anchor = document.querySelector(location.hash); + var anchor = document.getElementById(location.hash.substr(1)); if (anchor != null) { var padsize = anchor.clientHeight; - console.log(document.querySelector(location.hash).clientHeight); this.window.scroll(0, this.window.scrollY - padsize); anchor.style.paddingTop = 0; }