aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorArthurHoaro <arthur@hoa.ro>2017-03-11 14:11:06 +0100
committerArthurHoaro <arthur@hoa.ro>2017-03-11 14:13:58 +0100
commit2ea89aba4faa5509ca68c7e9b6b9ab71c1929935 (patch)
tree6131fcd04c045d6949e97a00ee70ad6505ecb646
parent1739d6b314f410ee79d603f601f2845d55c48b4d (diff)
downloadShaarli-2ea89aba4faa5509ca68c7e9b6b9ab71c1929935.tar.gz
Shaarli-2ea89aba4faa5509ca68c7e9b6b9ab71c1929935.tar.zst
Shaarli-2ea89aba4faa5509ca68c7e9b6b9ab71c1929935.zip
Fixes #304: use atom feed as default
RSS feed is still available with the setting set to false
-rw-r--r--application/PageBuilder.php3
-rw-r--r--application/Updater.php16
-rw-r--r--application/config/ConfigManager.php2
-rw-r--r--tests/Updater/UpdaterTest.php45
-rw-r--r--tpl/default/page.header.html4
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 f2097410..c5eeda08 100644
--- a/application/config/ConfigManager.php
+++ b/application/config/ConfigManager.php
@@ -317,7 +317,7 @@ class ConfigManager
317 $this->setEmpty('updates.check_updates_interval', 86400); 317 $this->setEmpty('updates.check_updates_interval', 86400);
318 318
319 $this->setEmpty('feed.rss_permalinks', true); 319 $this->setEmpty('feed.rss_permalinks', true);
320 $this->setEmpty('feed.show_atom', false); 320 $this->setEmpty('feed.show_atom', true);
321 321
322 $this->setEmpty('privacy.default_private_links', false); 322 $this->setEmpty('privacy.default_private_links', false);
323 $this->setEmpty('privacy.hide_public_links', false); 323 $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 b76fc03e..04f33ea2 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>