Move templates inside their own directory.
authorfabien@tzone.org
Sun, 28 Dec 2008 12:29:23 -0500
changeset 59 2c5e38748004
parent 58 004a32370ba5
child 60 dad9733c99f0
Move templates inside their own directory.
add_bk.tmpl
add_confirm.tmpl
dynamic.tmpl
edit_bk.tmpl
edit_kw.tmpl
folders.tmpl
import.tmpl
inc/.htaccess
inc/bkmarks.tmpl
inc/footers.tmpl
inc/headers.tmpl
inc/top.tmpl
kw_delete.tmpl
kw_merge.tmpl
kw_rename.tmpl
lib/templates.py
prefs.tmpl
templates/.htaccess
templates/add_bk.tmpl
templates/add_confirm.tmpl
templates/dynamic.tmpl
templates/edit_bk.tmpl
templates/edit_kw.tmpl
templates/folders.tmpl
templates/import.tmpl
templates/inc/bkmarks.tmpl
templates/inc/footers.tmpl
templates/inc/headers.tmpl
templates/inc/top.tmpl
templates/kw_delete.tmpl
templates/kw_merge.tmpl
templates/kw_rename.tmpl
templates/prefs.tmpl
--- a/add_bk.tmpl	Sun Dec 28 12:24:02 2008 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-<html>
-  <TMPL_INCLUDE NAME="headers.tmpl">
-  <body>
-    <h1><TMPL_VAR remote_user>'s Edit Bookmark</h1>
-    <form action="" method="post" name="add">
-      <input type="hidden" name="action" value="add"/>
-      <fieldset class="bookmark">
-        <input type="hidden" name="id" value="<TMPL_VAR bkid>"/>
-        <label>Nom: <input type="text" name="name"
-	  value="<TMPL_VAR ctitle>"/></label><br/>
-        <label>URL: <input type="text" name="url"
-	  value="<TMPL_VAR curl>"/></label><br/>
-        <label for="desc">Description: </label><br/>
-        <textarea name="desc" rows="5" cols="40"><TMPL_VAR desc></textarea>
-      </fieldset>
-      <fieldset class="keywords">
-        <legend>Keywords:</legend>
-	<label>Selected:
-	<select multiple name="kw" size="<TMPL_VAR kw_size>">
-	<TMPL_LOOP Keywords>
-	  <option value="<TMPL_VAR id>"
-	  <TMPL_IF selected>selected</TMPL_IF> />
-	  <TMPL_VAR keyword></option>
-	</TMPL_LOOP>
-	</select>
-	<label>New keywords: <input type="text" name="newkw"> (comma
-	separated list)</label><br/>
-	<button type="reset">Reset</button>
-      </fieldset>
-      <button type="submit" name="step" value="update">Submit</button>
-      <button type="submit" name="step" value="delete">Delete</button>
-      <button type="submit" name="step" value="cancel">Cancel</button>
-    </form>
-  </body>
-</html>
-<!--
-vi: syntax=html
--->
--- a/add_confirm.tmpl	Sun Dec 28 12:24:02 2008 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-  <TMPL_INCLUDE NAME="headers.tmpl">
-  <body>
-    <h1><TMPL_VAR remote_user>'s Confirmation</h1>
-    <form name="confirmation" method="post" action="?action=add">
-      <fieldset>
-        <legend>Bookmark</legend>
-	<input type="hidden" name="action" value="add"/>
-	<input type="hidden" name="id" value="<TMPL_VAR id>"/>
-	<input type="hidden" name="name" value="<TMPL_VAR name>"/>
-	<input type="hidden" name="url" value="<TMPL_VAR url>"/>
-	<input type="hidden" name="desc" value="<TMPL_VAR desc>"/>
-	<input type="hidden" name="newkw"
-	  value="<TMPL_LOOP Keywords><TMPL_VAR keyword>,</TMPL_LOOP>"/>
-	<strong><a href="<TMPL_VAR url>"><TMPL_VAR name></a></strong>
-	<p><TMPL_VAR desc></p>
-	<p>Keywords:
-	  <TMPL_LOOP Keywords>
-	    <TMPL_VAR keyword>;
-	  </TMPL_LOOP>
-	</p>
-	<button name="step" type="submit" value="confirm"><TMPL_VAR confirmation></button>
-	<button name="step" type="submit" value="cancel">Cancel</button>
-    </form>
-  </body>
-</html>
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-namecase-general:t
-sgml-general-insert-case:lower
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:2
-sgml-indent-data:nil
-sgml-parent-document:nil
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vi: syntax=html
--->
--- a/dynamic.tmpl	Sun Dec 28 12:24:02 2008 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-  <TMPL_INCLUDE NAME="headers.tmpl">
-  <body>
-    <TMPL_INCLUDE NAME="top.tmpl">
-    <p>Total bookmarks: <TMPL_VAR total></p>
-    <form action="?action=index&view=dynamic" method="get" name="keywords">
-      <fieldset class="keywords">
-        <legend>Keywords:</legend>
-	<p>
-	<label>Include:
-	<select multiple name="sel" onchange="submit()"
-	        size="<TMPL_VAR kw_size>">
-	<TMPL_LOOP Keywords>
-	<TMPL_UNLESS excluded>
-	  <option value="<TMPL_VAR id>"
-	    <TMPL_IF selected>selected</TMPL_IF>
-	    ><TMPL_VAR keyword> (<TMPL_VAR count>)</option>
-	</TMPL_UNLESS>
-	</TMPL_LOOP></select>
-	<label>Exclude:
-	<select multiple name="exc" onchange="submit()"
-	        size="<TMPL_VAR kw_size>">
-	<TMPL_LOOP Keywords>
-	<TMPL_UNLESS selected>
-	  <option value="<TMPL_VAR id>"
-	    <TMPL_IF excluded>selected</TMPL_IF>
-	    ><TMPL_VAR keyword> (<TMPL_VAR count>)</option>
-	</TMPL_UNLESS>
-	</TMPL_LOOP></select>
-	</p>
-	<button>Lookup</button>
-      </fieldset>
-    </form>
-    <TMPL_INCLUDE NAME="bkmarks.tmpl">
-    <hr/>
-    <a href="?action=index&view=folder">Switch to folder view</a>
-    <TMPL_INCLUDE NAME="footers.tmpl">
-  </body>
-</html>
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-namecase-general:t
-sgml-general-insert-case:lower
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:2
-sgml-indent-data:nil
-sgml-parent-document:nil
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vi: syntax=html
--->
--- a/edit_bk.tmpl	Sun Dec 28 12:24:02 2008 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-<html>
-  <TMPL_INCLUDE NAME="headers.tmpl">
-  <body>
-    <h1><TMPL_VAR remote_user>'s Edit Bookmark</h1>
-    <form action="?action=bookmark" method="post" name="edit">
-      <fieldset class="bookmark">
-        <input type="hidden" name="action" value="bookmark"/>
-        <input type="hidden" name="id" value="<TMPL_VAR bkid>"/>
-        <label>Nom: <input type="text" name="name"
-	  value="<TMPL_VAR ctitle>"/></label><br/>
-        <label>URL: <input type="text" name="url"
-	  value="<TMPL_VAR curl>"/></label><br/>
-        <label for="desc">Description: </label><br/>
-        <textarea name="desc" rows="5" cols="40"><TMPL_VAR desc></textarea>
-      </fieldset>
-      <fieldset class="keywords">
-        <legend>Keywords:</legend>
-	<label>Selected:
-	<select multiple name="kw" size="<TMPL_VAR kw_size>">
-	<TMPL_LOOP Keywords>
-	  <option value="<TMPL_VAR id>"
-	  <TMPL_IF selected>selected</TMPL_IF> />
-	  <TMPL_VAR keyword></option>
-	</TMPL_LOOP>
-	</select>
-	<label>New keywords: <input type="text" name="newkw"> (comma
-	separated list)</label><br/>
-	<button type="reset">Reset</button>
-      </fieldset>
-      <button type="submit" name="step" value="update">Submit</button>
-      <button type="submit" name="step" value="delete">Delete</button>
-      <button type="submit" name="step" value="cancel">Cancel</button>
-    </form>
-  </body>
-</html>
-<!--
-vi: syntax=html
--->
--- a/edit_kw.tmpl	Sun Dec 28 12:24:02 2008 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-<html>
-  <TMPL_INCLUDE NAME="headers.tmpl">
-  <body>
-    <h1><TMPL_VAR remote_user>'s Edit Keywords</h1>
-    <form action="" method="get" name="edit">
-    	<input type="hidden" name="action" value="keywords"/>
-	<label>Keywords:
-	<select multiple name="kw" size="<TMPL_VAR kw_size>">
-	<TMPL_LOOP Keywords>
-	  <option value="<TMPL_VAR id>"><TMPL_VAR keyword></option>
-	</TMPL_LOOP></select><br/>
-      <button name="step" type="submit" value="merge">Merge</button><br/>
-      <button name="step" type="submit" value="rename">Rename</button><br/>
-      <button name="step" type="submit" value="delete">Delete</button>
-    </form>
-  </body>
-</html>
-<!--
-vi: syntax=html
--->
--- a/folders.tmpl	Sun Dec 28 12:24:02 2008 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-  <TMPL_INCLUDE NAME="headers.tmpl">
-  <body>
-    <TMPL_INCLUDE "top.tmpl">
-    <TMPL_IF folder>
-      <p>Parents: 
-        <TMPL_LOOP Parents>
-	<TMPL_IF id> : </TMPL_IF>
-	<a href="?action=index&view=folder&folder=<TMPL_VAR id>"><TMPL_IF id><TMPL_VAR name>
-	<TMPL_ELSE>Top </TMPL_IF> (<TMPL_VAR count>)</a>
-	</TMPL_LOOP>
-      </p>
-    </TMPL_IF>
-    <h2><TMPL_IF folder><TMPL_VAR name><TMPL_ELSE>Main Folder</TMPL_IF>
-    (<TMPL_VAR subtotal>/<TMPL_VAR total>)</h2>
-    <DIV class="subfolders">
-    <form action="?action=index&view=folder&folder=<TMPL_VAR folder>" method="post" name="edit_folders">
-    <input type="hidden" name="folder" value="<TMPL_VAR folder>"/>
-    <input type="hidden" name="view" value="folder"/>
-    <input type="hidden" name="action" value="delete"/>
-    <ul>
-    <TMPL_LOOP Subfolders>
-      <li><button name="delete" value="<TMPL_VAR id>">Delete</button>
-      <a href="?action=index&view=folder&folder=<TMPL_VAR id>"><TMPL_VAR name>
-      	(<TMPL_VAR count>)</a></li>
-    </TMPL_LOOP>
-    </ul>
-    </form>
-    </div>
-    <form action="?action=index&view=folder&folder=<TMPL_VAR folder>" method="post" name="add_folder">
-      <label>Add subfolder with keyword:
-      <input type="hidden" name="folder" value="<TMPL_VAR folder>"/>
-      <input type="hidden" name="view" value="folder"/>
-	<select name="sel" size="1">
-	<TMPL_LOOP Keywords>
-	  <option value="<TMPL_VAR id>"
-	    ><TMPL_VAR keyword> (<TMPL_VAR removed>/<TMPL_VAR count>)</option>
-	</TMPL_LOOP></select>
-	<button name="action" value="add">Add</button>
-    </form>
-    <hr>
-    <TMPL_INCLUDE NAME="bkmarks.tmpl">
-    <hr>
-    <a href="?action=index&view=dynamic">Switch to dynamic view</a>
-    <TMPL_INCLUDE NAME="footers.tmpl">
-  </body>
-</html>
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-namecase-general:t
-sgml-general-insert-case:lower
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:2
-sgml-indent-data:nil
-sgml-parent-document:nil
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vi: syntax=html
--->
--- a/import.tmpl	Sun Dec 28 12:24:02 2008 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-  <TMPL_INCLUDE NAME="headers.tmpl">
-  <body>
-    <h1><TMPL_VAR remote_user>'s Import XBel File</h1>
-    <form enctype="multipart/form-data" action="index" name="import" method="post">
-    <input type="hidden" name="action" value="import"/>
-    <input type="hidden" name="step" value="upload"/>
-    <label>XBEL file to import: <input type="file" name="xbelfile"/>
-    <button name="upload">Upload</button>
-    </form>
-    <hr>
-    <p>Retour à la <a href="?action=index">page principale</a></p>
-  </body>
-</html>
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-namecase-general:t
-sgml-general-insert-case:lower
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:2
-sgml-indent-data:nil
-sgml-parent-document:nil
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vi: syntax=html
--->
--- a/inc/.htaccess	Sun Dec 28 12:24:02 2008 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-Order deny,allow
-Deny from all
--- a/inc/bkmarks.tmpl	Sun Dec 28 12:24:02 2008 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-<dl>
-  <TMPL_LOOP Bookmarks>
-  <dt>
-    <a href="<TMPL_VAR url>"><TMPL_VAR name></a>
-    <a href="?action=edit&id=<TMPL_VAR id>">edit</a>
-  </dt>
-  <dd><p><TMPL_VAR desc></p></dd>
-  </TMPL_LOOP>
-</dl>
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-namecase-general:t
-sgml-general-insert-case:lower
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:2
-sgml-indent-data:nil
-sgml-parent-document:nil
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vi: syntax=html
--->
--- a/inc/footers.tmpl	Sun Dec 28 12:24:02 2008 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-    <p><a href="?action=bookmark">Add new bookmark</a>.<br/>
-    <a href="?action=xbel">Import a XBEL file</a>.<br/>
-    <a href="?action=keywords">Edit keywords</a>.<br/>
-    <a href="?action=prefs">Edit User Preferences</a>.</p>
-    <p>Here the <a
-    href="javascript:bk1='<TMPL_VAR curl>?action=add&curl='+escape(location.href)+'&ctitle='+escape(document.title);bkwin=window.open(bk1,'bkqm','width=620,height=500,scrollbars=1,resizable=1');bkwin.focus();">Quick
-    Mark Link</a>.  Put it on your bookmarks (using <tt>&lt;Right-Mouse
-    Click&gt; Bookmark this link</tt>) and just select it when you
-    want to bookmark your links.</p>
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-namecase-general:t
-sgml-general-insert-case:lower
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:2
-sgml-indent-data:nil
-sgml-parent-document:nil
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vi: syntax=html
--->
--- a/inc/headers.tmpl	Sun Dec 28 12:24:02 2008 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-<head>
-  <title><TMPL_VAR remote_user>'s XBelWeb</title>
-  <meta name="generator" content="XBelWeb"/>
-  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"
-</head>
-
--- a/inc/top.tmpl	Sun Dec 28 12:24:02 2008 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<h1><TMPL_VAR remote_user>'s XBelWeb</h1>
-<p id="status" class="<TMPL_VAR status>"><TMPL_VAR status_msg></p>
--- a/kw_delete.tmpl	Sun Dec 28 12:24:02 2008 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-  <TMPL_INCLUDE NAME="headers.tmpl">
-  <body>
-    <h1><TMPL_VAR remote_user>'s Confirmation</h1>
-    <form name="confirmation" method="post" action="">
-      <input type="hidden" name="action" value="keywords"/>
-      <p>Do you really want to remove those keywords?</p>
-      <p>
-	<TMPL_LOOP Selected>
-	  <input type="hidden" name="id" value="<TMPL_VAR id>"/>
-	  <TMPL_VAR keyword>;
-	</TMPL_LOOP>
-      </p>
-      <button name="step" type="submit" value="do_delete">Delete</button>
-      <button name="step" type="submit" value="cancel">Cancel</button>
-    </form>
-  </body>
-</html>
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-namecase-general:t
-sgml-general-insert-case:lower
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:2
-sgml-indent-data:nil
-sgml-parent-document:nil
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vi: syntax=html
--->
--- a/kw_merge.tmpl	Sun Dec 28 12:24:02 2008 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-  <TMPL_INCLUDE NAME="headers.tmpl">
-  <body>
-    <h1><TMPL_VAR remote_user>'s Confirmation</h1>
-    <form name="confirmation" method="post" action="">
-      <input type="hidden" name="action" value="keywords"/>
-        <p>Selected keywords:
-	<TMPL_LOOP Selected>
-	  <input type="hidden" name="id" value="<TMPL_VAR id>"/>
-	  <TMPL_VAR keyword>;
-	</TMPL_LOOP>
-	</p>
-	<p>
-	<label for="kw">Merge them with:</label>
-	<select name="kw" multiple size="<TMPL_VAR kw_size">
-	<TMPL_LOOP Keywords>
-	  <option value="<TMPL_VAR id>"><TMPL_VAR keyword></option>
-	</TMPL_LOOP></select>
-	</p>
-	<label><input type="checkbox" name="remove"/>Remove keywords?</label>
-        <button name="step" type="submit" value="do_merge">Merge</button>
-        <button name="step" type="submit" value="cancel">Cancel</button>
-    </form>
-  </body>
-</html>
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-namecase-general:t
-sgml-general-insert-case:lower
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:2
-sgml-indent-data:nil
-sgml-parent-document:nil
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vi: syntax=html
--->
--- a/kw_rename.tmpl	Sun Dec 28 12:24:02 2008 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-  <TMPL_INCLUDE NAME="headers.tmpl">
-  <body>
-    <h1><TMPL_VAR remote_user>'s Confirmation</h1>
-    <form name="confirmation" method="post" action="">
-      <input type="hidden" name="action" value="keywords"/>
-        <p>Rename<br/>
-        <TMPL_LOOP Selected>
-	  <label><em><TMPL_VAR keyword></em> to
-	  <input type="hidden" name="id" value="<TMPL_VAR id>"/>
-	  <input type="text" name="name<TMPL_VAR id>"
-	     value="<TMPL_VAR keyword>"/></label><br/>
-	</TMPL_LOOP>
-        <button name="step" type="submit" value="do_rename">Rename</button>
-      <button name="step" type="submit" value="cancel">Cancel</button>
-    </form>
-  </body>
-</html>
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-namecase-general:t
-sgml-general-insert-case:lower
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:2
-sgml-indent-data:nil
-sgml-parent-document:nil
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vi: syntax=html
--->
--- a/lib/templates.py	Sun Dec 28 12:24:02 2008 -0500
+++ b/lib/templates.py	Sun Dec 28 12:29:23 2008 -0500
@@ -1,7 +1,8 @@
 from htmltmpl import TemplateManager, TemplateProcessor
 from urlparse import urljoin
