Fixes #304: use atom feed as default

RSS feed is still available with the  setting set to false
This commit is contained in:
ArthurHoaro 2017-03-11 14:11:06 +01:00
parent 1739d6b314
commit 2ea89aba4f
5 changed files with 66 additions and 4 deletions

View file

@ -75,7 +75,8 @@ class PageBuilder
}
$this->tpl->assign('shaarlititle', $this->conf->get('general.title', 'Shaarli'));
$this->tpl->assign('openshaarli', $this->conf->get('security.open_shaarli', false));
$this->tpl->assign('showatom', $this->conf->get('feed.show_atom', false));
$this->tpl->assign('showatom', $this->conf->get('feed.show_atom', true));
$this->tpl->assign('feed_type', $this->conf->get('feed.show_atom', true) !== false ? 'atom' : 'rss');
$this->tpl->assign('hide_timestamps', $this->conf->get('privacy.hide_timestamps', false));
$this->tpl->assign('token', getToken($this->conf));
// To be removed with a proper theme configuration.

View file

@ -378,6 +378,22 @@ class Updater
$this->conf->set('plugins.PIWIK_URL', 'http://'. $this->conf->get('plugins.PIWIK_URL'));
$this->conf->write($this->isLoggedIn);
return true;
}
/**
* Use ATOM feed as default.
*/
public function updateMethodAtomDefault()
{
if (!$this->conf->exists('feed.show_atom') || $this->conf->get('feed.show_atom') === true) {
return true;
}
$this->conf->set('feed.show_atom', true);
$this->conf->write($this->isLoggedIn);
return true;
}
}

View file

@ -317,7 +317,7 @@ class ConfigManager
$this->setEmpty('updates.check_updates_interval', 86400);
$this->setEmpty('feed.rss_permalinks', true);
$this->setEmpty('feed.show_atom', false);
$this->setEmpty('feed.show_atom', true);
$this->setEmpty('privacy.default_private_links', false);
$this->setEmpty('privacy.hide_public_links', false);

View file

@ -615,4 +615,49 @@ $GLOBALS[\'privateLinkByDefault\'] = true;';
$this->assertTrue($updater->updateMethodPiwikUrl());
$this->assertEquals($url, $this->conf->get('plugins.PIWIK_URL'));
}
/**
* Test updateMethodAtomDefault with show_atom set to false
* => update to true.
*/
public function testUpdateMethodAtomDefault()
{
$sandboxConf = 'sandbox/config';
copy(self::$configFile . '.json.php', $sandboxConf . '.json.php');
$this->conf = new ConfigManager($sandboxConf);
$this->conf->set('feed.show_atom', false);
$updater = new Updater([], [], $this->conf, true);
$this->assertTrue($updater->updateMethodAtomDefault());
$this->assertTrue($this->conf->get('feed.show_atom'));
// reload from file
$this->conf = new ConfigManager($sandboxConf);
$this->assertTrue($this->conf->get('feed.show_atom'));
}
/**
* Test updateMethodAtomDefault with show_atom not set.
* => nothing to do
*/
public function testUpdateMethodAtomDefaultNoExist()
{
$sandboxConf = 'sandbox/config';
copy(self::$configFile . '.json.php', $sandboxConf . '.json.php');
$this->conf = new ConfigManager($sandboxConf);
$updater = new Updater([], [], $this->conf, true);
$this->assertTrue($updater->updateMethodAtomDefault());
$this->assertTrue($this->conf->get('feed.show_atom'));
}
/**
* Test updateMethodAtomDefault with show_atom set to true.
* => nothing to do
*/
public function testUpdateMethodAtomDefaultAlreadyTrue()
{
$sandboxConf = 'sandbox/config';
copy(self::$configFile . '.json.php', $sandboxConf . '.json.php');
$this->conf = new ConfigManager($sandboxConf);
$this->conf->set('feed.show_atom', true);
$updater = new Updater([], [], $this->conf, true);
$this->assertTrue($updater->updateMethodAtomDefault());
$this->assertTrue($this->conf->get('feed.show_atom'));
}
}

View file

@ -48,7 +48,7 @@
</li>
{/loop}
<li class="pure-menu-item pure-u-lg-0">
<a href="?do=atom{$searchcrits}" class="pure-menu-link">{'RSS Feed'|t}</a>
<a href="?do={$feed_type}{$searchcrits}" class="pure-menu-link">{'RSS Feed'|t}</a>
</li>
{if="isLoggedIn()"}
<li class="pure-menu-item pure-u-lg-0">
@ -70,7 +70,7 @@
</a>
</li>
<li class="pure-menu-item">
<a href="?do=atom{$searchcrits}" class="pure-menu-link" title="{'RSS Feed'|t}">
<a href="?do={$feed_type}{$searchcrits}" class="pure-menu-link" title="{'RSS Feed'|t}">
<i class="fa fa-rss"></i>
</a>
</li>