--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qmsk/irclogs/templates/inc_paginate.tmpl Sun Sep 13 20:08:16 2009 +0300
@@ -0,0 +1,60 @@
+## special overrides...
+<%def name="paginate_left()">
+
+</%def>
+
+<%def name="paginate(url, count, page_cur, page_max, _more=None, _last=False, **args)">
+ <%doc>
+ Pagination works using page numbers, with a specific number of maximum pages displayed. If _more is True,
+ then instead of a "Next" button, we have a "More" button, which goes to the max+1'th page, unless _last is
+ True, whereupon it's not displayed.
+
+ Can be called using <%call>, whereupon caller.left/caller.right can define additional data to display at the
+ left/right of the pagination ul.
+ </%doc>
+ <div class="paginate">
+ <ul>
+ % if caller and caller.right :
+ <li class="paginate-right">
+ ${caller.right()}
+ </li>
+ % endif
+ % if caller and caller.left :
+ <li class="paginate-left">
+ ${caller.left()}
+ </li>
+ % endif
+ <li>
+ % if page_cur > 1 :
+ <a href="${h.build_url(url, count=count, page=page_cur-1, max=max, **args)}">« Prev</a>
+ % else :
+ <span>« Prev</span>
+ %endif
+ </li>
+ % for page in xrange(1, page_max + 1) :
+ <li>
+ % if page == page_cur :
+ <strong>${page}</strong>
+ % else :
+ <a href="${h.build_url(url, count=count, page=page, max=page_max, **args)}">${page}</a>
+ % endif
+ </li>
+ % endfor
+ % if _more and not _last :
+ <li>…</li>
+ % endif
+ <li>
+ % if _more and _last :
+ <span>More »</span>
+ % elif _more :
+ <a href="${h.build_url(url, count=count, page=page_max+1, **args)}">More »</a>
+ % elif page_cur == page_max : ## last page
+ <span>Next »</span>
+ % else :
+ <a href="${h.build_url(url, count=count, page=page_cur+1, **args)}">Next »</a>
+ % endif
+ </li>
+ </ul>
+ </div>
+</%def>
+