/**
* all checks before installation.
- * @return boolean
+ * @return boolean
*/
private function checkBeforeInstall()
{
die('You don\'t have write access on cache directory.');
}
else if (file_exists('./install/update.php') && !DEBUG_POCHE) {
- $msg = 'A poche update is needed. Please execute this update <a href="install/update.php">by clicking here</a>. If you have already done the update, please delete /install folder.';
+ $msg = 'A poche update is needed. Please execute this update <a href="install/update.php">by clicking here</a>. If you have already do the update, please delete /install folder.';
$allIsGood = FALSE;
}
else if (file_exists('./install') && !DEBUG_POCHE) {
$msg = 'You don\'t have write access on sqlite file.';
$allIsGood = FALSE;
}
-
+
if (!$allIsGood) {
echo $this->tpl->render('error.twig', array(
'msg' => $msg
$this->tpl->addFilter($filter);
}
- private function init()
+ private function init()
{
Tools::initPhp();
Session::init();
$language = $this->user->getConfigValue('language');
putenv('LC_ALL=' . $language);
setlocale(LC_ALL, $language);
- bindtextdomain($language, LOCALE);
- textdomain($language);
+ bindtextdomain($language, LOCALE);
+ textdomain($language);
# Pagination
$this->pagination = new Paginator($this->user->getConfigValue('pager'), 'p');
}
- private function install()
+ private function install()
{
Tools::logm('poche still not installed');
echo $this->tpl->render('install.twig', array(
'token' => Session::getToken()
));
if (isset($_GET['install'])) {
- if (($_POST['password'] == $_POST['password_repeat'])
+ if (($_POST['password'] == $_POST['password_repeat'])
&& $_POST['password'] != "" && $_POST['login'] != "") {
# let's rock, install poche baby !
if ($this->store->install($_POST['login'], Tools::encodeString($_POST['password'] . $_POST['login'])))
}
/**
- * update the password of the current user.
- * if MODE_DEMO is TRUE, the password can't be updated.
+ * update the password of the current user.
+ * if MODE_DEMO is TRUE, the password can't be updated.
* @todo add the return value
* @todo set the new password in function header like this updatePassword($newPassword)
* @return boolean
/**
* log out the poche user. It cleans the session.
* @todo add the return value
- * @return boolean
+ * @return boolean
*/
public function logout()
{
/**
* import from Pocket. poche needs a ./ril_export.html file
* @todo add the return value
- * @return boolean
+ * @return boolean
*/
private function importFromPocket()
{
$this->action('toggle_archive', $url, $last_id, TRUE);
}
}
-
+
# the second <ul> is for read links
$read = 1;
}
/**
* import from Readability. poche needs a ./readability file
* @todo add the return value
- * @return boolean
+ * @return boolean
*/
private function importFromReadability()
{
* import datas into your poche
* @param string $from name of the service to import : pocket, instapaper or readability
* @todo add the return value
- * @return boolean
+ * @return boolean
*/
public function import($from)
{
--- /dev/null
+CREATE TABLE IF NOT EXISTS `config` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL,
+ `value` varchar(255) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE IF NOT EXISTS `entries` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `title` varchar(255) NOT NULL,
+ `url` varchar(255) NOT NULL,
+ `is_read` tinyint(1) NOT NULL,
+ `is_fav` tinyint(1) NOT NULL,
+ `content` blob NOT NULL,
+ `user_id` int(11) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE IF NOT EXISTS `users` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `username` varchar(255) NOT NULL,
+ `password` varchar(255) NOT NULL,
+ `name` int(255) NOT NULL,
+ `email` varchar(255) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE IF NOT EXISTS `users_config` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `user_id` int(11) NOT NULL,
+ `name` varchar(255) NOT NULL,
+ `value` varchar(255) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
\ No newline at end of file
--- /dev/null
+CREATE TABLE config (
+ id bigserial primary key,
+ name varchar(255) NOT NULL,
+ value varchar(255) NOT NULL
+);
+
+CREATE TABLE entries (
+ id bigserial primary key,
+ title varchar(255) NOT NULL,
+ url varchar(255) NOT NULL,
+ is_read boolean DEFAULT false,
+ is_fav boolean DEFAULT false,
+ content TEXT,
+ user_id integer NOT NULL
+);
+
+CREATE TABLE users (
+ id bigserial primary key,
+ username varchar(255) NOT NULL,
+ password varchar(255) NOT NULL,
+ name varchar(255) NOT NULL,
+ email varchar(255) NOT NULL
+);
+
+CREATE TABLE users_config (
+ id bigserial primary key,
+ user_id integer NOT NULL,
+ name varchar(255) NOT NULL,
+ value varchar(255) NOT NULL
+);
\ No newline at end of file
--- /dev/null
+<?php
+require_once dirname(__FILE__).'/../inc/poche/Tools.class.php';
+include dirname(__FILE__).'/../inc/poche/define.inc.php';
+require_once __DIR__ . '/../inc/poche/Database.class.php';
+$store = new Database();
+$old_salt = '464v54gLLw928uz4zUBqkRJeiPY68zCX';
+?>
+<!DOCTYPE html>
+<!--[if lte IE 6]> <html class="no-js ie6 ie67 ie678" lang="en"> <![endif]-->
+<!--[if lte IE 7]> <html class="no-js ie7 ie67 ie678" lang="en"> <![endif]-->
+<!--[if IE 8]> <html class="no-js ie8 ie678" lang="en"> <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>updating poche</title>
+ </head>
+ <body>
+ <h1>update poche to 1.0-beta3</h1>
+
+ <h2>Changelog</h2>
+ <p>
+ <ul>
+ <li>this awesome updating step</li>
+ <li>error message when install folder exists</li>
+ <li>more tests before installation (write access, etc.)</li>
+ <li>updated README to make installation easier</li>
+ <li>german language thanks to HLFH</li>
+ <li>spanish language thanks to Nitche</li>
+ <li>new file ./inc/poche/myconfig.inc.php created to store language and salt</li>
+ <li><a href="https://github.com/inthepoche/poche/issues/119">#119</a>: salt is now created when installing poche</li>
+ <li><a href="https://github.com/inthepoche/poche/issues/130">#130</a>: robots.txt added</li>
+ <li><a href="https://github.com/inthepoche/poche/issues/136">#136</a>: error during readability import</li>
+ <li><a href="https://github.com/inthepoche/poche/issues/137">#137</a>: mixed content alert in https</li>
+ <li><a href="https://github.com/inthepoche/poche/issues/138">#138</a>: change pattern to parse url with #</li>
+ </ul>
+ </p>
+ <p>To update your poche, please fill the following fields.</p>
+ <p>
+ <form name="update" method="post">
+ <div><label for="login">login:</label> <input type="text" name="login" id="login" /></div>
+ <div><label for="password">password:</label> <input type="password" name="password" id="password" /></div>
+ <div><input type="hidden" name="go" value="ok" /><input type="submit" value="update" /></div>
+ </form>
+ </p>
+<?php
+if (isset($_POST['go'])) {
+ if (!empty($_POST['login']) && !empty($_POST['password'])) {
+ $user = $store->login($_POST['login'], sha1($_POST['password'] . $_POST['login'] . $old_salt));
+ if ($user != array()) {
+ $new_salt = md5(time() . $_SERVER['SCRIPT_FILENAME'] . rand());
+ $myconfig_file = '../inc/poche/myconfig.inc.php';
+ if (!is_writable('../inc/poche/')) {
+ die('You don\'t have write access to create ./inc/poche/myconfig.inc.php.');
+ }
+
+ if (!file_exists($myconfig_file))
+ {
+ $fp = fopen($myconfig_file, 'w');
+
+ fwrite($fp, '<?php'."\r\n");
+ fwrite($fp, "define ('POCHE_VERSION', '1.0-beta3');" . "\r\n");
+ fwrite($fp, "define ('SALT', '" . $new_salt . "');" . "\r\n");
+ fwrite($fp, "define ('LANG', 'en_EN.utf8');" . "\r\n");
+ fclose($fp);
+ }
+ # faire une mise à jour de la table users en prenant en compte le nouveau SALT généré
+ $store->updatePassword($user['id'], sha1($_POST['password'] . $_POST['login'] . $new_salt));
+?>
+ <p><span style="color: green;">your poche is up to date!</span></p>
+ <p><span style="color: red;">don't forget to delete ./install/ folder after the update.</span></p>
+ <p><a href="../">go back to your poche</a></p>
+<?php
+ }
+ }
+}
+?>
+ </body>
+</html>
\ No newline at end of file
--- /dev/null
+<?php
+# import script to upgrade from poche 0.3
+$db_path = 'sqlite:../db/poche.sqlite';
+$handle = new PDO($db_path);
+$handle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+
+# Requêtes à exécuter pour mettre à jour poche.sqlite en 1.x
+
+# ajout d'un champ user_id sur la table entries
+$sql = 'ALTER TABLE entries RENAME TO tempEntries;';
+$query = $handle->prepare($sql);
+$query->execute();
+
+$sql = 'CREATE TABLE entries (id INTEGER PRIMARY KEY, title TEXT, url TEXT, is_read NUMERIC DEFAULT 0, is_fav NUMERIC DEFAULT 0, content BLOB, user_id NUMERIC);';
+$query = $handle->prepare($sql);
+$query->execute();
+
+$sql = 'INSERT INTO entries (id, title, url, is_read, is_fav, content) SELECT id, title, url, is_read, is_fav, content FROM tempEntries;';
+$query = $handle->prepare($sql);
+$query->execute();
+
+# Update tout pour mettre user_id = 1
+$sql = 'UPDATE entries SET user_id = 1;';
+$query = $handle->prepare($sql);
+$query->execute();
+
+# Changement des flags pour les lus / favoris
+$sql = 'UPDATE entries SET is_read = 1 WHERE is_read = -1;';
+$query = $handle->prepare($sql);
+$query->execute();
+
+$sql = 'UPDATE entries SET is_fav = 1 WHERE is_fav = -1;';
+$query = $handle->prepare($sql);
+$query->execute();
+
+# Création de la table users
+$sql = 'CREATE TABLE users (id INTEGER PRIMARY KEY, username TEXT, password TEXT, name TEXT, email TEXT);';
+$query = $handle->prepare($sql);
+$query->execute();
+
+$sql = 'INSERT INTO users (username) SELECT value FROM config WHERE name = "login";';
+$query = $handle->prepare($sql);
+$query->execute();
+
+$sql = "UPDATE users SET password = (SELECT value FROM config WHERE name = 'password')";
+$query = $handle->prepare($sql);
+$query->execute();
+
+# Création de la table users_config
+$sql = 'CREATE TABLE users_config (id INTEGER PRIMARY KEY, user_id NUMERIC, name TEXT, value TEXT);';
+$query = $handle->prepare($sql);
+$query->execute();
+
+$sql = 'INSERT INTO users_config (user_id, name, value) VALUES (1, "pager", "10");';
+$query = $handle->prepare($sql);
+$query->execute();
+
+$sql = 'INSERT INTO users_config (user_id, name, value) VALUES (1, "language", "en_EN.UTF8");';
+$query = $handle->prepare($sql);
+$query->execute();
+
+# Suppression de la table temporaire
+$sql = 'DROP TABLE tempEntries;';
+$query = $handle->prepare($sql);
+$query->execute();
+
+# Vidage de la table de config
+$sql = 'DELETE FROM config;';
+$query = $handle->prepare($sql);
+$query->execute();
+
+echo 'welcome to poche 1.0 !';
\ No newline at end of file
<h2>{% trans "Bookmarklet" %}</h2>
<p>{% trans "Thanks to the bookmarklet, you will be able to easily add a link to your poche." %} {% trans "Have a look to this documentation:" %} <a href="http://inthepoche.com/?pages/Documentation">inthepoche.com</a>.</p>
<p>{% trans "Drag & drop this link to your bookmarks bar and have fun with poche." %}</p>
- <p class="txtcenter"><a ondragend="this.click();" style="cursor: move; border: 1px dashed grey; background: white; padding: 5px;" title="i am a bookmarklet, use me !" href="javascript:if(top['bookmarklet-url@inthepoche.com']){top['bookmarklet-url@inthepoche.com'];}else{(function(){var%20url%20=%20location.href%20||%20url;window.open('{{ poche_url }}?action=add&url='%20+%20btoa(url),'_self');})();void(0);}">{% trans "poche it!" %}</a></p>
+ <p class="txtcenter"><a ondragend="this.click();" style="cursor: move; border: 1px dashed grey; background: white; padding: 5px;" title="i am a bookmarklet, use me !" href="javascript:if(top['bookmarklet-url@inthepoche.com']){top['bookmarklet-url@inthepoche.com'];}else{(function(){var%20url%20=%20location.href%20||%20url;window.open('{{ poche_url }}?action=add&url='%20+%20btoa(url),'_self');})();void(0);}">{% trans "poche it!" %}</a></p>
<h2>{% trans "Updating poche" %}</h2>
- <ul>
+ <p><ul>
<li>{% trans "your version" %} : <strong>{{ constant('POCHE_VERSION') }}</strong></li>
<li>{% trans "latest stable version" %} : {{ prod }}. {% if compare_prod == -1 %}<strong><a href="http://inthepoche.com/?pages/T%C3%A9l%C3%A9charger-poche">{% 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/?pages/T%C3%A9l%C3%A9charger-poche">{% trans "a more recent development version is available." %}</a></strong>{% else %}{% trans "you are up to date." %}{% endif %}</li>{% endif %}
</ul>
+ </p>
<h2>{% trans "Change your password" %}</h2>
<form method="post" action="?config" name="loginform">
<h2>{% trans "Import" %}</h2>
<p>{% trans "Please execute the import script locally, it can take a very long time." %}</p>
<p>{% trans "More infos in the official doc:" %} <a href="http://inthepoche.com/?pages/Documentation">inthepoche.com</a></p>
- <ul>
- <li><a href="./?import&from=pocket">{% trans "import from Pocket" %}</a> (you must have a "ril_export.html" file on your server)</li>
- <li><a href="./?import&from=readability">{% trans "import from Readability" %}</a> (you must have a "readability" file on your server)</li>
- <li><a href="./?import&from=instapaper">{% trans "import from Instapaper" %}</a> (you must have a "instapaper-export.html" file on your server)</li>
- </ul>
+ <p><ul>
+ <li><a href="./?import&from=pocket">{% trans "import from Pocket" %}</a> (you must have a "ril_export.html" file on your server)</li>
+ <li><a href="./?import&from=readability">{% trans "import from Readability" %}</a> (you must have a "readability" file on your server)</li>
+ <li><a href="./?import&from=instapaper">{% trans "import from Instapaper" %}</a> (you must have a "instapaper-export.html" file on your server)</li>
+ </ul></p>
<h2>{% trans "Export your poche datas" %}</h2>
<p><a href="./?export" target="_blank">{% trans "Click here" %}</a> {% trans "to export your poche datas." %}</p>
{% endblock %}
{% block precontent %}
<ul id="sort">
- <li><a href="./?sort=ia&view={{ view }}"><img src="./tpl/img/{{ constant('THEME') }}/top.png" alt="{% trans "by date asc" %}" title="{% trans "by date asc" %}" /></a> {% trans "by date" %} <a href="./?sort=id&view={{ view }}"><img src="./tpl/img/{{ constant('THEME') }}/down.png" alt="{% trans "by date desc" %}" title="{% trans "by date desc" %}" /></a></li>
- <li><a href="./?sort=ta&view={{ view }}"><img src="./tpl/img/{{ constant('THEME') }}/top.png" alt="{% trans "by title asc" %}" title="{% trans "by title asc" %}" /></a> {% trans "by title" %} <a href="./?sort=td&view={{ view }}"><img src="./tpl/img/{{ constant('THEME') }}/down.png" alt="{% trans "by title desc" %}" title="{% trans "by title desc" %}" /></a></li>
+ <li><a href="./?sort=ia&view={{ view }}"><img src="./tpl/img/{{ constant('THEME') }}/top.png" alt="{% trans "by date asc" %}" title="{% trans "by date asc" %}" /></a> {% trans "by date" %} <a href="./?sort=id&view={{ view }}"><img src="./tpl/img/{{ constant('THEME') }}/down.png" alt="{% trans "by date desc" %}" title="{% trans "by date desc" %}" /></a></li>
+ <li><a href="./?sort=ta&view={{ view }}"><img src="./tpl/img/{{ constant('THEME') }}/top.png" alt="{% trans "by title asc" %}" title="{% trans "by title asc" %}" /></a> {% trans "by title" %} <a href="./?sort=td&view={{ view }}"><img src="./tpl/img/{{ constant('THEME') }}/down.png" alt="{% trans "by title desc" %}" title="{% trans "by title desc" %}" /></a></li>
</ul>
{% endblock %}
{% block content %}
{{ page_links | raw }}
{% for entry in entries %}
<div id="entry-{{ entry.id|e }}" class="entrie">
- <h2><a href="index.php?view=view&id={{ entry.id|e }}">{{ entry.title|raw }}</a></h2>
+ <h2><a href="index.php?view=view&id={{ entry.id|e }}">{{ entry.title|raw }}</a></h2>
<ul class="tools">
- <li><a title="{% trans "toggle mark as read" %}" class="tool archive {% if entry.is_read == 0 %}archive-off{% endif %}" href="./?action=toggle_archive&id={{ entry.id|e }}"><span>{% trans "toggle mark as read" %}</span></a></li>
- <li><a title="{% trans "toggle favorite" %}" class="tool fav {% if entry.is_fav == 0 %}fav-off{% endif %}" href="./?action=toggle_fav&id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li>
- <li><a title="{% trans "delete" %}" class="tool delete" href="./?action=delete&id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li>
+ <li><a title="{% trans "toggle mark as read" %}" class="tool archive {% if entry.is_read == 0 %}archive-off{% endif %}" href="./?action=toggle_archive&id={{ entry.id|e }}"><span>{% trans "toggle mark as read" %}</span></a></li>
+ <li><a title="{% trans "toggle favorite" %}" class="tool fav {% if entry.is_fav == 0 %}fav-off{% endif %}" href="./?action=toggle_fav&id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li>
+ <li><a title="{% trans "delete" %}" class="tool delete" href="./?action=delete&id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li>
<li class="reading-time">{{ entry.content| getReadingTime }} min</li>
</ul>
<p>{{ entry.content|striptags|slice(0, 300) }}...</p>
<!DOCTYPE html>
-<!--[if lte IE 6]><html class="no-js ie6 ie67 ie678" lang="en"><![endif]-->
-<!--[if lte IE 7]><html class="no-js ie7 ie67 ie678" lang="en"><![endif]-->
-<!--[if IE 8]><html class="no-js ie8 ie678" lang="en"><![endif]-->
-<!--[if gt IE 8]><html class="no-js" lang="en"><![endif]-->
+<!--[if lte IE 6]> <html class="no-js ie6 ie67 ie678" lang="en"> <![endif]-->
+<!--[if lte IE 7]> <html class="no-js ie7 ie67 ie678" lang="en"> <![endif]-->
+<!--[if IE 8]> <html class="no-js ie8 ie678" lang="en"> <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<html>
<head>
<meta name="viewport" content="initial-scale=1.0">
<div class="tools">
<ul class="tools">
<li><a href="./" title="{% trans "back to home" %}" class="tool back"><span>{% trans "back to home" %}</span></a></li>
- <li><a title="{% trans "toggle mark as read" %}" class="tool archive {% if entry.is_read == 0 %}archive-off{% endif %}" href="./?action=toggle_archive&id={{ entry.id|e }}"><span>{% trans "toggle mark as read" %}</span></a></li>
- <li><a title="{% trans "toggle favorite" %}" class="tool fav {% if entry.is_fav == 0 %}fav-off{% endif %}" href="./?action=toggle_fav&id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li>
- <li><a title="{% trans "delete" %}" class="tool delete" href="./?action=delete&id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li>
- {% if constant('SHARE_TWITTER') == 1 %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@getpoche" target="_blank" class="tool twitter" title="{% trans "tweet" %}"><span>{% trans "tweet" %}</span></a></li>{% endif %}
- {% if constant('SHARE_MAIL') == 1 %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&body={{ entry.url|url_encode }}%20via%20@getpoche" class="tool email" title="{% trans "email" %}"><span>{% trans "email" %}</span></a></li>{% endif %}
+ <li><a title="{% trans "toggle mark as read" %}" class="tool archive {% if entry.is_read == 0 %}archive-off{% endif %}" href="./?action=toggle_archive&id={{ entry.id|e }}"><span>{% trans "toggle mark as read" %}</span></a></li>
+ <li><a title="{% trans "toggle favorite" %}" class="tool fav {% if entry.is_fav == 0 %}fav-off{% endif %}" href="./?action=toggle_fav&id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li>
+ <li><a title="{% trans "delete" %}" class="tool delete" href="./?action=delete&id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li>
+ {% if constant('SHARE_TWITTER') == 1 %}<li><a href="https://twitter.com/home?status={{entry.title}}%20{{ entry.url|e }}%20via%20@getpoche" target="_blank" class="tool twitter" title="{% trans "tweet" %}"><span>{% trans "tweet" %}</span></a></li>{% endif %}
+ {% if constant('SHARE_MAIL') == 1 %}<li><a href="mailto:?subject={{ entry.title|e }}&body={{ entry.url|e }} via @getpoche" class="tool email" title="{% trans "email" %}"><span>{% trans "email" %}</span></a></li>{% endif %}
</ul>
</div>
<header class="mbm">
<h1>{{ entry.title|raw }}</h1>
- <div class="vieworiginal txtright small"><a href="{{ entry.url|url_encode }}" target="_blank" title="{% trans "original" %} : {{ entry.title|e }}">{{ entry.url | e | getDomain }}</a></div>
+ <div class="vieworiginal txtright small"><a href="{{ entry.url|e }}" target="_blank" title="{% trans "original" %} : {{ entry.title|e }}">{{ entry.url | e | getDomain }}</a></div>
</header>
<article>
{{ content | raw }}
- <div class="vieworiginal txtright small"><a href="{{ entry.url|url_encode }}" target="_blank" title="{% trans "original" %} : {{ entry.title|e }}">{{ entry.url | e | getDomain }}</a></div>
+ <div class="vieworiginal txtright small"><a href="{{ entry.url|e }}" target="_blank" title="{% trans "original" %} : {{ entry.title|e }}">{{ entry.url | e | getDomain }}</a></div>
</article>
<div class="tools">
<ul class="tools">
<li><a href="./?" title="{% trans "back to home" %}" class="tool back"><span>{% trans "back to home" %}</span></a></li>
<li><a href="#top" title="{% trans "back to top" %}" class="tool top"><span>{% trans "back to top" %}</span></a></li>
- <li><a title="{% trans "toggle mark as read" %}" class="tool archive {% if entry.is_read == 0 %}archive-off{% endif %}" href="./?action=toggle_archive&id={{ entry.id|e }}"><span>{% trans "toggle mark as read" %}</span></a></li>
- <li><a title="{% trans "toggle favorite" %}" class="tool fav {% if entry.is_fav == 0 %}fav-off{% endif %}" href="./?action=toggle_fav&id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li>
- <li><a title="{% trans "delete" %}" class="tool delete" href="./?action=delete&id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li>
- {% if constant('SHARE_TWITTER') == 1 %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@getpoche" target="_blank" class="tool twitter" title="{% trans "tweet" %}"><span>{% trans "tweet" %}</span></a></li>{% endif %}
- {% if constant('SHARE_MAIL') == 1 %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&body={{ entry.url|url_encode }}%20via%20@getpoche" class="tool email" title="{% trans "email" %}"><span>{% trans "email" %}</span></a></li>{% endif %}
+ <li><a title="{% trans "toggle mark as read" %}" class="tool archive {% if entry.is_read == 0 %}archive-off{% endif %}" href="./?action=toggle_archive&id={{ entry.id|e }}"><span>{% trans "toggle mark as read" %}</span></a></li>
+ <li><a title="{% trans "toggle favorite" %}" class="tool fav {% if entry.is_fav == 0 %}fav-off{% endif %}" href="./?action=toggle_fav&id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li>
+ <li><a title="{% trans "delete" %}" class="tool delete" href="./?action=delete&id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li>
+ {% if constant('SHARE_TWITTER') == 1 %}<li><a href="https://twitter.com/home?status={{entry.title}}%20{{ entry.url|e }}%20via%20@getpoche" target="_blank" class="tool twitter" title="{% trans "tweet" %}"><span>{% trans "tweet" %}</span></a></li>{% endif %}
+ {% if constant('SHARE_MAIL') == 1 %}<li><a href="mailto:?subject={{ entry.title|e }}&body={{ entry.url|e }} via @getpoche" class="tool email" title="{% trans "email" %}"><span>{% trans "email" %}</span></a></li>{% endif %}
</ul>
- <p>{% trans "this article appears wrong?" %} <a href="https://github.com/inthepoche/poche/issues/new">{% trans "create an issue" %}</a> {% trans "or" %} <a href="mailto:support@inthepoche.com?subject=Wrong%20display%20in%20poche&body={{ entry.url|url_encode }}">{% trans "contact us by mail" %}</a></p>
+ <p>{% trans "this article appears wrong?" %} <a href="https://github.com/inthepoche/poche/issues/new">{% trans "create an issue" %}</a> {% trans "or" %} <a href="mailto:support@inthepoche.com?subject=Wrong display in poche&body={{ entry.url|e }}">{% trans "contact us by mail" %}</a></p>
</div>
</div>
{% endblock %}
\ No newline at end of file