aboutsummaryrefslogtreecommitdiffhomepage
path: root/tpl
diff options
context:
space:
mode:
Diffstat (limited to 'tpl')
-rw-r--r--tpl/addlink.html16
-rw-r--r--tpl/changepassword.html15
-rw-r--r--tpl/changetag.html16
-rw-r--r--tpl/configure.html21
-rw-r--r--tpl/daily.html63
-rw-r--r--tpl/dailyrss.html8
-rw-r--r--tpl/editlink.html28
-rw-r--r--tpl/export.html15
-rw-r--r--tpl/import.html21
-rw-r--r--tpl/includes.html10
-rw-r--r--tpl/install.html21
-rw-r--r--tpl/linklist.html76
-rw-r--r--tpl/linklist.paging.html20
-rw-r--r--tpl/loginform.html26
-rw-r--r--tpl/page.footer.html20
-rw-r--r--tpl/page.header.html26
-rw-r--r--tpl/page.html9
-rw-r--r--tpl/picwall.html24
-rw-r--r--tpl/picwall2.html19
-rw-r--r--tpl/readme.txt42
-rw-r--r--tpl/tagcloud.html15
-rw-r--r--tpl/tools.html19
22 files changed, 530 insertions, 0 deletions
diff --git a/tpl/addlink.html b/tpl/addlink.html
new file mode 100644
index 00000000..853715dc
--- /dev/null
+++ b/tpl/addlink.html
@@ -0,0 +1,16 @@
1<!DOCTYPE html>
2<html>
3<head>{include="includes"}</head>
4<body onload="document.addform.post.focus();">
5<div id="pageheader">
6 {include="page.header"}
7 <div id="headerform">
8 <form method="GET" action="" name="addform" class="addform">
9 <input type="text" name="post" style="width:50%;">
10 <input type="submit" value="Add link" class="bigbutton">
11 </form>
12 </div>
13</div>
14{include="page.footer"}
15</body>
16</html> \ No newline at end of file
diff --git a/tpl/changepassword.html b/tpl/changepassword.html
new file mode 100644
index 00000000..48cf5fa3
--- /dev/null
+++ b/tpl/changepassword.html
@@ -0,0 +1,15 @@
1<!DOCTYPE html>
2<html>
3<head>{include="includes"}</head>
4<body onload="document.changepasswordform.oldpassword.focus();">
5<div id="pageheader">
6 {include="page.header"}
7 <form method="POST" action="" name="changepasswordform" id="changepasswordform">
8 Old password: <input type="password" name="oldpassword">&nbsp; &nbsp;
9 New password: <input type="password" name="setpassword">
10 <input type="hidden" name="token" value="{$token}">
11 <input type="submit" name="Save" value="Save password" class="bigbutton"></form>
12</div>
13{include="page.footer"}
14</body>
15</html> \ No newline at end of file
diff --git a/tpl/changetag.html b/tpl/changetag.html
new file mode 100644
index 00000000..b0bd0d06
--- /dev/null
+++ b/tpl/changetag.html
@@ -0,0 +1,16 @@
1<!DOCTYPE html>
2<html>
3<head>{include="includes"}</head>
4<body onload="document.changetag.fromtag.focus();">
5<div id="pageheader">
6 {include="page.header"}
7 <form method="POST" action="" name="changetag" id="changetag">
8 <input type="hidden" name="token" value="{$token}">
9 Tag: <input type="text" name="fromtag" id="fromtag">
10 <input type="text" name="totag" style="margin-left:40px;"><input type="submit" name="renametag" value="Rename tag" class="bigbutton">
11 &nbsp;&nbsp;or&nbsp; <input type="submit" name="deletetag" value="Delete tag" class="bigbutton" onClick="return confirmDeleteTag();"><br>(Case sensitive)</form>
12<script language="JavaScript">function confirmDeleteTag() { var agree=confirm("Are you sure you want to delete this tag from all links ?"); if (agree) return true ; else return false ; }</script>
13</div>
14{include="page.footer"}
15</body>
16</html> \ No newline at end of file
diff --git a/tpl/configure.html b/tpl/configure.html
new file mode 100644
index 00000000..00c41f28
--- /dev/null
+++ b/tpl/configure.html
@@ -0,0 +1,21 @@
1<!DOCTYPE html>
2<html>
3<head>{include="includes"}</head>
4<body onload="document.configform.title.focus();">
5<div id="pageheader">
6 {include="page.header"}
7{$timezone_js}
8 <form method="POST" action="" name="configform" id="configform">
9 <input type="hidden" name="token" value="{$token}">
10 <table border="0" cellpadding="20">
11 <tr><td><b>Page title:</b></td><td><input type="text" name="title" id="title" size="50" value="{$title}"></td></tr>
12 <tr><td valign="top"><b>Timezone:</b></td><td>{$timezone_form}</td></tr>
13 <tr><td valign="top"><b>Redirector</b></td><td><input type="text" name="redirector" id="redirector" size="50" value="{$redirector}"><br>(e.g. <i>http://anonym.to/?</i> will mask the HTTP_REFERER)</td></tr>
14 <tr> <td valign="top">Security:</td> <td><input type="checkbox" name="disablesessionprotection" id="disablesessionprotection" {if="!empty($GLOBALS['disablesessionprotection'])"}checked{/if}><label for="disablesessionprotection">&nbsp;Disable session cookie hijacking protection (Check this if you get disconnected often or if your IP address changes often.)</label></td></tr>
15 <tr><td></td><td align="right"><input type="submit" name="Save" value="Save config" class="bigbutton"></td></tr>
16 </table>
17 </form>
18</div>
19{include="page.footer"}
20</body>
21</html> \ No newline at end of file
diff --git a/tpl/daily.html b/tpl/daily.html
new file mode 100644
index 00000000..4bc8568b
--- /dev/null
+++ b/tpl/daily.html
@@ -0,0 +1,63 @@
1<!DOCTYPE html>
2<html>
3<head>{include="includes"}</head>
4<body>
5<div id="pageheader">{include="page.header"}</div>
6<div class="daily">
7 <div class="dailyAbout">
8 All links of one day<br>in a single page.<br>
9 {if="$previousday"} <a href="?do=daily&day={$previousday}"><b>&lt;</b>Previous day</a>{else}<b>&lt;</b>Previous day{/if}
10 -
11 {if="$nextday"}<a href="?do=daily&day={$nextday}">Next day<b>&gt;</b></a>{else}Next day<b>&gt;</b>{/if}
12 <br><br>
13 <a href="?do=dailyrss" title="1 RSS entry per day"><img src="images/feed-icon-14x14.png#" width="14" height="14" style="position:relative;top:3px; margin-right:4px;">Daily RSS Feed</a>
14 </div>
15 <div class="dailyTitle"><img src="../images/floral_left.png" width="51" height="50" class="nomobile"> The Daily Shaarli <img src="../images/floral_right.png" width="51" height="50" class="nomobile"></div>
16 <div class="dailyDate"><span class="nomobile">&#x0097;&#x0097;&#x0097;&#x0097;&#x0097;&#x0097;&#x0097;&#x0097;&#x0097;&#x0097;&#x0097;</span> {$day} <span class="nomobile">&#x0097;&#x0097;&#x0097;&#x0097;&#x0097;&#x0097;&#x0097;&#x0097;&#x0097;&#x0097;&#x0097;</span></div>
17 <div style="clear:both;"></div>
18
19 {if="$linksToDisplay"}
20 <div id="daily_col1">
21 {loop="col1"}
22 <div class="dailyEntry">
23 <div style="float:right;position:relative;top:-1px;"><a href="?{$value.linkdate|smallHash}"><img src="../images/squiggle2.png" width="25" height="26" title="permalink" alt="permalink"></a></div>
24 {if="$value.tags"}<div class="dailyEntryTags">{loop="value.taglist"}{$value|htmlspecialchars} - {/loop}</div>{/if}
25 <div class="dailyEntryTitle"><a href="{$value.url}">{$value.title|htmlspecialchars}</a></div>
26 {if="$value.thumbnail"}<div class="dailyEntryThumbnail">{$value.thumbnail}</div>{/if}
27 <div class="dailyEntryDescription">{$value.formatedDescription}</div>
28 </div>
29 {/loop}
30 </div>
31
32 <div id="daily_col2">
33 {loop="col2"}
34 <div class="dailyEntry">
35 <div style="float:right;position:relative;top:-1px;"><a href="?{$value.linkdate|smallHash}"><img src="../images/squiggle2.png" width="25" height="26" title="permalink" alt="permalink"></a></div>
36 {if="$value.tags"}<div class="dailyEntryTags">{loop="value.taglist"}{$value|htmlspecialchars} - {/loop}</div>{/if}
37 <div class="dailyEntryTitle"><a href="{$value.url}">{$value.title|htmlspecialchars}</a></div>
38 {if="$value.thumbnail"}<div class="dailyEntryThumbnail">{$value.thumbnail}</div>{/if}
39 <div class="dailyEntryDescription">{$value.formatedDescription}</div>
40 </div>
41 {/loop}
42 </div>
43
44 <div id="daily_col3">
45 {loop="col3"}
46 <div class="dailyEntry">
47 <div style="float:right;position:relative;top:-1px;"><a href="?{$value.linkdate|smallHash}"><img src="../images/squiggle2.png" width="25" height="26" title="permalink" alt="permalink"></a></div>
48 {if="$value.tags"}<div class="dailyEntryTags">{loop="value.taglist"}{$value|htmlspecialchars} - {/loop}</div>{/if}
49 <div class="dailyEntryTitle"><a href="{$value.url}">{$value.title|htmlspecialchars}</a></div>
50 {if="$value.thumbnail"}<div class="dailyEntryThumbnail">{$value.thumbnail}</div>{/if}
51 <div class="dailyEntryDescription">{$value.formatedDescription}</div>
52 </div>
53 {/loop}
54 </div>
55 {else}
56 <div style="text-align:center; padding:40px 0px 90px 0px;">No articles on this day.</div>
57 {/if}
58 <div style="clear:both;"></div>
59 <div style="text-align:center; padding-bottom:20px;"><img src="../images/squiggle_closing.png" width="66" height="61" alt="-"></div>
60</div>
61{include="page.footer"}
62</body>
63</html> \ No newline at end of file
diff --git a/tpl/dailyrss.html b/tpl/dailyrss.html
new file mode 100644
index 00000000..436e1cd2
--- /dev/null
+++ b/tpl/dailyrss.html
@@ -0,0 +1,8 @@
1{loop="links"}
2 <h3><a href="{$value.url}">{$value.title|htmlspecialchars}</a></h3>
3 <small>{if="!$GLOBALS['config']['HIDE_TIMESTAMPS']"}{$value.localdate|htmlspecialchars} - {/if}{if="$value.tags"}{$value.tags|htmlspecialchars}{/if}<br>
4 {$value.url|htmlspecialchars}</small><br>
5 {if="$value.thumbnail"}{$value.thumbnail}{/if}<br>
6 {if="$value.description"}{$value.formatedDescription}{/if}
7 <br><br><hr>
8{/loop} \ No newline at end of file
diff --git a/tpl/editlink.html b/tpl/editlink.html
new file mode 100644
index 00000000..4ad43b35
--- /dev/null
+++ b/tpl/editlink.html
@@ -0,0 +1,28 @@
1<!DOCTYPE html>
2<html>
3<head>{include="includes"}</head>
4<body
5{if condition="$link.title==''"}onload="document.linkform.lf_title.focus();"
6{elseif condition="$link.description==''"}onload="document.linkform.lf_description.focus();"
7{else}onload="document.linkform.lf_tags.focus();"{/if} >
8<div id="pageheader">
9 {include="page.header"}
10 <div id="editlinkform">
11 <form method="post" name="linkform">
12 <input type="hidden" name="lf_linkdate" value="{$link.linkdate}">
13 <i>URL</i><br><input type="text" name="lf_url" value="{$link.url|htmlspecialchars}" style="width:100%"><br>
14 <i>Title</i><br><input type="text" name="lf_title" value="{$link.title|htmlspecialchars}" style="width:100%"><br>
15 <i>Description</i><br><textarea name="lf_description" rows="4" cols="25" style="width:100%">{$link.description|htmlspecialchars}</textarea><br>
16 <i>Tags</i><br><input type="text" id="lf_tags" name="lf_tags" value="{$link.tags|htmlspecialchars}" style="width:100%"><br>
17 <input type="checkbox" {if condition="$link.private!=0"}checked="yes"{/if} style="margin:7 0 10 0;" name="lf_private" id="lf_private">&nbsp;<label for="lf_private"><i>Private</i></label><br>
18 <input type="submit" value="Save" name="save_edit" class="bigbutton" style="margin-left:40px;">
19 <input type="submit" value="Cancel" name="cancel_edit" class="bigbutton" style="margin-left:40px;">
20 {if condition="!$link_is_new"}<input type="submit" value="Delete" name="delete_link" class="bigbutton" style="margin-left:180px;" onClick="return confirmDeleteLink();">{/if}
21 <input type="hidden" name="token" value="{$token}">
22 {if condition="$http_referer"}<input type="hidden" name="returnurl" value="{$http_referer|htmlspecialchars}">{/if}
23 </form>
24 </div>
25</div>
26{include="page.footer"}
27</body>
28</html> \ No newline at end of file
diff --git a/tpl/export.html b/tpl/export.html
new file mode 100644
index 00000000..938cbe64
--- /dev/null
+++ b/tpl/export.html
@@ -0,0 +1,15 @@
1<!DOCTYPE html>
2<html>
3<head>{include="includes"}</head>
4<body>
5<div id="pageheader">
6 {include="page.header"}
7 <div id="toolsdiv">
8 <a href="?do=export&what=all"><b>Export all</b> <span>: Export all links</span></a><br><br>
9 <a href="?do=export&what=public"><b>Export public</b> <span>: Export public links only</a><br><br>
10 <a href="?do=export&what=private"><b>Export private</b> <span>: Export private links only</a><br><br style="clear:both;">
11 </div>
12</div>
13{include="page.footer"}
14</body>
15</html> \ No newline at end of file
diff --git a/tpl/import.html b/tpl/import.html
new file mode 100644
index 00000000..9e581fc9
--- /dev/null
+++ b/tpl/import.html
@@ -0,0 +1,21 @@
1<!DOCTYPE html>
2<html>
3<head>{include="includes"}</head>
4<body onload="document.uploadform.filetoupload.focus();">
5<div id="pageheader">
6 {include="page.header"}
7 <div id="uploaddiv">
8 Import Netscape html bookmarks (as exported from Firefox/Chrome/Opera/delicious/diigo...) (Max: {$maxfilesize|htmlspecialchars} bytes).
9 <form method="POST" action="?do=upload" enctype="multipart/form-data" name="uploadform" id="uploadform">
10 <input type="hidden" name="token" value="{$token}">
11 <input type="file" name="filetoupload" size="80">
12 <input type="hidden" name="MAX_FILE_SIZE" value="{$maxfilesize|htmlspecialchars}">
13 <input type="submit" name="import_file" value="Import" class="bigbutton"><br>
14 <input type="checkbox" name="private" id="private"><label for="private">&nbsp;Import all links as private</label><br>
15 <input type="checkbox" name="overwrite" id="overwrite"><label for="overwrite">&nbsp;Overwrite existing links</label>
16 </form>
17 </div>
18</div>
19{include="page.footer"}
20</body>
21</html> \ No newline at end of file
diff --git a/tpl/includes.html b/tpl/includes.html
new file mode 100644
index 00000000..5319f452
--- /dev/null
+++ b/tpl/includes.html
@@ -0,0 +1,10 @@
1<title>{$pagetitle}</title>
2<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3<meta name="format-detection" content="telephone=no" />
4<meta name="viewport" content="width=device-width,initial-scale=1.0" />
5<link rel="alternate" type="application/rss+xml" href="{$feedurl}?do=rss{$searchcrits}#" title="RSS Feed" />
6<link rel="alternate" type="application/atom+xml" href="{$feedurl}?do=atom{$searchcrits}#" title="ATOM Feed" />
7<link href="images/favicon.ico#" rel="shortcut icon" type="image/x-icon" />
8<link type="text/css" rel="stylesheet" href="inc/shaarli.css?version={$version|urlencode}#" />
9{if condition="is_file('inc/user.css')"}<link type="text/css" rel="stylesheet" href="inc/user.css?version={$version}#" />{/if}
10<script src="inc/jquery.min.js#"></script><script src="inc/jquery-ui.min.js#"></script>
diff --git a/tpl/install.html b/tpl/install.html
new file mode 100644
index 00000000..4034ef1b
--- /dev/null
+++ b/tpl/install.html
@@ -0,0 +1,21 @@
1<!DOCTYPE html>
2<html>
3<head>{include="includes"}{$timezone_js}</head>
4<body onload="document.installform.setlogin.focus();">
5<div style="margin-left:20px;">
6<h1>Shaarli</h1>
7It looks like it's the first time you run Shaarli. Please configure it:<br>
8<div style="color:white !important;">
9<form method="POST" action="" name="installform" id="installform" style="border:1px solid black; padding:10 10 10 10;">
10<table border="0" cellpadding="20">
11<tr><td><b>Login:</b></td><td><input type="text" name="setlogin" size="30"></td></tr>
12<tr><td><b>Password:</b></td><td><input type="password" name="setpassword" size="30"></td></tr>
13{$timezone_html}
14<tr><td><b>Page title:</b></td><td><input type="text" name="title" size="30"></td></tr>
15<tr><td></td><td align="right"><input type="submit" name="Save" value="Save config" class="bigbutton"></td></tr>
16</table>
17</form>
18</div>
19{include="page.footer"}
20</body>
21</html> \ No newline at end of file
diff --git a/tpl/linklist.html b/tpl/linklist.html
new file mode 100644
index 00000000..bfb1fcda
--- /dev/null
+++ b/tpl/linklist.html
@@ -0,0 +1,76 @@
1<!DOCTYPE html>
2<html>
3<head>{include="includes"}</head>
4<body>
5<div id="pageheader">
6 {include="page.header"}
7 <div id="headerform" style="width:100%; white-space:nowrap;">
8 <form method="GET" class="searchform" name="searchform" style="display:inline;"><input type="text" id="searchform_value" name="searchterm" style="width:30%" value=""> <input type="submit" value="Search" class="bigbutton"></form>
9 <form method="GET" class="tagfilter" name="tagfilter" style="display:inline;margin-left:24px;"><input type="text" name="searchtags" id="tagfilter_value" style="width:10%" value=""> <input type="submit" value="Filter by tag" class="bigbutton"></form>
10 </div>
11</div>
12
13<div id="linklist">
14
15 {include="linklist.paging"}
16
17 {if="count($links)==0"}
18 <div id="searchcriteria">Nothing found.</i></div>
19 {else}
20 {if="$search_type=='fulltext'"}
21 <div id="searchcriteria">{$result_count} results for <i>{$search_crits}</i></div>
22 {/if}
23 {if="$search_type=='tags'"}
24 <div id="searchcriteria">{$result_count} results for tags <i>
25 {loop="search_crits"}
26 <span class="linktag" title="Remove tag"><a href="?removetag={$value|htmlspecialchars}">{$value|htmlspecialchars} <span style="border-left:1px solid #aaa; padding-left:5px; color:#6767A7;">x</span></a></span>
27 {/loop}</i></div>
28 {/if}
29 {/if}
30 <ul>
31 {loop="links"}
32 <li{if="$value.class"} class="{$value.class}"{/if}>
33 <div class="thumbnail">{$value.url|thumbnail}</div>
34 <div class="linkcontainer">
35 <span class="linktitle"><a href="{$redirector}{$value.url}">{$value.title|htmlspecialchars}</a></span>
36 {if="isLoggedIn()"}
37 <form method="GET" class="buttoneditform"><input type="hidden" name="edit_link" value="{$value.linkdate}"><input type="image" alt="Edit" src="images/edit_icon.png#" title="Edit" class="button_edit"></form>
38 <form method="POST" class="buttoneditform"><input type="hidden" name="lf_linkdate" value="{$value.linkdate}">
39 <input type="hidden" name="token" value="{$token}"><input type="hidden" name="delete_link"><input type="image" alt="Delete" src="images/delete_icon.png#" title="Delete" class="button_delete" onClick="return confirmDeleteLink();"></form>
40 {/if}
41 <br>
42 {if="$value.description"}<div class="linkdescription"{if condition="$search_type=='permalink'"} style="max-height:none !important;"{/if}>{$value.description}</div>{/if}
43 {if="!$GLOBALS['config']['HIDE_TIMESTAMPS'] || isLoggedIn()"}
44 <span class="linkdate" title="Permalink"><a href="?{$value.linkdate|smallHash}">{$value.localdate|htmlspecialchars} - permalink</a> - </span>
45 {else}
46 <span class="linkdate" title="Short link here"><a href="?{$value.linkdate|smallHash}">permalink</a> - </span>
47 {/if}
48 <div style="position:relative;display:inline;"><a href="http://invx.com/code/qrcode/?code={$scripturl|urlencode}%3F{$value.linkdate|smallHash}&width=200&height=200" onclick="return false;" class="qrcode"><img src="images/qrcode.png#" width="13" height="13" title="QR-Code"></a></div> -
49 <span class="linkurl" title="Short link">{$value.url|htmlspecialchars}</span><br>
50 {if="$value.tags"}
51 <div class="linktaglist">
52 {loop="value.taglist"}<span class="linktag" title="Add tag"><a href="?addtag={$value|urlencode}">{$value|htmlspecialchars}</a></span> {/loop}
53 </div>
54 {/if}
55 </div>
56 </li>
57 {/loop}
58 </ul>
59
60 {include="linklist.paging"}
61
62</div>
63
64 {include="page.footer"}
65<script>
66$(document).ready(function() {
67 $('a.qrcode').click(function(){
68 hide_qrcode();
69 var link = $(this).attr('href');
70 $(this).after('<div class="qrcode" onclick="hide_qrcode();return false;"><img src="'+link+'#" width="200" height="200"><br>click to close</div>');
71 });
72});
73function hide_qrcode() { $('div.qrcode').remove(); }
74</script>
75</body>
76</html> \ No newline at end of file
diff --git a/tpl/linklist.paging.html b/tpl/linklist.paging.html
new file mode 100644
index 00000000..b0c119d9
--- /dev/null
+++ b/tpl/linklist.paging.html
@@ -0,0 +1,20 @@
1<div class="paging">
2{if="isLoggedIn()"}
3 <div id="paging_privatelinks">
4 <a href="?privateonly">
5 {if="$privateonly"}
6 <img src="images/private_16x16_active.png#" width="16" height="16" title="Click to see all links" alt="Click to see all links">
7 {else}
8 <img src="images/private_16x16.png#" width="16" height="16" title="Click to see only private links" alt="Click to see only private links">
9 {/if}
10 </a>
11 </div>
12{/if}
13 <div id="paging_linksperpage">
14 Links per page: <a href="?linksperpage=20">20</a> <a href="?linksperpage=50">50</a> <a href="?linksperpage=100">100</a>
15 <form method="GET" style="display:inline;" class="linksperpage"><input type="text" name="linksperpage" size="2" style="height:15px;"></form>
16 </div>
17 {if="$previous_page_url"} <a href="{$previous_page_url}" id="paging_older">&#x25C4;Older</a> {/if}
18 <div id="paging_current">page {$page_current} / {$page_max} </div>
19 {if="$next_page_url"} <a href="{$next_page_url}" id="paging_newer">Newer&#x25BA;</a> {/if}
20</div> \ No newline at end of file
diff --git a/tpl/loginform.html b/tpl/loginform.html
new file mode 100644
index 00000000..805a0148
--- /dev/null
+++ b/tpl/loginform.html
@@ -0,0 +1,26 @@
1<!DOCTYPE html>
2<html>
3<head>{include="includes"}</head>
4<body{if="ban_canLogin()"} onload="document.loginform.login.focus();"{/if}>
5<div id="pageheader">
6 {include="page.header"}
7
8 <div id="headerform">
9{if="!ban_canLogin()"}
10 You have been banned from login after too many failed attempts. Try later.
11{else}
12 <form method="post" name="loginform">
13 Login: <input type="text" name="login" tabindex="1">&nbsp;&nbsp;&nbsp;
14 Password : <input type="password" name="password" tabindex="2">
15 <input type="submit" value="Login" class="bigbutton" tabindex="4"><br>
16 <input style="margin:10 0 0 40;" type="checkbox" name="longlastingsession" id="longlastingsession" tabindex="3"><label for="longlastingsession">&nbsp;Stay signed in (Do not check on public computers)</label>
17 <input type="hidden" name="token" value="{$token}">
18 {if="$returnurl"}<input type="hidden" name="returnurl" value="{$returnurl|htmlspecialchars}">{/if}
19 </form>
20{/if}
21 </div>
22</div>
23
24{include="page.footer"}
25</body>
26</html> \ No newline at end of file
diff --git a/tpl/page.footer.html b/tpl/page.footer.html
new file mode 100644
index 00000000..7fe15017
--- /dev/null
+++ b/tpl/page.footer.html
@@ -0,0 +1,20 @@
1<div id="footer">
2 <b><a href="http://sebsauvage.net/wiki/doku.php?id=php:shaarli">Shaarli {$version|htmlspecialchars}</a></b> - The personal, minimalist, super-fast, no-database delicious clone. By <a href="http://sebsauvage.net" target="_blank">sebsauvage.net</a>. Theme by <a href="http://blog.idleman.fr" target="_blank">idleman.fr</a>.
3</div>
4{if="$newversion"}
5 <div id="newversion"><span style="text-decoration:blink;">&#x25CF;</span> Shaarli {$newversion|htmlspecialchars} is <a href="http://sebsauvage.net/wiki/doku.php?id=php:shaarli#download">available</a>.</div>
6{/if}
7{if="isLoggedIn()"}
8<script language="JavaScript">function confirmDeleteLink() { var agree=confirm("Are you sure you want to delete this link ?"); if (agree) return true ; else return false ; }</script>
9{/if}
10
11{if="$GLOBALS['config']['OPEN_SHAARLI'] || isLoggedIn()"}
12<script language="JavaScript">
13$(document).ready(function()
14{
15 $('#lf_tags').autocomplete({source:'{$source}?ws=tags',minLength:1});
16 $('#searchtags').autocomplete({source:'{$source}?ws=tags',minLength:1});
17 $('#fromtag').autocomplete({source:'{$source}?ws=singletag',minLength:1});
18});
19</script>
20{/if}
diff --git a/tpl/page.header.html b/tpl/page.header.html
new file mode 100644
index 00000000..60fc1767
--- /dev/null
+++ b/tpl/page.header.html
@@ -0,0 +1,26 @@
1
2 <div id="logo" title="Share your links !" onclick="document.location='?';"></div>
3 <div style="float:right; font-style:italic; color:#bbb; text-align:right; padding:0 5 0 0;" class="nomobile">Shaare your links...<br>
4 {if="!empty($linkcount)"}{$linkcount} links{/if}</div>
5 <span id="shaarli_title"><a href="?">{$shaarlititle}</a></span>
6
7{if="!empty($_GET['source']) && $_GET['source']=='bookmarklet'"}
8 {ignore} When called as a popup from bookmarklet, do not display menu. {/ignore}
9{else}
10 <a href="?" class="nomobile">Home</a>
11 {if="isLoggedIn()"}
12 <a href="?do=logout">Logout</a><a href="?do=tools">Tools</a><a href="?do=addlink"><b>Add link</b></a>
13 {elseif="$GLOBALS['config']['OPEN_SHAARLI']"}
14 <a href="?do=tools">Tools</a><a href="?do=addlink"><b>Add link</b></a>
15 {else}
16 <a href="?do=login">Login</a>
17 {/if}
18 <a href="{$feedurl}?do=rss{$searchcrits}" class="nomobile">RSS Feed</a>
19 <a href="{$feedurl}?do=atom{$searchcrits}" style="padding-left:10px;" class="nomobile">ATOM Feed</a>
20 <a href="?do=tagcloud">Tag cloud</a>
21 <a href="?do=picwall{$searchcrits}">Picture wall</a>
22 <a href="?do=daily">Daily</a>
23{/if}
24 <div class="clear"></div>
25
26
diff --git a/tpl/page.html b/tpl/page.html
new file mode 100644
index 00000000..834915ec
--- /dev/null
+++ b/tpl/page.html
@@ -0,0 +1,9 @@
1<!DOCTYPE html>
2<html>
3<head>{include="includes"}</head>
4<body>
5 <div id="pageheader">{include="page.header"}</div>
6 You body goes here...
7 {include="page.footer"}
8</body>
9</html> \ No newline at end of file
diff --git a/tpl/picwall.html b/tpl/picwall.html
new file mode 100644
index 00000000..2083a629
--- /dev/null
+++ b/tpl/picwall.html
@@ -0,0 +1,24 @@
1<!DOCTYPE html>
2<html>
3<head>{include="includes"}
4<script src="inc/jquery.lazyload.min.js#"></script>
5</head>
6<body>
7<div id="pageheader">{include="page.header"}</div>
8<center>
9<div class="picwall_container">
10 {loop="linksToDisplay"}
11 <div class="picwall_pictureframe">
12 {$value.thumbnail}<a href="{$value.permalink}"><span class="info">{$value.title|htmlspecialchars}</span></a>
13 </div>
14 {/loop}
15</div>
16</center>
17{include="page.footer"}
18</body>
19<script>
20$(document).ready(function() {
21 $("img.lazyimage").show().lazyload();
22});
23</script>
24</html> \ No newline at end of file
diff --git a/tpl/picwall2.html b/tpl/picwall2.html
new file mode 100644
index 00000000..44d08b0c
--- /dev/null
+++ b/tpl/picwall2.html
@@ -0,0 +1,19 @@
1<!DOCTYPE html>
2<html>
3<head>{include="includes"}</head>
4<body>
5<div id="pageheader">{include="page.header"}</div>
6<div style="background-color:#003;">
7 {loop="linksToDisplay"}
8 <div style="float:left;width:48%;border-right:2px solid white;height:120px;overflow:hide;">
9 <div style="float:left;width:120px;text-align:center">{$value.thumbnail}</div>
10 <a href="{$value.permalink}" style="color:yellow;font-weight:bold;text-decoration:none;">{$value.title|htmlspecialchars}</a><br>
11 <span style="font-size:8pt;color:#eee;">{$value.description|htmlspecialchars}</span>
12 <div style="clear:both;"></div>
13 </div><br>
14 {/loop}
15</div>
16
17{include="page.footer"}
18</body>
19</html> \ No newline at end of file
diff --git a/tpl/readme.txt b/tpl/readme.txt
new file mode 100644
index 00000000..b18deaed
--- /dev/null
+++ b/tpl/readme.txt
@@ -0,0 +1,42 @@
1===== Shaarli template organisation =====
2
3Any Shaarli page should conform to this RainTPL template:
4
5-----------------------------------------------------
6<html>
7<head>{include="includes"}</head>
8<body>
9 <div id="pageheader">{include="page.header"}</div>
10 You body goes here...
11 {include="page.footer"}
12</body>
13</html>
14-----------------------------------------------------
15
16If you want to also add something in the page header (in the dark area), do it here:
17
18<div id="pageheader">{include="page.header"}My menu goes here...</div>
19
20
21Example: "Add new link" form:
22-----------------------------------------------------
23<html>
24<head>{include="includes"}</head>
25<body onload="document.addform.post.focus();">
26<div id="pageheader">
27 {include="page.header"}
28 <div id="headerform">
29 <form method="GET" action="" name="addform" class="addform">
30 <input type="text" name="post" style="width:50%;">
31 <input type="submit" value="Add link" class="bigbutton">
32 </form>
33 </div>
34</div>
35{include="page.footer"}
36</body>
37</html>
38-----------------------------------------------------
39
40
41
42
diff --git a/tpl/tagcloud.html b/tpl/tagcloud.html
new file mode 100644
index 00000000..6918c7be
--- /dev/null
+++ b/tpl/tagcloud.html
@@ -0,0 +1,15 @@
1<!DOCTYPE html>
2<html>
3<head>{include="includes"}</head>
4<body>
5 <div id="pageheader">{include="page.header"}</div>
6<center>
7<div id="cloudtag">
8 {loop="tags"}
9 <span style="color:#99f; font-size:9pt; padding-left:5px; padding-right:2px;">{$value.count}</span><a href="?searchtags={$key|htmlspecialchars}" style="font-size:{$value.size}pt; font-weight:bold; color:black; text-decoration:none">{$key|htmlspecialchars}</a>
10 {/loop}
11</div>
12</center>
13{include="page.footer"}
14</body>
15</html> \ No newline at end of file
diff --git a/tpl/tools.html b/tpl/tools.html
new file mode 100644
index 00000000..48ecc97e
--- /dev/null
+++ b/tpl/tools.html
@@ -0,0 +1,19 @@
1<!DOCTYPE html>
2<html>
3<head>{include="includes"}</head>
4<body>
5<div id="pageheader">
6 {include="page.header"}
7 <div id="toolsdiv">
8 {if="!$GLOBALS['config']['OPEN_SHAARLI']"}<a href="?do=changepasswd"><b>Change password</b> <span>: Change your password.</span></a><br><br>{/if}
9 <a href="?do=configure"><b>Configure your Shaarli</b> <span>: Change Title, timezone...</span></a><br><br>
10 <a href="?do=changetag"><b>Rename/delete tags</b> <span>: Rename or delete a tag in all links</span></a><br><br>
11 <a href="?do=import"><b>Import</b> <span>: Import Netscape html bookmarks (as exported from Firefox, Chrome, Opera, delicious...)</span></a> <br><br>
12 <a href="?do=export"><b>Export</b> <span>: Export Netscape html bookmarks (which can be imported in Firefox, Chrome, Opera, delicious...)</span></a><br><br>
13 <a class="smallbutton" onclick="alert('Drag this link to your bookmarks toolbar, or right-click it and choose Bookmark This Link...');return false;" href="javascript:javascript:(function(){var%20url%20=%20location.href;var%20title%20=%20document.title%20||%20url;window.open('{$pageabsaddr}?post='%20+%20encodeURIComponent(url)+'&amp;title='%20+%20encodeURIComponent(title)+'&amp;source=bookmarklet','_blank','menubar=no,height=390,width=600,toolbar=no,scrollbars=no,status=no,dialog=1');})();"><b>Shaare link</b></a> <a href="#" style="clear:none;"><span>&#x21D0; Drag this link to your bookmarks toolbar (or right-click it and choose Bookmark This Link....).<br>&nbsp;&nbsp;&nbsp;&nbsp;Then click "Shaare link" button in any page you want to share.</span></a><br><br>
14 <div class="clear"></div>
15 </div>
16</div>
17{include="page.footer"}
18</body>
19</html> \ No newline at end of file