]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Revert "Clean markup in templates"
authorNicolas Frandeboeuf <nicofrand@gmail.com>
Fri, 23 Aug 2013 20:23:55 +0000 (22:23 +0200)
committerNicolas Frandeboeuf <nicofrand@gmail.com>
Fri, 23 Aug 2013 20:23:55 +0000 (22:23 +0200)
This reverts commit 8413a63f7d9df2695653ab2ef1d77927da6ddc55.

inc/poche/Poche.class.php
install/mysql.sql [new file with mode: 0644]
install/poche.sqlite [new file with mode: 0755]
install/postgres.sql [new file with mode: 0644]
install/update.php [new file with mode: 0644]
install/update_sqlite_from_0_to_1.php [new file with mode: 0644]
tpl/config.twig
tpl/home.twig
tpl/layout.twig
tpl/view.twig

index cc2d8de350970667b6e4ffe26a579699020c9155..e0dc0d201daa27532d7aee8c82cfdf00812874a8 100644 (file)
@@ -35,7 +35,7 @@ class Poche
 
     /**
      * all checks before installation.
-     * @return boolean
+     * @return boolean 
      */
     private function checkBeforeInstall()
     {
@@ -47,7 +47,7 @@ class Poche
             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) {
@@ -59,7 +59,7 @@ class Poche
             $msg = 'You don\'t have write access on sqlite file.';
             $allIsGood = FALSE;
         }
-
+        
         if (!$allIsGood) {
             echo $this->tpl->render('error.twig', array(
                 'msg' => $msg
@@ -90,7 +90,7 @@ class Poche
         $this->tpl->addFilter($filter);
     }
 
-    private function init()
+    private function init() 
     {
         Tools::initPhp();
         Session::init();
@@ -108,21 +108,21 @@ class Poche
         $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'])))
@@ -280,8 +280,8 @@ class Poche
     }
 
     /**
-     * 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
@@ -350,7 +350,7 @@ class Poche
     /**
      * log out the poche user. It cleans the session.
      * @todo add the return value
-     * @return boolean
+     * @return boolean 
      */
     public function logout()
     {
@@ -403,7 +403,7 @@ class Poche
     /**
      * import from Pocket. poche needs a ./ril_export.html file
      * @todo add the return value
-     * @return boolean
+     * @return boolean 
      */
     private function importFromPocket()
     {
@@ -430,7 +430,7 @@ class Poche
                     $this->action('toggle_archive', $url, $last_id, TRUE);
                 }
             }
-
+            
             # the second <ul> is for read links
             $read = 1;
         }
@@ -442,7 +442,7 @@ class Poche
     /**
      * import from Readability. poche needs a ./readability file
      * @todo add the return value
-     * @return boolean
+     * @return boolean 
      */
     private function importFromReadability()
     {
@@ -495,7 +495,7 @@ class Poche
      * 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)
     {
diff --git a/install/mysql.sql b/install/mysql.sql
new file mode 100644 (file)
index 0000000..cb232a8
--- /dev/null
@@ -0,0 +1,34 @@
+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
diff --git a/install/poche.sqlite b/install/poche.sqlite
new file mode 100755 (executable)
index 0000000..c268223
Binary files /dev/null and b/install/poche.sqlite differ
diff --git a/install/postgres.sql b/install/postgres.sql
new file mode 100644 (file)
index 0000000..9e0e827
--- /dev/null
@@ -0,0 +1,30 @@
+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
diff --git a/install/update.php b/install/update.php
new file mode 100644 (file)
index 0000000..8c93af6
--- /dev/null
@@ -0,0 +1,79 @@
+<?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
diff --git a/install/update_sqlite_from_0_to_1.php b/install/update_sqlite_from_0_to_1.php
new file mode 100644 (file)
index 0000000..299abf4
--- /dev/null
@@ -0,0 +1,72 @@
+<?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
index 9f2fe5a4e240dea2e60c51a4a6d8c2d75fc9ed45..5324cda7456e0417b5587294e3082d49c0cc9779 100644 (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&amp;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&amp;from=pocket">{% trans "import from Pocket" %}</a> (you must have a "ril_export.html" file on your server)</li>
-                               <li><a href="./?import&amp;from=readability">{% trans "import from Readability" %}</a>  (you must have a "readability" file on your server)</li>
-                               <li><a href="./?import&amp;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>
index a2fa9a93eb0529c5061a4852f4ed266f7e3e4935..21910ae8c297335ed0eb4bdf6c691cad9a677726 100644 (file)
@@ -5,19 +5,19 @@
 {% endblock %}
 {% block precontent %}
             <ul id="sort">
-                <li><a href="./?sort=ia&amp;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&amp;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&amp;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&amp;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&amp;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&amp;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&amp;id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li>
-                    <li><a title="{% trans "delete" %}" class="tool delete" href="./?action=delete&amp;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>
index 7084a21548764eab5a65b0a1f34bce8fa67a5bd0..b86983da27d9a127f814528da825c15c779f97b2 100644 (file)
@@ -1,8 +1,8 @@
 <!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">
index 4dee38c88602361d0e0e34150bf7fdc3b523fcdb..82d1fd2a0a32b4e428197bcfae84e6c44704066e 100644 (file)
@@ -5,32 +5,32 @@
             <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&amp;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&amp;id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li>
-                    <li><a title="{% trans "delete" %}" class="tool delete" href="./?action=delete&amp;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 }}&amp;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&amp;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&amp;id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li>
-                    <li><a title="{% trans "delete" %}" class="tool delete" href="./?action=delete&amp;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 }}&amp;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&amp;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