aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.htaccess25
-rw-r--r--AUTHORS3
-rw-r--r--CHANGELOG.md20
-rw-r--r--Makefile3
-rw-r--r--README.md4
-rw-r--r--application/Updater.php2
-rw-r--r--assets/default/js/base.js33
-rw-r--r--composer.lock123
-rw-r--r--index.php13
-rw-r--r--shaarli_version.php2
-rw-r--r--tpl/default/daily.html12
-rw-r--r--tpl/default/dailyrss.html2
-rw-r--r--tpl/default/page.header.html4
-rw-r--r--tpl/default/tools.html28
-rw-r--r--tpl/vintage/configure.html8
-rw-r--r--tpl/vintage/daily.html9
-rw-r--r--tpl/vintage/dailyrss.html4
-rw-r--r--tpl/vintage/tools.html32
18 files changed, 150 insertions, 177 deletions
diff --git a/.htaccess b/.htaccess
index b238854c..4c004271 100644
--- a/.htaccess
+++ b/.htaccess
@@ -16,8 +16,33 @@ RewriteCond %{REQUEST_FILENAME} !-d
16RewriteRule ^ index.php [QSA,L] 16RewriteRule ^ index.php [QSA,L]
17 17
18<Limit GET POST PUT DELETE OPTIONS> 18<Limit GET POST PUT DELETE OPTIONS>
19 <IfModule version_module>
20 <IfVersion >= 2.4>
21 Require all granted
22 </IfVersion>
23 <IfVersion < 2.4>
24 Allow from all
25 Deny from none
26 </IfVersion>
27 </IfModule>
28
29 <IfModule !version_module>
19 Require all granted 30 Require all granted
31 </IfModule>
20</Limit> 32</Limit>
33
21<LimitExcept GET POST PUT DELETE OPTIONS> 34<LimitExcept GET POST PUT DELETE OPTIONS>
35 <IfModule version_module>
36 <IfVersion >= 2.4>
37 Require all denied
38 </IfVersion>
39 <IfVersion < 2.4>
40 Allow from none
41 Deny from all
42 </IfVersion>
43 </IfModule>
44
45 <IfModule !version_module>
22 Require all denied 46 Require all denied
47 </IfModule>
23</LimitExcept> 48</LimitExcept>
diff --git a/AUTHORS b/AUTHORS
index 40d22c17..ae677078 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,4 +1,4 @@
1 664 ArthurHoaro <arthur@hoa.ro> 1 682 ArthurHoaro <arthur@hoa.ro>
2 355 VirtualTam <virtualtam@flibidi.net> 2 355 VirtualTam <virtualtam@flibidi.net>
3 195 nodiscc <nodiscc@gmail.com> 3 195 nodiscc <nodiscc@gmail.com>
4 56 Sébastien Sauvage <sebsauvage@sebsauvage.net> 4 56 Sébastien Sauvage <sebsauvage@sebsauvage.net>
@@ -15,6 +15,7 @@
15 4 David Sferruzza <david.sferruzza@gmail.com> 15 4 David Sferruzza <david.sferruzza@gmail.com>
16 4 Immánuel Fodor <immanuelfactor+github@gmail.com> 16 4 Immánuel Fodor <immanuelfactor+github@gmail.com>
17 3 Teromene <teromene@teromene.fr> 17 3 Teromene <teromene@teromene.fr>
18 3 llune <llune@users.noreply.github.com>
18 2 Chris Kuethe <chris.kuethe@gmail.com> 19 2 Chris Kuethe <chris.kuethe@gmail.com>
19 2 Felix Bartels <felix@host-consultants.de> 20 2 Felix Bartels <felix@host-consultants.de>
20 2 Knah Tsaeb <Knah-Tsaeb@knah-tsaeb.org> 21 2 Knah Tsaeb <Knah-Tsaeb@knah-tsaeb.org>
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 18907c18..a8697804 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,26 @@ All notable changes to this project will be documented in this file.
4The format is based on [Keep a Changelog](http://keepachangelog.com/) 4The format is based on [Keep a Changelog](http://keepachangelog.com/)
5and this project adheres to [Semantic Versioning](http://semver.org/). 5and this project adheres to [Semantic Versioning](http://semver.org/).
6 6
7## [v0.10.1](https://github.com/shaarli/Shaarli/releases/tag/v0.10.1) - 2018-08-11
8
9### Changed
10
11- Accessibility:
12 - Remove alt text on the logo
13 - Remove redundant title in tools page
14
15### Fixed
16
17- Fixed an error on the daily page and daily RSS
18- Fixed an issue causing 'You are not authorized to add a link' error while logged out
19- Fixed thumbnail path when Shaarli's path uses symbolic links
20- Add a `mod_version` check in Shaarli's root `.htaccess` file for Apache 2.2 syntax
21- Include assets in the release Makefile target
22
23### Removed
24
25- Firefox Social API shaare has been removed
26
7## [v0.10.0](https://github.com/shaarli/Shaarli/releases/tag/v0.10.0) - 2018-07-28 27## [v0.10.0](https://github.com/shaarli/Shaarli/releases/tag/v0.10.0) - 2018-07-28
8**PHP 5.5 compatibility has been dropped.** Shaarli now requires at least PHP 5.6. 28**PHP 5.5 compatibility has been dropped.** Shaarli now requires at least PHP 5.6.
9 29
diff --git a/Makefile b/Makefile
index b0cdadf0..56cf09b2 100644
--- a/Makefile
+++ b/Makefile
@@ -170,6 +170,7 @@ release_tar: composer_dependencies htmldoc translate build_frontend
170 git archive --prefix=$(ARCHIVE_PREFIX) -o $(ARCHIVE_VERSION).tar HEAD 170 git archive --prefix=$(ARCHIVE_PREFIX) -o $(ARCHIVE_VERSION).tar HEAD
171 tar rvf $(ARCHIVE_VERSION).tar --transform "s|^vendor|$(ARCHIVE_PREFIX)vendor|" vendor/ 171 tar rvf $(ARCHIVE_VERSION).tar --transform "s|^vendor|$(ARCHIVE_PREFIX)vendor|" vendor/
172 tar rvf $(ARCHIVE_VERSION).tar --transform "s|^doc/html|$(ARCHIVE_PREFIX)doc/html|" doc/html/ 172 tar rvf $(ARCHIVE_VERSION).tar --transform "s|^doc/html|$(ARCHIVE_PREFIX)doc/html|" doc/html/
173 tar rvf $(ARCHIVE_VERSION).tar --transform "s|^tpl|$(ARCHIVE_PREFIX)tpl|" tpl/
173 gzip $(ARCHIVE_VERSION).tar 174 gzip $(ARCHIVE_VERSION).tar
174 175
175### generate a release zip and include 3rd-party dependencies and translations 176### generate a release zip and include 3rd-party dependencies and translations
@@ -180,6 +181,8 @@ release_zip: composer_dependencies htmldoc translate build_frontend
180 zip -r $(ARCHIVE_VERSION).zip $(ARCHIVE_PREFIX)doc/ 181 zip -r $(ARCHIVE_VERSION).zip $(ARCHIVE_PREFIX)doc/
181 rsync -a vendor/ $(ARCHIVE_PREFIX)vendor/ 182 rsync -a vendor/ $(ARCHIVE_PREFIX)vendor/
182 zip -r $(ARCHIVE_VERSION).zip $(ARCHIVE_PREFIX)vendor/ 183 zip -r $(ARCHIVE_VERSION).zip $(ARCHIVE_PREFIX)vendor/
184 rsync -a tpl/ $(ARCHIVE_PREFIX)tpl/
185 zip -r $(ARCHIVE_VERSION).zip $(ARCHIVE_PREFIX)tpl/
183 rm -rf $(ARCHIVE_PREFIX) 186 rm -rf $(ARCHIVE_PREFIX)
184 187
185## 188##
diff --git a/README.md b/README.md
index 8199e3f8..0c56d602 100644
--- a/README.md
+++ b/README.md
@@ -6,10 +6,10 @@ _Do you want to share the links you discover?_
6_Shaarli is a minimalist link sharing service that you can install on your own server._ 6_Shaarli is a minimalist link sharing service that you can install on your own server._
7_It is designed to be personal (single-user), fast and handy._ 7_It is designed to be personal (single-user), fast and handy._
8 8
9[![](https://img.shields.io/badge/stable-v0.8.7-blue.svg)](https://github.com/shaarli/Shaarli/releases/tag/v0.8.7) 9[![](https://img.shields.io/badge/stable-v0.9.7-blue.svg)](https://github.com/shaarli/Shaarli/releases/tag/v0.9.7)
10[![](https://img.shields.io/travis/shaarli/Shaarli/stable.svg?label=stable)](https://travis-ci.org/shaarli/Shaarli) 10[![](https://img.shields.io/travis/shaarli/Shaarli/stable.svg?label=stable)](https://travis-ci.org/shaarli/Shaarli)
11&bull; 11&bull;
12[![](https://img.shields.io/badge/latest-v0.9.7-blue.svg)](https://github.com/shaarli/Shaarli/releases/tag/v0.9.7) 12[![](https://img.shields.io/badge/latest-v0.10.0-blue.svg)](https://github.com/shaarli/Shaarli/releases/tag/v0.10.0)
13[![](https://img.shields.io/travis/shaarli/Shaarli/latest.svg?label=latest)](https://travis-ci.org/shaarli/Shaarli) 13[![](https://img.shields.io/travis/shaarli/Shaarli/latest.svg?label=latest)](https://travis-ci.org/shaarli/Shaarli)
14&bull; 14&bull;
15[![](https://img.shields.io/badge/master-v0.10.x-blue.svg)](https://github.com/shaarli/Shaarli) 15[![](https://img.shields.io/badge/master-v0.10.x-blue.svg)](https://github.com/shaarli/Shaarli)
diff --git a/application/Updater.php b/application/Updater.php
index c2aa1568..480bff82 100644
--- a/application/Updater.php
+++ b/application/Updater.php
@@ -502,7 +502,7 @@ class Updater
502 return true; 502 return true;
503 } 503 }
504 504
505 $thumbnailsEnabled = $this->conf->get('thumbnail.enable_thumbnails', true); 505 $thumbnailsEnabled = extension_loaded('gd') && $this->conf->get('thumbnail.enable_thumbnails', true);
506 $this->conf->set('thumbnails.mode', $thumbnailsEnabled ? Thumbnailer::MODE_ALL : Thumbnailer::MODE_NONE); 506 $this->conf->set('thumbnails.mode', $thumbnailsEnabled ? Thumbnailer::MODE_ALL : Thumbnailer::MODE_NONE);
507 $this->conf->set('thumbnails.width', 125); 507 $this->conf->set('thumbnails.width', 125);
508 $this->conf->set('thumbnails.height', 90); 508 $this->conf->set('thumbnails.height', 90);
diff --git a/assets/default/js/base.js b/assets/default/js/base.js
index 5cf037c2..8bf79d3e 100644
--- a/assets/default/js/base.js
+++ b/assets/default/js/base.js
@@ -98,29 +98,6 @@ function htmlEntities(str) {
98 return str.replace(/[\u00A0-\u9999<>&]/gim, i => `&#${i.charCodeAt(0)};`); 98 return str.replace(/[\u00A0-\u9999<>&]/gim, i => `&#${i.charCodeAt(0)};`);
99} 99}
100 100
101function activateFirefoxSocial(node) {
102 const loc = location.href;
103 const baseURL = loc.substring(0, loc.lastIndexOf('/') + 1);
104
105 const data = {
106 name: document.title,
107 description: document.getElementById('translation-delete-link').innerHTML,
108 author: 'Shaarli',
109 version: '1.0.0',
110
111 iconURL: `${baseURL}/images/favicon.ico`,
112 icon32URL: `${baseURL}/images/favicon.ico`,
113 icon64URL: `${baseURL}/images/favicon.ico`,
114
115 shareURL: `${baseURL}?post=%{url}&title=%{title}&description=%{text}&source=firefoxsocialapi`,
116 homepageURL: baseURL,
117 };
118 node.setAttribute('data-service', JSON.stringify(data));
119
120 const activate = new CustomEvent('ActivateSocialFeature');
121 node.dispatchEvent(activate);
122}
123
124/** 101/**
125 * Add the class 'hidden' to city options not attached to the current selected continent. 102 * Add the class 'hidden' to city options not attached to the current selected continent.
126 * 103 *
@@ -433,16 +410,6 @@ function init(description) {
433 }); 410 });
434 }); 411 });
435 412
436 /**
437 * Firefox Social
438 */
439 const ffButton = document.getElementById('ff-social-button');
440 if (ffButton != null) {
441 ffButton.addEventListener('click', (event) => {
442 activateFirefoxSocial(event.target);
443 });
444 }
445
446 const continent = document.getElementById('continent'); 413 const continent = document.getElementById('continent');
447 const city = document.getElementById('city'); 414 const city = document.getElementById('city');
448 if (continent != null && city != null) { 415 if (continent != null && city != null) {
diff --git a/composer.lock b/composer.lock
index 0f56338d..b5412f3d 100644
--- a/composer.lock
+++ b/composer.lock
@@ -8,19 +8,21 @@
8 "packages": [ 8 "packages": [
9 { 9 {
10 "name": "arthurhoaro/web-thumbnailer", 10 "name": "arthurhoaro/web-thumbnailer",
11 "version": "v1.2.1", 11 "version": "v1.3.0",
12 "source": { 12 "source": {
13 "type": "git", 13 "type": "git",
14 "url": "https://github.com/ArthurHoaro/web-thumbnailer.git", 14 "url": "https://github.com/ArthurHoaro/web-thumbnailer.git",
15 "reference": "a5a52f69e8e8f3c71fab9649e2a927e2d3f418f1" 15 "reference": "01ba9931ac8edc4bd9da186cb5d7f7f84bf78df3"
16 }, 16 },
17 "dist": { 17 "dist": {
18 "type": "zip", 18 "type": "zip",
19 "url": "https://api.github.com/repos/ArthurHoaro/web-thumbnailer/zipball/a5a52f69e8e8f3c71fab9649e2a927e2d3f418f1", 19 "url": "https://api.github.com/repos/ArthurHoaro/web-thumbnailer/zipball/01ba9931ac8edc4bd9da186cb5d7f7f84bf78df3",
20 "reference": "a5a52f69e8e8f3c71fab9649e2a927e2d3f418f1", 20 "reference": "01ba9931ac8edc4bd9da186cb5d7f7f84bf78df3",
21 "shasum": "" 21 "shasum": ""
22 }, 22 },
23 "require": { 23 "require": {
24 "ext-gd": "*",
25 "ext-json": "*",
24 "php": ">=5.6", 26 "php": ">=5.6",
25 "phpunit/php-text-template": "^1.2" 27 "phpunit/php-text-template": "^1.2"
26 }, 28 },
@@ -52,7 +54,7 @@
52 } 54 }
53 ], 55 ],
54 "description": "PHP library which will retrieve a thumbnail for any given URL", 56 "description": "PHP library which will retrieve a thumbnail for any given URL",
55 "time": "2018-07-17T10:21:14+00:00" 57 "time": "2018-08-11T11:24:03+00:00"
56 }, 58 },
57 { 59 {
58 "name": "container-interop/container-interop", 60 "name": "container-interop/container-interop",
@@ -1111,16 +1113,16 @@
1111 }, 1113 },
1112 { 1114 {
1113 "name": "phpspec/prophecy", 1115 "name": "phpspec/prophecy",
1114 "version": "1.7.6", 1116 "version": "1.8.0",
1115 "source": { 1117 "source": {
1116 "type": "git", 1118 "type": "git",
1117 "url": "https://github.com/phpspec/prophecy.git", 1119 "url": "https://github.com/phpspec/prophecy.git",
1118 "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712" 1120 "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06"
1119 }, 1121 },
1120 "dist": { 1122 "dist": {
1121 "type": "zip", 1123 "type": "zip",
1122 "url": "https://api.github.com/repos/phpspec/prophecy/zipball/33a7e3c4fda54e912ff6338c48823bd5c0f0b712", 1124 "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06",
1123 "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712", 1125 "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06",
1124 "shasum": "" 1126 "shasum": ""
1125 }, 1127 },
1126 "require": { 1128 "require": {
@@ -1132,12 +1134,12 @@
1132 }, 1134 },
1133 "require-dev": { 1135 "require-dev": {
1134 "phpspec/phpspec": "^2.5|^3.2", 1136 "phpspec/phpspec": "^2.5|^3.2",
1135 "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" 1137 "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
1136 }, 1138 },
1137 "type": "library", 1139 "type": "library",
1138 "extra": { 1140 "extra": {
1139 "branch-alias": { 1141 "branch-alias": {
1140 "dev-master": "1.7.x-dev" 1142 "dev-master": "1.8.x-dev"
1141 } 1143 }
1142 }, 1144 },
1143 "autoload": { 1145 "autoload": {
@@ -1170,7 +1172,7 @@
1170 "spy", 1172 "spy",
1171 "stub" 1173 "stub"
1172 ], 1174 ],
1173 "time": "2018-04-18T13:57:24+00:00" 1175 "time": "2018-08-05T17:53:17+00:00"
1174 }, 1176 },
1175 { 1177 {
1176 "name": "phpunit/php-code-coverage", 1178 "name": "phpunit/php-code-coverage",
@@ -2255,16 +2257,16 @@
2255 }, 2257 },
2256 { 2258 {
2257 "name": "symfony/config", 2259 "name": "symfony/config",
2258 "version": "v3.4.13", 2260 "version": "v3.4.14",
2259 "source": { 2261 "source": {
2260 "type": "git", 2262 "type": "git",
2261 "url": "https://github.com/symfony/config.git", 2263 "url": "https://github.com/symfony/config.git",
2262 "reference": "1fffdeb349ff36a25184e5564c25289b1dbfc402" 2264 "reference": "7b08223b7f6abd859651c56bcabf900d1627d085"
2263 }, 2265 },
2264 "dist": { 2266 "dist": {
2265 "type": "zip", 2267 "type": "zip",
2266 "url": "https://api.github.com/repos/symfony/config/zipball/1fffdeb349ff36a25184e5564c25289b1dbfc402", 2268 "url": "https://api.github.com/repos/symfony/config/zipball/7b08223b7f6abd859651c56bcabf900d1627d085",
2267 "reference": "1fffdeb349ff36a25184e5564c25289b1dbfc402", 2269 "reference": "7b08223b7f6abd859651c56bcabf900d1627d085",
2268 "shasum": "" 2270 "shasum": ""
2269 }, 2271 },
2270 "require": { 2272 "require": {
@@ -2315,20 +2317,20 @@
2315 ], 2317 ],
2316 "description": "Symfony Config Component", 2318 "description": "Symfony Config Component",
2317 "homepage": "https://symfony.com", 2319 "homepage": "https://symfony.com",
2318 "time": "2018-06-19T14:02:58+00:00" 2320 "time": "2018-07-26T11:19:56+00:00"
2319 }, 2321 },
2320 { 2322 {
2321 "name": "symfony/console", 2323 "name": "symfony/console",
2322 "version": "v3.4.13", 2324 "version": "v3.4.14",
2323 "source": { 2325 "source": {
2324 "type": "git", 2326 "type": "git",
2325 "url": "https://github.com/symfony/console.git", 2327 "url": "https://github.com/symfony/console.git",
2326 "reference": "e54f84c50e3b12972e7750edfc5ca84b2284c44e" 2328 "reference": "6b217594552b9323bcdcfc14f8a0ce126e84cd73"
2327 }, 2329 },
2328 "dist": { 2330 "dist": {
2329 "type": "zip", 2331 "type": "zip",
2330 "url": "https://api.github.com/repos/symfony/console/zipball/e54f84c50e3b12972e7750edfc5ca84b2284c44e", 2332 "url": "https://api.github.com/repos/symfony/console/zipball/6b217594552b9323bcdcfc14f8a0ce126e84cd73",
2331 "reference": "e54f84c50e3b12972e7750edfc5ca84b2284c44e", 2333 "reference": "6b217594552b9323bcdcfc14f8a0ce126e84cd73",
2332 "shasum": "" 2334 "shasum": ""
2333 }, 2335 },
2334 "require": { 2336 "require": {
@@ -2384,20 +2386,20 @@
2384 ], 2386 ],
2385 "description": "Symfony Console Component", 2387 "description": "Symfony Console Component",
2386 "homepage": "https://symfony.com", 2388 "homepage": "https://symfony.com",
2387 "time": "2018-07-10T14:02:11+00:00" 2389 "time": "2018-07-26T11:19:56+00:00"
2388 }, 2390 },
2389 { 2391 {
2390 "name": "symfony/debug", 2392 "name": "symfony/debug",
2391 "version": "v3.4.13", 2393 "version": "v3.4.14",
2392 "source": { 2394 "source": {
2393 "type": "git", 2395 "type": "git",
2394 "url": "https://github.com/symfony/debug.git", 2396 "url": "https://github.com/symfony/debug.git",
2395 "reference": "0e3ca9cbde90fffec8038f4d4e16fd4046bbd018" 2397 "reference": "d5a058ff6ecad26b30c1ba452241306ea34c65cc"
2396 }, 2398 },
2397 "dist": { 2399 "dist": {
2398 "type": "zip", 2400 "type": "zip",
2399 "url": "https://api.github.com/repos/symfony/debug/zipball/0e3ca9cbde90fffec8038f4d4e16fd4046bbd018", 2401 "url": "https://api.github.com/repos/symfony/debug/zipball/d5a058ff6ecad26b30c1ba452241306ea34c65cc",
2400 "reference": "0e3ca9cbde90fffec8038f4d4e16fd4046bbd018", 2402 "reference": "d5a058ff6ecad26b30c1ba452241306ea34c65cc",
2401 "shasum": "" 2403 "shasum": ""
2402 }, 2404 },
2403 "require": { 2405 "require": {
@@ -2440,20 +2442,20 @@
2440 ], 2442 ],
2441 "description": "Symfony Debug Component", 2443 "description": "Symfony Debug Component",
2442 "homepage": "https://symfony.com", 2444 "homepage": "https://symfony.com",
2443 "time": "2018-06-26T08:45:54+00:00" 2445 "time": "2018-07-26T11:19:56+00:00"
2444 }, 2446 },
2445 { 2447 {
2446 "name": "symfony/dependency-injection", 2448 "name": "symfony/dependency-injection",
2447 "version": "v3.4.13", 2449 "version": "v3.4.14",
2448 "source": { 2450 "source": {
2449 "type": "git", 2451 "type": "git",
2450 "url": "https://github.com/symfony/dependency-injection.git", 2452 "url": "https://github.com/symfony/dependency-injection.git",
2451 "reference": "3f115cc3aae4d320b26db05e9531f4e32da29b89" 2453 "reference": "1c0e679e522591fd744fdf242fec41a43d62b2b1"
2452 }, 2454 },
2453 "dist": { 2455 "dist": {
2454 "type": "zip", 2456 "type": "zip",
2455 "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/3f115cc3aae4d320b26db05e9531f4e32da29b89", 2457 "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/1c0e679e522591fd744fdf242fec41a43d62b2b1",
2456 "reference": "3f115cc3aae4d320b26db05e9531f4e32da29b89", 2458 "reference": "1c0e679e522591fd744fdf242fec41a43d62b2b1",
2457 "shasum": "" 2459 "shasum": ""
2458 }, 2460 },
2459 "require": { 2461 "require": {
@@ -2511,20 +2513,20 @@
2511 ], 2513 ],
2512 "description": "Symfony DependencyInjection Component", 2514 "description": "Symfony DependencyInjection Component",
2513 "homepage": "https://symfony.com", 2515 "homepage": "https://symfony.com",
2514 "time": "2018-07-16T13:57:19+00:00" 2516 "time": "2018-07-29T15:19:31+00:00"
2515 }, 2517 },
2516 { 2518 {
2517 "name": "symfony/filesystem", 2519 "name": "symfony/filesystem",
2518 "version": "v3.4.13", 2520 "version": "v3.4.14",
2519 "source": { 2521 "source": {
2520 "type": "git", 2522 "type": "git",
2521 "url": "https://github.com/symfony/filesystem.git", 2523 "url": "https://github.com/symfony/filesystem.git",
2522 "reference": "8dab220fec8fc904821485326b29a6c670286124" 2524 "reference": "a59f917e3c5d82332514cb4538387638f5bde2d6"
2523 }, 2525 },
2524 "dist": { 2526 "dist": {
2525 "type": "zip", 2527 "type": "zip",
2526 "url": "https://api.github.com/repos/symfony/filesystem/zipball/8dab220fec8fc904821485326b29a6c670286124", 2528 "url": "https://api.github.com/repos/symfony/filesystem/zipball/a59f917e3c5d82332514cb4538387638f5bde2d6",
2527 "reference": "8dab220fec8fc904821485326b29a6c670286124", 2529 "reference": "a59f917e3c5d82332514cb4538387638f5bde2d6",
2528 "shasum": "" 2530 "shasum": ""
2529 }, 2531 },
2530 "require": { 2532 "require": {
@@ -2561,20 +2563,20 @@
2561 ], 2563 ],
2562 "description": "Symfony Filesystem Component", 2564 "description": "Symfony Filesystem Component",
2563 "homepage": "https://symfony.com", 2565 "homepage": "https://symfony.com",
2564 "time": "2018-07-09T13:25:43+00:00" 2566 "time": "2018-07-26T11:19:56+00:00"
2565 }, 2567 },
2566 { 2568 {
2567 "name": "symfony/finder", 2569 "name": "symfony/finder",
2568 "version": "v3.4.13", 2570 "version": "v3.4.14",
2569 "source": { 2571 "source": {
2570 "type": "git", 2572 "type": "git",
2571 "url": "https://github.com/symfony/finder.git", 2573 "url": "https://github.com/symfony/finder.git",
2572 "reference": "3a8c3de91d2b2c68cd2d665cf9d00f7ef9eaa394" 2574 "reference": "8a84fcb207451df0013b2c74cbbf1b62d47b999a"
2573 }, 2575 },
2574 "dist": { 2576 "dist": {
2575 "type": "zip", 2577 "type": "zip",
2576 "url": "https://api.github.com/repos/symfony/finder/zipball/3a8c3de91d2b2c68cd2d665cf9d00f7ef9eaa394", 2578 "url": "https://api.github.com/repos/symfony/finder/zipball/8a84fcb207451df0013b2c74cbbf1b62d47b999a",
2577 "reference": "3a8c3de91d2b2c68cd2d665cf9d00f7ef9eaa394", 2579 "reference": "8a84fcb207451df0013b2c74cbbf1b62d47b999a",
2578 "shasum": "" 2580 "shasum": ""
2579 }, 2581 },
2580 "require": { 2582 "require": {
@@ -2610,29 +2612,32 @@
2610 ], 2612 ],
2611 "description": "Symfony Finder Component", 2613 "description": "Symfony Finder Component",
2612 "homepage": "https://symfony.com", 2614 "homepage": "https://symfony.com",
2613 "time": "2018-06-19T20:52:10+00:00" 2615 "time": "2018-07-26T11:19:56+00:00"
2614 }, 2616 },
2615 { 2617 {
2616 "name": "symfony/polyfill-ctype", 2618 "name": "symfony/polyfill-ctype",
2617 "version": "v1.8.0", 2619 "version": "v1.9.0",
2618 "source": { 2620 "source": {
2619 "type": "git", 2621 "type": "git",
2620 "url": "https://github.com/symfony/polyfill-ctype.git", 2622 "url": "https://github.com/symfony/polyfill-ctype.git",
2621 "reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae" 2623 "reference": "e3d826245268269cd66f8326bd8bc066687b4a19"
2622 }, 2624 },
2623 "dist": { 2625 "dist": {
2624 "type": "zip", 2626 "type": "zip",
2625 "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/7cc359f1b7b80fc25ed7796be7d96adc9b354bae", 2627 "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19",
2626 "reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae", 2628 "reference": "e3d826245268269cd66f8326bd8bc066687b4a19",
2627 "shasum": "" 2629 "shasum": ""
2628 }, 2630 },
2629 "require": { 2631 "require": {
2630 "php": ">=5.3.3" 2632 "php": ">=5.3.3"
2631 }, 2633 },
2634 "suggest": {
2635 "ext-ctype": "For best performance"
2636 },
2632 "type": "library", 2637 "type": "library",
2633 "extra": { 2638 "extra": {
2634 "branch-alias": { 2639 "branch-alias": {
2635 "dev-master": "1.8-dev" 2640 "dev-master": "1.9-dev"
2636 } 2641 }
2637 }, 2642 },
2638 "autoload": { 2643 "autoload": {
@@ -2665,20 +2670,20 @@
2665 "polyfill", 2670 "polyfill",
2666 "portable" 2671 "portable"
2667 ], 2672 ],
2668 "time": "2018-04-30T19:57:29+00:00" 2673 "time": "2018-08-06T14:22:27+00:00"
2669 }, 2674 },
2670 { 2675 {
2671 "name": "symfony/polyfill-mbstring", 2676 "name": "symfony/polyfill-mbstring",
2672 "version": "v1.8.0", 2677 "version": "v1.9.0",
2673 "source": { 2678 "source": {
2674 "type": "git", 2679 "type": "git",
2675 "url": "https://github.com/symfony/polyfill-mbstring.git", 2680 "url": "https://github.com/symfony/polyfill-mbstring.git",
2676 "reference": "3296adf6a6454a050679cde90f95350ad604b171" 2681 "reference": "d0cd638f4634c16d8df4508e847f14e9e43168b8"
2677 }, 2682 },
2678 "dist": { 2683 "dist": {
2679 "type": "zip", 2684 "type": "zip",
2680 "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/3296adf6a6454a050679cde90f95350ad604b171", 2685 "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d0cd638f4634c16d8df4508e847f14e9e43168b8",
2681 "reference": "3296adf6a6454a050679cde90f95350ad604b171", 2686 "reference": "d0cd638f4634c16d8df4508e847f14e9e43168b8",
2682 "shasum": "" 2687 "shasum": ""
2683 }, 2688 },
2684 "require": { 2689 "require": {
@@ -2690,7 +2695,7 @@
2690 "type": "library", 2695 "type": "library",
2691 "extra": { 2696 "extra": {
2692 "branch-alias": { 2697 "branch-alias": {
2693 "dev-master": "1.8-dev" 2698 "dev-master": "1.9-dev"
2694 } 2699 }
2695 }, 2700 },
2696 "autoload": { 2701 "autoload": {
@@ -2724,20 +2729,20 @@
2724 "portable", 2729 "portable",
2725 "shim" 2730 "shim"
2726 ], 2731 ],
2727 "time": "2018-04-26T10:06:28+00:00" 2732 "time": "2018-08-06T14:22:27+00:00"
2728 }, 2733 },
2729 { 2734 {
2730 "name": "symfony/yaml", 2735 "name": "symfony/yaml",
2731 "version": "v3.4.13", 2736 "version": "v3.4.14",
2732 "source": { 2737 "source": {
2733 "type": "git", 2738 "type": "git",
2734 "url": "https://github.com/symfony/yaml.git", 2739 "url": "https://github.com/symfony/yaml.git",
2735 "reference": "c5010cc1692ce1fa328b1fb666961eb3d4a85bb0" 2740 "reference": "810af2d35fc72b6cf5c01116806d2b65ccaaf2e2"
2736 }, 2741 },
2737 "dist": { 2742 "dist": {
2738 "type": "zip", 2743 "type": "zip",
2739 "url": "https://api.github.com/repos/symfony/yaml/zipball/c5010cc1692ce1fa328b1fb666961eb3d4a85bb0", 2744 "url": "https://api.github.com/repos/symfony/yaml/zipball/810af2d35fc72b6cf5c01116806d2b65ccaaf2e2",
2740 "reference": "c5010cc1692ce1fa328b1fb666961eb3d4a85bb0", 2745 "reference": "810af2d35fc72b6cf5c01116806d2b65ccaaf2e2",
2741 "shasum": "" 2746 "shasum": ""
2742 }, 2747 },
2743 "require": { 2748 "require": {
@@ -2783,7 +2788,7 @@
2783 ], 2788 ],
2784 "description": "Symfony Yaml Component", 2789 "description": "Symfony Yaml Component",
2785 "homepage": "https://symfony.com", 2790 "homepage": "https://symfony.com",
2786 "time": "2018-05-03T23:18:14+00:00" 2791 "time": "2018-07-26T11:19:56+00:00"
2787 }, 2792 },
2788 { 2793 {
2789 "name": "theseer/fdomdocument", 2794 "name": "theseer/fdomdocument",
diff --git a/index.php b/index.php
index 1480bbc5..4b86a3e2 100644
--- a/index.php
+++ b/index.php
@@ -356,7 +356,6 @@ function showDailyRSS($conf, $loginManager) {
356 $conf->get('redirector.url'), 356 $conf->get('redirector.url'),
357 $conf->get('redirector.encode_url') 357 $conf->get('redirector.encode_url')
358 ); 358 );
359 $link['thumbnail'] = thumbnail($conf, $link['url']);
360 $link['timestamp'] = $link['created']->getTimestamp(); 359 $link['timestamp'] = $link['created']->getTimestamp();
361 if (startsWith($link['url'], '?')) { 360 if (startsWith($link['url'], '?')) {
362 $link['url'] = index_url($_SERVER) . $link['url']; // make permalink URL absolute 361 $link['url'] = index_url($_SERVER) . $link['url']; // make permalink URL absolute
@@ -371,6 +370,7 @@ function showDailyRSS($conf, $loginManager) {
371 $tpl->assign('links', $links); 370 $tpl->assign('links', $links);
372 $tpl->assign('rssdate', escape($dayDate->format(DateTime::RSS))); 371 $tpl->assign('rssdate', escape($dayDate->format(DateTime::RSS)));
373 $tpl->assign('hide_timestamps', $conf->get('privacy.hide_timestamps', false)); 372 $tpl->assign('hide_timestamps', $conf->get('privacy.hide_timestamps', false));
373 $tpl->assign('index_url', $pageaddr);
374 $html = $tpl->draw('dailyrss', true); 374 $html = $tpl->draw('dailyrss', true);
375 375
376 echo $html . PHP_EOL; 376 echo $html . PHP_EOL;
@@ -433,7 +433,6 @@ function showDaily($pageBuilder, $LINKSDB, $conf, $pluginManager, $loginManager)
433 $conf->get('redirector.url'), 433 $conf->get('redirector.url'),
434 $conf->get('redirector.encode_url') 434 $conf->get('redirector.encode_url')
435 ); 435 );
436 $linksToDisplay[$key]['thumbnail'] = thumbnail($conf, $link['url']);
437 $linksToDisplay[$key]['timestamp'] = $link['created']->getTimestamp(); 436 $linksToDisplay[$key]['timestamp'] = $link['created']->getTimestamp();
438 } 437 }
439 438
@@ -1636,9 +1635,9 @@ function buildLinkList($PAGE, $LINKSDB, $conf, $pluginManager, $loginManager)
1636 uasort($taglist, 'strcasecmp'); 1635 uasort($taglist, 'strcasecmp');
1637 $link['taglist'] = $taglist; 1636 $link['taglist'] = $taglist;
1638 1637
1639 // Thumbnails enabled, not a note, 1638 // Logged in, thumbnails enabled, not a note,
1640 // and (never retrieved yet or no valid cache file) 1639 // and (never retrieved yet or no valid cache file)
1641 if ($thumbnailsEnabled && $link['url'][0] != '?' 1640 if ($loginManager->isLoggedIn() && $thumbnailsEnabled && $link['url'][0] != '?'
1642 && (! isset($link['thumbnail']) || ($link['thumbnail'] !== false && ! is_file($link['thumbnail']))) 1641 && (! isset($link['thumbnail']) || ($link['thumbnail'] !== false && ! is_file($link['thumbnail'])))
1643 ) { 1642 ) {
1644 $elem = $LINKSDB[$keys[$i]]; 1643 $elem = $LINKSDB[$keys[$i]];
@@ -1812,7 +1811,11 @@ function install($conf, $sessionManager, $loginManager) {
1812 exit; 1811 exit;
1813} 1812}
1814 1813
1815if (isset($_SERVER['QUERY_STRING']) && startsWith($_SERVER['QUERY_STRING'], 'do=dailyrss')) { showDailyRSS($conf); exit; } 1814if (isset($_SERVER['QUERY_STRING']) && startsWith($_SERVER['QUERY_STRING'], 'do=dailyrss')) {
1815 showDailyRSS($conf, $loginManager);
1816 exit;
1817}
1818
1816if (!isset($_SESSION['LINKS_PER_PAGE'])) { 1819if (!isset($_SESSION['LINKS_PER_PAGE'])) {
1817 $_SESSION['LINKS_PER_PAGE'] = $conf->get('general.links_per_page', 20); 1820 $_SESSION['LINKS_PER_PAGE'] = $conf->get('general.links_per_page', 20);
1818} 1821}
diff --git a/shaarli_version.php b/shaarli_version.php
index d76930b1..755d60b5 100644
--- a/shaarli_version.php
+++ b/shaarli_version.php
@@ -1 +1 @@
<?php /* 0.10.0 */ ?> <?php /* 0.10.1 */ ?>
diff --git a/tpl/default/daily.html b/tpl/default/daily.html
index 29d845d5..816e5d0a 100644
--- a/tpl/default/daily.html
+++ b/tpl/default/daily.html
@@ -69,9 +69,12 @@
69 </a> 69 </a>
70 <a href="{$link.real_url}">{$link.title}</a> 70 <a href="{$link.real_url}">{$link.title}</a>
71 </div> 71 </div>
72 {$thumb=thumbnail($value.url)} 72 {if="$thumbnails_enabled && !empty($link.thumbnail)"}
73 {if="$thumb!=false"} 73 <div class="daily-entry-thumbnail">
74 <div class="daily-entry-thumbnail">{$thumb}</div> 74 <img data-src="{$link.thumbnail}#" class="b-lazy"
75 src="#"
76 alt="thumbnail" width="{$thumbnails_width}" height="{$thumbnails_height}" />
77 </div>
75 {/if} 78 {/if}
76 <div class="daily-entry-description">{$link.formatedDescription}</div> 79 <div class="daily-entry-description">{$link.formatedDescription}</div>
77 {if="$link.tags"} 80 {if="$link.tags"}
@@ -83,7 +86,7 @@
83 {/loop} 86 {/loop}
84 </div> 87 </div>
85 {/if} 88 {/if}
86 <div class="dailyEntryFooter"> 89 <div class="dailyEntryFooter clear">
87 {loop="$link.link_plugin"} 90 {loop="$link.link_plugin"}
88 {$value} 91 {$value}
89 {/loop} 92 {/loop}
@@ -108,6 +111,7 @@
108 </div> 111 </div>
109</div> 112</div>
110{include="page.footer"} 113{include="page.footer"}
114<script src="js/thumbnails.min.js?v={$version_hash}"></script>
111</body> 115</body>
112</html> 116</html>
113 117
diff --git a/tpl/default/dailyrss.html b/tpl/default/dailyrss.html
index b14a3859..f589b06e 100644
--- a/tpl/default/dailyrss.html
+++ b/tpl/default/dailyrss.html
@@ -8,7 +8,7 @@
8 <h3><a href="{$value.url}">{$value.title}</a></h3> 8 <h3><a href="{$value.url}">{$value.title}</a></h3>
9 <small>{if="!$hide_timestamps"}{function="strftime('%c', $value.timestamp)"} - {/if}{if="$value.tags"}{$value.tags}{/if}<br> 9 <small>{if="!$hide_timestamps"}{function="strftime('%c', $value.timestamp)"} - {/if}{if="$value.tags"}{$value.tags}{/if}<br>
10 {$value.url}</small><br> 10 {$value.url}</small><br>
11 {if="$value.thumbnail"}{$value.thumbnail}{/if}<br> 11 {if="$value.thumbnail"}<img src="{$index_url}{$value.thumbnail}#" alt="thumbnail" />{/if}<br>
12 {if="$value.description"}{$value.formatedDescription}{/if} 12 {if="$value.description"}{$value.formatedDescription}{/if}
13 <br><br><hr> 13 <br><br><hr>
14 {/loop} 14 {/loop}
diff --git a/tpl/default/page.header.html b/tpl/default/page.header.html
index fc03404e..3b43a611 100644
--- a/tpl/default/page.header.html
+++ b/tpl/default/page.header.html
@@ -2,7 +2,7 @@
2 <div class="pure-u-lg-0 pure-u-1"> 2 <div class="pure-u-lg-0 pure-u-1">
3 <div class="pure-menu"> 3 <div class="pure-menu">
4 <a href="{$titleLink}" class="pure-menu-link shaarli-title" id="shaarli-title-mobile"> 4 <a href="{$titleLink}" class="pure-menu-link shaarli-title" id="shaarli-title-mobile">
5 <img src="img/icon.png" width="16" height="16" class="head-logo" alt="logo" /> 5 <img src="img/icon.png" width="16" height="16" class="head-logo" alt="" />
6 {$shaarlititle} 6 {$shaarlititle}
7 </a> 7 </a>
8 <a href="#" class="menu-toggle" id="menu-toggle"><s class="bar"></s><s class="bar"></s></a> 8 <a href="#" class="menu-toggle" id="menu-toggle"><s class="bar"></s><s class="bar"></s></a>
@@ -13,7 +13,7 @@
13 <ul class="pure-menu-list pure-u-lg-5-6 pure-u-1"> 13 <ul class="pure-menu-list pure-u-lg-5-6 pure-u-1">
14 <li class="pure-menu-item pure-u-0 pure-u-lg-visible"> 14 <li class="pure-menu-item pure-u-0 pure-u-lg-visible">
15 <a href="{$titleLink}" class="pure-menu-link shaarli-title" id="shaarli-title-desktop"> 15 <a href="{$titleLink}" class="pure-menu-link shaarli-title" id="shaarli-title-desktop">
16 <img src="img/icon.png" width="16" height="16" class="head-logo" alt="logo" /> 16 <img src="img/icon.png" width="16" height="16" class="head-logo" alt="" />
17 {$shaarlititle} 17 {$shaarlititle}
18 </a> 18 </a>
19 </li> 19 </li>
diff --git a/tpl/default/tools.html b/tpl/default/tools.html
index 20060994..c9ce1eaf 100644
--- a/tpl/default/tools.html
+++ b/tpl/default/tools.html
@@ -120,47 +120,27 @@
120 </div> 120 </div>
121</div> 121</div>
122 122
123{if="$sslenabled"}
124 <div class="pure-g">
125 <div class="pure-u-lg-1-3 pure-u-1-24"></div>
126 <div class="pure-u-lg-1-3 pure-u-22-24 page-form page-form-light">
127 <h2 class="window-title">Firefox Social API</h2>
128 <p>{'You need to browse your Shaarli over <strong>HTTPS</strong> to use this functionality.'|t}</p>
129
130 <div class="tools-item">
131 <a title="{'Click on this button to add Shaarli to the 'Share this page' button in Firefox"
132 id="ff-social-button">
133 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">✚ {'Add to'|t} Firefox Social</span>
134 </a>
135 </div>
136 </div>
137 </div>
138{/if}
139
140<div class="pure-g"> 123<div class="pure-g">
141 <div class="pure-u-lg-1-3 pure-u-1-24"></div> 124 <div class="pure-u-lg-1-3 pure-u-1-24"></div>
142 <div class="pure-u-lg-1-3 pure-u-22-24 page-form page-form-light"> 125 <div class="pure-u-lg-1-3 pure-u-22-24 page-form page-form-light">
143 <h2 class="window-title">{'3rd party'|t}</h2> 126 <h2 class="window-title">{'3rd party'|t}</h2>
144 <div class="tools-item"> 127 <div class="tools-item">
145 <a href="https://addons.mozilla.org/fr/firefox/addon/shaarli/" title="Firefox {'Plugin'|t}"> 128 <a href="https://addons.mozilla.org/fr/firefox/addon/shaarli/">
146 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">Firefox {'plugin'|t}</span> 129 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">Firefox {'plugin'|t}</span>
147 </a> 130 </a>
148 </div> 131 </div>
149 <div class="tools-item"> 132 <div class="tools-item">
150 <a href="https://chrome.google.com/webstore/detail/shiny-shaarli/hajdfkmbdmadjmmpkkbbcnllepomekin" 133 <a href="https://chrome.google.com/webstore/detail/shiny-shaarli/hajdfkmbdmadjmmpkkbbcnllepomekin">
151 title="Chrome {'Plugin'|t}">
152 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">Chrome {'plugin'|t}</span> 134 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">Chrome {'plugin'|t}</span>
153 </a> 135 </a>
154 </div> 136 </div>
155 <div class="tools-item"> 137 <div class="tools-item">
156 <a href="https://play.google.com/store/apps/details?id=com.dimtion.shaarlier&hl=fr" 138 <a href="https://play.google.com/store/apps/details?id=com.dimtion.shaarlier&hl=fr">
157 title="Android Shaarlier">
158 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">Android Shaarlier</span> 139 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">Android Shaarlier</span>
159 </a> 140 </a>
160 </div> 141 </div>
161 <div class="tools-item"> 142 <div class="tools-item">
162 <a href="https://stakali.toneiv.eu/" 143 <a href="https://stakali.toneiv.eu/">
163 title="Android Stakali">
164 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">Android Stakali</span> 144 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">Android Stakali</span>
165 </a> 145 </a>
166 </div> 146 </div>
diff --git a/tpl/vintage/configure.html b/tpl/vintage/configure.html
index 9466c235..f1892fa1 100644
--- a/tpl/vintage/configure.html
+++ b/tpl/vintage/configure.html
@@ -59,14 +59,6 @@
59 </tr> 59 </tr>
60 60
61 <tr> 61 <tr>
62 <td><b>Redirector</b></td>
63 <td>
64 <input type="text" name="redirector" id="redirector" size="50" value="{$redirector}"><br>
65 (e.g. <i>http://anonym.to/?</i> will mask the HTTP_REFERER)
66 </td>
67 </tr>
68
69 <tr>
70 <td><b>Security:</b></td> 62 <td><b>Security:</b></td>
71 <td> 63 <td>
72 <input type="checkbox" name="disablesessionprotection" id="disablesessionprotection" 64 <input type="checkbox" name="disablesessionprotection" id="disablesessionprotection"
diff --git a/tpl/vintage/daily.html b/tpl/vintage/daily.html
index ede35910..00148a58 100644
--- a/tpl/vintage/daily.html
+++ b/tpl/vintage/daily.html
@@ -68,8 +68,12 @@
68 <div class="dailyEntryTitle"> 68 <div class="dailyEntryTitle">
69 <a href="{$link.real_url}">{$link.title}</a> 69 <a href="{$link.real_url}">{$link.title}</a>
70 </div> 70 </div>
71 {if="$link.thumbnail"} 71 {if="$thumbnails_enabled && !empty($link.thumbnail)"}
72 <div class="dailyEntryThumbnail">{$link.thumbnail}</div> 72 <div class="dailyEntryThumbnail">
73 <img data-src="{$link.thumbnail}#" class="b-lazy"
74 src="#"
75 alt="thumbnail" width="{$thumbnails_width}" height="{$thumbnails_height}" />
76 </div>
73 {/if} 77 {/if}
74 <div class="dailyEntryDescription">{$link.formatedDescription}</div> 78 <div class="dailyEntryDescription">{$link.formatedDescription}</div>
75 79
@@ -97,5 +101,6 @@
97 <div id="closing"><img src="img/squiggle_closing.png" width="66" height="61" alt="-"></div> 101 <div id="closing"><img src="img/squiggle_closing.png" width="66" height="61" alt="-"></div>
98</div> 102</div>
99{include="page.footer"} 103{include="page.footer"}
104<script src="js/thumbnails.min.js?v={$version_hash}"></script>
100</body> 105</body>
101</html> 106</html>
diff --git a/tpl/vintage/dailyrss.html b/tpl/vintage/dailyrss.html
index ddbd6c5e..f589b06e 100644
--- a/tpl/vintage/dailyrss.html
+++ b/tpl/vintage/dailyrss.html
@@ -4,11 +4,11 @@
4 <link>{$absurl}</link> 4 <link>{$absurl}</link>
5 <pubDate>{$rssdate}</pubDate> 5 <pubDate>{$rssdate}</pubDate>
6 <description><![CDATA[ 6 <description><![CDATA[
7 {loop="$links"} 7 {loop="links"}
8 <h3><a href="{$value.url}">{$value.title}</a></h3> 8 <h3><a href="{$value.url}">{$value.title}</a></h3>
9 <small>{if="!$hide_timestamps"}{function="strftime('%c', $value.timestamp)"} - {/if}{if="$value.tags"}{$value.tags}{/if}<br> 9 <small>{if="!$hide_timestamps"}{function="strftime('%c', $value.timestamp)"} - {/if}{if="$value.tags"}{$value.tags}{/if}<br>
10 {$value.url}</small><br> 10 {$value.url}</small><br>
11 {if="$value.thumbnail"}{$value.thumbnail}{/if}<br> 11 {if="$value.thumbnail"}<img src="{$index_url}{$value.thumbnail}#" alt="thumbnail" />{/if}<br>
12 {if="$value.description"}{$value.formatedDescription}{/if} 12 {if="$value.description"}{$value.formatedDescription}{/if}
13 <br><br><hr> 13 <br><br><hr>
14 {/loop} 14 {/loop}
diff --git a/tpl/vintage/tools.html b/tpl/vintage/tools.html
index 3194844a..1cef726e 100644
--- a/tpl/vintage/tools.html
+++ b/tpl/vintage/tools.html
@@ -55,13 +55,6 @@
55 </span> 55 </span>
56 </a><br><br> 56 </a><br><br>
57 57
58 {if="$sslenabled"}
59 <a class="smallbutton" onclick="activateFirefoxSocial(this)"><b>✚Add to Firefox social</b></a>
60 <a href="#">
61 <span>&#x21D0; Click on this button to add Shaarli to the "Share this page" button in Firefox.</span>
62 </a><br><br>
63 {/if}
64
65 {loop="$tools_plugin"} 58 {loop="$tools_plugin"}
66 {$value} 59 {$value}
67 {/loop} 60 {/loop}
@@ -69,31 +62,6 @@
69 <div class="clear"></div> 62 <div class="clear"></div>
70 63
71 <script> 64 <script>
72 {if="$sslenabled"}
73 function activateFirefoxSocial(node) {
74 var loc = location.href;
75 var baseURL = loc.substring(0, loc.lastIndexOf("/"));
76
77 // Keeping the data separated (ie. not in the DOM) so that it's maintainable and diffable.
78 var data = {
79 name: "{$shaarlititle}",
80 description: "The personal, minimalist, super-fast, no-database delicious clone.",
81 author: "Shaarli",
82 version: "1.0.0",
83
84 iconURL: baseURL + "/img/favicon.ico",
85 icon32URL: baseURL + "/img/favicon.ico",
86 icon64URL: baseURL + "/img/favicon.ico",
87
88 shareURL: baseURL + "{noparse}?post=%{url}&title=%{title}&description=%{text}&source=firefoxsocialapi{/noparse}",
89 homepageURL: baseURL
90 };
91 node.setAttribute("data-service", JSON.stringify(data));
92
93 var activate = new CustomEvent("ActivateSocialFeature");
94 node.dispatchEvent(activate);
95 }
96 {/if}
97 function alertBookmarklet() { 65 function alertBookmarklet() {
98 alert('Drag this link to your bookmarks toolbar, or right-click it and choose Bookmark This Link...'); 66 alert('Drag this link to your bookmarks toolbar, or right-click it and choose Bookmark This Link...');
99 return false; 67 return false;