diff options
Diffstat (limited to 'tpl')
-rw-r--r-- | tpl/default/addlink.html | 3 | ||||
-rw-r--r-- | tpl/default/configure.html | 31 | ||||
-rw-r--r-- | tpl/default/daily.html | 12 | ||||
-rw-r--r-- | tpl/default/dailyrss.html | 2 | ||||
-rw-r--r-- | tpl/default/includes.html | 20 | ||||
-rw-r--r-- | tpl/default/linklist.html | 35 | ||||
-rw-r--r-- | tpl/default/linklist.paging.html | 3 | ||||
-rw-r--r-- | tpl/default/page.header.html | 28 | ||||
-rw-r--r-- | tpl/default/picwall.html | 74 | ||||
-rw-r--r-- | tpl/default/thumbnails.html | 48 | ||||
-rw-r--r-- | tpl/default/tools.html | 36 | ||||
-rw-r--r-- | tpl/vintage/configure.html | 31 | ||||
-rw-r--r-- | tpl/vintage/daily.html | 9 | ||||
-rw-r--r-- | tpl/vintage/dailyrss.html | 4 | ||||
-rw-r--r-- | tpl/vintage/includes.html | 20 | ||||
-rw-r--r-- | tpl/vintage/linklist.html | 12 | ||||
-rw-r--r-- | tpl/vintage/picwall.html | 8 | ||||
-rw-r--r-- | tpl/vintage/thumbnails.html | 28 | ||||
-rw-r--r-- | tpl/vintage/tools.html | 32 |
19 files changed, 322 insertions, 114 deletions
diff --git a/tpl/default/addlink.html b/tpl/default/addlink.html index 2f956e06..55864a02 100644 --- a/tpl/default/addlink.html +++ b/tpl/default/addlink.html | |||
@@ -11,7 +11,8 @@ | |||
11 | <h2 class="window-title">{"Shaare a new link"|t}</h2> | 11 | <h2 class="window-title">{"Shaare a new link"|t}</h2> |
12 | <form method="GET" action="#" name="addform" class="addform"> | 12 | <form method="GET" action="#" name="addform" class="addform"> |
13 | <div> | 13 | <div> |
14 | <input type="text" name="post" placeholder="{'URL or leave empty to post a note'|t}" class="autofocus"> | 14 | <label for="shaare">{'URL or leave empty to post a note'|t}</label> |
15 | <input type="text" name="post" id="shaare" class="autofocus"> | ||
15 | </div> | 16 | </div> |
16 | <div> | 17 | <div> |
17 | <input type="submit" value="{'Add link'|t}"> | 18 | <input type="submit" value="{'Add link'|t}"> |
diff --git a/tpl/default/configure.html b/tpl/default/configure.html index a63c7ad3..42e32230 100644 --- a/tpl/default/configure.html +++ b/tpl/default/configure.html | |||
@@ -242,6 +242,37 @@ | |||
242 | </div> | 242 | </div> |
243 | </div> | 243 | </div> |
244 | </div> | 244 | </div> |
245 | <div class="pure-g"> | ||
246 | <div class="pure-u-lg-{$ratioLabel} pure-u-{$ratioLabelMobile}"> | ||
247 | <div class="form-label"> | ||
248 | <label for="enableThumbnails"> | ||
249 | <span class="label-name">{'Enable thumbnails'|t}</span><br> | ||
250 | <span class="label-desc"> | ||
251 | {if="! $gd_enabled"} | ||
252 | {'You need to enable the extension <code>php-gd</code> to use thumbnails.'|t} | ||
253 | {elseif="$thumbnails_enabled"} | ||
254 | <a href="?do=thumbs_update">{'Synchronize thumbnails'|t}</a> | ||
255 | {/if} | ||
256 | </span> | ||
257 | </label> | ||
258 | </div> | ||
259 | </div> | ||
260 | <div class="pure-u-lg-{$ratioInput} pure-u-{$ratioInputMobile}"> | ||
261 | <div class="form-input"> | ||
262 | <select name="enableThumbnails" id="enableThumbnails" class="align"> | ||
263 | <option value="all" {if="$thumbnails_mode=='all'"}selected{/if}> | ||
264 | {'All'|t} | ||
265 | </option> | ||
266 | <option value="common" {if="$thumbnails_mode=='common'"}selected{/if}> | ||
267 | {'Only common media hosts'|t} | ||
268 | </option> | ||
269 | <option value="none" {if="$thumbnails_mode=='none'"}selected{/if}> | ||
270 | {'None'|t} | ||
271 | </option> | ||
272 | </select> | ||
273 | </div> | ||
274 | </div> | ||
275 | </div> | ||
245 | <div class="center"> | 276 | <div class="center"> |
246 | <input type="submit" value="{'Save'|t}" name="save"> | 277 | <input type="submit" value="{'Save'|t}" name="save"> |
247 | </div> | 278 | </div> |
diff --git a/tpl/default/daily.html b/tpl/default/daily.html index 29d845d5..2c409478 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/includes.html b/tpl/default/includes.html index 5ccacaaf..6c30d1bf 100644 --- a/tpl/default/includes.html +++ b/tpl/default/includes.html | |||
@@ -15,3 +15,23 @@ | |||
15 | <link type="text/css" rel="stylesheet" href="data/user.css#" /> | 15 | <link type="text/css" rel="stylesheet" href="data/user.css#" /> |
16 | {/if} | 16 | {/if} |
17 | <link rel="search" type="application/opensearchdescription+xml" href="?do=opensearch#" title="Shaarli search - {$shaarlititle}"/> | 17 | <link rel="search" type="application/opensearchdescription+xml" href="?do=opensearch#" title="Shaarli search - {$shaarlititle}"/> |
18 | {if="! empty($links) && count($links) === 1"} | ||
19 | {$link=reset($links)} | ||
20 | <meta property="og:title" content="{$link.title}" /> | ||
21 | <meta property="og:type" content="article" /> | ||
22 | <meta property="og:url" content="{$index_url}?{$link.shorturl}" /> | ||
23 | {$ogDescription=isset($link.description_src) ? $link.description_src : $link.description} | ||
24 | <meta property="og:description" content="{function="substr(strip_tags($ogDescription), 0, 300)"}" /> | ||
25 | {if="$link.thumbnail"} | ||
26 | <meta property="og:image" content="{$index_url}{$link.thumbnail}" /> | ||
27 | {/if} | ||
28 | {if="!$hide_timestamps || $is_logged_in"} | ||
29 | <meta property="article:published_time" content="{$link.created->format(DateTime::ATOM)}" /> | ||
30 | {if="$link.updated"} | ||
31 | <meta property="article:modified_time" content="{$link.updated->format(DateTime::ATOM)}" /> | ||
32 | {/if} | ||
33 | {/if} | ||
34 | {loop="link.taglist"} | ||
35 | <meta property="article:tag" content="{$value}" /> | ||
36 | {/loop} | ||
37 | {/if} | ||
diff --git a/tpl/default/linklist.html b/tpl/default/linklist.html index 322cddd5..ed78f40a 100644 --- a/tpl/default/linklist.html +++ b/tpl/default/linklist.html | |||
@@ -125,15 +125,25 @@ | |||
125 | {$strPermalink=t('Permalink')} | 125 | {$strPermalink=t('Permalink')} |
126 | {$strPermalinkLc=t('permalink')} | 126 | {$strPermalinkLc=t('permalink')} |
127 | {$strAddTag=t('Add tag')} | 127 | {$strAddTag=t('Add tag')} |
128 | {$strToggleSticky=t('Toggle sticky')} | ||
129 | {$strSticky=t('Sticky')} | ||
128 | {ignore}End of translations{/ignore} | 130 | {ignore}End of translations{/ignore} |
129 | {loop="links"} | 131 | {loop="links"} |
130 | <div class="anchor" id="{$value.shorturl}"></div> | 132 | <div class="anchor" id="{$value.shorturl}"></div> |
131 | 133 | ||
132 | <div class="linklist-item linklist-item{if="$value.class"} {$value.class}{/if}" data-id="{$value.id}"> | 134 | <div class="linklist-item linklist-item{if="$value.class"} {$value.class}{/if}" data-id="{$value.id}"> |
133 | <div class="linklist-item-title"> | 135 | <div class="linklist-item-title"> |
134 | {$thumb=thumbnail($value.url)} | 136 | {if="$thumbnails_enabled && !empty($value.thumbnail)"} |
135 | {if="$thumb!=false"} | 137 | <div class="linklist-item-thumbnail" style="width:{$thumbnails_width}px;height:{$thumbnails_height}px;"> |
136 | <div class="linklist-item-thumbnail">{$thumb}</div> | 138 | <div class="thumbnail"> |
139 | <a href="{$value.real_url}"> | ||
140 | {ignore}RainTPL hack: put the 2 src on two different line to avoid path replace bug{/ignore} | ||
141 | <img data-src="{$value.thumbnail}#" class="b-lazy" | ||
142 | src="" | ||
143 | alt="thumbnail" width="{$thumbnails_width}" height="{$thumbnails_height}" /> | ||
144 | </a> | ||
145 | </div> | ||
146 | </div> | ||
137 | {/if} | 147 | {/if} |
138 | 148 | ||
139 | {if="$is_logged_in"} | 149 | {if="$is_logged_in"} |
@@ -182,7 +192,7 @@ | |||
182 | {if="$is_logged_in"} | 192 | {if="$is_logged_in"} |
183 | <div class="linklist-item-infos-controls-group pure-u-0 pure-u-lg-visible"> | 193 | <div class="linklist-item-infos-controls-group pure-u-0 pure-u-lg-visible"> |
184 | <span class="linklist-item-infos-controls-item ctrl-checkbox"> | 194 | <span class="linklist-item-infos-controls-item ctrl-checkbox"> |
185 | <input type="checkbox" class="delete-checkbox" value="{$value.id}"> | 195 | <input type="checkbox" class="link-checkbox" value="{$value.id}"> |
186 | </span> | 196 | </span> |
187 | <span class="linklist-item-infos-controls-item ctrl-edit"> | 197 | <span class="linklist-item-infos-controls-item ctrl-edit"> |
188 | <a href="?edit_link={$value.id}" title="{$strEdit}"><i class="fa fa-pencil-square-o edit-link"></i></a> | 198 | <a href="?edit_link={$value.id}" title="{$strEdit}"><i class="fa fa-pencil-square-o edit-link"></i></a> |
@@ -193,7 +203,23 @@ | |||
193 | <i class="fa fa-trash"></i> | 203 | <i class="fa fa-trash"></i> |
194 | </a> | 204 | </a> |
195 | </span> | 205 | </span> |
206 | <span class="linklist-item-infos-controls-item ctrl-pin"> | ||
207 | <a href="?do=pin&id={$value.id}&token={$token}" | ||
208 | title="{$strToggleSticky}" class="pin-link {if="$value.sticky"}pinned-link{/if} pure-u-0 pure-u-lg-visible"> | ||
209 | <i class="fa fa-thumb-tack"></i> | ||
210 | </a> | ||
211 | </span> | ||
196 | </div> | 212 | </div> |
213 | {else} | ||
214 | {if="$value.sticky"} | ||
215 | <div class="linklist-item-infos-controls-group pure-u-0 pure-u-lg-visible"> | ||
216 | <span class="linklist-item-infos-controls-item ctrl-pin"> | ||
217 | <span title="{$strSticky}" class="pin-link pinned-link pure-u-0 pure-u-lg-visible"> | ||
218 | <i class="fa fa-thumb-tack"></i> | ||
219 | </span> | ||
220 | </span> | ||
221 | </div> | ||
222 | {/if} | ||
197 | {/if} | 223 | {/if} |
198 | <a href="?{$value.shorturl}" title="{$strPermalink}"> | 224 | <a href="?{$value.shorturl}" title="{$strPermalink}"> |
199 | {if="!$hide_timestamps || $is_logged_in"} | 225 | {if="!$hide_timestamps || $is_logged_in"} |
@@ -268,5 +294,6 @@ | |||
268 | </div> | 294 | </div> |
269 | 295 | ||
270 | {include="page.footer"} | 296 | {include="page.footer"} |
297 | <script src="js/thumbnails.min.js?v={$version_hash}"></script> | ||
271 | </body> | 298 | </body> |
272 | </html> | 299 | </html> |
diff --git a/tpl/default/linklist.paging.html b/tpl/default/linklist.paging.html index 5309e348..fe665a84 100644 --- a/tpl/default/linklist.paging.html +++ b/tpl/default/linklist.paging.html | |||
@@ -16,6 +16,9 @@ | |||
16 | <a href="?untaggedonly" title="{'Filter untagged links'|t}" | 16 | <a href="?untaggedonly" title="{'Filter untagged links'|t}" |
17 | class={if="$untaggedonly"}"filter-on"{else}"filter-off"{/if} | 17 | class={if="$untaggedonly"}"filter-on"{else}"filter-off"{/if} |
18 | ><i class="fa fa-tag"></i></a> | 18 | ><i class="fa fa-tag"></i></a> |
19 | <a href="#" title="{'Select all'|t}" | ||
20 | class="filter-off select-all-button" | ||
21 | ><i class="fa fa-check-square-o"></i></a> | ||
19 | <a href="#" class="filter-off fold-all pure-u-lg-0" title="{'Fold all'|t}"> | 22 | <a href="#" class="filter-off fold-all pure-u-lg-0" title="{'Fold all'|t}"> |
20 | <i class="fa fa-chevron-up"></i> | 23 | <i class="fa fa-chevron-up"></i> |
21 | </a> | 24 | </a> |
diff --git a/tpl/default/page.header.html b/tpl/default/page.header.html index 82568d63..4f6dd4d8 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> |
@@ -30,9 +30,11 @@ | |||
30 | <li class="pure-menu-item" id="shaarli-menu-tags"> | 30 | <li class="pure-menu-item" id="shaarli-menu-tags"> |
31 | <a href="?do=tagcloud" class="pure-menu-link">{'Tag cloud'|t}</a> | 31 | <a href="?do=tagcloud" class="pure-menu-link">{'Tag cloud'|t}</a> |
32 | </li> | 32 | </li> |
33 | <li class="pure-menu-item" id="shaarli-menu-picwall"> | 33 | {if="$thumbnails_enabled"} |
34 | <a href="?do=picwall{$searchcrits}" class="pure-menu-link">{'Picture wall'|t}</a> | 34 | <li class="pure-menu-item" id="shaarli-menu-picwall"> |
35 | </li> | 35 | <a href="?do=picwall{$searchcrits}" class="pure-menu-link">{'Picture wall'|t}</a> |
36 | </li> | ||
37 | {/if} | ||
36 | <li class="pure-menu-item" id="shaarli-menu-daily"> | 38 | <li class="pure-menu-item" id="shaarli-menu-daily"> |
37 | <a href="?do=daily" class="pure-menu-link">{'Daily'|t}</a> | 39 | <a href="?do=daily" class="pure-menu-link">{'Daily'|t}</a> |
38 | </li> | 40 | </li> |
@@ -116,7 +118,7 @@ | |||
116 | <div id="actions" class="subheader-form"> | 118 | <div id="actions" class="subheader-form"> |
117 | <div class="pure-g"> | 119 | <div class="pure-g"> |
118 | <div class="pure-u-1"> | 120 | <div class="pure-u-1"> |
119 | <a href="" id="actions-delete" class="button">Delete</a> | 121 | <a href="" id="actions-delete" class="button">{'Delete'|t}</a> |
120 | </div> | 122 | </div> |
121 | </div> | 123 | </div> |
122 | </div> | 124 | </div> |
@@ -169,4 +171,18 @@ | |||
169 | </div> | 171 | </div> |
170 | {/if} | 172 | {/if} |
171 | 173 | ||
174 | {if="!empty($global_warnings) && $is_logged_in"} | ||
175 | <div class="pure-g pure-alert pure-alert-warning pure-alert-closable" id="shaarli-warnings-alert"> | ||
176 | <div class="pure-u-2-24"></div> | ||
177 | <div class="pure-u-20-24"> | ||
178 | {loop="global_warnings"} | ||
179 | <p>{$value}</p> | ||
180 | {/loop} | ||
181 | </div> | ||
182 | <div class="pure-u-2-24"> | ||
183 | <i class="fa fa-times pure-alert-close"></i> | ||
184 | </div> | ||
185 | </div> | ||
186 | {/if} | ||
187 | |||
172 | <div class="clear"></div> | 188 | <div class="clear"></div> |
diff --git a/tpl/default/picwall.html b/tpl/default/picwall.html index 2f7e03dc..4c325487 100644 --- a/tpl/default/picwall.html +++ b/tpl/default/picwall.html | |||
@@ -5,41 +5,61 @@ | |||
5 | </head> | 5 | </head> |
6 | <body> | 6 | <body> |
7 | {include="page.header"} | 7 | {include="page.header"} |
8 | {if="!$thumbnails_enabled"} | ||
9 | <div class="pure-g pure-alert pure-alert-warning page-single-alert"> | ||
10 | <div class="pure-u-1 center"> | ||
11 | {'Picture wall unavailable (thumbnails are disabled).'|t} | ||
12 | </div> | ||
13 | </div> | ||
14 | {else} | ||
15 | {if="count($linksToDisplay)===0 && $is_logged_in"} | ||
16 | <div class="pure-g pure-alert pure-alert-warning page-single-alert"> | ||
17 | <div class="pure-u-1 center"> | ||
18 | {'There is no cached thumbnail. Try to <a href="?do=thumbs_update">synchronize them</a>.'|t} | ||
19 | </div> | ||
20 | </div> | ||
21 | {/if} | ||
8 | 22 | ||
9 | <div class="pure-g"> | 23 | <div class="pure-g"> |
10 | <div class="pure-u-lg-1-6 pure-u-1-24"></div> | 24 | <div class="pure-u-lg-1-6 pure-u-1-24"></div> |
11 | <div class="pure-u-lg-2-3 pure-u-22-24 page-form page-visitor"> | 25 | <div class="pure-u-lg-2-3 pure-u-22-24 page-form page-visitor"> |
12 | {$countPics=count($linksToDisplay)} | 26 | {$countPics=count($linksToDisplay)} |
13 | <h2 class="window-title">{'Picture Wall'|t} - {$countPics} {'pics'|t}</h2> | 27 | <h2 class="window-title">{'Picture Wall'|t} - {$countPics} {'pics'|t}</h2> |
14 | 28 | ||
15 | <div id="plugin_zone_start_picwall" class="plugin_zone"> | 29 | <div id="plugin_zone_start_picwall" class="plugin_zone"> |
16 | {loop="$plugin_start_zone"} | 30 | {loop="$plugin_start_zone"} |
17 | {$value} | 31 | {$value} |
18 | {/loop} | 32 | {/loop} |
19 | </div> | 33 | </div> |
20 | 34 | ||
21 | <div id="picwall_container" class="picwall-container"> | 35 | <div id="picwall-container" class="picwall-container"> |
22 | {loop="$linksToDisplay"} | 36 | {loop="$linksToDisplay"} |
23 | <div class="picwall-pictureframe"> | 37 | <div class="picwall-pictureframe"> |
24 | {$value.thumbnail}<a href="{$value.real_url}"><span class="info">{$value.title}</span></a> | 38 | {ignore}RainTPL hack: put the 2 src on two different line to avoid path replace bug{/ignore} |
25 | {loop="$value.picwall_plugin"} | 39 | <img data-src="{$value.thumbnail}#" class="b-lazy" |
26 | {$value} | 40 | src="" |
27 | {/loop} | 41 | alt="thumbnail" width="{$thumbnails_width}" height="{$thumbnails_height}" /> |
28 | </div> | 42 | <a href="{$value.real_url}"><span class="info">{$value.title}</span></a> |
29 | {/loop} | 43 | {loop="$value.picwall_plugin"} |
30 | <div class="clear"></div> | 44 | {$value} |
31 | </div> | 45 | {/loop} |
46 | </div> | ||
47 | {/loop} | ||
48 | <div class="clear"></div> | ||
49 | </div> | ||
32 | 50 | ||
33 | <div id="plugin_zone_end_picwall" class="plugin_zone"> | 51 | <div id="plugin_zone_end_picwall" class="plugin_zone"> |
34 | {loop="$plugin_end_zone"} | 52 | {loop="$plugin_end_zone"} |
35 | {$value} | 53 | {$value} |
36 | {/loop} | 54 | {/loop} |
55 | </div> | ||
37 | </div> | 56 | </div> |
57 | <div class="pure-u-lg-1-6 pure-u-1-24"></div> | ||
38 | </div> | 58 | </div> |
39 | </div> | 59 | {/if} |
40 | 60 | ||
41 | {include="page.footer"} | 61 | {include="page.footer"} |
42 | <script src="js/picwall.min.js?v={$version_hash}"></script> | 62 | <script src="js/thumbnails.min.js?v={$version_hash}"></script> |
43 | </body> | 63 | </body> |
44 | </html> | 64 | </html> |
45 | 65 | ||
diff --git a/tpl/default/thumbnails.html b/tpl/default/thumbnails.html new file mode 100644 index 00000000..a8cf904e --- /dev/null +++ b/tpl/default/thumbnails.html | |||
@@ -0,0 +1,48 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head> | ||
4 | {include="includes"} | ||
5 | </head> | ||
6 | <body> | ||
7 | {include="page.header"} | ||
8 | |||
9 | <div class="pure-g thumbnails-page-container"> | ||
10 | <div class="pure-u-lg-1-3 pure-u-1-24"></div> | ||
11 | <div class="pure-u-lg-1-3 pure-u-22-24 page-form page-form-light"> | ||
12 | <h2 class="window-title">{'Thumbnails update'|t}</h2> | ||
13 | |||
14 | <div class="pure-g"> | ||
15 | <div class="pure-u-lg-1-3 pure-u-1-24"></div> | ||
16 | <div class="pure-u-lg-1-3 pure-u-22-24"> | ||
17 | <div class="thumbnail-placeholder" style="width: {$thumbnails_width}px; height: {$thumbnails_height}px;"></div> | ||
18 | </div> | ||
19 | </div> | ||
20 | |||
21 | <div class="pure-g"> | ||
22 | <div class="pure-u-1-12"></div> | ||
23 | <div class="pure-u-5-6"> | ||
24 | <div class="thumbnail-link-title"></div> | ||
25 | |||
26 | <div class="progressbar"> | ||
27 | <div></div> | ||
28 | </div> | ||
29 | </div> | ||
30 | </div> | ||
31 | |||
32 | <div class="pure-g"> | ||
33 | <div class="pure-u-lg-1-3 pure-u-1-24"></div> | ||
34 | <div class="pure-u-lg-1-3 pure-u-22-24"> | ||
35 | <div class="progress-counter"> | ||
36 | <span class="progress-current">0</span> / <span class="progress-total">{$ids|count}</span> | ||
37 | </div> | ||
38 | </div> | ||
39 | </div> | ||
40 | |||
41 | <input type="hidden" name="ids" value="{function="implode($ids, ',')"}" /> | ||
42 | </div> | ||
43 | </div> | ||
44 | |||
45 | {include="page.footer"} | ||
46 | <script src="js/thumbnails_update.min.js?v={$version_hash}"></script> | ||
47 | </body> | ||
48 | </html> | ||
diff --git a/tpl/default/tools.html b/tpl/default/tools.html index ece66884..c9ce1eaf 100644 --- a/tpl/default/tools.html +++ b/tpl/default/tools.html | |||
@@ -45,6 +45,14 @@ | |||
45 | </a> | 45 | </a> |
46 | </div> | 46 | </div> |
47 | 47 | ||
48 | {if="$thumbnails_enabled"} | ||
49 | <div class="tools-item"> | ||
50 | <a href="?do=thumbs_update" title="{'Synchronize all link thumbnails'|t}"> | ||
51 | <span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Synchronize thumbnails'|t}</span> | ||
52 | </a> | ||
53 | </div> | ||
54 | {/if} | ||
55 | |||
48 | {loop="$tools_plugin"} | 56 | {loop="$tools_plugin"} |
49 | <div class="tools-item"> | 57 | <div class="tools-item"> |
50 | {$value} | 58 | {$value} |
@@ -112,47 +120,27 @@ | |||
112 | </div> | 120 | </div> |
113 | </div> | 121 | </div> |
114 | 122 | ||
115 | {if="$sslenabled"} | ||
116 | <div class="pure-g"> | ||
117 | <div class="pure-u-lg-1-3 pure-u-1-24"></div> | ||
118 | <div class="pure-u-lg-1-3 pure-u-22-24 page-form page-form-light"> | ||
119 | <h2 class="window-title">Firefox Social API</h2> | ||
120 | <p>{'You need to browse your Shaarli over <strong>HTTPS</strong> to use this functionality.'|t}</p> | ||
121 | |||
122 | <div class="tools-item"> | ||
123 | <a title="{'Click on this button to add Shaarli to the 'Share this page' button in Firefox" | ||
124 | id="ff-social-button"> | ||
125 | <span class="pure-button pure-u-lg-2-3 pure-u-3-4">✚ {'Add to'|t} Firefox Social</span> | ||
126 | </a> | ||
127 | </div> | ||
128 | </div> | ||
129 | </div> | ||
130 | {/if} | ||
131 | |||
132 | <div class="pure-g"> | 123 | <div class="pure-g"> |
133 | <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> |
134 | <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"> |
135 | <h2 class="window-title">{'3rd party'|t}</h2> | 126 | <h2 class="window-title">{'3rd party'|t}</h2> |
136 | <div class="tools-item"> | 127 | <div class="tools-item"> |
137 | <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/"> |
138 | <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> |
139 | </a> | 130 | </a> |
140 | </div> | 131 | </div> |
141 | <div class="tools-item"> | 132 | <div class="tools-item"> |
142 | <a href="https://chrome.google.com/webstore/detail/shiny-shaarli/hajdfkmbdmadjmmpkkbbcnllepomekin" | 133 | <a href="https://chrome.google.com/webstore/detail/shiny-shaarli/hajdfkmbdmadjmmpkkbbcnllepomekin"> |
143 | title="Chrome {'Plugin'|t}"> | ||
144 | <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> |
145 | </a> | 135 | </a> |
146 | </div> | 136 | </div> |
147 | <div class="tools-item"> | 137 | <div class="tools-item"> |
148 | <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"> |
149 | title="Android Shaarlier"> | ||
150 | <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> |
151 | </a> | 140 | </a> |
152 | </div> | 141 | </div> |
153 | <div class="tools-item"> | 142 | <div class="tools-item"> |
154 | <a href="https://stakali.toneiv.eu/" | 143 | <a href="https://stakali.toneiv.eu/"> |
155 | title="Android Stakali"> | ||
156 | <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> |
157 | </a> | 145 | </a> |
158 | </div> | 146 | </div> |
diff --git a/tpl/vintage/configure.html b/tpl/vintage/configure.html index 479284eb..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" |
@@ -128,6 +120,29 @@ | |||
128 | <input type="text" name="apiSecret" id="apiSecret" size="50" value="{$api_secret}" /> | 120 | <input type="text" name="apiSecret" id="apiSecret" size="50" value="{$api_secret}" /> |
129 | </td> | 121 | </td> |
130 | </tr> | 122 | </tr> |
123 | <tr> | ||
124 | <td valign="top"><b>Enable thumbnails</b></td> | ||
125 | <td> | ||
126 | <select name="enableThumbnails" id="enableThumbnails" class="align"> | ||
127 | <option value="all" {if="$thumbnails_mode=='all'"}selected{/if}> | ||
128 | {'All'|t} | ||
129 | </option> | ||
130 | <option value="common" {if="$thumbnails_mode=='common'"}selected{/if}> | ||
131 | {'Only common media hosts'|t} | ||
132 | </option> | ||
133 | <option value="none" {if="$thumbnails_mode=='none'"}selected{/if}> | ||
134 | {'None'|t} | ||
135 | </option> | ||
136 | </select> | ||
137 | <label for="enableThumbnails"> | ||
138 | {if="! $gd_enabled"} | ||
139 | {'You need to enable the extension <code>php-gd</code> to use thumbnails.'|t} | ||
140 | {elseif="$thumbnails_enabled"} | ||
141 | <a href="?do=thumbs_update">{'Synchonize thumbnails'|t}</a> | ||
142 | {/if} | ||
143 | </label> | ||
144 | </td> | ||
145 | </tr> | ||
131 | 146 | ||
132 | <tr> | 147 | <tr> |
133 | <td></td> | 148 | <td></td> |
diff --git a/tpl/vintage/daily.html b/tpl/vintage/daily.html index ede35910..71d84475 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/includes.html b/tpl/vintage/includes.html index 410b466b..2efb6b10 100644 --- a/tpl/vintage/includes.html +++ b/tpl/vintage/includes.html | |||
@@ -12,3 +12,23 @@ | |||
12 | {/loop} | 12 | {/loop} |
13 | {if="is_file('data/user.css')"}<link type="text/css" rel="stylesheet" href="data/user.css#" />{/if} | 13 | {if="is_file('data/user.css')"}<link type="text/css" rel="stylesheet" href="data/user.css#" />{/if} |
14 | <link rel="search" type="application/opensearchdescription+xml" href="?do=opensearch#" title="Shaarli search - {$shaarlititle|htmlspecialchars}"/> | 14 | <link rel="search" type="application/opensearchdescription+xml" href="?do=opensearch#" title="Shaarli search - {$shaarlititle|htmlspecialchars}"/> |
15 | {if="! empty($links) && count($links) === 1"} | ||
16 | {$link=reset($links)} | ||
17 | <meta property="og:title" content="{$link.title}" /> | ||
18 | <meta property="og:type" content="article" /> | ||
19 | <meta property="og:url" content="{$index_url}?{$link.shorturl}" /> | ||
20 | {$ogDescription=isset($link.description_src) ? $link.description_src : $link.description} | ||
21 | <meta property="og:description" content="{function="mb_substr(strip_tags($ogDescription), 0, 300)"}" /> | ||
22 | {if="$link.thumbnail"} | ||
23 | <meta property="og:image" content="{$index_url}{$link.thumbnail}" /> | ||
24 | {/if} | ||
25 | {if="!$hide_timestamps || $is_logged_in"} | ||
26 | <meta property="article:published_time" content="{$link.created->format(DateTime::ATOM)}" /> | ||
27 | {if="$link.updated"} | ||
28 | <meta property="article:modified_time" content="{$link.updated->format(DateTime::ATOM)}" /> | ||
29 | {/if} | ||
30 | {/if} | ||
31 | {loop="link.taglist"} | ||
32 | <meta property="article:tag" content="{$value}" /> | ||
33 | {/loop} | ||
34 | {/if} | ||
diff --git a/tpl/vintage/linklist.html b/tpl/vintage/linklist.html index 1ca51be3..dcb14e90 100644 --- a/tpl/vintage/linklist.html +++ b/tpl/vintage/linklist.html | |||
@@ -80,7 +80,16 @@ | |||
80 | {loop="$links"} | 80 | {loop="$links"} |
81 | <li{if="$value.class"} class="{$value.class}"{/if}> | 81 | <li{if="$value.class"} class="{$value.class}"{/if}> |
82 | <a id="{$value.shorturl}"></a> | 82 | <a id="{$value.shorturl}"></a> |
83 | <div class="thumbnail">{$value.url|thumbnail}</div> | 83 | {if="$thumbnails_enabled && !empty($value.thumbnail)"} |
84 | <div class="thumbnail"> | ||
85 | <a href="{$value.real_url}"> | ||
86 | {ignore}RainTPL hack: put the 2 src on two different line to avoid path replace bug{/ignore} | ||
87 | <img data-src="{$value.thumbnail}#" class="b-lazy" | ||
88 | src="" | ||
89 | alt="thumbnail" width="{$thumbnails_width}" height="{$thumbnails_height}" /> | ||
90 | </a> | ||
91 | </div> | ||
92 | {/if} | ||
84 | <div class="linkcontainer"> | 93 | <div class="linkcontainer"> |
85 | {if="$is_logged_in"} | 94 | {if="$is_logged_in"} |
86 | <div class="linkeditbuttons"> | 95 | <div class="linkeditbuttons"> |
@@ -145,6 +154,7 @@ | |||
145 | </div> | 154 | </div> |
146 | 155 | ||
147 | {include="page.footer"} | 156 | {include="page.footer"} |
157 | <script src="js/thumbnails.min.js"></script> | ||
148 | 158 | ||
149 | </body> | 159 | </body> |
150 | </html> | 160 | </html> |
diff --git a/tpl/vintage/picwall.html b/tpl/vintage/picwall.html index 29688914..b3a16791 100644 --- a/tpl/vintage/picwall.html +++ b/tpl/vintage/picwall.html | |||
@@ -15,7 +15,11 @@ | |||
15 | <div id="picwall_container"> | 15 | <div id="picwall_container"> |
16 | {loop="$linksToDisplay"} | 16 | {loop="$linksToDisplay"} |
17 | <div class="picwall_pictureframe"> | 17 | <div class="picwall_pictureframe"> |
18 | {$value.thumbnail}<a href="{$value.real_url}"><span class="info">{$value.title}</span></a> | 18 | {ignore}RainTPL hack: put the 2 src on two different line to avoid path replace bug{/ignore} |
19 | <img data-src="{$value.thumbnail}#" class="b-lazy" | ||
20 | src="" | ||
21 | alt="thumbnail" width="{$thumbnails_width}" height="{$thumbnails_height}" /> | ||
22 | <a href="{$value.real_url}"><span class="info">{$value.title}</span></a> | ||
19 | {loop="$value.picwall_plugin"} | 23 | {loop="$value.picwall_plugin"} |
20 | {$value} | 24 | {$value} |
21 | {/loop} | 25 | {/loop} |
@@ -34,6 +38,6 @@ | |||
34 | 38 | ||
35 | {include="page.footer"} | 39 | {include="page.footer"} |
36 | 40 | ||
37 | <script src="js/picwall.min.js"></script> | 41 | <script src="js/thumbnails.min.js"></script> |
38 | </body> | 42 | </body> |
39 | </html> | 43 | </html> |
diff --git a/tpl/vintage/thumbnails.html b/tpl/vintage/thumbnails.html new file mode 100644 index 00000000..79aebf8d --- /dev/null +++ b/tpl/vintage/thumbnails.html | |||
@@ -0,0 +1,28 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head>{include="includes"}</head> | ||
4 | <body> | ||
5 | <div id="pageheader"> | ||
6 | {include="page.header"} | ||
7 | </div> | ||
8 | |||
9 | <div class="center thumbnails-update-container"> | ||
10 | <div class="thumbnail-placeholder" style="width: {$thumbnails_width}px; height: {$thumbnails_height}px;"></div> | ||
11 | |||
12 | <div class="thumbnail-link-title"></div> | ||
13 | |||
14 | <div class="progressbar"> | ||
15 | <div></div> | ||
16 | </div> | ||
17 | |||
18 | <div class="progress-counter"> | ||
19 | <span class="progress-current">0</span> / <span class="progress-total">{$ids|count}</span> | ||
20 | </div> | ||
21 | </div> | ||
22 | |||
23 | <input type="hidden" name="ids" value="{function="implode($ids, ',')"}" /> | ||
24 | |||
25 | {include="page.footer"} | ||
26 | <script src="js/thumbnails_update.min.js?v={$version_hash}"></script> | ||
27 | </body> | ||
28 | </html> | ||
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>⇐ 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; |