$compare_prod = version_compare(POCHE, $prod);
$themes = $this->getInstalledThemes();
$languages = $this->getInstalledLanguages();
+ $token = $this->user->getConfigValue('token');
$http_auth = (isset($_SERVER['PHP_AUTH_USER']))?true:false;
$tpl_vars = array(
'themes' => $themes,
'prod' => $prod,
'compare_dev' => $compare_dev,
'compare_prod' => $compare_prod,
+ 'token' => $token,
+ 'user_id' => $this->user->getId(),
'http_auth' => $http_auth,
);
Tools::logm('config view');
}
return $version;
}
+
+ public function generateToken()
+ {
+ if (ini_get('open_basedir') === '') {
+ $token = substr(base64_encode(file_get_contents('/dev/urandom', false, null, 0, 20)), 0, 15);
+ }
+ else {
+ $token = substr(base64_encode(uniqid(mt_rand(), true)), 0, 20);
+ }
+
+ $this->store->updateUserConfig($this->user->getId(), 'token', $token);
+ $currentConfig = $_SESSION['poche_user']->config;
+ $currentConfig['token'] = $token;
+ $_SESSION['poche_user']->setConfig($currentConfig);
+ }
+
+ public function generateFeeds($token, $user_id, $type = 'home')
+ {
+ $allowed_types = array('home', 'fav');
+ $config = $this->store->getConfigUser($user_id);
+
+ if (!in_array($type, $allowed_types) ||
+ $token != $config['token']) {
+ die(_('Uh, there is a problem while generating feeds.'));
+ }
+ // Check the token
+
+ $feed = new FeedWriter(ATOM);
+ $feed->setTitle('poche - ' . $type . ' feed');
+ $feed->setLink(Tools::getPocheUrl());
+ $feed->setChannelElement('updated', date(DATE_ATOM , time()));
+ $feed->setChannelElement('author', 'poche');
+
+ $entries = $this->store->getEntriesByView($type, $user_id);
+ if (count($entries) > 0) {
+ foreach ($entries as $entry) {
+ $newItem = $feed->createNewItem();
+ $newItem->setTitle(htmlentities($entry['title']));
+ $newItem->setLink(Tools::getPocheUrl() . '?view=view&id=' . $entry['id']);
+ $newItem->setDate(time());
+ $newItem->setDescription($entry['content']);
+ $feed->addItem($newItem);
+ }
+ }
+
+ $feed->genarateFeed();
+ exit;
+ }
}
<li>{% trans "latest stable version" %} : {{ prod }}. {% if compare_prod == -1 %}<strong><a href="http://inthepoche.com/">{% trans "a more recent stable version is available." %}</a></strong>{% else %}{% trans "you are up to date." %}{% endif %}</li>
{% if constant('DEBUG_POCHE') == 1 %}<li>{% trans "latest dev version" %} : {{ dev }}. {% if compare_dev == -1 %}<strong><a href="http://inthepoche.com/">{% trans "a more recent development version is available." %}</a></strong>{% else %}{% trans "you are up to date." %}{% endif %}</li>{% endif %}
</ul>
+
+ <h2>{% trans "Feeds" %}</h2>
+ {% if token == '' %}
+ <p>{% trans "The token is empty, you have to generate it to use feeds. Click <a href='?feed&action=generate'>here to generate it</a>." %}</p>
+ {% else %}
+ <ul>
+ <li><a href="?feed&type=home&user_id={{ user_id }}&token={{ token }}" target="_blank">{% trans "unread feed" %}</a></li>
+ <li><a href="?feed&type=fav&user_id={{ user_id }}&token={{ token }}" target="_blank">{% trans "favorites feed" %}</a></li>
+ </ul>
+ {% endif %}
<h2>{% trans "Change your theme" %}</h2>
<form method="post" action="?updatetheme" name="changethemeform">