-from os import environ
+from os import environ, path
 
+TEMPLATE_DIR = "templates"
 def get_curl():
 	url = "http"
 	if environ["HTTPS"] == 'on':
@@ -14,7 +15,7 @@
 class Template:
 	def __init__(self, template, prefs, status = "msg", status_msg = ""):
 		self.tproc = TemplateProcessor()
-		self.tmpl = TemplateManager().prepare(template)
+		self.tmpl = TemplateManager().prepare(path.join(TEMPLATE_DIR, template))
     		self.set("remote_user", prefs["fullname"])
     		self.set("kw_size", prefs['keywords_box'])
     		self.set("kw_sort", prefs['keywords_sort'])
--- a/prefs.tmpl	Sun Dec 28 12:24:02 2008 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-  <TMPL_INCLUDE NAME="headers.tmpl">
-  <body>
-    <h1><TMPL_VAR remote_user>'s Preferences</h1>
-    <form action="edit_prefs.py" method="post" name="prefs">
-      <p><label>Display name:
-        <input type="text" name="fullname"
-  	       value="<TMPL_VAR remote_user>"/></label></p>
-      <p><label>Default view:
-        <select name="default_view" size="1">
-	  <TMPL_LOOP Views>
-            <option value="<TMPL_VAR view>"
-	    	<TMPL_IF selected>selected</TMPL_IF>
-		/><TMPL_VAR name></option>
-          </TMPL_LOOP></p>
-      <p><label>Size of keywords selection box:
-        <input type="text" name="kw_size"
-	       value="<TMPL_VAR kw_size>"/></label></p>
-      <p><label>Sort keywords by:
-        <select name="kw_sort" size="1">
-	  <TMPL_LOOP Sortfields>
-	    <option value="<TMPL_VAR field>"
-	      <TMPL_IF selected>selected</TMPL_IF>
-	      /><TMPL_VAR field></option>
-	  </TMPL_LOOP>
-	</select>
-	<input type="checkbox" name="kw_reverse"
-	  <TMPL_IF kw_reverse>checked</TMPL_IF>>
-	reversed</p>
-	<button>Submit</button>
-    </form>
-    <hr/>
-    <a href="index">Back to main page</a>
-</html>
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-namecase-general:t
-sgml-general-insert-case:lower
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:2
-sgml-indent-data:nil
-sgml-parent-document:nil
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vi: syntax=html
--->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/.htaccess	Sun Dec 28 12:29:23 2008 -0500
@@ -0,0 +1,2 @@
+Order deny,allow
+Deny from all
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/add_bk.tmpl	Sun Dec 28 12:29:23 2008 -0500
@@ -0,0 +1,38 @@
+<html>
+  <TMPL_INCLUDE NAME="headers.tmpl">
+  <body>
+    <h1><TMPL_VAR remote_user>'s Edit Bookmark</h1>
+    <form action="" method="post" name="add">
+      <input type="hidden" name="action" value="add"/>
+      <fieldset class="bookmark">
+        <input type="hidden" name="id" value="<TMPL_VAR bkid>"/>
+        <label>Nom: <input type="text" name="name"
+	  value="<TMPL_VAR ctitle>"/></label><br/>
+        <label>URL: <input type="text" name="url"
+	  value="<TMPL_VAR curl>"/></label><br/>
+        <label for="desc">Description: </label><br/>
+        <textarea name="desc" rows="5" cols="40"><TMPL_VAR desc></textarea>
+      </fieldset>
+      <fieldset class="keywords">
+        <legend>Keywords:</legend>
+	<label>Selected:
+	<select multiple name="kw" size="<TMPL_VAR kw_size>">
+	<TMPL_LOOP Keywords>
+	  <option value="<TMPL_VAR id>"
+	  <TMPL_IF selected>selected</TMPL_IF> />
+	  <TMPL_VAR keyword></option>
+	</TMPL_LOOP>
+	</select>
+	<label>New keywords: <input type="text" name="newkw"> (comma
+	separated list)</label><br/>
+	<button type="reset">Reset</button>
+      </fieldset>
+      <button type="submit" name="step" value="update">Submit</button>
+      <button type="submit" name="step" value="delete">Delete</button>
+      <button type="submit" name="step" value="cancel">Cancel</button>
+    </form>
+  </body>
+</html>
+<!--
+vi: syntax=html
+-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/add_confirm.tmpl	Sun Dec 28 12:29:23 2008 -0500
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+  <TMPL_INCLUDE NAME="headers.tmpl">
+  <body>
+    <h1><TMPL_VAR remote_user>'s Confirmation</h1>
+    <form name="confirmation" method="post" action="?action=add">
+      <fieldset>
+        <legend>Bookmark</legend>
+	<input type="hidden" name="action" value="add"/>
+	<input type="hidden" name="id" value="<TMPL_VAR id>"/>
+	<input type="hidden" name="name" value="<TMPL_VAR name>"/>
+	<input type="hidden" name="url" value="<TMPL_VAR url>"/>
+	<input type="hidden" name="desc" value="<TMPL_VAR desc>"/>
+	<input type="hidden" name="newkw"
+	  value="<TMPL_LOOP Keywords><TMPL_VAR keyword>,</TMPL_LOOP>"/>
+	<strong><a href="<TMPL_VAR url>"><TMPL_VAR name></a></strong>
+	<p><TMPL_VAR desc></p>
+	<p>Keywords:
+	  <TMPL_LOOP Keywords>
+	    <TMPL_VAR keyword>;
+	  </TMPL_LOOP>
+	</p>
+	<button name="step" type="submit" value="confirm"><TMPL_VAR confirmation></button>
+	<button name="step" type="submit" value="cancel">Cancel</button>
+    </form>
+  </body>
+</html>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-namecase-general:t
+sgml-general-insert-case:lower
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:nil
+sgml-parent-document:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vi: syntax=html
+-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/dynamic.tmpl	Sun Dec 28 12:29:23 2008 -0500
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+  <TMPL_INCLUDE NAME="headers.tmpl">
+  <body>
+    <TMPL_INCLUDE NAME="top.tmpl">
+    <p>Total bookmarks: <TMPL_VAR total></p>
+    <form action="?action=index&view=dynamic" method="get" name="keywords">
+      <fieldset class="keywords">
+        <legend>Keywords:</legend>
+	<p>
+	<label>Include:
+	<select multiple name="sel" onchange="submit()"
+	        size="<TMPL_VAR kw_size>">
+	<TMPL_LOOP Keywords>
+	<TMPL_UNLESS excluded>
+	  <option value="<TMPL_VAR id>"
+	    <TMPL_IF selected>selected</TMPL_IF>
+	    ><TMPL_VAR keyword> (<TMPL_VAR count>)</option>
+	</TMPL_UNLESS>
+	</TMPL_LOOP></select>
+	<label>Exclude:
+	<select multiple name="exc" onchange="submit()"
+	        size="<TMPL_VAR kw_size>">
+	<TMPL_LOOP Keywords>
+	<TMPL_UNLESS selected>
+	  <option value="<TMPL_VAR id>"
+	    <TMPL_IF excluded>selected</TMPL_IF>
+	    ><TMPL_VAR keyword> (<TMPL_VAR count>)</option>
+	</TMPL_UNLESS>
+	</TMPL_LOOP></select>
+	</p>
+	<button>Lookup</button>
+      </fieldset>
+    </form>
+    <TMPL_INCLUDE NAME="bkmarks.tmpl">
+    <hr/>
+    <a href="?action=index&view=folder">Switch to folder view</a>
+    <TMPL_INCLUDE NAME="footers.tmpl">
+  </body>
+</html>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-namecase-general:t
+sgml-general-insert-case:lower
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:nil
+sgml-parent-document:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vi: syntax=html
+-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/edit_bk.tmpl	Sun Dec 28 12:29:23 2008 -0500
@@ -0,0 +1,38 @@
+<html>
+  <TMPL_INCLUDE NAME="headers.tmpl">
+  <body>
+    <h1><TMPL_VAR remote_user>'s Edit Bookmark</h1>
+    <form action="?action=bookmark" method="post" name="edit">
+      <fieldset class="bookmark">
+        <input type="hidden" name="action" value="bookmark"/>
+        <input type="hidden" name="id" value="<TMPL_VAR bkid>"/>
+        <label>Nom: <input type="text" name="name"
+	  value="<TMPL_VAR ctitle>"/></label><br/>
+        <label>URL: <input type="text" name="url"
+	  value="<TMPL_VAR curl>"/></label><br/>
+        <label for="desc">Description: </label><br/>
+        <textarea name="desc" rows="5" cols="40"><TMPL_VAR desc></textarea>
+      </fieldset>
+      <fieldset class="keywords">
+        <legend>Keywords:</legend>
+	<label>Selected:
+	<select multiple name="kw" size="<TMPL_VAR kw_size>">
+	<TMPL_LOOP Keywords>
+	  <option value="<TMPL_VAR id>"
+	  <TMPL_IF selected>selected</TMPL_IF> />
+	  <TMPL_VAR keyword></option>
+	</TMPL_LOOP>
+	</select>
+	<label>New keywords: <input type="text" name="newkw"> (comma
+	separated list)</label><br/>
+	<button type="reset">Reset</button>
+      </fieldset>
+      <button type="submit" name="step" value="update">Submit</button>
+      <button type="submit" name="step" value="delete">Delete</button>
+      <button type="submit" name="step" value="cancel">Cancel</button>
+    </form>
+  </body>
+</html>
+<!--
+vi: syntax=html
+-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/edit_kw.tmpl	Sun Dec 28 12:29:23 2008 -0500
@@ -0,0 +1,20 @@
+<html>
+  <TMPL_INCLUDE NAME="headers.tmpl">
+  <body>
+    <h1><TMPL_VAR remote_user>'s Edit Keywords</h1>
+    <form action="" method="get" name="edit">
+    	<input type="hidden" name="action" value="keywords"/>
+	<label>Keywords:
+	<select multiple name="kw" size="<TMPL_VAR kw_size>">
+	<TMPL_LOOP Keywords>
+	  <option value="<TMPL_VAR id>"><TMPL_VAR keyword></option>
+	</TMPL_LOOP></select><br/>
+      <button name="step" type="submit" value="merge">Merge</button><br/>
+      <button name="step" type="submit" value="rename">Rename</button><br/>
+      <button name="step" type="submit" value="delete">Delete</button>
+    </form>
+  </body>
+</html>
+<!--
+vi: syntax=html
+-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/folders.tmpl	Sun Dec 28 12:29:23 2008 -0500
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+  <TMPL_INCLUDE NAME="headers.tmpl">
+  <body>
+    <TMPL_INCLUDE "top.tmpl">
+    <TMPL_IF folder>
+      <p>Parents: 
+        <TMPL_LOOP Parents>
+	<TMPL_IF id> : </TMPL_IF>
+	<a href="?action=index&view=folder&folder=<TMPL_VAR id>"><TMPL_IF id><TMPL_VAR name>
+	<TMPL_ELSE>Top </TMPL_IF> (<TMPL_VAR count>)</a>
+	</TMPL_LOOP>
+      </p>
+    </TMPL_IF>
+    <h2><TMPL_IF folder><TMPL_VAR name><TMPL_ELSE>Main Folder</TMPL_IF>
+    (<TMPL_VAR subtotal>/<TMPL_VAR total>)</h2>
+    <DIV class="subfolders">
+    <form action="?action=index&view=folder&folder=<TMPL_VAR folder>" method="post" name="edit_folders">
+    <input type="hidden" name="folder" value="<TMPL_VAR folder>"/>
+    <input type="hidden" name="view" value="folder"/>
+    <input type="hidden" name="action" value="delete"/>
+    <ul>
+    <TMPL_LOOP Subfolders>
+      <li><button name="delete" value="<TMPL_VAR id>">Delete</button>
+      <a href="?action=index&view=folder&folder=<TMPL_VAR id>"><TMPL_VAR name>
+      	(<TMPL_VAR count>)</a></li>
+    </TMPL_LOOP>
+    </ul>
+    </form>
+    </div>
+    <form action="?action=index&view=folder&folder=<TMPL_VAR folder>" method="post" name="add_folder">
+      <label>Add subfolder with keyword:
+      <input type="hidden" name="folder" value="<TMPL_VAR folder>"/>
+      <input type="hidden" name="view" value="folder"/>
+	<select name="sel" size="1">
+	<TMPL_LOOP Keywords>
+	  <option value="<TMPL_VAR id>"
+	    ><TMPL_VAR keyword> (<TMPL_VAR removed>/<TMPL_VAR count>)</option>
+	</TMPL_LOOP></select>
+	<button name="action" value="add">Add</button>
+    </form>
+    <hr>
+    <TMPL_INCLUDE NAME="bkmarks.tmpl">
+    <hr>
+    <a href="?action=index&view=dynamic">Switch to dynamic view</a>
+    <TMPL_INCLUDE NAME="footers.tmpl">
+  </body>
+</html>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-namecase-general:t
+sgml-general-insert-case:lower
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:nil
+sgml-parent-document:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vi: syntax=html
+-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/import.tmpl	Sun Dec 28 12:29:23 2008 -0500
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+  <TMPL_INCLUDE NAME="headers.tmpl">
+  <body>
+    <h1><TMPL_VAR remote_user>'s Import XBel File</h1>
+    <form enctype="multipart/form-data" action="index" name="import" method="post">
+    <input type="hidden" name="action" value="import"/>
+    <input type="hidden" name="step" value="upload"/>
+    <label>XBEL file to import: <input type="file" name="xbelfile"/>
+    <button name="upload">Upload</button>
+    </form>
+    <hr>
+    <p>Retour à la <a href="?action=index">page principale</a></p>
+  </body>
+</html>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-namecase-general:t
+sgml-general-insert-case:lower
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:nil
+sgml-parent-document:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vi: syntax=html
+-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/inc/bkmarks.tmpl	Sun Dec 28 12:29:23 2008 -0500
@@ -0,0 +1,27 @@
+<dl>
+  <TMPL_LOOP Bookmarks>
+  <dt>
+    <a href="<TMPL_VAR url>"><TMPL_VAR name></a>
+    <a href="?action=edit&id=<TMPL_VAR id>">edit</a>
+  </dt>
+  <dd><p><TMPL_VAR desc></p></dd>
+  </TMPL_LOOP>
+</dl>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-namecase-general:t
+sgml-general-insert-case:lower
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:nil
+sgml-parent-document:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vi: syntax=html
+-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/inc/footers.tmpl	Sun Dec 28 12:29:23 2008 -0500
@@ -0,0 +1,27 @@
+    <p><a href="?action=bookmark">Add new bookmark</a>.<br/>
+    <a href="?action=xbel">Import a XBEL file</a>.<br/>
+    <a href="?action=keywords">Edit keywords</a>.<br/>
+    <a href="?action=prefs">Edit User Preferences</a>.</p>
+    <p>Here the <a
+    href="javascript:bk1='<TMPL_VAR curl>?action=add&curl='+escape(location.href)+'&ctitle='+escape(document.title);bkwin=window.open(bk1,'bkqm','width=620,height=500,scrollbars=1,resizable=1');bkwin.focus();">Quick
+    Mark Link</a>.  Put it on your bookmarks (using <tt>&lt;Right-Mouse
+    Click&gt; Bookmark this link</tt>) and just select it when you
+    want to bookmark your links.</p>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-namecase-general:t
+sgml-general-insert-case:lower
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:nil
+sgml-parent-document:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vi: syntax=html
+-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/inc/headers.tmpl	Sun Dec 28 12:29:23 2008 -0500
@@ -0,0 +1,6 @@
+<head>
+  <title><TMPL_VAR remote_user>'s XBelWeb</title>
+  <meta name="generator" content="XBelWeb"/>
+  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"
+</head>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/inc/top.tmpl	Sun Dec 28 12:29:23 2008 -0500
@@ -0,0 +1,2 @@
+<h1><TMPL_VAR remote_user>'s XBelWeb</h1>
+<p id="status" class="<TMPL_VAR status>"><TMPL_VAR status_msg></p>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/kw_delete.tmpl	Sun Dec 28 12:29:23 2008 -0500
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+  <TMPL_INCLUDE NAME="headers.tmpl">
+  <body>
+    <h1><TMPL_VAR remote_user>'s Confirmation</h1>
+    <form name="confirmation" method="post" action="">
+      <input type="hidden" name="action" value="keywords"/>
+      <p>Do you really want to remove those keywords?</p>
+      <p>
+	<TMPL_LOOP Selected>
+	  <input type="hidden" name="id" value="<TMPL_VAR id>"/>
+	  <TMPL_VAR keyword>;
+	</TMPL_LOOP>
+      </p>
+      <button name="step" type="submit" value="do_delete">Delete</button>
+      <button name="step" type="submit" value="cancel">Cancel</button>
+    </form>
+  </body>
+</html>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-namecase-general:t
+sgml-general-insert-case:lower
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:nil
+sgml-parent-document:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vi: syntax=html
+-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/kw_merge.tmpl	Sun Dec 28 12:29:23 2008 -0500
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+  <TMPL_INCLUDE NAME="headers.tmpl">
+  <body>
+    <h1><TMPL_VAR remote_user>'s Confirmation</h1>
+    <form name="confirmation" method="post" action="">
+      <input type="hidden" name="action" value="keywords"/>
+        <p>Selected keywords:
+	<TMPL_LOOP Selected>
+	  <input type="hidden" name="id" value="<TMPL_VAR id>"/>
+	  <TMPL_VAR keyword>;
+	</TMPL_LOOP>
+	</p>
+	<p>
+	<label for="kw">Merge them with:</label>
+	<select name="kw" multiple size="<TMPL_VAR kw_size">
+	<TMPL_LOOP Keywords>
+	  <option value="<TMPL_VAR id>"><TMPL_VAR keyword></option>
+	</TMPL_LOOP></select>
+	</p>
+	<label><input type="checkbox" name="remove"/>Remove keywords?</label>
+        <button name="step" type="submit" value="do_merge">Merge</button>
+        <button name="step" type="submit" value="cancel">Cancel</button>
+    </form>
+  </body>
+</html>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-namecase-general:t
+sgml-general-insert-case:lower
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:nil
+sgml-parent-document:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vi: syntax=html
+-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/kw_rename.tmpl	Sun Dec 28 12:29:23 2008 -0500
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+  <TMPL_INCLUDE NAME="headers.tmpl">
+  <body>
+    <h1><TMPL_VAR remote_user>'s Confirmation</h1>
+    <form name="confirmation" method="post" action="">
+      <input type="hidden" name="action" value="keywords"/>
+        <p>Rename<br/>
+        <TMPL_LOOP Selected>
+	  <label><em><TMPL_VAR keyword></em> to
+	  <input type="hidden" name="id" value="<TMPL_VAR id>"/>
+	  <input type="text" name="name<TMPL_VAR id>"
+	     value="<TMPL_VAR keyword>"/></label><br/>
+	</TMPL_LOOP>
+        <button name="step" type="submit" value="do_rename">Rename</button>
+      <button name="step" type="submit" value="cancel">Cancel</button>
+    </form>
+  </body>
+</html>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-namecase-general:t
+sgml-general-insert-case:lower
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:nil
+sgml-parent-document:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vi: syntax=html
+-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/prefs.tmpl	Sun Dec 28 12:29:23 2008 -0500
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+  <TMPL_INCLUDE NAME="headers.tmpl">
+  <body>
+    <h1><TMPL_VAR remote_user>'s Preferences</h1>
+    <form action="edit_prefs.py" method="post" name="prefs">
+      <p><label>Display name:
+        <input type="text" name="fullname"
+  	       value="<TMPL_VAR remote_user>"/></label></p>
+      <p><label>Default view:
+        <select name="default_view" size="1">
+	  <TMPL_LOOP Views>
+            <option value="<TMPL_VAR view>"
+	    	<TMPL_IF selected>selected</TMPL_IF>
+		/><TMPL_VAR name></option>
+          </TMPL_LOOP></p>
+      <p><label>Size of keywords selection box:
+        <input type="text" name="kw_size"
+	       value="<TMPL_VAR kw_size>"/></label></p>
+      <p><label>Sort keywords by:
+        <select name="kw_sort" size="1">
+	  <TMPL_LOOP Sortfields>
+	    <option value="<TMPL_VAR field>"
+	      <TMPL_IF selected>selected</TMPL_IF>
+	      /><TMPL_VAR field></option>
+	  </TMPL_LOOP>
+	</select>
+	<input type="checkbox" name="kw_reverse"
+	  <TMPL_IF kw_reverse>checked</TMPL_IF>>
+	reversed</p>
+	<button>Submit</button>
+    </form>
+    <hr/>
+    <a href="index">Back to main page</a>
+</html>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-namecase-general:t
+sgml-general-insert-case:lower
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:nil
+sgml-parent-document:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vi: syntax=html
+-->