diff options
-rw-r--r-- | inc/poche/Poche.class.php | 89 | ||||
-rwxr-xr-x | inc/poche/config.inc.php.new | 2 | ||||
-rw-r--r-- | index.php | 8 | ||||
-rw-r--r-- | install/update_sqlite_from_0_to_1.php | 72 | ||||
-rw-r--r-- | install/update_to_1beta3.php | 79 | ||||
-rw-r--r-- | themes/default/_footer.twig | 2 | ||||
-rw-r--r-- | themes/default/_head.twig | 2 | ||||
-rw-r--r-- | themes/default/config.twig | 4 | ||||
-rw-r--r-- | themes/default/css/style.css | 2 | ||||
-rw-r--r-- | themes/default/error.twig | 9 |
10 files changed, 65 insertions, 204 deletions
diff --git a/inc/poche/Poche.class.php b/inc/poche/Poche.class.php index 1ba8e7c1..245f6a13 100644 --- a/inc/poche/Poche.class.php +++ b/inc/poche/Poche.class.php | |||
@@ -20,7 +20,7 @@ class Poche | |||
20 | public $pagination; | 20 | public $pagination; |
21 | 21 | ||
22 | private $currentTheme = ''; | 22 | private $currentTheme = ''; |
23 | private $notInstalledMessage = ''; | 23 | private $notInstalledMessage = array(); |
24 | 24 | ||
25 | # @todo make this dynamic (actually install themes and save them in the database including author information et cetera) | 25 | # @todo make this dynamic (actually install themes and save them in the database including author information et cetera) |
26 | private $installedThemes = array( | 26 | private $installedThemes = array( |
@@ -33,28 +33,21 @@ class Poche | |||
33 | 33 | ||
34 | public function __construct() | 34 | public function __construct() |
35 | { | 35 | { |
36 | if (! $this->configFileIsAvailable()) { | 36 | if ($this->configFileIsAvailable()) { |
37 | return; | 37 | $this->init(); |
38 | } | 38 | } |
39 | 39 | ||
40 | $this->init(); | 40 | if ($this->themeIsInstalled()) { |
41 | 41 | $this->initTpl(); | |
42 | if (! $this->themeIsInstalled()) { | ||
43 | return; | ||
44 | } | 42 | } |
45 | 43 | ||
46 | $this->initTpl(); | 44 | if ($this->systemIsInstalled()) { |
47 | 45 | $this->store = new Database(); | |
48 | if (! $this->systemIsInstalled()) { | 46 | $this->messages = new Messages(); |
49 | return; | 47 | # installation |
50 | } | 48 | if (! $this->store->isInstalled()) { |
51 | 49 | $this->install(); | |
52 | $this->store = new Database(); | 50 | } |
53 | $this->messages = new Messages(); | ||
54 | |||
55 | # installation | ||
56 | if (! $this->store->isInstalled()) { | ||
57 | $this->install(); | ||
58 | } | 51 | } |
59 | } | 52 | } |
60 | 53 | ||
@@ -94,7 +87,7 @@ class Poche | |||
94 | 87 | ||
95 | public function configFileIsAvailable() { | 88 | public function configFileIsAvailable() { |
96 | if (! self::$configFileAvailable) { | 89 | if (! self::$configFileAvailable) { |
97 | $this->notInstalledMessage = 'You have to rename <strong>inc/poche/config.inc.php.new</strong> to <strong>inc/poche/config.inc.php</strong>.'; | 90 | $this->notInstalledMessage[] = 'You have to rename inc/poche/config.inc.php.new to inc/poche/config.inc.php.'; |
98 | 91 | ||
99 | return false; | 92 | return false; |
100 | } | 93 | } |
@@ -103,39 +96,44 @@ class Poche | |||
103 | } | 96 | } |
104 | 97 | ||
105 | public function themeIsInstalled() { | 98 | public function themeIsInstalled() { |
99 | $passTheme = TRUE; | ||
106 | # Twig is an absolute requirement for Poche to function. Abort immediately if the Composer installer hasn't been run yet | 100 | # Twig is an absolute requirement for Poche to function. Abort immediately if the Composer installer hasn't been run yet |
107 | if (! self::$canRenderTemplates) { | 101 | if (! self::$canRenderTemplates) { |
108 | $this->notInstalledMessage = 'Twig does not seem to be installed. Please initialize the Composer installation to automatically fetch dependencies. Have a look at <a href="http://doc.inthepoche.com/doku.php?id=users:begin:install">the documentation.</a>'; | 102 | $this->notInstalledMessage[] = 'Twig does not seem to be installed. Please initialize the Composer installation to automatically fetch dependencies. Have a look at <a href="http://doc.inthepoche.com/doku.php?id=users:begin:install">the documentation.</a>'; |
109 | 103 | $passTheme = FALSE; | |
110 | return false; | ||
111 | } | 104 | } |
112 | 105 | ||
113 | if (! is_writable(CACHE)) { | 106 | if (! is_writable(CACHE)) { |
114 | $this->notInstalledMessage = '<h1>error</h1><p>You don\'t have write access on cache directory.</p>'; | 107 | $this->notInstalledMessage[] = 'You don\'t have write access on cache directory.'; |
115 | 108 | ||
116 | self::$canRenderTemplates = false; | 109 | self::$canRenderTemplates = false; |
117 | 110 | ||
118 | return false; | 111 | $passTheme = FALSE; |
119 | } | 112 | } |
120 | 113 | ||
121 | # Check if the selected theme and its requirements are present | 114 | # Check if the selected theme and its requirements are present |
122 | if (! is_dir(THEME . '/' . $this->getTheme())) { | 115 | if ($this->getTheme() != '' && ! is_dir(THEME . '/' . $this->getTheme())) { |
123 | $this->notInstalledMessage = 'The currently selected theme (' . $this->getTheme() . ') does not seem to be properly installed (Missing directory: ' . THEME . '/' . $this->getTheme() . ')'; | 116 | $this->notInstalledMessage[] = 'The currently selected theme (' . $this->getTheme() . ') does not seem to be properly installed (Missing directory: ' . THEME . '/' . $this->getTheme() . ')'; |
124 | 117 | ||
125 | self::$canRenderTemplates = false; | 118 | self::$canRenderTemplates = false; |
126 | 119 | ||
127 | return false; | 120 | $passTheme = FALSE; |
128 | } | 121 | } |
129 | 122 | ||
130 | foreach ($this->installedThemes[$this->getTheme()]['requires'] as $requiredTheme) { | 123 | foreach ($this->installedThemes[$this->getTheme()]['requires'] as $requiredTheme) { |
131 | if (! is_dir(THEME . '/' . $requiredTheme)) { | 124 | if (! is_dir(THEME . '/' . $requiredTheme)) { |
132 | $this->notInstalledMessage = 'The required "' . $requiredTheme . '" theme is missing for the current theme (' . $this->getTheme() . ')'; | 125 | $this->notInstalledMessage[] = 'The required "' . $requiredTheme . '" theme is missing for the current theme (' . $this->getTheme() . ')'; |
133 | 126 | ||
134 | self::$canRenderTemplates = false; | 127 | self::$canRenderTemplates = false; |
135 | 128 | ||
136 | return false; | 129 | $passTheme = FALSE; |
137 | } | 130 | } |
138 | } | 131 | } |
132 | |||
133 | if (!$passTheme) { | ||
134 | return FALSE; | ||
135 | } | ||
136 | |||
139 | 137 | ||
140 | return true; | 138 | return true; |
141 | } | 139 | } |
@@ -147,25 +145,30 @@ class Poche | |||
147 | */ | 145 | */ |
148 | public function systemIsInstalled() | 146 | public function systemIsInstalled() |
149 | { | 147 | { |
150 | $msg = ''; | 148 | $msg = TRUE; |
151 | 149 | ||
152 | $configSalt = defined('SALT') ? constant('SALT') : ''; | 150 | $configSalt = defined('SALT') ? constant('SALT') : ''; |
153 | 151 | ||
154 | if (empty($configSalt)) { | 152 | if (empty($configSalt)) { |
155 | $msg = '<h1>error</h1><p>You have not yet filled in the SALT value in the config.inc.php file.</p>'; | 153 | $this->notInstalledMessage[] = 'You have not yet filled in the SALT value in the config.inc.php file.'; |
156 | } else if (STORAGE == 'sqlite' && ! file_exists(STORAGE_SQLITE)) { | 154 | $msg = FALSE; |
155 | } | ||
156 | if (STORAGE == 'sqlite' && ! file_exists(STORAGE_SQLITE)) { | ||
157 | Tools::logm('sqlite file doesn\'t exist'); | 157 | Tools::logm('sqlite file doesn\'t exist'); |
158 | $msg = '<h1>error</h1><p>sqlite file doesn\'t exist, you can find it in install folder. Copy it in /db folder.</p>'; | 158 | $this->notInstalledMessage[] = 'sqlite file doesn\'t exist, you can find it in install folder. Copy it in /db folder.'; |
159 | } else if (is_dir(ROOT . '/install') && ! DEBUG_POCHE) { | 159 | $msg = FALSE; |
160 | $msg = '<h1>install folder</h1><p>you have to delete the /install folder before using poche.</p>'; | 160 | } |
161 | } else if (STORAGE == 'sqlite' && ! is_writable(STORAGE_SQLITE)) { | 161 | if (is_dir(ROOT . '/install') && ! DEBUG_POCHE) { |
162 | $this->notInstalledMessage[] = 'you have to delete the /install folder before using poche.'; | ||
163 | $msg = FALSE; | ||
164 | } | ||
165 | if (STORAGE == 'sqlite' && ! is_writable(STORAGE_SQLITE)) { | ||
162 | Tools::logm('you don\'t have write access on sqlite file'); | 166 | Tools::logm('you don\'t have write access on sqlite file'); |
163 | $msg = '<h1>error</h1><p>You don\'t have write access on sqlite file.</p>'; | 167 | $this->notInstalledMessage[] = 'You don\'t have write access on sqlite file.'; |
168 | $msg = FALSE; | ||
164 | } | 169 | } |
165 | 170 | ||
166 | if (! empty($msg)) { | 171 | if (! $msg) { |
167 | $this->notInstalledMessage = $msg; | ||
168 | |||
169 | return false; | 172 | return false; |
170 | } | 173 | } |
171 | 174 | ||
@@ -363,8 +366,8 @@ class Poche | |||
363 | case 'config': | 366 | case 'config': |
364 | $dev = $this->getPocheVersion('dev'); | 367 | $dev = $this->getPocheVersion('dev'); |
365 | $prod = $this->getPocheVersion('prod'); | 368 | $prod = $this->getPocheVersion('prod'); |
366 | $compare_dev = version_compare(POCHE_VERSION, $dev); | 369 | $compare_dev = version_compare(POCHE, $dev); |
367 | $compare_prod = version_compare(POCHE_VERSION, $prod); | 370 | $compare_prod = version_compare(POCHE, $prod); |
368 | $themes = $this->getInstalledThemes(); | 371 | $themes = $this->getInstalledThemes(); |
369 | $tpl_vars = array( | 372 | $tpl_vars = array( |
370 | 'themes' => $themes, | 373 | 'themes' => $themes, |
diff --git a/inc/poche/config.inc.php.new b/inc/poche/config.inc.php.new index 902509e3..c60d4f80 100755 --- a/inc/poche/config.inc.php.new +++ b/inc/poche/config.inc.php.new | |||
@@ -52,8 +52,6 @@ define ('CACHE', ROOT . '/cache'); | |||
52 | 52 | ||
53 | define ('PAGINATION', '10'); | 53 | define ('PAGINATION', '10'); |
54 | 54 | ||
55 | define ('POCHE_VERSION', '1.0.0'); | ||
56 | |||
57 | define ('POCKET_FILE', '/ril_export.html'); | 55 | define ('POCKET_FILE', '/ril_export.html'); |
58 | define ('READABILITY_FILE', '/readability'); | 56 | define ('READABILITY_FILE', '/readability'); |
59 | define ('INSTAPAPER_FILE', '/instapaper-export.html'); | 57 | define ('INSTAPAPER_FILE', '/instapaper-export.html'); |
@@ -8,6 +8,7 @@ | |||
8 | * @license http://www.wtfpl.net/ see COPYING file | 8 | * @license http://www.wtfpl.net/ see COPYING file |
9 | */ | 9 | */ |
10 | 10 | ||
11 | define ('POCHE', '1.0.0'); | ||
11 | require_once 'inc/poche/global.inc.php'; | 12 | require_once 'inc/poche/global.inc.php'; |
12 | 13 | ||
13 | # Start Poche | 14 | # Start Poche |
@@ -35,7 +36,12 @@ $tpl_vars = array( | |||
35 | if (! empty($notInstalledMessage)) { | 36 | if (! empty($notInstalledMessage)) { |
36 | if (! Poche::$canRenderTemplates || ! Poche::$configFileAvailable) { | 37 | if (! Poche::$canRenderTemplates || ! Poche::$configFileAvailable) { |
37 | # We cannot use Twig to display the error message | 38 | # We cannot use Twig to display the error message |
38 | die($notInstalledMessage); | 39 | echo '<h1>Errors</h1><ol>'; |
40 | foreach ($notInstalledMessage as $message) { | ||
41 | echo '<li>' . $message . '</li>'; | ||
42 | } | ||
43 | echo '</ol>'; | ||
44 | die(); | ||
39 | } else { | 45 | } else { |
40 | # Twig is installed, put the error message in the template | 46 | # Twig is installed, put the error message in the template |
41 | $tpl_file = Tools::getTplFile('error'); | 47 | $tpl_file = Tools::getTplFile('error'); |
diff --git a/install/update_sqlite_from_0_to_1.php b/install/update_sqlite_from_0_to_1.php deleted file mode 100644 index 299abf48..00000000 --- a/install/update_sqlite_from_0_to_1.php +++ /dev/null | |||
@@ -1,72 +0,0 @@ | |||
1 | <?php | ||
2 | # import script to upgrade from poche 0.3 | ||
3 | $db_path = 'sqlite:../db/poche.sqlite'; | ||
4 | $handle = new PDO($db_path); | ||
5 | $handle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); | ||
6 | |||
7 | # Requêtes à exécuter pour mettre à jour poche.sqlite en 1.x | ||
8 | |||
9 | # ajout d'un champ user_id sur la table entries | ||
10 | $sql = 'ALTER TABLE entries RENAME TO tempEntries;'; | ||
11 | $query = $handle->prepare($sql); | ||
12 | $query->execute(); | ||
13 | |||
14 | $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);'; | ||
15 | $query = $handle->prepare($sql); | ||
16 | $query->execute(); | ||
17 | |||
18 | $sql = 'INSERT INTO entries (id, title, url, is_read, is_fav, content) SELECT id, title, url, is_read, is_fav, content FROM tempEntries;'; | ||
19 | $query = $handle->prepare($sql); | ||
20 | $query->execute(); | ||
21 | |||
22 | # Update tout pour mettre user_id = 1 | ||
23 | $sql = 'UPDATE entries SET user_id = 1;'; | ||
24 | $query = $handle->prepare($sql); | ||
25 | $query->execute(); | ||
26 | |||
27 | # Changement des flags pour les lus / favoris | ||
28 | $sql = 'UPDATE entries SET is_read = 1 WHERE is_read = -1;'; | ||
29 | $query = $handle->prepare($sql); | ||
30 | $query->execute(); | ||
31 | |||
32 | $sql = 'UPDATE entries SET is_fav = 1 WHERE is_fav = -1;'; | ||
33 | $query = $handle->prepare($sql); | ||
34 | $query->execute(); | ||
35 | |||
36 | # Création de la table users | ||
37 | $sql = 'CREATE TABLE users (id INTEGER PRIMARY KEY, username TEXT, password TEXT, name TEXT, email TEXT);'; | ||
38 | $query = $handle->prepare($sql); | ||
39 | $query->execute(); | ||
40 | |||
41 | $sql = 'INSERT INTO users (username) SELECT value FROM config WHERE name = "login";'; | ||
42 | $query = $handle->prepare($sql); | ||
43 | $query->execute(); | ||
44 | |||
45 | $sql = "UPDATE users SET password = (SELECT value FROM config WHERE name = 'password')"; | ||
46 | $query = $handle->prepare($sql); | ||
47 | $query->execute(); | ||
48 | |||
49 | # Création de la table users_config | ||
50 | $sql = 'CREATE TABLE users_config (id INTEGER PRIMARY KEY, user_id NUMERIC, name TEXT, value TEXT);'; | ||
51 | $query = $handle->prepare($sql); | ||
52 | $query->execute(); | ||
53 | |||
54 | $sql = 'INSERT INTO users_config (user_id, name, value) VALUES (1, "pager", "10");'; | ||
55 | $query = $handle->prepare($sql); | ||
56 | $query->execute(); | ||
57 | |||
58 | $sql = 'INSERT INTO users_config (user_id, name, value) VALUES (1, "language", "en_EN.UTF8");'; | ||
59 | $query = $handle->prepare($sql); | ||
60 | $query->execute(); | ||
61 | |||
62 | # Suppression de la table temporaire | ||
63 | $sql = 'DROP TABLE tempEntries;'; | ||
64 | $query = $handle->prepare($sql); | ||
65 | $query->execute(); | ||
66 | |||
67 | # Vidage de la table de config | ||
68 | $sql = 'DELETE FROM config;'; | ||
69 | $query = $handle->prepare($sql); | ||
70 | $query->execute(); | ||
71 | |||
72 | echo 'welcome to poche 1.0 !'; \ No newline at end of file | ||
diff --git a/install/update_to_1beta3.php b/install/update_to_1beta3.php deleted file mode 100644 index e0da1590..00000000 --- a/install/update_to_1beta3.php +++ /dev/null | |||
@@ -1,79 +0,0 @@ | |||
1 | <?php | ||
2 | require_once dirname(__FILE__).'/../inc/poche/Tools.class.php'; | ||
3 | include dirname(__FILE__).'/../inc/poche/define.inc.php'; | ||
4 | require_once __DIR__ . '/../inc/poche/Database.class.php'; | ||
5 | $store = new Database(); | ||
6 | $old_salt = '464v54gLLw928uz4zUBqkRJeiPY68zCX'; | ||
7 | ?> | ||
8 | <!DOCTYPE html> | ||
9 | <!--[if lte IE 6]> <html class="no-js ie6 ie67 ie678" lang="en"> <![endif]--> | ||
10 | <!--[if lte IE 7]> <html class="no-js ie7 ie67 ie678" lang="en"> <![endif]--> | ||
11 | <!--[if IE 8]> <html class="no-js ie8 ie678" lang="en"> <![endif]--> | ||
12 | <!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]--> | ||
13 | <html lang="en"> | ||
14 | <head> | ||
15 | <meta charset="utf-8"> | ||
16 | <title>updating poche</title> | ||
17 | </head> | ||
18 | <body> | ||
19 | <h1>update poche to 1.0-beta3</h1> | ||
20 | |||
21 | <h2>Changelog</h2> | ||
22 | <p> | ||
23 | <ul> | ||
24 | <li>this awesome updating step</li> | ||
25 | <li>error message when install folder exists</li> | ||
26 | <li>more tests before installation (write access, etc.)</li> | ||
27 | <li>updated README to make installation easier</li> | ||
28 | <li>german language thanks to HLFH</li> | ||
29 | <li>spanish language thanks to Nitche</li> | ||
30 | <li>new file ./inc/poche/myconfig.inc.php created to store language and salt</li> | ||
31 | <li><a href="https://github.com/inthepoche/poche/issues/119">#119</a>: salt is now created when installing poche</li> | ||
32 | <li><a href="https://github.com/inthepoche/poche/issues/130">#130</a>: robots.txt added</li> | ||
33 | <li><a href="https://github.com/inthepoche/poche/issues/136">#136</a>: error during readability import</li> | ||
34 | <li><a href="https://github.com/inthepoche/poche/issues/137">#137</a>: mixed content alert in https</li> | ||
35 | <li><a href="https://github.com/inthepoche/poche/issues/138">#138</a>: change pattern to parse url with #</li> | ||
36 | </ul> | ||
37 | </p> | ||
38 | <p>To update your poche, please fill the following fields.</p> | ||
39 | <p> | ||
40 | <form name="update" method="post"> | ||
41 | <div><label for="login">login:</label> <input type="text" name="login" id="login" /></div> | ||
42 | <div><label for="password">password:</label> <input type="password" name="password" id="password" /></div> | ||
43 | <div><input type="hidden" name="go" value="ok" /><input type="submit" value="update" /></div> | ||
44 | </form> | ||
45 | </p> | ||
46 | <?php | ||
47 | if (isset($_POST['go'])) { | ||
48 | if (!empty($_POST['login']) && !empty($_POST['password'])) { | ||
49 | $user = $store->login($_POST['login'], sha1($_POST['password'] . $_POST['login'] . $old_salt)); | ||
50 | if ($user != array()) { | ||
51 | $new_salt = md5(time() . $_SERVER['SCRIPT_FILENAME'] . rand()); | ||
52 | $myconfig_file = '../inc/poche/myconfig.inc.php'; | ||
53 | if (!is_writable('../inc/poche/')) { | ||
54 | die('You don\'t have write access to create ./inc/poche/myconfig.inc.php.'); | ||
55 | } | ||
56 | |||
57 | if (!file_exists($myconfig_file)) | ||
58 | { | ||
59 | $fp = fopen($myconfig_file, 'w'); | ||
60 | |||
61 | fwrite($fp, '<?php'."\r\n"); | ||
62 | fwrite($fp, "define ('POCHE_VERSION', '1.0-beta3');" . "\r\n"); | ||
63 | fwrite($fp, "define ('SALT', '" . $new_salt . "');" . "\r\n"); | ||
64 | fwrite($fp, "define ('LANG', 'en_EN.utf8');" . "\r\n"); | ||
65 | fclose($fp); | ||
66 | } | ||
67 | # faire une mise à jour de la table users en prenant en compte le nouveau SALT généré | ||
68 | $store->updatePassword($user['id'], sha1($_POST['password'] . $_POST['login'] . $new_salt)); | ||
69 | ?> | ||
70 | <p><span style="color: green;">your poche is up to date!</span></p> | ||
71 | <p><span style="color: red;">don't forget to delete ./install/ folder after the update.</span></p> | ||
72 | <p><a href="../">go back to your poche</a></p> | ||
73 | <?php | ||
74 | } | ||
75 | } | ||
76 | } | ||
77 | ?> | ||
78 | </body> | ||
79 | </html> \ No newline at end of file | ||
diff --git a/themes/default/_footer.twig b/themes/default/_footer.twig index 2b895854..06148a57 100644 --- a/themes/default/_footer.twig +++ b/themes/default/_footer.twig | |||
@@ -1,4 +1,4 @@ | |||
1 | <footer class="w600p center mt3 mb3 smaller txtright"> | 1 | <footer class="w600p center mt3 mb3 smaller txtright"> |
2 | <p>{% trans "powered by" %} <a href="http://inthepoche.com">poche</a></p> | 2 | <p>{% trans "powered by" %} <a href="http://inthepoche.com">poche</a></p> |
3 | {% if constant('DEBUG_POCHE') == 1 %}<p><strong>{% trans "debug mode is on so cache is off." %} {% trans "your poche version:" %}{{constant('POCHE_VERSION')}}. {% trans "storage:" %} {{constant('STORAGE')}}</strong></p>{% endif %} | 3 | {% if constant('DEBUG_POCHE') == 1 %}<p><strong>{% trans "debug mode is on so cache is off." %} {% trans "your poche version:" %}{{constant('POCHE')}}. {% trans "storage:" %} {{constant('STORAGE')}}</strong></p>{% endif %} |
4 | </footer> \ No newline at end of file | 4 | </footer> \ No newline at end of file |
diff --git a/themes/default/_head.twig b/themes/default/_head.twig index 9745459c..247b929e 100644 --- a/themes/default/_head.twig +++ b/themes/default/_head.twig | |||
@@ -8,4 +8,4 @@ | |||
8 | <link rel="stylesheet" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/css/messages.css" media="all"> | 8 | <link rel="stylesheet" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/css/messages.css" media="all"> |
9 | <link rel="stylesheet" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/css/print.css" media="print"> | 9 | <link rel="stylesheet" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/css/print.css" media="print"> |
10 | <link href='//fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'> | 10 | <link href='//fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'> |
11 | <script src="href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/js/jquery-2.0.3.min.js"></script> | 11 | <script src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/js/jquery-2.0.3.min.js"></script> |
diff --git a/themes/default/config.twig b/themes/default/config.twig index 0f1aea80..13bdaafd 100644 --- a/themes/default/config.twig +++ b/themes/default/config.twig | |||
@@ -23,7 +23,7 @@ | |||
23 | 23 | ||
24 | <h2>{% trans "Updating poche" %}</h2> | 24 | <h2>{% trans "Updating poche" %}</h2> |
25 | <ul> | 25 | <ul> |
26 | <li>{% trans "your version" %} : <strong>{{ constant('POCHE_VERSION') }}</strong></li> | 26 | <li>{% trans "your version" %} : <strong>{{ constant('POCHE') }}</strong></li> |
27 | <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> | 27 | <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> |
28 | {% 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 %} | 28 | {% 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 %} |
29 | </ul> | 29 | </ul> |
@@ -77,4 +77,4 @@ | |||
77 | 77 | ||
78 | <h2>{% trans "Export your poche datas" %}</h2> | 78 | <h2>{% trans "Export your poche datas" %}</h2> |
79 | <p><a href="?export" target="_blank">{% trans "Click here" %}</a> {% trans "to export your poche datas." %}</p> | 79 | <p><a href="?export" target="_blank">{% trans "Click here" %}</a> {% trans "to export your poche datas." %}</p> |
80 | {% endblock %} \ No newline at end of file | 80 | {% endblock %} |
diff --git a/themes/default/css/style.css b/themes/default/css/style.css index eb04f0c4..3ef9c823 100644 --- a/themes/default/css/style.css +++ b/themes/default/css/style.css | |||
@@ -188,7 +188,7 @@ a:visited { | |||
188 | bottom: 0; | 188 | bottom: 0; |
189 | left: 0; | 189 | left: 0; |
190 | width: 100%; | 190 | width: 100%; |
191 | height: 50px; | 191 | min-height: 50px; |
192 | padding-top: 17px; | 192 | padding-top: 17px; |
193 | text-align: center; | 193 | text-align: center; |
194 | color: #fff; | 194 | color: #fff; |
diff --git a/themes/default/error.twig b/themes/default/error.twig index c829d12b..99eb1ed6 100644 --- a/themes/default/error.twig +++ b/themes/default/error.twig | |||
@@ -1,6 +1,11 @@ | |||
1 | {% extends "layout.twig" %} | 1 | {% extends "layout.twig" %} |
2 | {% block title %}{% trans "plop" %}{% endblock %} | 2 | {% block title %}{% trans "plop" %}{% endblock %} |
3 | {% block content %} | 3 | {% block content %} |
4 | {{ msg|raw }} | 4 | <h1>Errors</h1> |
5 | <p>Don't forget <a href="http://inthepoche.com/doc">the documentation</a>.</p> | 5 | <ol> |
6 | {% for message in msg %} | ||
7 | <li>{{message}}</li> | ||
8 | {% endfor %} | ||
9 | </ol> | ||
10 | <p>Don't forget <a href="http://inthepoche.com/doc">the documentation</a>.</p> | ||
6 | {% endblock %} \ No newline at end of file | 11 | {% endblock %} \ No newline at end of file |