diff options
author | ArthurHoaro <arthur@hoa.ro> | 2017-03-21 20:10:49 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-21 20:10:49 +0100 |
commit | c4c655d9bfe68a914898d76bb9c479eea1b04f72 (patch) | |
tree | f3c681508a588d516e50b33581b6e4b6e90f7326 | |
parent | 4bad4bde5a2b8dcbb00e95662e30b4694fe97266 (diff) | |
parent | 2ea89aba4faa5509ca68c7e9b6b9ab71c1929935 (diff) | |
download | Shaarli-c4c655d9bfe68a914898d76bb9c479eea1b04f72.tar.gz Shaarli-c4c655d9bfe68a914898d76bb9c479eea1b04f72.tar.zst Shaarli-c4c655d9bfe68a914898d76bb9c479eea1b04f72.zip |
Merge pull request #804 from ArthurHoaro/feature/atom-default
Fixes #304: use atom feed as default
-rw-r--r-- | application/PageBuilder.php | 3 | ||||
-rw-r--r-- | application/Updater.php | 16 | ||||
-rw-r--r-- | application/config/ConfigManager.php | 2 | ||||
-rw-r--r-- | tests/Updater/UpdaterTest.php | 45 | ||||
-rw-r--r-- | tpl/default/page.header.html | 4 |
5 files changed, 66 insertions, 4 deletions
diff --git a/application/PageBuilder.php b/application/PageBuilder.php index 544aba7c..b133dee8 100644 --- a/application/PageBuilder.php +++ b/application/PageBuilder.php | |||
@@ -75,7 +75,8 @@ class PageBuilder | |||
75 | } | 75 | } |
76 | $this->tpl->assign('shaarlititle', $this->conf->get('general.title', 'Shaarli')); | 76 | $this->tpl->assign('shaarlititle', $this->conf->get('general.title', 'Shaarli')); |
77 | $this->tpl->assign('openshaarli', $this->conf->get('security.open_shaarli', false)); | 77 | $this->tpl->assign('openshaarli', $this->conf->get('security.open_shaarli', false)); |
78 | $this->tpl->assign('showatom', $this->conf->get('feed.show_atom', false)); | 78 | $this->tpl->assign('showatom', $this->conf->get('feed.show_atom', true)); |
79 | $this->tpl->assign('feed_type', $this->conf->get('feed.show_atom', true) !== false ? 'atom' : 'rss'); | ||
79 | $this->tpl->assign('hide_timestamps', $this->conf->get('privacy.hide_timestamps', false)); | 80 | $this->tpl->assign('hide_timestamps', $this->conf->get('privacy.hide_timestamps', false)); |
80 | $this->tpl->assign('token', getToken($this->conf)); | 81 | $this->tpl->assign('token', getToken($this->conf)); |
81 | // To be removed with a proper theme configuration. | 82 | // To be removed with a proper theme configuration. |
diff --git a/application/Updater.php b/application/Updater.php index fd7e2073..efbfc832 100644 --- a/application/Updater.php +++ b/application/Updater.php | |||
@@ -378,6 +378,22 @@ class Updater | |||
378 | 378 | ||
379 | $this->conf->set('plugins.PIWIK_URL', 'http://'. $this->conf->get('plugins.PIWIK_URL')); | 379 | $this->conf->set('plugins.PIWIK_URL', 'http://'. $this->conf->get('plugins.PIWIK_URL')); |
380 | $this->conf->write($this->isLoggedIn); | 380 | $this->conf->write($this->isLoggedIn); |
381 | |||
382 | return true; | ||
383 | } | ||
384 | |||
385 | /** | ||
386 | * Use ATOM feed as default. | ||
387 | */ | ||
388 | public function updateMethodAtomDefault() | ||
389 | { | ||
390 | if (!$this->conf->exists('feed.show_atom') || $this->conf->get('feed.show_atom') === true) { | ||
391 | return true; | ||
392 | } | ||
393 | |||
394 | $this->conf->set('feed.show_atom', true); | ||
395 | $this->conf->write($this->isLoggedIn); | ||
396 | |||
381 | return true; | 397 | return true; |
382 | } | 398 | } |
383 | } | 399 | } |
diff --git a/application/config/ConfigManager.php b/application/config/ConfigManager.php index e98af8ab..7bfbfc72 100644 --- a/application/config/ConfigManager.php +++ b/application/config/ConfigManager.php | |||
@@ -321,7 +321,7 @@ class ConfigManager | |||
321 | $this->setEmpty('updates.check_updates_interval', 86400); | 321 | $this->setEmpty('updates.check_updates_interval', 86400); |
322 | 322 | ||
323 | $this->setEmpty('feed.rss_permalinks', true); | 323 | $this->setEmpty('feed.rss_permalinks', true); |
324 | $this->setEmpty('feed.show_atom', false); | 324 | $this->setEmpty('feed.show_atom', true); |
325 | 325 | ||
326 | $this->setEmpty('privacy.default_private_links', false); | 326 | $this->setEmpty('privacy.default_private_links', false); |
327 | $this->setEmpty('privacy.hide_public_links', false); | 327 | $this->setEmpty('privacy.hide_public_links', false); |
diff --git a/tests/Updater/UpdaterTest.php b/tests/Updater/UpdaterTest.php index b522d616..11b6444a 100644 --- a/tests/Updater/UpdaterTest.php +++ b/tests/Updater/UpdaterTest.php | |||
@@ -615,4 +615,49 @@ $GLOBALS[\'privateLinkByDefault\'] = true;'; | |||
615 | $this->assertTrue($updater->updateMethodPiwikUrl()); | 615 | $this->assertTrue($updater->updateMethodPiwikUrl()); |
616 | $this->assertEquals($url, $this->conf->get('plugins.PIWIK_URL')); | 616 | $this->assertEquals($url, $this->conf->get('plugins.PIWIK_URL')); |
617 | } | 617 | } |
618 | |||
619 | /** | ||
620 | * Test updateMethodAtomDefault with show_atom set to false | ||
621 | * => update to true. | ||
622 | */ | ||
623 | public function testUpdateMethodAtomDefault() | ||
624 | { | ||
625 | $sandboxConf = 'sandbox/config'; | ||
626 | copy(self::$configFile . '.json.php', $sandboxConf . '.json.php'); | ||
627 | $this->conf = new ConfigManager($sandboxConf); | ||
628 | $this->conf->set('feed.show_atom', false); | ||
629 | $updater = new Updater([], [], $this->conf, true); | ||
630 | $this->assertTrue($updater->updateMethodAtomDefault()); | ||
631 | $this->assertTrue($this->conf->get('feed.show_atom')); | ||
632 | // reload from file | ||
633 | $this->conf = new ConfigManager($sandboxConf); | ||
634 | $this->assertTrue($this->conf->get('feed.show_atom')); | ||
635 | } | ||
636 | /** | ||
637 | * Test updateMethodAtomDefault with show_atom not set. | ||
638 | * => nothing to do | ||
639 | */ | ||
640 | public function testUpdateMethodAtomDefaultNoExist() | ||
641 | { | ||
642 | $sandboxConf = 'sandbox/config'; | ||
643 | copy(self::$configFile . '.json.php', $sandboxConf . '.json.php'); | ||
644 | $this->conf = new ConfigManager($sandboxConf); | ||
645 | $updater = new Updater([], [], $this->conf, true); | ||
646 | $this->assertTrue($updater->updateMethodAtomDefault()); | ||
647 | $this->assertTrue($this->conf->get('feed.show_atom')); | ||
648 | } | ||
649 | /** | ||
650 | * Test updateMethodAtomDefault with show_atom set to true. | ||
651 | * => nothing to do | ||
652 | */ | ||
653 | public function testUpdateMethodAtomDefaultAlreadyTrue() | ||
654 | { | ||
655 | $sandboxConf = 'sandbox/config'; | ||
656 | copy(self::$configFile . '.json.php', $sandboxConf . '.json.php'); | ||
657 | $this->conf = new ConfigManager($sandboxConf); | ||
658 | $this->conf->set('feed.show_atom', true); | ||
659 | $updater = new Updater([], [], $this->conf, true); | ||
660 | $this->assertTrue($updater->updateMethodAtomDefault()); | ||
661 | $this->assertTrue($this->conf->get('feed.show_atom')); | ||
662 | } | ||
618 | } | 663 | } |
diff --git a/tpl/default/page.header.html b/tpl/default/page.header.html index 03ca6843..9388ef79 100644 --- a/tpl/default/page.header.html +++ b/tpl/default/page.header.html | |||
@@ -48,7 +48,7 @@ | |||
48 | </li> | 48 | </li> |
49 | {/loop} | 49 | {/loop} |
50 | <li class="pure-menu-item pure-u-lg-0"> | 50 | <li class="pure-menu-item pure-u-lg-0"> |
51 | <a href="?do=atom{$searchcrits}" class="pure-menu-link">{'RSS Feed'|t}</a> | 51 | <a href="?do={$feed_type}{$searchcrits}" class="pure-menu-link">{'RSS Feed'|t}</a> |
52 | </li> | 52 | </li> |
53 | {if="isLoggedIn()"} | 53 | {if="isLoggedIn()"} |
54 | <li class="pure-menu-item pure-u-lg-0"> | 54 | <li class="pure-menu-item pure-u-lg-0"> |
@@ -70,7 +70,7 @@ | |||
70 | </a> | 70 | </a> |
71 | </li> | 71 | </li> |
72 | <li class="pure-menu-item"> | 72 | <li class="pure-menu-item"> |
73 | <a href="?do=atom{$searchcrits}" class="pure-menu-link" title="{'RSS Feed'|t}"> | 73 | <a href="?do={$feed_type}{$searchcrits}" class="pure-menu-link" title="{'RSS Feed'|t}"> |
74 | <i class="fa fa-rss"></i> | 74 | <i class="fa fa-rss"></i> |
75 | </a> | 75 | </a> |
76 | </li> | 76 | </li> |