diff options
author | Nicolas LÅ“uillet <nicolas.loeuillet@gmail.com> | 2013-10-03 10:14:54 -0700 |
---|---|---|
committer | Nicolas LÅ“uillet <nicolas.loeuillet@gmail.com> | 2013-10-03 10:14:54 -0700 |
commit | 01e671f4d1fc66696c3ab14c837be0dde8fd02ea (patch) | |
tree | 21c041fef6e17a41e0d3f9e965124e550f272b95 | |
parent | 79026b73a804d1fe3715c3edf5bc2cfb1e56732c (diff) | |
parent | d47d2533accb30a69fbbb964f63793b821300974 (diff) | |
download | wallabag-01e671f4d1fc66696c3ab14c837be0dde8fd02ea.tar.gz wallabag-01e671f4d1fc66696c3ab14c837be0dde8fd02ea.tar.zst wallabag-01e671f4d1fc66696c3ab14c837be0dde8fd02ea.zip |
Merge pull request #256 from inthepoche/dev
merge 1.0.0
138 files changed, 1613 insertions, 156 deletions
@@ -3,6 +3,4 @@ cache/* | |||
3 | vendor | 3 | vendor |
4 | composer.phar | 4 | composer.phar |
5 | db/poche.sqlite | 5 | db/poche.sqlite |
6 | output | ||
7 | phpdoc* | ||
8 | inc/poche/config.inc.php \ No newline at end of file | 6 | inc/poche/config.inc.php \ No newline at end of file |
diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index bbdd8495..00000000 --- a/.gitmodules +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | [submodule "inc/3rdparty/site_config"] | ||
2 | path = inc/3rdparty/site_config | ||
3 | url = git@github.com:inthepoche/site_config.git | ||
4 | [submodule "themes"] | ||
5 | path = themes | ||
6 | url = git://github.com/inthepoche/poche-themes.git | ||
diff --git a/inc/3rdparty/FlattrItem.class.php b/inc/3rdparty/FlattrItem.class.php index c940fcd6..0d3e69d0 100644 --- a/inc/3rdparty/FlattrItem.class.php +++ b/inc/3rdparty/FlattrItem.class.php | |||
@@ -9,9 +9,9 @@ class FlattrItem { | |||
9 | public $flattrItemURL; | 9 | public $flattrItemURL; |
10 | public $numflattrs; | 10 | public $numflattrs; |
11 | 11 | ||
12 | public function checkItem($urltoflattr) { | 12 | public function checkItem($urltoflattr,$id) { |
13 | $this->cacheflattrfile($urltoflattr); | 13 | $this->cacheflattrfile($urltoflattr, $id); |
14 | $flattrResponse = file_get_contents(CACHE . "/flattr/".base64_encode($urltoflattr).".cache"); | 14 | $flattrResponse = file_get_contents(CACHE . "/flattr/".$id.".cache"); |
15 | if($flattrResponse != FALSE) { | 15 | if($flattrResponse != FALSE) { |
16 | $result = json_decode($flattrResponse); | 16 | $result = json_decode($flattrResponse); |
17 | if (isset($result->message)){ | 17 | if (isset($result->message)){ |
@@ -33,15 +33,15 @@ class FlattrItem { | |||
33 | } | 33 | } |
34 | } | 34 | } |
35 | 35 | ||
36 | private function cacheflattrfile($urltoflattr) { | 36 | private function cacheflattrfile($urltoflattr, $id) { |
37 | if (!is_dir(CACHE . '/flattr')) { | 37 | if (!is_dir(CACHE . '/flattr')) { |
38 | mkdir(CACHE . '/flattr', 0777); | 38 | mkdir(CACHE . '/flattr', 0777); |
39 | } | 39 | } |
40 | 40 | ||
41 | // if a cache flattr file for this url already exists and it's been less than one day than it have been updated, see in /cache | 41 | // if a cache flattr file for this url already exists and it's been less than one day than it have been updated, see in /cache |
42 | if ((!file_exists(CACHE . "/flattr/".base64_encode($urltoflattr).".cache")) || (time() - filemtime(CACHE . "/flattr/".base64_encode($urltoflattr).".cache") > 86400)) { | 42 | if ((!file_exists(CACHE . "/flattr/".$id.".cache")) || (time() - filemtime(CACHE . "/flattr/".$id.".cache") > 86400)) { |
43 | $askForFlattr = Tools::getFile(FLATTR_API . $urltoflattr); | 43 | $askForFlattr = Tools::getFile(FLATTR_API . $urltoflattr); |
44 | $flattrCacheFile = fopen(CACHE . "/flattr/".base64_encode($urltoflattr).".cache", 'w+'); | 44 | $flattrCacheFile = fopen(CACHE . "/flattr/".$id.".cache", 'w+'); |
45 | fwrite($flattrCacheFile, $askForFlattr); | 45 | fwrite($flattrCacheFile, $askForFlattr); |
46 | fclose($flattrCacheFile); | 46 | fclose($flattrCacheFile); |
47 | } | 47 | } |
diff --git a/inc/3rdparty/site_config/README.md b/inc/3rdparty/site_config/README.md new file mode 100644 index 00000000..0aff456b --- /dev/null +++ b/inc/3rdparty/site_config/README.md | |||
@@ -0,0 +1,6 @@ | |||
1 | Full-Text RSS Site Patterns | ||
2 | --------------------------- | ||
3 | |||
4 | Site patterns allow you to specify what should be extracted from specific sites. | ||
5 | |||
6 | Please see http://help.fivefilters.org/customer/portal/articles/223153-site-patterns for more information. \ No newline at end of file | ||
diff --git a/inc/3rdparty/site_config/custom/bfmtv.com.txt b/inc/3rdparty/site_config/custom/bfmtv.com.txt new file mode 100644 index 00000000..0ff28d56 --- /dev/null +++ b/inc/3rdparty/site_config/custom/bfmtv.com.txt | |||
@@ -0,0 +1,6 @@ | |||
1 | title: //title | ||
2 | body: //h2 | //span[@class='masque'] | //article[@class='corps_article_right'] | ||
3 | prune: no | ||
4 | tidy: no | ||
5 | |||
6 | test_url: http://www.bfmtv.com/societe/cigarette-electronique-dangers-588622.html \ No newline at end of file | ||
diff --git a/inc/3rdparty/site_config/custom/inthepoche.com.txt b/inc/3rdparty/site_config/custom/inthepoche.com.txt new file mode 100644 index 00000000..ede74b97 --- /dev/null +++ b/inc/3rdparty/site_config/custom/inthepoche.com.txt | |||
@@ -0,0 +1,7 @@ | |||
1 | title: //title | ||
2 | body: //div[@class='post-content'] | ||
3 | |||
4 | prune: no | ||
5 | tidy: no | ||
6 | |||
7 | test_url: http://www.inthepoche.com/?post/poche-hosting \ No newline at end of file | ||
diff --git a/inc/3rdparty/site_config/custom/palkeo.com.txt b/inc/3rdparty/site_config/custom/palkeo.com.txt new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/inc/3rdparty/site_config/custom/palkeo.com.txt | |||
diff --git a/inc/3rdparty/site_config/custom/tldp.org.txt b/inc/3rdparty/site_config/custom/tldp.org.txt new file mode 100644 index 00000000..7dd5cdb5 --- /dev/null +++ b/inc/3rdparty/site_config/custom/tldp.org.txt | |||
@@ -0,0 +1,6 @@ | |||
1 | title: //title | ||
2 | body: //h2 | //p | //ul | ||
3 | prune: no | ||
4 | tidy: no | ||
5 | |||
6 | test_url: http://www.tldp.org/HOWTO/Plug-and-Play-HOWTO-7.html \ No newline at end of file | ||
diff --git a/inc/3rdparty/site_config/index.php b/inc/3rdparty/site_config/index.php new file mode 100644 index 00000000..a3d5f739 --- /dev/null +++ b/inc/3rdparty/site_config/index.php | |||
@@ -0,0 +1,3 @@ | |||
1 | <?php | ||
2 | // this is here to prevent directory listing over the web | ||
3 | ?> \ No newline at end of file | ||
diff --git a/inc/3rdparty/site_config/standard/.wikipedia.org.txt b/inc/3rdparty/site_config/standard/.wikipedia.org.txt new file mode 100644 index 00000000..8b98ae4b --- /dev/null +++ b/inc/3rdparty/site_config/standard/.wikipedia.org.txt | |||
@@ -0,0 +1,19 @@ | |||
1 | title: //h1[@id='firstHeading'] | ||
2 | body: //div[@id = 'bodyContent'] | ||
3 | strip_id_or_class: editsection | ||
4 | #strip_id_or_class: toc | ||
5 | strip_id_or_class: vertical-navbox | ||
6 | strip: //table[@id='toc'] | ||
7 | strip: //div[@id='catlinks'] | ||
8 | strip: //div[@id='jump-to-nav'] | ||
9 | strip: //div[@class='thumbcaption']//div[@class='magnify'] | ||
10 | strip: //table[@class='navbox'] | ||
11 | strip: //table[contains(@class, 'infobox')] | ||
12 | strip: //div[@class='dablink'] | ||
13 | strip: //div[@id='contentSub'] | ||
14 | strip: //table[contains(@class, 'metadata')] | ||
15 | strip: //*[contains(@class, 'noprint')] | ||
16 | strip: //span[@title='pronunciation:'] | ||
17 | prune: no | ||
18 | tidy: no | ||
19 | test_url: http://en.wikipedia.org/wiki/Christopher_Lloyd \ No newline at end of file | ||
diff --git a/inc/3rdparty/site_config/standard/index.php b/inc/3rdparty/site_config/standard/index.php new file mode 100644 index 00000000..a3d5f739 --- /dev/null +++ b/inc/3rdparty/site_config/standard/index.php | |||
@@ -0,0 +1,3 @@ | |||
1 | <?php | ||
2 | // this is here to prevent directory listing over the web | ||
3 | ?> \ No newline at end of file | ||
diff --git a/inc/3rdparty/site_config/standard/version.php b/inc/3rdparty/site_config/standard/version.php new file mode 100644 index 00000000..e61807ed --- /dev/null +++ b/inc/3rdparty/site_config/standard/version.php | |||
@@ -0,0 +1,2 @@ | |||
1 | <?php | ||
2 | return 1; \ No newline at end of file | ||
diff --git a/inc/poche/Database.class.php b/inc/poche/Database.class.php index 4d664992..0662581b 100644 --- a/inc/poche/Database.class.php +++ b/inc/poche/Database.class.php | |||
@@ -113,9 +113,17 @@ class Database { | |||
113 | } | 113 | } |
114 | 114 | ||
115 | public function updateUserConfig($userId, $key, $value) { | 115 | public function updateUserConfig($userId, $key, $value) { |
116 | $sql_update = "UPDATE users_config SET `value`=? WHERE `user_id`=? AND `name`=?"; | 116 | $config = $this->getConfigUser($userId); |
117 | $params_update = array($value, $userId, $key); | 117 | |
118 | $query = $this->executeQuery($sql_update, $params_update); | 118 | if (!isset ($user_config[$key])) { |
119 | $sql = "INSERT INTO users_config (`value`, `user_id`, `name`) VALUES (?, ?, ?)"; | ||
120 | } | ||
121 | else { | ||
122 | $sql = "UPDATE users_config SET `value`=? WHERE `user_id`=? AND `name`=?"; | ||
123 | } | ||
124 | |||
125 | $params = array($value, $userId, $key); | ||
126 | $query = $this->executeQuery($sql, $params); | ||
119 | } | 127 | } |
120 | 128 | ||
121 | private function executeQuery($sql, $params) { | 129 | private function executeQuery($sql, $params) { |
diff --git a/inc/poche/Poche.class.php b/inc/poche/Poche.class.php index 18860ddc..1ba8e7c1 100644 --- a/inc/poche/Poche.class.php +++ b/inc/poche/Poche.class.php | |||
@@ -105,10 +105,18 @@ class Poche | |||
105 | public function themeIsInstalled() { | 105 | public function themeIsInstalled() { |
106 | # Twig is an absolute requirement for Poche to function. Abort immediately if the Composer installer hasn't been run yet | 106 | # Twig is an absolute requirement for Poche to function. Abort immediately if the Composer installer hasn't been run yet |
107 | if (! self::$canRenderTemplates) { | 107 | 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://inthepoche.com/?pages/Documentation">the documentation.</a>'; | 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>'; |
109 | 109 | ||
110 | return false; | 110 | return false; |
111 | } | 111 | } |
112 | |||
113 | if (! is_writable(CACHE)) { | ||
114 | $this->notInstalledMessage = '<h1>error</h1><p>You don\'t have write access on cache directory.</p>'; | ||
115 | |||
116 | self::$canRenderTemplates = false; | ||
117 | |||
118 | return false; | ||
119 | } | ||
112 | 120 | ||
113 | # Check if the selected theme and its requirements are present | 121 | # Check if the selected theme and its requirements are present |
114 | if (! is_dir(THEME . '/' . $this->getTheme())) { | 122 | if (! is_dir(THEME . '/' . $this->getTheme())) { |
@@ -145,16 +153,11 @@ class Poche | |||
145 | 153 | ||
146 | if (empty($configSalt)) { | 154 | if (empty($configSalt)) { |
147 | $msg = '<h1>error</h1><p>You have not yet filled in the SALT value in the config.inc.php file.</p>'; | 155 | $msg = '<h1>error</h1><p>You have not yet filled in the SALT value in the config.inc.php file.</p>'; |
148 | } else if (! is_writable(CACHE)) { | ||
149 | Tools::logm('you don\'t have write access on cache directory'); | ||
150 | $msg = '<h1>error</h1><p>You don\'t have write access on cache directory.</p>'; | ||
151 | } else if (STORAGE == 'sqlite' && ! file_exists(STORAGE_SQLITE)) { | 156 | } else if (STORAGE == 'sqlite' && ! file_exists(STORAGE_SQLITE)) { |
152 | Tools::logm('sqlite file doesn\'t exist'); | 157 | Tools::logm('sqlite file doesn\'t exist'); |
153 | $msg = '<h1>error</h1><p>sqlite file doesn\'t exist, you can find it in install folder. Copy it in /db folder.</p>'; | 158 | $msg = '<h1>error</h1><p>sqlite file doesn\'t exist, you can find it in install folder. Copy it in /db folder.</p>'; |
154 | } else if (file_exists(ROOT . '/install/update.php') && ! DEBUG_POCHE) { | ||
155 | $msg = '<h1>setup</h1><p><strong>It\'s your first time here?</strong> Please copy /install/poche.sqlite in db folder. Then, delete install folder.<br /><strong>If you have already installed poche</strong>, an update is needed <a href="install/update.php">by clicking here</a>.</p>'; | ||
156 | } else if (is_dir(ROOT . '/install') && ! DEBUG_POCHE) { | 159 | } else if (is_dir(ROOT . '/install') && ! DEBUG_POCHE) { |
157 | $msg = '<h1>setup</h1><p><strong>If you want to update your poche</strong>, you just have to delete /install folder. <br /><strong>To install your poche with sqlite</strong>, copy /install/poche.sqlite in /db and delete the folder /install. you have to delete the /install folder before using poche.</p>'; | 160 | $msg = '<h1>install folder</h1><p>you have to delete the /install folder before using poche.</p>'; |
158 | } else if (STORAGE == 'sqlite' && ! is_writable(STORAGE_SQLITE)) { | 161 | } else if (STORAGE == 'sqlite' && ! is_writable(STORAGE_SQLITE)) { |
159 | Tools::logm('you don\'t have write access on sqlite file'); | 162 | Tools::logm('you don\'t have write access on sqlite file'); |
160 | $msg = '<h1>error</h1><p>You don\'t have write access on sqlite file.</p>'; | 163 | $msg = '<h1>error</h1><p>You don\'t have write access on sqlite file.</p>'; |
@@ -255,7 +258,7 @@ class Poche | |||
255 | while (($theme = readdir($handle)) !== false) { | 258 | while (($theme = readdir($handle)) !== false) { |
256 | # Themes are stored in a directory, so all directory names are themes | 259 | # Themes are stored in a directory, so all directory names are themes |
257 | # @todo move theme installation data to database | 260 | # @todo move theme installation data to database |
258 | if (! is_dir(THEME . '/' . $theme) || in_array($theme, array('..', '.'))) { | 261 | if (! is_dir(THEME . '/' . $theme) || in_array($theme, array('..', '.', '.git'))) { |
259 | continue; | 262 | continue; |
260 | } | 263 | } |
261 | 264 | ||
@@ -330,7 +333,7 @@ class Poche | |||
330 | $msg = 'error : can\'t delete link #' . $id; | 333 | $msg = 'error : can\'t delete link #' . $id; |
331 | } | 334 | } |
332 | Tools::logm($msg); | 335 | Tools::logm($msg); |
333 | Tools::redirect('?'); | 336 | Tools::redirect(); |
334 | break; | 337 | break; |
335 | case 'toggle_fav' : | 338 | case 'toggle_fav' : |
336 | $this->store->favoriteById($id, $this->user->getId()); | 339 | $this->store->favoriteById($id, $this->user->getId()); |
@@ -381,17 +384,17 @@ class Poche | |||
381 | $tidy = tidy_parse_string($content, array('indent'=>true, 'show-body-only' => true), 'UTF8'); | 384 | $tidy = tidy_parse_string($content, array('indent'=>true, 'show-body-only' => true), 'UTF8'); |
382 | $tidy->cleanRepair(); | 385 | $tidy->cleanRepair(); |
383 | $content = $tidy->value; | 386 | $content = $tidy->value; |
387 | } | ||
384 | 388 | ||
385 | # flattr checking | 389 | # flattr checking |
386 | $flattr = new FlattrItem(); | 390 | $flattr = new FlattrItem(); |
387 | $flattr->checkItem($entry['url']); | 391 | $flattr->checkItem($entry['url'],$entry['id']); |
388 | 392 | ||
389 | $tpl_vars = array( | 393 | $tpl_vars = array( |
390 | 'entry' => $entry, | 394 | 'entry' => $entry, |
391 | 'content' => $content, | 395 | 'content' => $content, |
392 | 'flattr' => $flattr | 396 | 'flattr' => $flattr |
393 | ); | 397 | ); |
394 | } | ||
395 | } | 398 | } |
396 | else { | 399 | else { |
397 | Tools::logm('error in view call : entry is null'); | 400 | Tools::logm('error in view call : entry is null'); |
@@ -404,6 +407,7 @@ class Poche | |||
404 | 'page_links' => '', | 407 | 'page_links' => '', |
405 | 'nb_results' => '', | 408 | 'nb_results' => '', |
406 | ); | 409 | ); |
410 | |||
407 | if (count($entries) > 0) { | 411 | if (count($entries) > 0) { |
408 | $this->pagination->set_total(count($entries)); | 412 | $this->pagination->set_total(count($entries)); |
409 | $page_links = $this->pagination->page_links('?view=' . $view . '&sort=' . $_SESSION['sort'] . '&'); | 413 | $page_links = $this->pagination->page_links('?view=' . $view . '&sort=' . $_SESSION['sort'] . '&'); |
diff --git a/inc/poche/config.inc.php.new b/inc/poche/config.inc.php.new index 48cc5783..255b97e6 100755 --- a/inc/poche/config.inc.php.new +++ b/inc/poche/config.inc.php.new | |||
@@ -26,7 +26,7 @@ define ('STORAGE_PASSWORD', 'poche'); | |||
26 | ################################################################################# | 26 | ################################################################################# |
27 | 27 | ||
28 | define ('MODE_DEMO', FALSE); | 28 | define ('MODE_DEMO', FALSE); |
29 | define ('DEBUG_POCHE', true); | 29 | define ('DEBUG_POCHE', FALSE); |
30 | define ('DOWNLOAD_PICTURES', FALSE); | 30 | define ('DOWNLOAD_PICTURES', FALSE); |
31 | define ('CONVERT_LINKS_FOOTNOTES', FALSE); | 31 | define ('CONVERT_LINKS_FOOTNOTES', FALSE); |
32 | define ('REVERT_FORCED_PARAGRAPH_ELEMENTS', FALSE); | 32 | define ('REVERT_FORCED_PARAGRAPH_ELEMENTS', FALSE); |
@@ -49,8 +49,12 @@ define ('CACHE', ROOT . '/cache'); | |||
49 | 49 | ||
50 | define ('PAGINATION', '10'); | 50 | define ('PAGINATION', '10'); |
51 | 51 | ||
52 | define ('POCHE_VERSION', '1.0-beta5'); | 52 | define ('POCHE_VERSION', '1.0.0'); |
53 | 53 | ||
54 | define ('IMPORT_POCKET_FILE', ROOT . '/ril_export.html'); | 54 | define ('POCKET_FILE', '/ril_export.html'); |
55 | define ('IMPORT_READABILITY_FILE', ROOT . '/readability'); | 55 | define ('READABILITY_FILE', '/readability'); |
56 | define ('IMPORT_INSTAPAPER_FILE', ROOT . '/instapaper-export.html'); \ No newline at end of file | 56 | define ('INSTAPAPER_FILE', '/instapaper-export.html'); |
57 | |||
58 | define ('IMPORT_POCKET_FILE', ROOT . POCKET_FILE); | ||
59 | define ('IMPORT_READABILITY_FILE', ROOT . READABILITY_FILE); | ||
60 | define ('IMPORT_INSTAPAPER_FILE', ROOT . INSTAPAPER_FILE); \ No newline at end of file | ||
diff --git a/inc/poche/define.inc.php b/inc/poche/define.inc.php deleted file mode 100644 index 40f77b5c..00000000 --- a/inc/poche/define.inc.php +++ /dev/null | |||
@@ -1,39 +0,0 @@ | |||
1 | <?php | ||
2 | /** | ||
3 | * poche, a read it later open source system | ||
4 | * | ||
5 | * @category poche | ||
6 | * @author Nicolas LÅ“uillet <support@inthepoche.com> | ||
7 | * @copyright 2013 | ||
8 | * @license http://www.wtfpl.net/ see COPYING file | ||
9 | */ | ||
10 | |||
11 | define ('STORAGE','sqlite'); # postgres, mysql, sqlite | ||
12 | define ('STORAGE_SERVER', 'localhost'); # leave blank for sqlite | ||
13 | define ('STORAGE_DB', 'poche'); # only for postgres & mysql | ||
14 | define ('STORAGE_SQLITE', __DIR__ . '/../../db/poche.sqlite'); | ||
15 | define ('STORAGE_USER', 'postgres'); # leave blank for sqlite | ||
16 | define ('STORAGE_PASSWORD', 'postgres'); # leave blank for sqlite | ||
17 | |||
18 | define ('MODE_DEMO', FALSE); | ||
19 | define ('DEBUG_POCHE', FALSE); | ||
20 | define ('DOWNLOAD_PICTURES', FALSE); | ||
21 | define ('SHARE_TWITTER', TRUE); | ||
22 | define ('SHARE_MAIL', TRUE); | ||
23 | define ('SHARE_SHAARLI', FALSE); | ||
24 | define ('SHAARLI_URL', 'http://myshaarliurl.com'); | ||
25 | define ('FLATTR', TRUE); | ||
26 | define ('FLATTR_API', 'https://api.flattr.com/rest/v2/things/lookup/?url='); | ||
27 | define ('NOT_FLATTRABLE', '0'); | ||
28 | define ('FLATTRABLE', '1'); | ||
29 | define ('FLATTRED', '2'); | ||
30 | define ('ABS_PATH', 'assets/'); | ||
31 | define ('TPL', __DIR__ . '/../../tpl'); | ||
32 | define ('LOCALE', __DIR__ . '/../../locale'); | ||
33 | define ('CACHE', __DIR__ . '/../../cache'); | ||
34 | define ('PAGINATION', '10'); | ||
35 | define ('THEME', 'light'); | ||
36 | |||
37 | define ('IMPORT_POCKET_FILE', './ril_export.html'); | ||
38 | define ('IMPORT_READABILITY_FILE', './readability'); | ||
39 | define ('IMPORT_INSTAPAPER_FILE', './instapaper-export.html'); \ No newline at end of file | ||
diff --git a/install/update.php b/install/update.php deleted file mode 100644 index 9548d334..00000000 --- a/install/update.php +++ /dev/null | |||
@@ -1,77 +0,0 @@ | |||
1 | <?php | ||
2 | require_once dirname(__FILE__).'/../inc/poche/Tools.class.php'; | ||
3 | include dirname(__FILE__).'/../inc/poche/define.inc.php'; | ||
4 | include dirname(__FILE__).'/../inc/poche/myconfig.inc.php'; | ||
5 | require_once __DIR__ . '/../inc/poche/Database.class.php'; | ||
6 | $store = new Database(); | ||
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-beta4</h1> | ||
20 | |||
21 | <h2>Changelog</h2> | ||
22 | <ul> | ||
23 | <li>enhancement: updating and installing poche are more easier</li> | ||
24 | <li>enhancement: poche now uses Full Text RSS to fetch content</li> | ||
25 | <li>enhancement: css and twig files are more clean, thanks to NumEricR and nicofrand</li> | ||
26 | <li>enhancement: updated german translation, thanks to HLFH</li> | ||
27 | <li>enhancement: add db/, cache/ and assets/ directories in versioning</li> | ||
28 | <li>enhancement: display messages when error with import, thanks to EliasZ</li> | ||
29 | <li>enhancement: poche compatibility test file</li> | ||
30 | <li>enhancement: <a href="https://github.com/inthepoche/poche/issues/112">#112</a>: link with shaarli</li> | ||
31 | <li>enhancement: <a href="https://github.com/inthepoche/poche/issues/162">#162</a>: links to firefox / chrome / android apps in config screen</li> | ||
32 | <li>bug: encode url to share with twitter / email / shaarli</li> | ||
33 | <li>bug: Add IPv4 url support (and others beginning by a digit)</li> | ||
34 | <li>bug: title page in article view was wrong</li> | ||
35 | <li>bug: <a href="https://github.com/inthepoche/poche/issues/148">#148</a>: use of undefined constant POCHE_VERSION</li> | ||
36 | <li>bug: <a href="https://github.com/inthepoche/poche/issues/148">#149</a>: can't poche theguardian.com</li> | ||
37 | <li>bug: <a href="https://github.com/inthepoche/poche/issues/150">#150</a>: default title for untitled articles</li> | ||
38 | <li>bug: <a href="https://github.com/inthepoche/poche/issues/150">#151</a>: HTML entities in titles are encoded twice</li> | ||
39 | <li>bug: <a href="https://github.com/inthepoche/poche/issues/169">#169</a>: entries height with short description</li> | ||
40 | <li>bug: <a href="https://github.com/inthepoche/poche/issues/175">#175</a>: IP addresses do not appear in "view original"</li> | ||
41 | </ul> | ||
42 | <p>To update your poche, please fill the following fields.</p> | ||
43 | <p> | ||
44 | <form name="update" method="post"> | ||
45 | <div><label for="login">login:</label> <input type="text" name="login" id="login" /></div> | ||
46 | <div><label for="password">password:</label> <input type="password" name="password" id="password" /></div> | ||
47 | <div><input type="hidden" name="go" value="ok" /><input type="submit" value="update" /></div> | ||
48 | </form> | ||
49 | </p> | ||
50 | <?php | ||
51 | if (isset($_POST['go'])) { | ||
52 | if (!empty($_POST['login']) && !empty($_POST['password'])) { | ||
53 | $user = $store->login($_POST['login'], sha1($_POST['password'] . $_POST['login'] . SALT)); | ||
54 | if ($user != array()) { | ||
55 | $myconfig_file = '../inc/poche/myconfig.inc.php'; | ||
56 | # just change version number in config file | ||
57 | |||
58 | if (!is_writable('../inc/poche/myconfig.inc.php')) { | ||
59 | die('You don\'t have write access to open ./inc/poche/myconfig.inc.php.'); | ||
60 | } | ||
61 | |||
62 | if (file_exists($myconfig_file)) | ||
63 | { | ||
64 | $content = str_replace('1.0-beta3', '1.0-beta4', file_get_contents($myconfig_file)); | ||
65 | file_put_contents($myconfig_file, $content); | ||
66 | } | ||
67 | ?> | ||
68 | <p><span style="color: green;">your poche is up to date!</span></p> | ||
69 | <p><span style="color: red;">don't forget to delete ./install/ folder after the update.</span></p> | ||
70 | <p><a href="../">go back to your poche</a></p> | ||
71 | <?php | ||
72 | } | ||
73 | } | ||
74 | } | ||
75 | ?> | ||
76 | </body> | ||
77 | </html> \ No newline at end of file | ||
diff --git a/themes b/themes deleted file mode 160000 | |||
Subproject 689dcedf8d6c7cf5e8424654fef4fd9687288dc | |||
diff --git a/themes/README.md b/themes/README.md new file mode 100644 index 00000000..76ac8ab0 --- /dev/null +++ b/themes/README.md | |||
@@ -0,0 +1,31 @@ | |||
1 | # poche-themes | ||
2 | |||
3 | themes created by poche users | ||
4 | |||
5 | ## list of themes | ||
6 | |||
7 | * dark ([preview](https://raw.github.com/inthepoche/poche-themes/master/dark/screenshot.jpg)) | ||
8 | * dmagenta ([preview](https://raw.github.com/inthepoche/poche-themes/master/dmagenta/screenshot.jpg)) | ||
9 | * solarized ([preview](https://raw.github.com/inthepoche/poche-themes/master/solarized/screenshot.jpg)) | ||
10 | * solarized-dark ([preview](https://raw.github.com/inthepoche/poche-themes/master/solarized-dark/screenshot.jpg)) | ||
11 | |||
12 | ## installation | ||
13 | |||
14 | In your poche folder: | ||
15 | |||
16 | ``` | ||
17 | git submodule init | ||
18 | git submodule update | ||
19 | ``` | ||
20 | |||
21 | Then, in your config screen, select your favorite theme. | ||
22 | |||
23 | That's all ! | ||
24 | |||
25 | ## create a theme | ||
26 | |||
27 | Just have a look to this short documentation : http://inthepoche.com/doc/doku.php?id=designers:creating_theme | ||
28 | |||
29 | ## send a theme | ||
30 | |||
31 | Send your theme by email at support@inthepoche.com. | ||
diff --git a/themes/dark/README.md b/themes/dark/README.md new file mode 100644 index 00000000..92077994 --- /dev/null +++ b/themes/dark/README.md | |||
@@ -0,0 +1,3 @@ | |||
1 | # dark theme | ||
2 | |||
3 | theme created by Nicolas LÅ“uillet aka nico_somb \ No newline at end of file | ||
diff --git a/themes/dark/css/style-dark.css b/themes/dark/css/style-dark.css new file mode 100644 index 00000000..41782c48 --- /dev/null +++ b/themes/dark/css/style-dark.css | |||
@@ -0,0 +1,74 @@ | |||
1 | body { | ||
2 | color: #d4d4d4; | ||
3 | background-color: #262627; | ||
4 | } | ||
5 | |||
6 | a, | ||
7 | a:hover, | ||
8 | a:visited { | ||
9 | color: #d4d4d4; | ||
10 | } | ||
11 | |||
12 | a.back span { | ||
13 | background-image: url('../img/dark/left.png'); | ||
14 | } | ||
15 | |||
16 | a.top span { | ||
17 | background-image: url('../img/dark/top.png'); | ||
18 | } | ||
19 | |||
20 | a.fav span, | ||
21 | a.fav-off span:hover { | ||
22 | background-image: url('../img/dark/star-on.png'); | ||
23 | } | ||
24 | |||
25 | a.fav span:hover, | ||
26 | a.fav-off span { | ||
27 | background-image: url('../img/dark/star-off.png'); | ||
28 | } | ||
29 | |||
30 | a.archive span, | ||
31 | a.archive-off span:hover { | ||
32 | background-image: url('../img/dark/checkmark-on.png'); | ||
33 | } | ||
34 | |||
35 | a.archive span:hover, | ||
36 | a.archive-off span { | ||
37 | background-image: url('../img/dark/checkmark-off.png'); | ||
38 | } | ||
39 | |||
40 | a.twitter span { | ||
41 | background-image: url('../img/dark/twitter.png'); | ||
42 | } | ||
43 | |||
44 | a.shaarli span { | ||
45 | background-image: url('../img/dark/shaarli.png'); | ||
46 | } | ||
47 | |||
48 | a.flattr span { | ||
49 | background-image: url('../img/dark/flattr.png'); | ||
50 | } | ||
51 | |||
52 | a.email span { | ||
53 | background-image: url('../img/dark/envelop.png'); | ||
54 | } | ||
55 | |||
56 | a.delete span { | ||
57 | background-image: url('../img/dark/remove.png'); | ||
58 | } | ||
59 | |||
60 | a.link span { | ||
61 | background-image: url('../img/dark/link.png'); | ||
62 | } | ||
63 | |||
64 | a.bad-display span { | ||
65 | background-image: url('../img/dark/bad-display.png'); | ||
66 | } | ||
67 | |||
68 | .pagination a { | ||
69 | color: #aaa; | ||
70 | } | ||
71 | |||
72 | #article_toolbar { | ||
73 | background: #262627; | ||
74 | } \ No newline at end of file | ||
diff --git a/themes/dark/img/dark/backtotop.png b/themes/dark/img/dark/backtotop.png new file mode 100755 index 00000000..051238ef --- /dev/null +++ b/themes/dark/img/dark/backtotop.png | |||
Binary files differ | |||
diff --git a/themes/dark/img/dark/bad-display.png b/themes/dark/img/dark/bad-display.png new file mode 100755 index 00000000..6866799f --- /dev/null +++ b/themes/dark/img/dark/bad-display.png | |||
Binary files differ | |||
diff --git a/themes/dark/img/dark/checkmark-off.png b/themes/dark/img/dark/checkmark-off.png new file mode 100644 index 00000000..3db5a06d --- /dev/null +++ b/themes/dark/img/dark/checkmark-off.png | |||
Binary files differ | |||
diff --git a/themes/dark/img/dark/checkmark-on.png b/themes/dark/img/dark/checkmark-on.png new file mode 100644 index 00000000..cd3abb2c --- /dev/null +++ b/themes/dark/img/dark/checkmark-on.png | |||
Binary files differ | |||
diff --git a/themes/dark/img/dark/down.png b/themes/dark/img/dark/down.png new file mode 100644 index 00000000..b9d536a7 --- /dev/null +++ b/themes/dark/img/dark/down.png | |||
Binary files differ | |||
diff --git a/themes/dark/img/dark/envelop.png b/themes/dark/img/dark/envelop.png new file mode 100644 index 00000000..6be1c886 --- /dev/null +++ b/themes/dark/img/dark/envelop.png | |||
Binary files differ | |||
diff --git a/themes/dark/img/dark/flattr.png b/themes/dark/img/dark/flattr.png new file mode 100755 index 00000000..0404aaea --- /dev/null +++ b/themes/dark/img/dark/flattr.png | |||
Binary files differ | |||
diff --git a/themes/dark/img/dark/left.png b/themes/dark/img/dark/left.png new file mode 100644 index 00000000..a0a53631 --- /dev/null +++ b/themes/dark/img/dark/left.png | |||
Binary files differ | |||
diff --git a/themes/dark/img/dark/link.png b/themes/dark/img/dark/link.png new file mode 100755 index 00000000..db62819d --- /dev/null +++ b/themes/dark/img/dark/link.png | |||
Binary files differ | |||
diff --git a/themes/dark/img/dark/remove.png b/themes/dark/img/dark/remove.png new file mode 100644 index 00000000..f8ad56a3 --- /dev/null +++ b/themes/dark/img/dark/remove.png | |||
Binary files differ | |||
diff --git a/themes/dark/img/dark/shaarli.png b/themes/dark/img/dark/shaarli.png new file mode 100644 index 00000000..1eb30f60 --- /dev/null +++ b/themes/dark/img/dark/shaarli.png | |||
Binary files differ | |||
diff --git a/themes/dark/img/dark/star-off.png b/themes/dark/img/dark/star-off.png new file mode 100644 index 00000000..6a0133a7 --- /dev/null +++ b/themes/dark/img/dark/star-off.png | |||
Binary files differ | |||
diff --git a/themes/dark/img/dark/star-on.png b/themes/dark/img/dark/star-on.png new file mode 100644 index 00000000..a9f96eaa --- /dev/null +++ b/themes/dark/img/dark/star-on.png | |||
Binary files differ | |||
diff --git a/themes/dark/img/dark/top.png b/themes/dark/img/dark/top.png new file mode 100644 index 00000000..954a8c0a --- /dev/null +++ b/themes/dark/img/dark/top.png | |||
Binary files differ | |||
diff --git a/themes/dark/img/dark/twitter.png b/themes/dark/img/dark/twitter.png new file mode 100644 index 00000000..cfcfe419 --- /dev/null +++ b/themes/dark/img/dark/twitter.png | |||
Binary files differ | |||
diff --git a/themes/dark/screenshot.jpg b/themes/dark/screenshot.jpg new file mode 100644 index 00000000..daaad6c9 --- /dev/null +++ b/themes/dark/screenshot.jpg | |||
Binary files differ | |||
diff --git a/themes/default/_bookmarklet.twig b/themes/default/_bookmarklet.twig new file mode 100644 index 00000000..2f3b2d16 --- /dev/null +++ b/themes/default/_bookmarklet.twig | |||
@@ -0,0 +1,3 @@ | |||
1 | <script type="text/javascript"> | ||
2 | top["bookmarklet-url@inthepoche.com"]=""+"<!DOCTYPE html>"+"<html>"+"<head>"+"<title>poche it !</title>"+'<link rel="icon" href="{{poche_url}}tpl/img/favicon.ico" />'+"</head>"+"<body>"+"<script>"+"window.onload=function(){"+"window.setTimeout(function(){"+"history.back();"+"},250);"+"};"+"</scr"+"ipt>"+"</body>"+"</html>" | ||
3 | </script> \ No newline at end of file | ||
diff --git a/themes/default/_footer.twig b/themes/default/_footer.twig new file mode 100644 index 00000000..2b895854 --- /dev/null +++ b/themes/default/_footer.twig | |||
@@ -0,0 +1,4 @@ | |||
1 | <footer class="w600p center mt3 mb3 smaller txtright"> | ||
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 %} | ||
4 | </footer> \ No newline at end of file | ||
diff --git a/themes/default/_head.twig b/themes/default/_head.twig new file mode 100644 index 00000000..2b9e4582 --- /dev/null +++ b/themes/default/_head.twig | |||
@@ -0,0 +1,11 @@ | |||
1 | <link rel="shortcut icon" type="image/x-icon" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/favicon.ico" /> | ||
2 | <link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/apple-touch-icon-144x144-precomposed.png"> | ||
3 | <link rel="apple-touch-icon-precomposed" sizes="72x72" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/apple-touch-icon-72x72-precomposed.png"> | ||
4 | <link rel="apple-touch-icon-precomposed" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/apple-touch-icon-precomposed.png"> | ||
5 | <link rel="stylesheet" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/css/knacss.css" media="all"> | ||
6 | <link rel="stylesheet" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/css/style.css" media="all"> | ||
7 | <link rel="stylesheet" href="{{ poche_url }}/themes/{{ theme }}/css/style-{{ theme }}.css" media="all" title="{{ theme }} theme"> | ||
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"> | ||
10 | <link href='//fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'> | ||
11 | <script src="//codeorigin.jquery.com/jquery-2.0.3.min.js"></script> \ No newline at end of file | ||
diff --git a/themes/default/_menu.twig b/themes/default/_menu.twig new file mode 100644 index 00000000..699d6a0c --- /dev/null +++ b/themes/default/_menu.twig | |||
@@ -0,0 +1,7 @@ | |||
1 | <ul id="links"> | ||
2 | <li><a href="./" {% if view == 'home' %}class="current"{% endif %}>{% trans "home" %}</a></li> | ||
3 | <li><a href="./?view=fav" {% if view == 'fav' %}class="current"{% endif %}>{% trans "favorites" %}</a></li> | ||
4 | <li><a href="./?view=archive" {% if view == 'archive' %}class="current"{% endif %}>{% trans "archive" %}</a></li> | ||
5 | <li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li> | ||
6 | <li><a href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li> | ||
7 | </ul> \ No newline at end of file | ||
diff --git a/themes/default/_messages.twig b/themes/default/_messages.twig new file mode 100644 index 00000000..679aa098 --- /dev/null +++ b/themes/default/_messages.twig | |||
@@ -0,0 +1 @@ | |||
{{ messages | raw }} \ No newline at end of file | |||
diff --git a/themes/default/_top.twig b/themes/default/_top.twig new file mode 100644 index 00000000..4100f7c4 --- /dev/null +++ b/themes/default/_top.twig | |||
@@ -0,0 +1,7 @@ | |||
1 | <header class="w600p center mbm"> | ||
2 | <h1> | ||
3 | {% if view == 'home' %}{% block logo %}<img src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/logo.png" alt="logo poche" />{% endblock %} | ||
4 | {% else %}<a href="./" title="{% trans "back to home" %}" >{{ block('logo') }}</a> | ||
5 | {% endif %} | ||
6 | </h1> | ||
7 | </header> \ No newline at end of file | ||
diff --git a/themes/default/config.twig b/themes/default/config.twig new file mode 100644 index 00000000..0f1aea80 --- /dev/null +++ b/themes/default/config.twig | |||
@@ -0,0 +1,80 @@ | |||
1 | {% extends "layout.twig" %} | ||
2 | |||
3 | {% block title %}{% trans "config" %}{% endblock %} | ||
4 | {% block menu %} | ||
5 | {% include '_menu.twig' %} | ||
6 | {% endblock %} | ||
7 | {% block content %} | ||
8 | <h2>{% trans "Poching a link" %}</h2> | ||
9 | <p>{% trans "You can poche a link by several methods:" %} (<a href="http://inthepoche.com/doc" title="{% trans "read the documentation" %}">?</a>)</p> | ||
10 | <ul> | ||
11 | <li>firefox: <a href="https://bitbucket.org/jogaulupeau/poche/downloads/poche.xpi" title="download the firefox extension">{% trans "download the extension" %}</a></li> | ||
12 | <li>chrome: <a href="https://bitbucket.org/jogaulupeau/poche/downloads/poche.crx" title="download the chrome extension">{% trans "download the extension" %}</a></li> | ||
13 | <li>android: <a href="https://bitbucket.org/jogaulupeau/poche/downloads/Poche.apk" title="download the application">{% trans "download the application" %}</a></li> | ||
14 | <li> | ||
15 | <form method="get" action="index.php"> | ||
16 | <label class="addurl" for="plainurl">{% trans "by filling this field" %}:</label> | ||
17 | <input required placeholder="Ex:mywebsite.com/article" class="addurl" id="plainurl" name="plainurl" type="url" /> | ||
18 | <input type="submit" value="{% trans "poche it!" %}" /> | ||
19 | </form> | ||
20 | </li> | ||
21 | <li>{% trans "bookmarklet: drag & drop this link to your bookmarks bar" %} <a id="bookmarklet" ondragend="this.click();" 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></li> | ||
22 | </ul> | ||
23 | |||
24 | <h2>{% trans "Updating poche" %}</h2> | ||
25 | <ul> | ||
26 | <li>{% trans "your version" %} : <strong>{{ constant('POCHE_VERSION') }}</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> | ||
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> | ||
30 | |||
31 | <h2>{% trans "Change your theme" %}</h2> | ||
32 | <form method="post" action="?updatetheme" name="changethemeform"> | ||
33 | <fieldset class="w500p"> | ||
34 | <div class="row"> | ||
35 | <label class="col w150p" for="theme">{% trans "Theme:" %}</label> | ||
36 | <select class="col" id="theme" name="theme"> | ||
37 | {% for theme in themes %} | ||
38 | <option value="{{ theme.name }}" {{ theme.current ? 'selected' : '' }}>{{ theme.name }}</option> | ||
39 | {% endfor %} | ||
40 | </select> | ||
41 | </div> | ||
42 | <div class="row mts txtcenter"> | ||
43 | <button class="bouton" type="submit" tabindex="4">{% trans "Update" %}</button> | ||
44 | </div> | ||
45 | </fieldset> | ||
46 | <input type="hidden" name="returnurl" value="{{ referer }}"> | ||
47 | <input type="hidden" name="token" value="{{ token }}"> | ||
48 | </form> | ||
49 | |||
50 | <h2>{% trans "Change your password" %}</h2> | ||
51 | <form method="post" action="?config" name="loginform"> | ||
52 | <fieldset class="w500p"> | ||
53 | <div class="row"> | ||
54 | <label class="col w150p" for="password">{% trans "New password:" %}</label> | ||
55 | <input class="col" type="password" id="password" name="password" placeholder="{% trans "Password" %}" tabindex="2"> | ||
56 | </div> | ||
57 | <div class="row"> | ||
58 | <label class="col w150p" for="password_repeat">{% trans "Repeat your new password:" %}</label> | ||
59 | <input class="col" type="password" id="password_repeat" name="password_repeat" placeholder="{% trans "Password" %}" tabindex="3"> | ||
60 | </div> | ||
61 | <div class="row mts txtcenter"> | ||
62 | <button class="bouton" type="submit" tabindex="4">{% trans "Update" %}</button> | ||
63 | </div> | ||
64 | </fieldset> | ||
65 | <input type="hidden" name="returnurl" value="{{ referer }}"> | ||
66 | <input type="hidden" name="token" value="{{ token }}"> | ||
67 | </form> | ||
68 | |||
69 | <h2>{% trans "Import" %}</h2> | ||
70 | <p>{% trans "Please execute the import script locally, it can take a very long time." %}</p> | ||
71 | <p>{% trans "More infos in the official doc:" %} <a href="http://inthepoche.com/doc">inthepoche.com</a></p> | ||
72 | <ul> | ||
73 | <li><a href="./?import&from=pocket">{% trans "import from Pocket" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('POCKET_FILE')) }}</li> | ||
74 | <li><a href="./?import&from=readability">{% trans "import from Readability" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('READABILITY_FILE')) }}</li> | ||
75 | <li><a href="./?import&from=instapaper">{% trans "import from Instapaper" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('INSTAPAPER_FILE')) }}</li> | ||
76 | </ul> | ||
77 | |||
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> | ||
80 | {% endblock %} \ No newline at end of file | ||
diff --git a/themes/default/css/knacss.css b/themes/default/css/knacss.css new file mode 100644 index 00000000..ca0696b7 --- /dev/null +++ b/themes/default/css/knacss.css | |||
@@ -0,0 +1 @@ | |||
html{font-size:62.5%}body{font-family:"Century Gothic",helvetica,arial,sans-serif;font-size:1.4em;line-height:1.5;color:#000;background-color:#FFF}p,ul,ol,dl,blockquote,pre,td,th,label,textarea,caption,details,figure,hgroup{margin:.75em 0 0;font-size:1em;line-height:1.5}h1,.h1-like{margin:.8077em 0 0 0;font-size:1.8571em;font-weight:normal;line-height:1.6154em}h2,.h2-like{margin:.875em 0 0 0;font-size:1.7143em;font-weight:normal;line-height:1.75em}h3,.h3-like{margin:.9545em 0 0 0;font-size:1.5714em;font-weight:normal;line-height:1.909em}h4,.h4-like{margin:1.05em 0 0 0;font-size:1.4286em;font-weight:normal;line-height:1.05em}h5,.h5-like{margin:1.1667em 0 0 0;font-size:1.2857em;font-weight:normal;line-height:1.1667em}h6,.h6-like{margin:1.3125em 0 0 0;font-size:1.1429em;font-weight:normal;line-height:1.3125em}.smaller{font-size:.7143em}.small{font-size:.8571em}.big{font-size:1.1429em}.bigger{font-size:1.2857em}.biggest{font-size:1.4286em}html,body,textarea,figure,label{margin:0;padding:0}ul,ol{padding-left:2em}code,pre,samp,kbd{font-family:consolas,'DejaVu Sans Mono',courier,monospace;line-height:1em;white-space:pre-wrap}code,kbd,mark{border-radius:2px}em{font-style:italic}strong{font-weight:bold}kbd{padding:0 2px;border:1px solid #999}code{padding:2px 4px;color:#B11;background:rgba(0,0,0,.04)}mark{padding:2px 4px;background:#FF0}table{margin-bottom:1.5em}p:first-child,ul:first-child,ol:first-child,dl:first-child,blockquote:first-child,pre:first-child,h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child{margin-top:0}li p,li ul,li ol{margin-top:0;margin-bottom:0}img,table,td,blockquote,code,pre,textarea,input,video{max-width:100%}div,textarea,table,td,th,code,pre,samp{word-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;-o-hyphens:auto;hyphens:auto}img{height:auto;vertical-align:middle}#map_canvas img,.gmnoprint img{max-width:none}a img{border:0}body > script{display:none !important}.skip-links{position:absolute}.skip-links a{position:absolute;left:-7000px;padding:.5em;text-decoration:none;color:#FFF;background:#000}.skip-links a:focus{position:static}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mod,.item{overflow:hidden}.row{display:table;width:100%;table-layout:fixed}.row > *,.col{display:table-cell;vertical-align:top}.clear,.line,.row{clear:both}.clearfix:after,.line:after,.mod:after{content:"";display:table;clear:both}.left{float:left}img.left{margin-right:1em}.right{float:right}img.right{margin-left:1em}img.left,img.right{margin-bottom:5px}.center{margin-right:auto;margin-left:auto}.txtleft{text-align:left}.txtright{text-align:right}.txtcenter{text-align:center}.inbl{display:inline-block;margin-right:-.25em;vertical-align:top}.w10{width:10%}.w20{width:20%}.w25{width:25%}.w30{width:30%}.w33{width:33.333%}.w40{width:40%}.w50{width:50%}.w60{width:60%}.w66{width:66.666%}.w70{width:70%}.w75{width:75%}.w80{width:80%}.w90{width:90%}.w100{width:100%}.w50p{width:50px}.w100p{width:100px}.w150p{width:150px}.w200p{width:200px}.w300p{width:300px}.w400p{width:400px}.w500p{width:500px}.w600p{width:600px}.w700p{width:700px}.w800p{width:800px}.w960p{width:960px}.mw960p{max-width:960px}.m-reset,.ma0{margin:0 !important}.p-reset,.pa0{padding:0 !important}.ma1,.mas{margin:10px !important}.ma2,.mam{margin:20px !important}.ma3,.mal{margin:30px !important}.pa1,.pas{padding:10px}.pa2,.pam{padding:20px}.pa3,.pal{padding:30px}.mt0,.mtn{margin-top:0 !important}.mt1,.mts{margin-top:10px !important}.mt2,.mtm{margin-top:20px !important}.mt3,.mtl{margin-top:30px !important}.mr0,.mrn{margin-right:0}.mr1,.mrs{margin-right:10px}.mr2,.mrm{margin-right:20px}.mr3,.mrl{margin-right:30px}.mb0,.mbn{margin-bottom:0 !important}.mb1,.mbs{margin-bottom:10px !important}.mb2,.mbm{margin-bottom:20px !important}.mb3,.mbl{margin-bottom:30px !important}.ml0,.mln{margin-left:0}.ml1,.mls{margin-left:10px}.ml2,.mlm{margin-left:20px}.ml3,.mll{margin-left:30px}.pt0,.ptn{padding-top:0}.pt1,.pts{padding-top:10px}.pt2,.ptm{padding-top:20px}.pt3,.ptl{padding-top:30px}.pr0,.prn{padding-right:0}.pr1,.prs{padding-right:10px}.pr2,.prm{padding-right:20px}.pr3,.prl{padding-right:30px}.pb0,.pbn{padding-bottom:0}.pb1,.pbs{padding-bottom:10px}.pb2,.pbm{padding-bottom:20px}.pb3,.pbl{padding-bottom:30px}.pl0,.pln{padding-left:0}.pl1,.pls{padding-left:10px}.pl2,.plm{padding-left:20px}.pl3,.pll{padding-left:30px}.visually-hidden{position:absolute;left:-7000px;overflow:hidden}[dir=rtl] .visually-hidden{right:-7000px;left:auto}.desktop-hidden{display:none}form,fieldset{border:none}input,button,select,label,.btn{font-family:inherit;vertical-align:middle}textarea{font-family:inherit;resize:vertical}.ie67 .clearfix,.ie67 .line,.ie67 .mod,.ie67 .row,.ie67 .col{zoom:1}.ie67 .btn,.ie67 .col,.ie67 .inbl{display:inline;zoom:1}.ie8 img{width:auto}@media print{p,blockquote{orphans:2;widows:2}blockquote,ul,ol{page-break-inside:avoid}h1,h2,h3,caption{page-break-after:avoid}}@media(orientation:landscape)and(max-device-width:768px){html,body{-webkit-text-size-adjust:100%}}[class*=grid] > *{float:left}[class*=grid] > * + *{margin-left:2%}.grid2 > *{width:49%}.grid3 > *{width:32%}.grid4 > *{width:23.5%}.grid5 > *{width:18.4%}.grid6 > *{width:15%}.grid2-1 > *:first-child,.grid1-2 > * + *{width:66%}.grid1-2 > *:first-child,.grid2-1 > * + *{width:32%}.grid1-3 > *:first-child,.grid3-1 > * + *{width:23.5%}.grid3-1 > *:first-child,.grid1-3 > * + *{width:74.5%}table,.table{max-width:100%;border-collapse:collapse;table-layout:fixed;vertical-align:top}table{width:100%}.table{display:table}caption{padding:10px;font-style:italic;color:#555}table{border:1px solid #CCC}tr > * + *{border-left:1px solid #CCC}th,td{padding:.3em .8em;border-bottom:1px solid #CCC;text-align:left}td{color:#333}.alternate{border:0}.alternate tbody{border:1px solid #CCC}.alternate thead tr > * + *{border-left:0}.alternate tbody tr > * + *{border-left:1px solid #CCC}.alternate-vert{border:0;border-right:1px solid #CCC}.alternate-vert tr >:first-child{border-bottom:0}.alternate-vert tr > * + *{border-top:1px solid #CCC}.striped tbody tr:nth-child(odd){background:#EEE;background:rgba(0,0,0,.05)}.striped-vert tr >:first-child{background:#EEE;background:rgba(0,0,0,.05)}.btn{display:inline-block}label{display:inline-block;vertical-align:middle;cursor:pointer}legend{border:0;white-space:normal}button,input,select{margin:0;font-family:"Century Gothic",helvetica,arial,sans-serif;font-size:100%;vertical-align:middle}textarea{min-height:5em;overflow:auto;font-size:1.75em;vertical-align:top;resize:vertical}}ol.styled{counter-reset:styled}ol.styled > li{counter-increment:styled;margin-bottom:.3em;list-style-type:none}ol.styled > li:before{content:counter(styled);display:inline-block;width:1em;height:1em;margin-right:.4em;padding:2px;border-radius:50%;text-align:center;text-indent:-.1em;font-size:.9em;line-height:1;vertical-align:middle;color:#FFF;background:rgba(0,0,0,.5)}@media(min-width:1280px){.large-hidden,.tablet-hidden{display:none !important}.large-visible{display:block !important}.large-no-float{float:none}.large-inbl{display:inline-block;float:none;vertical-align:top}.large-row{display:table;width:100% !important;table-layout:fixed}.large-col{display:table-cell;vertical-align:top}.large-w25{width:25% !important}.large-w33{width:33.3333% !important}.large-w50{width:50% !important}.large-w66{width:66.6666% !important}.large-w75{width:75% !important}.large-w100{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-right:0 !important;margin-left:0 !important;border:0}.large-ma0,.large-man{margin:0 !important}}@media(max-width:768px){.w60,.w66,.w70,.w75,.w80,.w90,.w100,.w600p,.w700p,.w800p,.w960p,.mw960p,.medium-wauto{width:auto}.medium-hidden,.tablet-hidden{display:none !important}.medium-visible{display:block !important}.medium-no-float{float:none}.medium-inbl{display:inline-block;float:none;vertical-align:top}.medium-row{display:table;width:100% !important;table-layout:fixed}.medium-col{display:table-cell;vertical-align:top}.medium-w25{width:25% !important}.medium-w33{width:33.3333% !important}.medium-w50{width:50% !important}.medium-w66{width:66.6666% !important}.medium-w75{width:75% !important}.medium-w100{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-right:0 !important;margin-left:0 !important;border:0}.medium-ma0,.medium-man{margin:0 !important}.grid4 > *{width:49% !important}.grid4 >:first-child + * + *{margin-left:0 !important}.grid6 > *{width:32% !important}.grid6 >:first-child + * + * + *{margin-left:0 !important}}@media(max-width:640px){.mod,.item,.col,fieldset{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-right:0 !important;margin-left:0 !important;border:0}.w30,.w33,.w40,.w50,.w300p,.w400p,.w500p{width:auto}.row{display:block !important;width:100% !important}.tiny-hidden,.phone-hidden{display:none !important}.tiny-visible{display:block !important}.tiny-no-float{float:none}.tiny-inbl{display:inline-block;float:none;vertical-align:top}.tiny-row{display:table;width:100% !important;table-layout:fixed}.tiny-col{display:table-cell;vertical-align:top}th,td{display:block !important;width:auto !important;text-align:left !important}thead{display:none}.tiny-w25{width:25% !important}.tiny-w33{width:33.3333% !important}.tiny-w50{width:50% !important}.tiny-w66{width:66.6666% !important}.tiny-w75{width:75% !important}.tiny-w100{display:block !important;float:none !important;clear:none !important;width:auto !important;margin-right:0 !important;margin-left:0 !important;border:0}.tiny-ma0,.tiny-man{margin:0 !important}} \ No newline at end of file | |||
diff --git a/themes/default/css/messages.css b/themes/default/css/messages.css new file mode 100644 index 00000000..46b54795 --- /dev/null +++ b/themes/default/css/messages.css | |||
@@ -0,0 +1,75 @@ | |||
1 | .messages { | ||
2 | display: block; | ||
3 | clear: both; | ||
4 | width: 400px; | ||
5 | margin: 10px auto 10px; | ||
6 | padding: 10px 0; | ||
7 | -moz-border-radius: 4px; | ||
8 | border-radius: 4px; | ||
9 | } | ||
10 | |||
11 | .messages a.closeMessage { | ||
12 | display: none; | ||
13 | float: right; | ||
14 | width: 16px; | ||
15 | height: 16px; | ||
16 | margin: -14px -8px 0 0; | ||
17 | background: url(../img/messages/close.png) no-repeat; | ||
18 | } | ||
19 | |||
20 | /*.messages:hover a.closeMessage { visibility:visible; }*/ | ||
21 | |||
22 | .messages p { | ||
23 | margin: 3px 0 3px 10px !important; | ||
24 | padding: 0 10px 0 23px !important; | ||
25 | font-size: 14px; | ||
26 | line-height: 16px; | ||
27 | } | ||
28 | |||
29 | .messages.error { | ||
30 | border: 1px solid #c42608; | ||
31 | color: #c00 !important; | ||
32 | background: #fff0ef; | ||
33 | } | ||
34 | |||
35 | .messages.error p { | ||
36 | color: #c00 !important; | ||
37 | background: url(../img/messages/cross.png) no-repeat 0 50%; | ||
38 | } | ||
39 | |||
40 | .messages.success { | ||
41 | border: 1px solid #6dc70c; | ||
42 | background: #e0fbcc; | ||
43 | } | ||
44 | |||
45 | .messages.success p { | ||
46 | color: #2b6301 !important; | ||
47 | background: url(../img/messages/tick.png) no-repeat 0 50%; | ||
48 | } | ||
49 | |||
50 | .messages.warning { | ||
51 | border: 1px solid #ebcd41; | ||
52 | color: #000; | ||
53 | background: #fffcd3; | ||
54 | } | ||
55 | |||
56 | .messages.warning p { | ||
57 | color: #5f4e01; | ||
58 | background: url(../img/messages/warning.png) no-repeat 0 50%; | ||
59 | } | ||
60 | |||
61 | .messages.information, | ||
62 | .messages.info { | ||
63 | border: 1px solid #82aee7; | ||
64 | background: #dfebfb; | ||
65 | } | ||
66 | |||
67 | .messages.information p, | ||
68 | .messages.info p { | ||
69 | color: #064393; | ||
70 | background: url(../img/messages/help.png) no-repeat 0 50%; | ||
71 | } | ||
72 | |||
73 | .messages.information a { | ||
74 | text-decoration: underline; | ||
75 | } | ||
diff --git a/themes/default/css/print.css b/themes/default/css/print.css new file mode 100644 index 00000000..9aefa779 --- /dev/null +++ b/themes/default/css/print.css | |||
@@ -0,0 +1,48 @@ | |||
1 | /* ### Layout ### */ | ||
2 | |||
3 | body { | ||
4 | font-family: Serif; | ||
5 | background-color: #fff; | ||
6 | } | ||
7 | |||
8 | @page { | ||
9 | margin: 1cm; | ||
10 | } | ||
11 | |||
12 | img { | ||
13 | max-width: 100% !important; | ||
14 | } | ||
15 | |||
16 | /* ### Content ### */ | ||
17 | |||
18 | /* Hide useless blocks */ | ||
19 | body > header, | ||
20 | #links, | ||
21 | #sort, | ||
22 | body > footer, | ||
23 | .top_link, | ||
24 | div.tools, | ||
25 | header div, | ||
26 | .messages, | ||
27 | .entrie + .results { | ||
28 | display: none !important; | ||
29 | } | ||
30 | |||
31 | article { | ||
32 | border: none !important; | ||
33 | } | ||
34 | |||
35 | /* Add URL after links */ | ||
36 | .vieworiginal a:after { | ||
37 | content: " (" attr(href) ")"; | ||
38 | } | ||
39 | |||
40 | /* Add explanation after abbr */ | ||
41 | abbr[title]:after { | ||
42 | content: " (" attr(title) ")"; | ||
43 | } | ||
44 | |||
45 | /* Change border on current pager item */ | ||
46 | .pagination span.current { | ||
47 | border-style: dashed; | ||
48 | } | ||
diff --git a/themes/default/css/style-default.css b/themes/default/css/style-default.css new file mode 100644 index 00000000..9dc7c0b0 --- /dev/null +++ b/themes/default/css/style-default.css | |||
@@ -0,0 +1,55 @@ | |||
1 | a.back span { | ||
2 | background-image: url('../img/default/left.png'); | ||
3 | } | ||
4 | |||
5 | a.top span { | ||
6 | background-image: url('../img/default/top.png'); | ||
7 | } | ||
8 | |||
9 | a.fav span, | ||
10 | a.fav-off span:hover { | ||
11 | background-image: url('../img/default/star-on.png'); | ||
12 | } | ||
13 | |||
14 | a.fav span:hover, | ||
15 | a.fav-off span { | ||
16 | background-image: url('../img/default/star-off.png'); | ||
17 | } | ||
18 | |||
19 | a.archive span, | ||
20 | a.archive-off span:hover { | ||
21 | background-image: url('../img/default/checkmark-on.png'); | ||
22 | } | ||
23 | |||
24 | a.archive span:hover, | ||
25 | a.archive-off span { | ||
26 | background-image: url('../img/default/checkmark-off.png'); | ||
27 | } | ||
28 | |||
29 | a.twitter span { | ||
30 | background-image: url('../img/default/twitter.png'); | ||
31 | } | ||
32 | |||
33 | a.shaarli span { | ||
34 | background-image: url('../img/default/shaarli.png'); | ||
35 | } | ||
36 | |||
37 | a.flattr span { | ||
38 | background-image: url('../img/default/flattr.png'); | ||
39 | } | ||
40 | |||
41 | a.email span { | ||
42 | background-image: url('../img/default/envelop.png'); | ||
43 | } | ||
44 | |||
45 | a.delete span { | ||
46 | background-image: url('../img/default/remove.png'); | ||
47 | } | ||
48 | |||
49 | a.link span { | ||
50 | background-image: url('../img/default/link.png'); | ||
51 | } | ||
52 | |||
53 | a.bad-display span { | ||
54 | background-image: url('../img/default/bad-display.png'); | ||
55 | } \ No newline at end of file | ||
diff --git a/themes/default/css/style.css b/themes/default/css/style.css new file mode 100644 index 00000000..eb04f0c4 --- /dev/null +++ b/themes/default/css/style.css | |||
@@ -0,0 +1,321 @@ | |||
1 | body { | ||
2 | margin: 10px; | ||
3 | font-family: 'Roboto',Verdana,Geneva,sans-serif; | ||
4 | font-size: 16px; | ||
5 | color: #000; | ||
6 | } | ||
7 | |||
8 | header { | ||
9 | text-align: center; | ||
10 | } | ||
11 | |||
12 | header h1 { | ||
13 | font-size: 1.3em; | ||
14 | } | ||
15 | |||
16 | a, | ||
17 | a:hover, | ||
18 | a:visited { | ||
19 | color: #000; | ||
20 | } | ||
21 | |||
22 | .bouton { | ||
23 | border: none; | ||
24 | border-radius: 2px; | ||
25 | color: #fff; | ||
26 | background-color: #000; | ||
27 | } | ||
28 | |||
29 | .bouton:hover { | ||
30 | color: #f1f1f1; | ||
31 | background-color: #222; | ||
32 | cursor: pointer; | ||
33 | } | ||
34 | |||
35 | #main { | ||
36 | margin: 0 auto; | ||
37 | } | ||
38 | |||
39 | #main #links { | ||
40 | padding: 0; | ||
41 | text-align: center; | ||
42 | font-size: 0.9em; | ||
43 | list-style-type: none; | ||
44 | } | ||
45 | |||
46 | #main #links li { | ||
47 | display: inline; | ||
48 | } | ||
49 | |||
50 | #main #links li .current { | ||
51 | -webkit-border-radius: 2px; | ||
52 | border-radius: 2px; | ||
53 | color: #fff; | ||
54 | background-color: #000; | ||
55 | } | ||
56 | |||
57 | #main #sort { | ||
58 | padding: 0; | ||
59 | text-align: center; | ||
60 | list-style-type: none; | ||
61 | opacity: 0.5; | ||
62 | } | ||
63 | |||
64 | #main #sort li { | ||
65 | display: inline; | ||
66 | font-size: 0.9em; | ||
67 | } | ||
68 | |||
69 | #main #sort li + li { | ||
70 | margin-left: 10px; | ||
71 | } | ||
72 | |||
73 | #main #sort a { | ||
74 | padding: 2px 2px 0; | ||
75 | vertical-align: middle; | ||
76 | } | ||
77 | |||
78 | #main #sort img { | ||
79 | vertical-align: baseline; | ||
80 | } | ||
81 | #main #sort img:hover { | ||
82 | cursor: pointer; | ||
83 | } | ||
84 | |||
85 | #links a { | ||
86 | padding: 5px 10px; | ||
87 | text-decoration: none; | ||
88 | } | ||
89 | |||
90 | #links a:hover { | ||
91 | -webkit-border-radius: 2px; | ||
92 | border-radius: 2px; | ||
93 | color: #f1f1f1; | ||
94 | background-color: #040707; | ||
95 | } | ||
96 | |||
97 | /*** ***/ | ||
98 | |||
99 | /*** LINKS DISPLAY ***/ | ||
100 | |||
101 | #main .tool { | ||
102 | text-decoration: none; | ||
103 | cursor: pointer; | ||
104 | } | ||
105 | |||
106 | #main #content { | ||
107 | margin-top: 20px; | ||
108 | } | ||
109 | |||
110 | #main #content h2 { | ||
111 | text-decoration: none; | ||
112 | font-size: 1.3em; | ||
113 | } | ||
114 | |||
115 | #main #content .entrie { | ||
116 | margin-top: 15px; | ||
117 | padding-bottom: 15px; | ||
118 | border-bottom: 1px dashed #222; | ||
119 | overflow: hidden; | ||
120 | } | ||
121 | |||
122 | /* First entry */ | ||
123 | #main #content .results + .entrie { | ||
124 | clear: both; | ||
125 | margin-top: 0; | ||
126 | } | ||
127 | |||
128 | #main .entrie .tools { | ||
129 | float: right; | ||
130 | text-align: right; | ||
131 | list-style-type: none; | ||
132 | opacity: 0.5; | ||
133 | } | ||
134 | |||
135 | #main .entrie .tools .tool span { | ||
136 | display: inline-block; | ||
137 | width: 16px; | ||
138 | height: 16px; | ||
139 | /* Hide textual content */ | ||
140 | overflow: hidden; | ||
141 | text-align: left; | ||
142 | text-indent: -9999px; | ||
143 | } | ||
144 | |||
145 | /*** ***/ | ||
146 | |||
147 | /*** ARTICLE PAGE ***/ | ||
148 | |||
149 | #article { | ||
150 | margin: 0 auto; | ||
151 | } | ||
152 | |||
153 | #article header { | ||
154 | border-bottom: 1px solid #222; | ||
155 | } | ||
156 | |||
157 | #article header { | ||
158 | text-align: left; | ||
159 | } | ||
160 | |||
161 | #article header h1 small { | ||
162 | float: right; | ||
163 | font-size: 0.6em; | ||
164 | } | ||
165 | |||
166 | #article header a { | ||
167 | text-decoration: none; | ||
168 | } | ||
169 | |||
170 | .backhome { | ||
171 | display: inline; | ||
172 | } | ||
173 | |||
174 | .results { | ||
175 | padding: 15px 0; | ||
176 | overflow: hidden; | ||
177 | } | ||
178 | |||
179 | .nb-results { | ||
180 | float: left; | ||
181 | font-size: 0.9em; | ||
182 | line-height: 24px; | ||
183 | vertical-align: middle; | ||
184 | } | ||
185 | |||
186 | #article_toolbar { | ||
187 | position: fixed; | ||
188 | bottom: 0; | ||
189 | left: 0; | ||
190 | width: 100%; | ||
191 | height: 50px; | ||
192 | padding-top: 17px; | ||
193 | text-align: center; | ||
194 | color: #fff; | ||
195 | opacity: 0.8; | ||
196 | background: #fff; | ||
197 | } | ||
198 | |||
199 | #article_toolbar li { | ||
200 | display: inline; | ||
201 | padding-right: 30px; | ||
202 | } | ||
203 | |||
204 | #article_toolbar .tool { | ||
205 | padding: 0 2px; | ||
206 | } | ||
207 | |||
208 | #article_toolbar .tool span { | ||
209 | display: inline-block; | ||
210 | width: 16px; | ||
211 | height: 16px; | ||
212 | /* Hide textual content */ | ||
213 | overflow: hidden; | ||
214 | text-align: left; | ||
215 | text-indent: -9999px; | ||
216 | } | ||
217 | |||
218 | /*** ***/ | ||
219 | |||
220 | /*** PAGINATION ***/ | ||
221 | |||
222 | .pagination { | ||
223 | float: right; | ||
224 | text-align: right; | ||
225 | } | ||
226 | |||
227 | .pagination a { | ||
228 | height: 25px; | ||
229 | margin: 2px; | ||
230 | padding: 4px 8px; | ||
231 | border: 1px solid #d5d5d5; | ||
232 | text-decoration: none; | ||
233 | font-size: 11px; | ||
234 | font-weight: bold; | ||
235 | color: #333; | ||
236 | } | ||
237 | |||
238 | .pagination a:hover, | ||
239 | .pagination a:active { | ||
240 | background-color: #efefef; | ||
241 | } | ||
242 | |||
243 | .pagination .current { | ||
244 | height: 25px; | ||
245 | margin: 2px; | ||
246 | padding: 4px 8px; | ||
247 | border: 1px solid #d5d5d5; | ||
248 | text-decoration: none; | ||
249 | font-size: 11px; | ||
250 | font-weight: bold; | ||
251 | color: #000; | ||
252 | background-color: #ccc; | ||
253 | } | ||
254 | |||
255 | .pagination .disabled { | ||
256 | display: none; | ||
257 | } | ||
258 | |||
259 | #bookmarklet { | ||
260 | padding: 5px; | ||
261 | border: 1px dashed #808080; | ||
262 | background: #fff; | ||
263 | cursor: move; | ||
264 | } | ||
265 | |||
266 | .top_link { | ||
267 | display: none; | ||
268 | z-index: 2000; | ||
269 | position: fixed; | ||
270 | right: 15px; | ||
271 | bottom: 15px; | ||
272 | padding: 20px; | ||
273 | -webkit-border-radius: 40px; | ||
274 | -moz-border-radius: 40px; | ||
275 | border-radius: 40px; | ||
276 | opacity: 0.9; | ||
277 | background: #ccc; | ||
278 | } | ||
279 | |||
280 | footer { | ||
281 | clear: both; | ||
282 | } | ||
283 | |||
284 | .reading-time { | ||
285 | font-size: 0.8em; | ||
286 | } | ||
287 | |||
288 | #inputform { | ||
289 | display: none; | ||
290 | margin-top: 5px; | ||
291 | margin-right: auto; | ||
292 | margin-left: auto; | ||
293 | padding-bottom: 5px; | ||
294 | max-width: 300px; | ||
295 | border-radius: 3px; | ||
296 | text-align: center; | ||
297 | color: #fff; | ||
298 | opacity: 0.8; | ||
299 | background-color: rgba(0,0,0,0.9); | ||
300 | } | ||
301 | |||
302 | a.back span, | ||
303 | a.top span, | ||
304 | a.fav span, | ||
305 | a.fav span:hover, | ||
306 | a.fav-off span, | ||
307 | a.fav-off span:hover, | ||
308 | a.archive span, | ||
309 | a.archive span:hover, | ||
310 | a.archive-off span, | ||
311 | a.archive-off span:hover, | ||
312 | a.twitter span, | ||
313 | a.shaarli span, | ||
314 | a.flattr span, | ||
315 | a.email span, | ||
316 | a.delete span, | ||
317 | a.link span, | ||
318 | a.bad-display span, | ||
319 | a.reading-time span { | ||
320 | background-repeat: no-repeat; | ||
321 | } \ No newline at end of file | ||
diff --git a/themes/default/error.twig b/themes/default/error.twig new file mode 100644 index 00000000..c829d12b --- /dev/null +++ b/themes/default/error.twig | |||
@@ -0,0 +1,6 @@ | |||
1 | {% extends "layout.twig" %} | ||
2 | {% block title %}{% trans "plop" %}{% endblock %} | ||
3 | {% block content %} | ||
4 | {{ msg|raw }} | ||
5 | <p>Don't forget <a href="http://inthepoche.com/doc">the documentation</a>.</p> | ||
6 | {% endblock %} \ No newline at end of file | ||
diff --git a/themes/default/export.twig b/themes/default/export.twig new file mode 100644 index 00000000..4adb9540 --- /dev/null +++ b/themes/default/export.twig | |||
@@ -0,0 +1 @@ | |||
{{ export }} \ No newline at end of file | |||
diff --git a/themes/default/home.twig b/themes/default/home.twig new file mode 100644 index 00000000..c1b29ec3 --- /dev/null +++ b/themes/default/home.twig | |||
@@ -0,0 +1,49 @@ | |||
1 | {% extends "layout.twig" %} | ||
2 | {% block title %} | ||
3 | {% if view == 'fav' %} | ||
4 | {% trans "favoris" %} | ||
5 | {% elseif view == 'archive' %} | ||
6 | {% trans "archive" %} | ||
7 | {% else %} | ||
8 | {% trans "unread" %} | ||
9 | {% endif %} | ||
10 | {% endblock %} | ||
11 | {% block menu %} | ||
12 | {% include '_menu.twig' %} | ||
13 | {% endblock %} | ||
14 | {% block precontent %} | ||
15 | {% if entries|length > 1 %} | ||
16 | <ul id="sort"> | ||
17 | <li><a href="./?sort=ia&view={{ view }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ 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="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by date desc" %}" title="{% trans "by date desc" %}" /></a></li> | ||
18 | <li><a href="./?sort=ta&view={{ view }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ 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="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by title desc" %}" title="{% trans "by title desc" %}" /></a></li> | ||
19 | </ul> | ||
20 | {% endif %} | ||
21 | {% endblock %} | ||
22 | {% block content %} | ||
23 | {% if entries is empty %} | ||
24 | <div class="messages warning"><p>{% trans "No link available here!" %}</p></div> | ||
25 | {% else %} | ||
26 | {% block pager %} | ||
27 | {% if nb_results > 1 %} | ||
28 | <div class="results"> | ||
29 | <div class="nb-results">{{ nb_results }} {% trans "results" %}</div> | ||
30 | {{ page_links | raw }} | ||
31 | </div> | ||
32 | {% endif %} | ||
33 | {% endblock %} | ||
34 | {% for entry in entries %} | ||
35 | <div id="entry-{{ entry.id|e }}" class="entrie"> | ||
36 | <h2><a href="index.php?view=view&id={{ entry.id|e }}">{{ entry.title|raw }}</a></h2> | ||
37 | <ul class="tools"> | ||
38 | <li><a title="{% trans "toggle mark as read" %}" class="tool {% if entry.is_read == 0 %}archive-off{% else %}archive{% endif %}" href="./?action=toggle_archive&id={{ entry.id|e }}"><span>{% trans "toggle mark as read" %}</span></a></li> | ||
39 | <li><a title="{% trans "toggle favorite" %}" class="tool {% if entry.is_fav == 0 %}fav-off{% else %}fav{% endif %}" href="./?action=toggle_fav&id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li> | ||
40 | <li><a title="{% trans "delete" %}" class="tool delete" href="./?action=delete&id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li> | ||
41 | <li><a href="{{ entry.url|e }}" target="_blank" title="{% trans "original" %} : {{ entry.title|e }}" class="tool link"><span>{{ entry.url | e | getDomain }}</span></a></li> | ||
42 | <li><a target="_blank" title="{% trans "estimated reading time:" %} {{ entry.content| getReadingTime }} min" class="reading-time"><span>{{ entry.content| getReadingTime }} min</span></a></li> | ||
43 | </ul> | ||
44 | <p>{{ entry.content|striptags|slice(0, 300) }}...</p> | ||
45 | </div> | ||
46 | {% endfor %} | ||
47 | {% endif %} | ||
48 | {{ block('pager') }} | ||
49 | {% endblock %} \ No newline at end of file | ||
diff --git a/themes/default/img/apple-touch-icon-144x144-precomposed.png b/themes/default/img/apple-touch-icon-144x144-precomposed.png new file mode 100644 index 00000000..557b479c --- /dev/null +++ b/themes/default/img/apple-touch-icon-144x144-precomposed.png | |||
Binary files differ | |||
diff --git a/themes/default/img/apple-touch-icon-72x72-precomposed.png b/themes/default/img/apple-touch-icon-72x72-precomposed.png new file mode 100644 index 00000000..e167d3a4 --- /dev/null +++ b/themes/default/img/apple-touch-icon-72x72-precomposed.png | |||
Binary files differ | |||
diff --git a/themes/default/img/apple-touch-icon.png b/themes/default/img/apple-touch-icon.png new file mode 100644 index 00000000..4d222fba --- /dev/null +++ b/themes/default/img/apple-touch-icon.png | |||
Binary files differ | |||
diff --git a/themes/default/img/default/backtotop.png b/themes/default/img/default/backtotop.png new file mode 100644 index 00000000..051238ef --- /dev/null +++ b/themes/default/img/default/backtotop.png | |||
Binary files differ | |||
diff --git a/themes/default/img/default/bad-display.png b/themes/default/img/default/bad-display.png new file mode 100755 index 00000000..6866799f --- /dev/null +++ b/themes/default/img/default/bad-display.png | |||
Binary files differ | |||
diff --git a/themes/default/img/default/checkmark-off.png b/themes/default/img/default/checkmark-off.png new file mode 100644 index 00000000..3db5a06d --- /dev/null +++ b/themes/default/img/default/checkmark-off.png | |||
Binary files differ | |||
diff --git a/themes/default/img/default/checkmark-on.png b/themes/default/img/default/checkmark-on.png new file mode 100644 index 00000000..cd3abb2c --- /dev/null +++ b/themes/default/img/default/checkmark-on.png | |||
Binary files differ | |||
diff --git a/themes/default/img/default/down.png b/themes/default/img/default/down.png new file mode 100644 index 00000000..b9d536a7 --- /dev/null +++ b/themes/default/img/default/down.png | |||
Binary files differ | |||
diff --git a/themes/default/img/default/envelop.png b/themes/default/img/default/envelop.png new file mode 100644 index 00000000..6be1c886 --- /dev/null +++ b/themes/default/img/default/envelop.png | |||
Binary files differ | |||
diff --git a/themes/default/img/default/flattr.png b/themes/default/img/default/flattr.png new file mode 100755 index 00000000..0404aaea --- /dev/null +++ b/themes/default/img/default/flattr.png | |||
Binary files differ | |||
diff --git a/themes/default/img/default/left.png b/themes/default/img/default/left.png new file mode 100644 index 00000000..a0a53631 --- /dev/null +++ b/themes/default/img/default/left.png | |||
Binary files differ | |||
diff --git a/themes/default/img/default/link.png b/themes/default/img/default/link.png new file mode 100755 index 00000000..db62819d --- /dev/null +++ b/themes/default/img/default/link.png | |||
Binary files differ | |||
diff --git a/themes/default/img/default/remove.png b/themes/default/img/default/remove.png new file mode 100644 index 00000000..f8ad56a3 --- /dev/null +++ b/themes/default/img/default/remove.png | |||
Binary files differ | |||
diff --git a/themes/default/img/default/shaarli.png b/themes/default/img/default/shaarli.png new file mode 100644 index 00000000..1eb30f60 --- /dev/null +++ b/themes/default/img/default/shaarli.png | |||
Binary files differ | |||
diff --git a/themes/default/img/default/star-off.png b/themes/default/img/default/star-off.png new file mode 100644 index 00000000..6a0133a7 --- /dev/null +++ b/themes/default/img/default/star-off.png | |||
Binary files differ | |||
diff --git a/themes/default/img/default/star-on.png b/themes/default/img/default/star-on.png new file mode 100644 index 00000000..a9f96eaa --- /dev/null +++ b/themes/default/img/default/star-on.png | |||
Binary files differ | |||
diff --git a/themes/default/img/default/top.png b/themes/default/img/default/top.png new file mode 100644 index 00000000..954a8c0a --- /dev/null +++ b/themes/default/img/default/top.png | |||
Binary files differ | |||
diff --git a/themes/default/img/default/twitter.png b/themes/default/img/default/twitter.png new file mode 100644 index 00000000..cfcfe419 --- /dev/null +++ b/themes/default/img/default/twitter.png | |||
Binary files differ | |||
diff --git a/themes/default/img/favicon.ico b/themes/default/img/favicon.ico new file mode 100644 index 00000000..0e9ff779 --- /dev/null +++ b/themes/default/img/favicon.ico | |||
Binary files differ | |||
diff --git a/themes/default/img/logo.png b/themes/default/img/logo.png new file mode 100644 index 00000000..5305c77d --- /dev/null +++ b/themes/default/img/logo.png | |||
Binary files differ | |||
diff --git a/themes/default/img/messages/close.png b/themes/default/img/messages/close.png new file mode 100644 index 00000000..731aa018 --- /dev/null +++ b/themes/default/img/messages/close.png | |||
Binary files differ | |||
diff --git a/themes/default/img/messages/cross.png b/themes/default/img/messages/cross.png new file mode 100644 index 00000000..1514d51a --- /dev/null +++ b/themes/default/img/messages/cross.png | |||
Binary files differ | |||
diff --git a/themes/default/img/messages/help.png b/themes/default/img/messages/help.png new file mode 100644 index 00000000..5c870176 --- /dev/null +++ b/themes/default/img/messages/help.png | |||
Binary files differ | |||
diff --git a/themes/default/img/messages/tick.png b/themes/default/img/messages/tick.png new file mode 100644 index 00000000..a9925a06 --- /dev/null +++ b/themes/default/img/messages/tick.png | |||
Binary files differ | |||
diff --git a/themes/default/img/messages/warning.png b/themes/default/img/messages/warning.png new file mode 100644 index 00000000..628cf2da --- /dev/null +++ b/themes/default/img/messages/warning.png | |||
Binary files differ | |||
diff --git a/themes/default/install.twig b/themes/default/install.twig new file mode 100644 index 00000000..6e85e5cb --- /dev/null +++ b/themes/default/install.twig | |||
@@ -0,0 +1,28 @@ | |||
1 | {% extends "layout.twig" %} | ||
2 | {% block title %}{% trans "installation" %}{% endblock %} | ||
3 | {% block content %} | ||
4 | <form method="post" action="?install" name="loginform"> | ||
5 | <fieldset class="w500p center"> | ||
6 | <h2 class="mbs txtcenter">{% trans "install your poche" %}</h2> | ||
7 | <p> | ||
8 | {% trans "poche is still not installed. Please fill the below form to install it. Don't hesitate to <a href='http://inthepoche.com/doc'>read the documentation on poche website</a>." %} | ||
9 | </p> | ||
10 | <p class="row"> | ||
11 | <label class="col w150p" for="login">{% trans "Login" %}</label> | ||
12 | <input class="col" type="text" id="login" name="login" placeholder="Login" tabindex="1" autofocus /> | ||
13 | </p> | ||
14 | <p class="row"> | ||
15 | <label class="col w150p" for="password">{% trans "Password" %}</label> | ||
16 | <input class="col" type="password" id="password" name="password" placeholder="Password" tabindex="2"> | ||
17 | </p> | ||
18 | <p class="row"> | ||
19 | <label class="col w150p" for="password_repeat">{% trans "Repeat your password" %}</label> | ||
20 | <input class="col" type="password" id="password_repeat" name="password_repeat" placeholder="Password" tabindex="3"> | ||
21 | </p> | ||
22 | <p class="row mts txtcenter"> | ||
23 | <button class="bouton" type="submit" tabindex="4">{% trans "Install" %}</button> | ||
24 | </p> | ||
25 | </fieldset> | ||
26 | <input type="hidden" name="token" value="{{ token }}"> | ||
27 | </form> | ||
28 | {% endblock %} \ No newline at end of file | ||
diff --git a/themes/default/js/restoreScroll.js b/themes/default/js/restoreScroll.js new file mode 100644 index 00000000..331c9e19 --- /dev/null +++ b/themes/default/js/restoreScroll.js | |||
@@ -0,0 +1,25 @@ | |||
1 | function supportsLocalStorage() { | ||
2 | try { | ||
3 | return 'localStorage' in window && window['localStorage'] !== null; | ||
4 | } catch (e) { | ||
5 | return false; | ||
6 | } | ||
7 | } | ||
8 | |||
9 | function savePercent(id, percent) { | ||
10 | if (!supportsLocalStorage()) { return false; } | ||
11 | localStorage["poche.article." + id + ".percent"] = percent; | ||
12 | return true; | ||
13 | } | ||
14 | |||
15 | function retrievePercent(id) { | ||
16 | if (!supportsLocalStorage()) { return false; } | ||
17 | |||
18 | var bheight = $(document).height(); | ||
19 | var percent = localStorage["poche.article." + id + ".percent"]; | ||
20 | var scroll = bheight * percent; | ||
21 | |||
22 | $('html,body').animate({scrollTop: scroll}, 'fast'); | ||
23 | |||
24 | return true; | ||
25 | } \ No newline at end of file | ||
diff --git a/themes/default/layout.twig b/themes/default/layout.twig new file mode 100644 index 00000000..fec7054a --- /dev/null +++ b/themes/default/layout.twig | |||
@@ -0,0 +1,31 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <!--[if lte IE 6]><html class="no-js ie6 ie67 ie678" lang="{{ lang }}"><![endif]--> | ||
3 | <!--[if lte IE 7]><html class="no-js ie7 ie67 ie678" lang="{{ lang }}"><![endif]--> | ||
4 | <!--[if IE 8]><html class="no-js ie8 ie678" lang="{{ lang }}"><![endif]--> | ||
5 | <!--[if gt IE 8]><html class="no-js" lang="{{ lang }}"><![endif]--> | ||
6 | <html lang="{{ lang }}"> | ||
7 | <head> | ||
8 | <meta name="viewport" content="initial-scale=1.0"> | ||
9 | <meta charset="utf-8"> | ||
10 | <!--[if IE]> | ||
11 | <meta http-equiv="X-UA-Compatible" content="IE=10"> | ||
12 | <![endif]--> | ||
13 | <title>{% block title %}{% endblock %} - poche</title> | ||
14 | {% include '_head.twig' %} | ||
15 | {% include '_bookmarklet.twig' %} | ||
16 | </head> | ||
17 | <body> | ||
18 | {% include '_top.twig' %} | ||
19 | <div id="main"> | ||
20 | {% block menu %}{% endblock %} | ||
21 | {% block precontent %}{% endblock %} | ||
22 | {% block messages %} | ||
23 | {% include '_messages.twig' %} | ||
24 | {% endblock %} | ||
25 | <div id="content" class="w600p center"> | ||
26 | {% block content %}{% endblock %} | ||
27 | </div> | ||
28 | </div> | ||
29 | {% include '_footer.twig' %} | ||
30 | </body> | ||
31 | </html> \ No newline at end of file | ||
diff --git a/themes/default/login.twig b/themes/default/login.twig new file mode 100644 index 00000000..0ae130bc --- /dev/null +++ b/themes/default/login.twig | |||
@@ -0,0 +1,32 @@ | |||
1 | {% extends "layout.twig" %} | ||
2 | |||
3 | {% block title %}{% trans "login to your poche" %}{% endblock %} | ||
4 | {% block content %} | ||
5 | <form method="post" action="?login" name="loginform"> | ||
6 | <fieldset class="w500p center"> | ||
7 | <h2 class="mbs txtcenter">{% trans "login to your poche" %}</h2> | ||
8 | {% if constant('MODE_DEMO') == 1 %}<p>{% trans "you are in demo mode, some features may be disabled." %}</p>{% endif %} | ||
9 | <div class="row"> | ||
10 | <label class="col w150p" for="login">{% trans "Login" %}</label> | ||
11 | <input class="col" type="text" id="login" name="login" placeholder="Login" tabindex="1" autofocus {% if constant('MODE_DEMO') == 1 %}value="poche"{% endif %} /> | ||
12 | </div> | ||
13 | |||
14 | <div class="row"> | ||
15 | <label class="col w150p" for="password">{% trans "Password" %}</label> | ||
16 | <input class="col" type="password" id="password" name="password" placeholder="Password" tabindex="2" {% if constant('MODE_DEMO') == 1 %}value="poche"{% endif %} /> | ||
17 | </div> | ||
18 | <div class="row"> | ||
19 | <label class="col w150p" for="longlastingsession">{% trans "Stay signed in" %}</label> | ||
20 | <div class="col"> | ||
21 | <input type="checkbox" id="longlastingsession" name="longlastingsession" tabindex="3"> | ||
22 | <small class="inbl">{% trans "(Do not check on public computers)" %}</small> | ||
23 | </div> | ||
24 | </div> | ||
25 | <div class="row mts txtcenter"> | ||
26 | <button class="bouton" type="submit" tabindex="4">{% trans "Login" %}</button> | ||
27 | </div> | ||
28 | </fieldset> | ||
29 | <input type="hidden" name="returnurl" value="{{ referer }}"> | ||
30 | <input type="hidden" name="token" value="{{ token }}"> | ||
31 | </form> | ||
32 | {% endblock %} \ No newline at end of file | ||
diff --git a/themes/default/view.twig b/themes/default/view.twig new file mode 100644 index 00000000..1e54ae38 --- /dev/null +++ b/themes/default/view.twig | |||
@@ -0,0 +1,51 @@ | |||
1 | {% extends "layout.twig" %} | ||
2 | {% block title %}{{ entry.title|raw }} ({{ entry.url | e | getDomain }}){% endblock %} | ||
3 | {% block content %} | ||
4 | <div id="article_toolbar"> | ||
5 | <ul> | ||
6 | <li><a href="./" title="{% trans "back to home" %}" class="tool back"><span>{% trans "back to home" %}</span></a></li> | ||
7 | <li><a href="#top" title="{% trans "back to top" %}" class="tool top"><span>{% trans "back to top" %}</span></a></li> | ||
8 | <li><a href="{{ entry.url|e }}" target="_blank" title="{% trans "original" %} : {{ entry.title|e }}" class="tool link"><span>{{ entry.url | e | getDomain }}</span></a></li> | ||
9 | <li><a title="{% trans "toggle mark as read" %}" class="tool {% if entry.is_read == 0 %}archive-off{% else %}archive{% endif %}" href="./?action=toggle_archive&id={{ entry.id|e }}"><span>{% trans "toggle mark as read" %}</span></a></li> | ||
10 | <li><a title="{% trans "toggle favorite" %}" class="tool {% if entry.is_fav == 0 %}fav-off{% else %}fav{% endif %}" href="./?action=toggle_fav&id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li> | ||
11 | <li><a title="{% trans "delete" %}" class="tool delete" href="./?action=delete&id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li> | ||
12 | {% 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 %} | ||
13 | {% 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 %} | ||
14 | {% if constant('SHARE_SHAARLI') == 1 %}<li><a href="{{ constant('SHAARLI_URL') }}/index.php?post={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="{% trans "shaarli" %}"><span>{% trans "shaarli" %}</span></a></li>{% endif %} | ||
15 | {% if constant('FLATTR') == 1 %}{% if flattr.status == constant('FLATTRABLE') %}<li><a href="http://flattr.com/submit/auto?url={{ entry.url }}" class="tool flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span></a></li>{% elseif flattr.status == constant('FLATTRED') %}<li><a href="{{ flattr.flattrItemURL }}" class="tool flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span>{{ flattr.numflattrs }}</a></li>{% endif %}{% endif %} | ||
16 | <li><a href="mailto:support@inthepoche.com?subject=Wrong%20display%20in%20poche&body={{ entry.url|url_encode }}" title="{% trans "this article appears wrong?" %}" class="tool bad-display"><span>{% trans "this article appears wrong?" %}</span></a></li> | ||
17 | </ul> | ||
18 | </div> | ||
19 | <div id="article"> | ||
20 | <header class="mbm"> | ||
21 | <h1>{{ entry.title|raw }}</h1> | ||
22 | </header> | ||
23 | <article> | ||
24 | {{ content | raw }} | ||
25 | </article> | ||
26 | </div> | ||
27 | <script src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/js/restoreScroll.js"></script> | ||
28 | <script type="text/javascript"> | ||
29 | $(document).ready(function() { | ||
30 | |||
31 | $(window).scroll(function(e){ | ||
32 | var scrollTop = $(window).scrollTop(); | ||
33 | var docHeight = $(document).height(); | ||
34 | var scrollPercent = (scrollTop) / (docHeight); | ||
35 | var scrollPercentRounded = Math.round(scrollPercent*100)/100; | ||
36 | savePercent({{ entry.id|e }}, scrollPercentRounded); | ||
37 | }); | ||
38 | |||
39 | retrievePercent({{ entry.id|e }}); | ||
40 | |||
41 | $(window).resize(function(){ | ||
42 | retrievePercent({{ entry.id|e }}); | ||
43 | }); | ||
44 | |||
45 | // Hide useless "back to top" link when there is no scrollbar | ||
46 | if ($("body").height() <= $(window).height()) { | ||
47 | $('#article_toolbar .tool.top').parent().hide(); | ||
48 | } | ||
49 | }); | ||
50 | </script> | ||
51 | {% endblock %} \ No newline at end of file | ||
diff --git a/themes/dmagenta/README.md b/themes/dmagenta/README.md new file mode 100644 index 00000000..6abc37e3 --- /dev/null +++ b/themes/dmagenta/README.md | |||
@@ -0,0 +1,3 @@ | |||
1 | # dmagenta (dark magenta) theme | ||
2 | |||
3 | theme created by Nicolas LÅ“uillet aka nico_somb \ No newline at end of file | ||
diff --git a/themes/dmagenta/css/style-dmagenta.css b/themes/dmagenta/css/style-dmagenta.css new file mode 100644 index 00000000..4dc592d2 --- /dev/null +++ b/themes/dmagenta/css/style-dmagenta.css | |||
@@ -0,0 +1,78 @@ | |||
1 | body { | ||
2 | color: #d4d4d4; | ||
3 | background-color: #372d37; | ||
4 | } | ||
5 | |||
6 | a, | ||
7 | a:hover, | ||
8 | a:visited { | ||
9 | color: #8d748d; | ||
10 | } | ||
11 | |||
12 | a.back span { | ||
13 | background-image: url('../img/dmagenta/left.png'); | ||
14 | } | ||
15 | |||
16 | a.top span { | ||
17 | background-image: url('../img/dmagenta/top.png'); | ||
18 | } | ||
19 | |||
20 | a.fav span, | ||
21 | a.fav-off span:hover { | ||
22 | background-image: url('../img/dmagenta/star-on.png'); | ||
23 | } | ||
24 | |||
25 | a.fav span:hover, | ||
26 | a.fav-off span { | ||
27 | background-image: url('../img/dmagenta/star-off.png'); | ||
28 | } | ||
29 | |||
30 | a.archive span, | ||
31 | a.archive-off span:hover { | ||
32 | background-image: url('../img/dmagenta/checkmark-on.png'); | ||
33 | } | ||
34 | |||
35 | a.archive span:hover, | ||
36 | a.archive-off span { | ||
37 | background-image: url('../img/dmagenta/checkmark-off.png'); | ||
38 | } | ||
39 | |||
40 | a.twitter span { | ||
41 | background-image: url('../img/dmagenta/twitter.png'); | ||
42 | } | ||
43 | |||
44 | a.flattr span { | ||
45 | background-image: url('../img/dmagenta/flattr.png'); | ||
46 | } | ||
47 | |||
48 | a.shaarli span { | ||
49 | background-image: url('../img/dmagenta/shaarli.png'); | ||
50 | } | ||
51 | |||
52 | a.email span { | ||
53 | background-image: url('../img/dmagenta/envelop.png'); | ||
54 | } | ||
55 | |||
56 | a.delete span { | ||
57 | background-image: url('../img/dmagenta/remove.png'); | ||
58 | } | ||
59 | |||
60 | a.link span { | ||
61 | background-image: url('../img/dmagenta/link.png'); | ||
62 | } | ||
63 | |||
64 | a.bad-display span { | ||
65 | background-image: url('../img/dmagenta/bad-display.png'); | ||
66 | } | ||
67 | |||
68 | .pagination a { | ||
69 | color: #aaa; | ||
70 | } | ||
71 | |||
72 | #main #links li .current { | ||
73 | background-color: #2d372d; | ||
74 | } | ||
75 | |||
76 | #article_toolbar { | ||
77 | background: #372d37; | ||
78 | } \ No newline at end of file | ||
diff --git a/themes/dmagenta/img/dmagenta/backtotop.png b/themes/dmagenta/img/dmagenta/backtotop.png new file mode 100755 index 00000000..051238ef --- /dev/null +++ b/themes/dmagenta/img/dmagenta/backtotop.png | |||
Binary files differ | |||
diff --git a/themes/dmagenta/img/dmagenta/bad-display.png b/themes/dmagenta/img/dmagenta/bad-display.png new file mode 100755 index 00000000..6866799f --- /dev/null +++ b/themes/dmagenta/img/dmagenta/bad-display.png | |||
Binary files differ | |||
diff --git a/themes/dmagenta/img/dmagenta/checkmark-off.png b/themes/dmagenta/img/dmagenta/checkmark-off.png new file mode 100644 index 00000000..3db5a06d --- /dev/null +++ b/themes/dmagenta/img/dmagenta/checkmark-off.png | |||
Binary files differ | |||
diff --git a/themes/dmagenta/img/dmagenta/checkmark-on.png b/themes/dmagenta/img/dmagenta/checkmark-on.png new file mode 100644 index 00000000..cd3abb2c --- /dev/null +++ b/themes/dmagenta/img/dmagenta/checkmark-on.png | |||
Binary files differ | |||
diff --git a/themes/dmagenta/img/dmagenta/down.png b/themes/dmagenta/img/dmagenta/down.png new file mode 100644 index 00000000..b9d536a7 --- /dev/null +++ b/themes/dmagenta/img/dmagenta/down.png | |||
Binary files differ | |||
diff --git a/themes/dmagenta/img/dmagenta/envelop.png b/themes/dmagenta/img/dmagenta/envelop.png new file mode 100644 index 00000000..6be1c886 --- /dev/null +++ b/themes/dmagenta/img/dmagenta/envelop.png | |||
Binary files differ | |||
diff --git a/themes/dmagenta/img/dmagenta/flattr.png b/themes/dmagenta/img/dmagenta/flattr.png new file mode 100755 index 00000000..0404aaea --- /dev/null +++ b/themes/dmagenta/img/dmagenta/flattr.png | |||
Binary files differ | |||
diff --git a/themes/dmagenta/img/dmagenta/left.png b/themes/dmagenta/img/dmagenta/left.png new file mode 100644 index 00000000..a0a53631 --- /dev/null +++ b/themes/dmagenta/img/dmagenta/left.png | |||
Binary files differ | |||
diff --git a/themes/dmagenta/img/dmagenta/link.png b/themes/dmagenta/img/dmagenta/link.png new file mode 100755 index 00000000..db62819d --- /dev/null +++ b/themes/dmagenta/img/dmagenta/link.png | |||
Binary files differ | |||
diff --git a/themes/dmagenta/img/dmagenta/remove.png b/themes/dmagenta/img/dmagenta/remove.png new file mode 100644 index 00000000..f8ad56a3 --- /dev/null +++ b/themes/dmagenta/img/dmagenta/remove.png | |||
Binary files differ | |||
diff --git a/themes/dmagenta/img/dmagenta/shaarli.png b/themes/dmagenta/img/dmagenta/shaarli.png new file mode 100644 index 00000000..1eb30f60 --- /dev/null +++ b/themes/dmagenta/img/dmagenta/shaarli.png | |||
Binary files differ | |||
diff --git a/themes/dmagenta/img/dmagenta/star-off.png b/themes/dmagenta/img/dmagenta/star-off.png new file mode 100644 index 00000000..6a0133a7 --- /dev/null +++ b/themes/dmagenta/img/dmagenta/star-off.png | |||
Binary files differ | |||
diff --git a/themes/dmagenta/img/dmagenta/star-on.png b/themes/dmagenta/img/dmagenta/star-on.png new file mode 100644 index 00000000..a9f96eaa --- /dev/null +++ b/themes/dmagenta/img/dmagenta/star-on.png | |||
Binary files differ | |||
diff --git a/themes/dmagenta/img/dmagenta/top.png b/themes/dmagenta/img/dmagenta/top.png new file mode 100644 index 00000000..954a8c0a --- /dev/null +++ b/themes/dmagenta/img/dmagenta/top.png | |||
Binary files differ | |||
diff --git a/themes/dmagenta/img/dmagenta/twitter.png b/themes/dmagenta/img/dmagenta/twitter.png new file mode 100644 index 00000000..cfcfe419 --- /dev/null +++ b/themes/dmagenta/img/dmagenta/twitter.png | |||
Binary files differ | |||
diff --git a/themes/dmagenta/screenshot.jpg b/themes/dmagenta/screenshot.jpg new file mode 100644 index 00000000..ab8f1ec2 --- /dev/null +++ b/themes/dmagenta/screenshot.jpg | |||
Binary files differ | |||
diff --git a/themes/solarized-dark/README.md b/themes/solarized-dark/README.md new file mode 100644 index 00000000..81be1f8c --- /dev/null +++ b/themes/solarized-dark/README.md | |||
@@ -0,0 +1,6 @@ | |||
1 | # solarized-dark (Solarized Dark) theme | ||
2 | |||
3 | |||
4 | Theme created by NumEricR | ||
5 | |||
6 | http://github.com/NumEricR/poche-themes | ||
diff --git a/themes/solarized-dark/Solarized-LICENSE.txt b/themes/solarized-dark/Solarized-LICENSE.txt new file mode 100644 index 00000000..a842f663 --- /dev/null +++ b/themes/solarized-dark/Solarized-LICENSE.txt | |||
@@ -0,0 +1,19 @@ | |||
1 | Copyright (c) 2011 Ethan Schoonover | ||
2 | |||
3 | Permission is hereby granted, free of charge, to any person obtaining a copy | ||
4 | of this software and associated documentation files (the "Software"), to deal | ||
5 | in the Software without restriction, including without limitation the rights | ||
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
7 | copies of the Software, and to permit persons to whom the Software is | ||
8 | furnished to do so, subject to the following conditions: | ||
9 | |||
10 | The above copyright notice and this permission notice shall be included in | ||
11 | all copies or substantial portions of the Software. | ||
12 | |||
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
19 | THE SOFTWARE | ||
diff --git a/themes/solarized-dark/css/style-solarized-dark.css b/themes/solarized-dark/css/style-solarized-dark.css new file mode 100644 index 00000000..7ce8a563 --- /dev/null +++ b/themes/solarized-dark/css/style-solarized-dark.css | |||
@@ -0,0 +1,219 @@ | |||
1 | /* | ||
2 | * Solarized Dark - by NumEricR | ||
3 | * http://github.com/NumEricR/poche-themes | ||
4 | * ================================================== | ||
5 | * | ||
6 | * Based on Solarized's palette - (c) 2011 Ethan Schoonover | ||
7 | * See http://ethanschoonover.com/solarized#usage-development | ||
8 | * See http://ethanschoonover.com/solarized#the-values | ||
9 | * | ||
10 | * Background: #002b36 base 03 | ||
11 | * Highlight: #073642 base 02 | ||
12 | * Primary content: #839496 base 0 | ||
13 | * Intermediate: #657b83 base 00 | ||
14 | * Emphasized content: #93a1a1 base 1 | ||
15 | * Secondary content: #586e75 base 01 | ||
16 | * Green: #859900 | ||
17 | * Orange: #cb4b16 | ||
18 | * Red: #dc322f | ||
19 | * Blue: #268bd2 | ||
20 | * | ||
21 | * ================================================== */ | ||
22 | |||
23 | /* Background */ | ||
24 | |||
25 | body, | ||
26 | #article_toolbar { | ||
27 | background-color: #002b36; | ||
28 | } | ||
29 | |||
30 | /* Highlight */ | ||
31 | /* 2 different selectors for selection pseudo-elmt */ | ||
32 | /* See https://developer.mozilla.org/en-US/docs/Web/CSS/::selection */ | ||
33 | ::-moz-selection { | ||
34 | background-color: #073642; | ||
35 | } | ||
36 | ::selection { | ||
37 | background-color: #073642; | ||
38 | } | ||
39 | |||
40 | /* Primary content */ | ||
41 | |||
42 | body, | ||
43 | a, | ||
44 | a:hover, | ||
45 | a:visited { | ||
46 | color: #839496; | ||
47 | } | ||
48 | |||
49 | /* Secondary content */ | ||
50 | |||
51 | .tools p, | ||
52 | .vieworiginal a, | ||
53 | .vieworiginal a:hover, | ||
54 | .vieworiginal a:visited { | ||
55 | color: #586e75; | ||
56 | } | ||
57 | |||
58 | #main #content .entrie, | ||
59 | #article header, | ||
60 | #article article { | ||
61 | border-bottom-color: #586e75; | ||
62 | } | ||
63 | |||
64 | /* Emphasized content */ | ||
65 | |||
66 | .entrie h2 a:hover, | ||
67 | footer, | ||
68 | footer a { | ||
69 | color: #93a1a1; | ||
70 | } | ||
71 | |||
72 | /* Colored content */ | ||
73 | |||
74 | #main .messages.success, | ||
75 | #main .messages.warning, | ||
76 | #main .messages.error, | ||
77 | #main .messages.information, | ||
78 | #main .messages.info { | ||
79 | background-color: #073642; | ||
80 | } | ||
81 | |||
82 | #main .messages.success { | ||
83 | border-color: #859900; | ||
84 | } | ||
85 | |||
86 | #main .messages.success p { | ||
87 | color: #859900 !important; /* Overwrites !important used on messages.css */ | ||
88 | } | ||
89 | |||
90 | #main .messages.warning { | ||
91 | border-color: #cb4b16; | ||
92 | } | ||
93 | |||
94 | #main .messages.warning p { | ||
95 | color: #cb4b16; | ||
96 | } | ||
97 | |||
98 | #main .messages.error { | ||
99 | border-color: #dc322f; | ||
100 | } | ||
101 | |||
102 | #main .messages.error p { | ||
103 | color: #dc322f !important; /* Overwrites !important used on messages.css */ | ||
104 | } | ||
105 | |||
106 | #main .messages.information, | ||
107 | #main .messages.info { | ||
108 | border-color: #268bd2; | ||
109 | } | ||
110 | |||
111 | #main .messages.information p, | ||
112 | #main .messages.info p { | ||
113 | color: #268bd2; | ||
114 | } | ||
115 | |||
116 | /* Miscellaneous */ | ||
117 | |||
118 | .bouton, | ||
119 | .bouton:hover, | ||
120 | #main #links li a.current, | ||
121 | #links a:hover, | ||
122 | .pagination span.current, | ||
123 | .pagination a:hover, | ||
124 | .pagination a:active { | ||
125 | color: #002b36; | ||
126 | background-color: #586e75; | ||
127 | } | ||
128 | |||
129 | .bouton:hover { | ||
130 | background-color: #657b83; | ||
131 | } | ||
132 | |||
133 | #login, | ||
134 | #password, | ||
135 | #password_repeat, | ||
136 | #bookmarklet, | ||
137 | .top_link { | ||
138 | background-color: #073642; | ||
139 | } | ||
140 | |||
141 | #login, | ||
142 | #password, | ||
143 | #password_repeat, | ||
144 | #bookmarklet { | ||
145 | padding: 5px; | ||
146 | border: 1px solid #586e75; | ||
147 | color: #839496; | ||
148 | } | ||
149 | |||
150 | #bookmarklet { | ||
151 | border-style: dashed; | ||
152 | } | ||
153 | |||
154 | .pagination a { | ||
155 | border-color: #586e75; | ||
156 | color: #586e75; | ||
157 | } | ||
158 | |||
159 | .pagination span.current { | ||
160 | border-color: #073642; | ||
161 | } | ||
162 | |||
163 | /* Images */ | ||
164 | |||
165 | a.back span { | ||
166 | background-image: url('../img/solarized-dark/left.png'); | ||
167 | } | ||
168 | |||
169 | a.top span { | ||
170 | background-image: url('../img/solarized-dark/top.png'); | ||
171 | } | ||
172 | |||
173 | a.fav span, | ||
174 | a.fav-off span:hover { | ||
175 | background-image: url('../img/solarized-dark/star-on.png'); | ||
176 | } | ||
177 | |||
178 | a.fav span:hover, | ||
179 | a.fav-off span { | ||
180 | background-image: url('../img/solarized-dark/star-off.png'); | ||
181 | } | ||
182 | |||
183 | a.archive span, | ||
184 | a.archive-off span:hover { | ||
185 | background-image: url('../img/solarized-dark/checkmark-on.png'); | ||
186 | } | ||
187 | |||
188 | a.archive span:hover, | ||
189 | a.archive-off span { | ||
190 | background-image: url('../img/solarized-dark/checkmark-off.png'); | ||
191 | } | ||
192 | |||
193 | a.twitter span { | ||
194 | background-image: url('../img/solarized-dark/twitter.png'); | ||
195 | } | ||
196 | |||
197 | a.flattr span { | ||
198 | background-image: url('../img/solarized-dark/flattr.png'); | ||
199 | } | ||
200 | |||
201 | a.shaarli span { | ||
202 | background-image: url('../img/solarized-dark/shaarli.png'); | ||
203 | } | ||
204 | |||
205 | a.email span { | ||
206 | background-image: url('../img/solarized-dark/envelop.png'); | ||
207 | } | ||
208 | |||
209 | a.delete span { | ||
210 | background-image: url('../img/solarized-dark/remove.png'); | ||
211 | } | ||
212 | |||
213 | a.link span { | ||
214 | background-image: url('../img/solarized-dark/link.png'); | ||
215 | } | ||
216 | |||
217 | a.bad-display span { | ||
218 | background-image: url('../img/solarized-dark/bad-display.png'); | ||
219 | } \ No newline at end of file | ||
diff --git a/themes/solarized-dark/img/solarized-dark/backtotop.png b/themes/solarized-dark/img/solarized-dark/backtotop.png new file mode 100644 index 00000000..1501c2a5 --- /dev/null +++ b/themes/solarized-dark/img/solarized-dark/backtotop.png | |||
Binary files differ | |||
diff --git a/themes/solarized-dark/img/solarized-dark/bad-display.png b/themes/solarized-dark/img/solarized-dark/bad-display.png new file mode 100644 index 00000000..b2c3ca17 --- /dev/null +++ b/themes/solarized-dark/img/solarized-dark/bad-display.png | |||
Binary files differ | |||
diff --git a/themes/solarized-dark/img/solarized-dark/checkmark-off.png b/themes/solarized-dark/img/solarized-dark/checkmark-off.png new file mode 100644 index 00000000..fd7d92fa --- /dev/null +++ b/themes/solarized-dark/img/solarized-dark/checkmark-off.png | |||
Binary files differ | |||
diff --git a/themes/solarized-dark/img/solarized-dark/checkmark-on.png b/themes/solarized-dark/img/solarized-dark/checkmark-on.png new file mode 100644 index 00000000..592965dd --- /dev/null +++ b/themes/solarized-dark/img/solarized-dark/checkmark-on.png | |||
Binary files differ | |||
diff --git a/themes/solarized-dark/img/solarized-dark/down.png b/themes/solarized-dark/img/solarized-dark/down.png new file mode 100644 index 00000000..5de30315 --- /dev/null +++ b/themes/solarized-dark/img/solarized-dark/down.png | |||
Binary files differ | |||
diff --git a/themes/solarized-dark/img/solarized-dark/envelop.png b/themes/solarized-dark/img/solarized-dark/envelop.png new file mode 100644 index 00000000..d3468885 --- /dev/null +++ b/themes/solarized-dark/img/solarized-dark/envelop.png | |||
Binary files differ | |||
diff --git a/themes/solarized-dark/img/solarized-dark/flattr.png b/themes/solarized-dark/img/solarized-dark/flattr.png new file mode 100644 index 00000000..73e3f421 --- /dev/null +++ b/themes/solarized-dark/img/solarized-dark/flattr.png | |||
Binary files differ | |||
diff --git a/themes/solarized-dark/img/solarized-dark/left.png b/themes/solarized-dark/img/solarized-dark/left.png new file mode 100644 index 00000000..a953d831 --- /dev/null +++ b/themes/solarized-dark/img/solarized-dark/left.png | |||
Binary files differ | |||
diff --git a/themes/solarized-dark/img/solarized-dark/link.png b/themes/solarized-dark/img/solarized-dark/link.png new file mode 100644 index 00000000..5e859a0e --- /dev/null +++ b/themes/solarized-dark/img/solarized-dark/link.png | |||
Binary files differ | |||
diff --git a/themes/solarized-dark/img/solarized-dark/remove.png b/themes/solarized-dark/img/solarized-dark/remove.png new file mode 100644 index 00000000..66a5c1ab --- /dev/null +++ b/themes/solarized-dark/img/solarized-dark/remove.png | |||
Binary files differ | |||
diff --git a/themes/solarized-dark/img/solarized-dark/shaarli.png b/themes/solarized-dark/img/solarized-dark/shaarli.png new file mode 100644 index 00000000..1eb30f60 --- /dev/null +++ b/themes/solarized-dark/img/solarized-dark/shaarli.png | |||
Binary files differ | |||
diff --git a/themes/solarized-dark/img/solarized-dark/star-off.png b/themes/solarized-dark/img/solarized-dark/star-off.png new file mode 100644 index 00000000..1c603ecc --- /dev/null +++ b/themes/solarized-dark/img/solarized-dark/star-off.png | |||
Binary files differ | |||
diff --git a/themes/solarized-dark/img/solarized-dark/star-on.png b/themes/solarized-dark/img/solarized-dark/star-on.png new file mode 100644 index 00000000..bc37772a --- /dev/null +++ b/themes/solarized-dark/img/solarized-dark/star-on.png | |||
Binary files differ | |||
diff --git a/themes/solarized-dark/img/solarized-dark/top.png b/themes/solarized-dark/img/solarized-dark/top.png new file mode 100644 index 00000000..b3f44f31 --- /dev/null +++ b/themes/solarized-dark/img/solarized-dark/top.png | |||
Binary files differ | |||
diff --git a/themes/solarized-dark/img/solarized-dark/twitter.png b/themes/solarized-dark/img/solarized-dark/twitter.png new file mode 100644 index 00000000..c4a25334 --- /dev/null +++ b/themes/solarized-dark/img/solarized-dark/twitter.png | |||
Binary files differ | |||
diff --git a/themes/solarized-dark/screenshot.jpg b/themes/solarized-dark/screenshot.jpg new file mode 100644 index 00000000..2ad87943 --- /dev/null +++ b/themes/solarized-dark/screenshot.jpg | |||
Binary files differ | |||
diff --git a/themes/solarized/README.md b/themes/solarized/README.md new file mode 100644 index 00000000..255e3cdd --- /dev/null +++ b/themes/solarized/README.md | |||
@@ -0,0 +1,6 @@ | |||
1 | # solarized (Solarized) theme | ||
2 | |||
3 | |||
4 | Theme created by NumEricR | ||
5 | |||
6 | http://github.com/NumEricR/poche-themes | ||
diff --git a/themes/solarized/Solarized-LICENSE.txt b/themes/solarized/Solarized-LICENSE.txt new file mode 100644 index 00000000..a842f663 --- /dev/null +++ b/themes/solarized/Solarized-LICENSE.txt | |||
@@ -0,0 +1,19 @@ | |||
1 | Copyright (c) 2011 Ethan Schoonover | ||
2 | |||
3 | Permission is hereby granted, free of charge, to any person obtaining a copy | ||
4 | of this software and associated documentation files (the "Software"), to deal | ||
5 | in the Software without restriction, including without limitation the rights | ||
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
7 | copies of the Software, and to permit persons to whom the Software is | ||
8 | furnished to do so, subject to the following conditions: | ||
9 | |||
10 | The above copyright notice and this permission notice shall be included in | ||
11 | all copies or substantial portions of the Software. | ||
12 | |||
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
19 | THE SOFTWARE | ||
diff --git a/themes/solarized/css/style-solarized.css b/themes/solarized/css/style-solarized.css new file mode 100644 index 00000000..9286c750 --- /dev/null +++ b/themes/solarized/css/style-solarized.css | |||
@@ -0,0 +1,219 @@ | |||
1 | /* | ||
2 | * Solarized - by NumEricR | ||
3 | * http://github.com/NumEricR/poche-themes | ||
4 | * ================================================== | ||
5 | * | ||
6 | * Based on Solarized's palette - (c) 2011 Ethan Schoonover | ||
7 | * See http://ethanschoonover.com/solarized#usage-development | ||
8 | * See http://ethanschoonover.com/solarized#the-values | ||
9 | * | ||
10 | * Background: #fdf6e3 base 3 | ||
11 | * Highlight: #eee8d5 base 2 | ||
12 | * Primary content: #657b83 base 00 | ||
13 | * Intermediate: #839496 base 0 | ||
14 | * Emphasized content: #586e75 base 01 | ||
15 | * Secondary content: #93a1a1 base 1 | ||
16 | * Green: #859900 | ||
17 | * Orange: #cb4b16 | ||
18 | * Red: #dc322f | ||
19 | * Blue: #268bd2 | ||
20 | * | ||
21 | * ================================================== */ | ||
22 | |||
23 | /* Background */ | ||
24 | |||
25 | body, | ||
26 | #article_toolbar { | ||
27 | background-color: #fdf6e3; | ||
28 | } | ||
29 | |||
30 | /* Highlight */ | ||
31 | /* 2 different selectors for selection pseudo-elmt */ | ||
32 | /* See https://developer.mozilla.org/en-US/docs/Web/CSS/::selection */ | ||
33 | ::-moz-selection { | ||
34 | background-color: #eee8d5; | ||
35 | } | ||
36 | ::selection { | ||
37 | background-color: #eee8d5; | ||
38 | } | ||
39 | |||
40 | /* Primary content */ | ||
41 | |||
42 | body, | ||
43 | a, | ||
44 | a:hover, | ||
45 | a:visited { | ||
46 | color: #657b83; | ||
47 | } | ||
48 | |||
49 | /* Secondary content */ | ||
50 | |||
51 | .tools p, | ||
52 | .vieworiginal a, | ||
53 | .vieworiginal a:hover, | ||
54 | .vieworiginal a:visited { | ||
55 | color: #93a1a1; | ||
56 | } | ||
57 | |||
58 | #main #content .entrie, | ||
59 | #article header, | ||
60 | #article article { | ||
61 | border-bottom-color: #93a1a1; | ||
62 | } | ||
63 | |||
64 | /* Emphasized content */ | ||
65 | |||
66 | .entrie h2 a:hover, | ||
67 | footer, | ||
68 | footer a { | ||
69 | color: #586e75; | ||
70 | } | ||
71 | |||
72 | /* Colored content */ | ||
73 | |||
74 | #main .messages.success, | ||
75 | #main .messages.warning, | ||
76 | #main .messages.error, | ||
77 | #main .messages.information, | ||
78 | #main .messages.info { | ||
79 | background-color: #eee8d5; | ||
80 | } | ||
81 | |||
82 | #main .messages.success { | ||
83 | border-color: #859900; | ||
84 | } | ||
85 | |||
86 | #main .messages.success p { | ||
87 | color: #859900 !important; /* Overwrites !important used on messages.css */ | ||
88 | } | ||
89 | |||
90 | #main .messages.warning { | ||
91 | border-color: #cb4b16; | ||
92 | } | ||
93 | |||
94 | #main .messages.warning p { | ||
95 | color: #cb4b16; | ||
96 | } | ||
97 | |||
98 | #main .messages.error { | ||
99 | border-color: #dc322f; | ||
100 | } | ||
101 | |||
102 | #main .messages.error p { | ||
103 | color: #dc322f !important; /* Overwrites !important used on messages.css */ | ||
104 | } | ||
105 | |||
106 | #main .messages.information, | ||
107 | #main .messages.info { | ||
108 | border-color: #268bd2; | ||
109 | } | ||
110 | |||
111 | #main .messages.information p, | ||
112 | #main .messages.info p { | ||
113 | color: #268bd2; | ||
114 | } | ||
115 | |||
116 | /* Miscellaneous */ | ||
117 | |||
118 | .bouton, | ||
119 | .bouton:hover, | ||
120 | #main #links li a.current, | ||
121 | #links a:hover, | ||
122 | .pagination span.current, | ||
123 | .pagination a:hover, | ||
124 | .pagination a:active { | ||
125 | color: #fdf6e3; | ||
126 | background-color: #93a1a1; | ||
127 | } | ||
128 | |||
129 | .bouton:hover { | ||
130 | background-color: #657b83; | ||
131 | } | ||
132 | |||
133 | #login, | ||
134 | #password, | ||
135 | #password_repeat, | ||
136 | #bookmarklet, | ||
137 | .top_link { | ||
138 | background-color: #eee8d5; | ||
139 | } | ||
140 | |||
141 | #login, | ||
142 | #password, | ||
143 | #password_repeat, | ||
144 | #bookmarklet { | ||
145 | padding: 5px; | ||
146 | border: 1px solid #93a1a1; | ||
147 | color: #657b83; | ||
148 | } | ||
149 | |||
150 | #bookmarklet { | ||
151 | border-style: dashed; | ||
152 | } | ||
153 | |||
154 | .pagination a { | ||
155 | border-color: #93a1a1; | ||
156 | color: #93a1a1; | ||
157 | } | ||
158 | |||
159 | .pagination span.current { | ||
160 | border-color: #eee8d5; | ||
161 | } | ||
162 | |||
163 | /* Images */ | ||
164 | |||
165 | a.back span { | ||
166 | background-image: url('../img/solarized/left.png'); | ||
167 | } | ||
168 | |||
169 | a.top span { | ||
170 | background-image: url('../img/solarized/top.png'); | ||
171 | } | ||
172 | |||
173 | a.fav span, | ||
174 | a.fav-off span:hover { | ||
175 | background-image: url('../img/solarized/star-on.png'); | ||
176 | } | ||
177 | |||
178 | a.fav span:hover, | ||
179 | a.fav-off span { | ||
180 | background-image: url('../img/solarized/star-off.png'); | ||
181 | } | ||
182 | |||
183 | a.archive span, | ||
184 | a.archive-off span:hover { | ||
185 | background-image: url('../img/solarized/checkmark-on.png'); | ||
186 | } | ||
187 | |||
188 | a.archive span:hover, | ||
189 | a.archive-off span { | ||
190 | background-image: url('../img/solarized/checkmark-off.png'); | ||
191 | } | ||
192 | |||
193 | a.twitter span { | ||
194 | background-image: url('../img/solarized/twitter.png'); | ||
195 | } | ||
196 | |||
197 | a.shaarli span { | ||
198 | background-image: url('../img/solarized/shaarli.png'); | ||
199 | } | ||
200 | |||
201 | a.flattr span { | ||
202 | background-image: url('../img/solarized/flattr.png'); | ||
203 | } | ||
204 | |||
205 | a.email span { | ||
206 | background-image: url('../img/solarized/envelop.png'); | ||
207 | } | ||
208 | |||
209 | a.delete span { | ||
210 | background-image: url('../img/solarized/remove.png'); | ||
211 | } | ||
212 | |||
213 | a.link span { | ||
214 | background-image: url('../img/solarized/link.png'); | ||
215 | } | ||
216 | |||
217 | a.bad-display span { | ||
218 | background-image: url('../img/solarized/bad-display.png'); | ||
219 | } \ No newline at end of file | ||
diff --git a/themes/solarized/img/solarized/backtotop.png b/themes/solarized/img/solarized/backtotop.png new file mode 100644 index 00000000..a3e52318 --- /dev/null +++ b/themes/solarized/img/solarized/backtotop.png | |||
Binary files differ | |||
diff --git a/themes/solarized/img/solarized/bad-display.png b/themes/solarized/img/solarized/bad-display.png new file mode 100644 index 00000000..ae99ab37 --- /dev/null +++ b/themes/solarized/img/solarized/bad-display.png | |||
Binary files differ | |||
diff --git a/themes/solarized/img/solarized/checkmark-off.png b/themes/solarized/img/solarized/checkmark-off.png new file mode 100644 index 00000000..20cd26b3 --- /dev/null +++ b/themes/solarized/img/solarized/checkmark-off.png | |||
Binary files differ | |||
diff --git a/themes/solarized/img/solarized/checkmark-on.png b/themes/solarized/img/solarized/checkmark-on.png new file mode 100644 index 00000000..87a2b799 --- /dev/null +++ b/themes/solarized/img/solarized/checkmark-on.png | |||
Binary files differ | |||
diff --git a/themes/solarized/img/solarized/down.png b/themes/solarized/img/solarized/down.png new file mode 100644 index 00000000..622ff87b --- /dev/null +++ b/themes/solarized/img/solarized/down.png | |||
Binary files differ | |||
diff --git a/themes/solarized/img/solarized/envelop.png b/themes/solarized/img/solarized/envelop.png new file mode 100644 index 00000000..1caf7d43 --- /dev/null +++ b/themes/solarized/img/solarized/envelop.png | |||
Binary files differ | |||
diff --git a/themes/solarized/img/solarized/flattr.png b/themes/solarized/img/solarized/flattr.png new file mode 100644 index 00000000..18e00f86 --- /dev/null +++ b/themes/solarized/img/solarized/flattr.png | |||
Binary files differ | |||
diff --git a/themes/solarized/img/solarized/left.png b/themes/solarized/img/solarized/left.png new file mode 100644 index 00000000..9780faee --- /dev/null +++ b/themes/solarized/img/solarized/left.png | |||
Binary files differ | |||
diff --git a/themes/solarized/img/solarized/link.png b/themes/solarized/img/solarized/link.png new file mode 100644 index 00000000..d0e12862 --- /dev/null +++ b/themes/solarized/img/solarized/link.png | |||
Binary files differ | |||
diff --git a/themes/solarized/img/solarized/remove.png b/themes/solarized/img/solarized/remove.png new file mode 100644 index 00000000..d5113d17 --- /dev/null +++ b/themes/solarized/img/solarized/remove.png | |||
Binary files differ | |||
diff --git a/themes/solarized/img/solarized/shaarli.png b/themes/solarized/img/solarized/shaarli.png new file mode 100644 index 00000000..1eb30f60 --- /dev/null +++ b/themes/solarized/img/solarized/shaarli.png | |||
Binary files differ | |||
diff --git a/themes/solarized/img/solarized/star-off.png b/themes/solarized/img/solarized/star-off.png new file mode 100644 index 00000000..afd7d80c --- /dev/null +++ b/themes/solarized/img/solarized/star-off.png | |||
Binary files differ | |||
diff --git a/themes/solarized/img/solarized/star-on.png b/themes/solarized/img/solarized/star-on.png new file mode 100644 index 00000000..3a772512 --- /dev/null +++ b/themes/solarized/img/solarized/star-on.png | |||
Binary files differ | |||
diff --git a/themes/solarized/img/solarized/top.png b/themes/solarized/img/solarized/top.png new file mode 100644 index 00000000..d20001a4 --- /dev/null +++ b/themes/solarized/img/solarized/top.png | |||
Binary files differ | |||
diff --git a/themes/solarized/img/solarized/twitter.png b/themes/solarized/img/solarized/twitter.png new file mode 100644 index 00000000..109d7151 --- /dev/null +++ b/themes/solarized/img/solarized/twitter.png | |||
Binary files differ | |||
diff --git a/themes/solarized/screenshot.jpg b/themes/solarized/screenshot.jpg new file mode 100644 index 00000000..07d402e3 --- /dev/null +++ b/themes/solarized/screenshot.jpg | |||
Binary files differ | |||