-[% 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 %]