diff options
Diffstat (limited to 'root/base/pager')
-rw-r--r-- | root/base/pager | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/root/base/pager b/root/base/pager new file mode 100644 index 0000000..cde0ce4 --- /dev/null +++ b/root/base/pager @@ -0,0 +1,128 @@ +[% + +main_block = 'pager_main'; + +start_block = 'pager_start'; +prev_block = 'pager_prev'; +current_block = 'pager_current'; +next_block = 'pager_next'; +end_block = 'pager_end'; +list_block = 'pager_list'; + +start_label_block = 'pager_start_label'; +prev_label_block = 'pager_prev_label'; +current_label_block = 'pager_current_label'; +next_label_block = 'pager_next_label'; +end_label_block = 'pager_end_label'; +list_label_block = 'pager_list_label'; + +BLOCK pager_main; + + '<div>[ '; + data = []; + + str = BLOCK; include( 'start_block' ); END; + data.push(str) IF str; + + str = BLOCK; include( 'prev_block' ); END; + data.push(str) IF str; + + str = BLOCK; include( 'current_block' ); END; + data.push(str) IF str; + + str = BLOCK; include( 'next_block' ); END; + data.push(str) IF str; + + str = BLOCK; include( 'end_block' ); END; + data.push(str) IF str; + + data.join(" |\n"); + " ]</div>\n"; + +END; + +BLOCK pager_start; + + %]<a [% connect_href(self, 'page' => self.pager.first_page); process_attrs(attrs) %]>[% + include( 'start_label_block' ) %]</a>[% + +END; + +BLOCK pager_start_label; + + loc('Start'); ' ('; self.pager.first_page; ')'; + +END; + +BLOCK pager_prev; + + IF self.pager.current_page != 1; + %]<a [% connect_href(self, 'page' => self.pager.previous_page); process_attrs(attrs) %]>[% + include( 'prev_label_block' ) %]</a>[% + END; + +END; + +BLOCK pager_prev_label; + + loc('Previous'); ' ('; self.pager.previous_page; ')'; + +END; + +BLOCK pager_current; + + %]<a [% connect_href(self, 'page' => self.pager.current_page); process_attrs(attrs) %]>[% + include( 'current_label_block' ) %]</a>[% + +END; + +BLOCK pager_current_label; + + loc('Current'); ' ('; self.pager.current_page; ')'; + +END; + +BLOCK pager_next; + + IF self.pager.current_page != self.pager.last_page; + %]<a [% connect_href(self, 'page' => self.pager.next_page); process_attrs(attrs) %]>[% + include( 'next_label_block' ) %]</a>[% + END; + +END; + +BLOCK pager_next_label; + + loc('Next'); ' ('; self.pager.next_page; ')'; + +END; + +BLOCK pager_end; + + %]<a [% connect_href(self, 'page' => self.pager.last_page); process_attrs(attrs) %]>[% + include( 'end_label_block' ) %]</a>[% + +END; + +BLOCK pager_end_label; + + loc('End'); ' ('; self.pager.last_page; ')'; + +END; + +BLOCK pager_list; + + FOREACH page IN self.pager.list; + '<a'; connect_href(self, 'page' => page); process_attrs(attrs); '>'; + include( 'list_label_block' ); "</a>\n"; + END; + +END; + +BLOCK pager_list_label; + + page; + +END; + +%] |