]> git.decadent.org.uk Git - memories.git/blobdiff - templates/pager
Merged upstream v1.2.
[memories.git] / templates / pager
index 8ff1ed0cd1b1d4cfb9b379375cc844f9bd88eefb..3b6211d143fd61c9fad0d1adebd2f5888ceda420 100644 (file)
@@ -1,5 +1,4 @@
-[% IF pager.last_page > 1 %]
- [% FOREACH num = [pager.first_page .. pager.last_page] %]
+[% MACRO link_page(num) BLOCK; %]
       [% IF num == pager.current_page %]
           [% IF num < 10 %]
             <img src="[%base%]/static/[%num%]-s.gif">
       </a>
       [% END %]
 [% END %]
-[% END %]
+[% IF pager.last_page > 1;
+    SET begin_page = pager.current_page - 5;
+    IF begin_page < 1;
+        SET begin_page = pager.first_page;
+    END;
+    SET end_page = pager.current_page + 5;
+    IF pager.last_page < end_page;
+        SET end_page = pager.last_page;
+    END;
+    IF begin_page != 1; link_page(1); " ... "; END;
+     FOREACH num = [begin_page .. end_page];
+        link_page(num);
+     END;
+    IF end_page != pager.last_page; "..."; link_page(pager.last_page); END;
+END %]