package Kwiki::ListPages; use Kwiki::Plugin -Base; use mixin 'Kwiki::Installer'; our $VERSION = '0.11'; const class_title => 'List Pages'; const class_id => 'list_pages'; const css_file => 'list_pages.css'; sub register { my $registry = shift; $registry->add( action => 'list_pages' ); $registry->add( toolbar => 'ListPages', template => 'list_pages_button.html' ); } sub list_pages { my $pages = {}; my $all_pages = []; $pages->{$_} = [] foreach( 'A'..'Z', 0..9 ); @$all_pages = sort $self->pages->all; foreach my $page (@$all_pages) { push(@{$pages->{ uc(substr($page->{id},0,1)) }}, $page); } $self->render_screen( pages => $pages ); } __DATA__ =head1 NAME Kwiki::ListPages - List all Kwiki Pages =head1 SYNOPSIS 1. Install Kwiki::ListPages 2. kwiki -add Kwiki::ListPages =head1 DESCRIPTION This module provides an indexed list of all the pages in a Kwiki wiki via a button on the toolbar. At the top of the list is a navigation bar with letters or numbers which have page entries associated with them. =head1 AUTHOR Sue Spence Alexander Goller =head1 COPYRIGHT Copyright (c) 2005 by Sue Spence & Alexander Goller. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html =cut __css/list_pages.css__ td.page_name { width: 25% } td.edit_by { width: 10% } td.edit_time { width: 55% } __template/tt2/list_pages_button.html__ [% INCLUDE list_pages_button_icon.html %] __template/tt2/list_pages_button_icon.html__ List Pages __icons/gnome/template/list_pages_button_icon.html__ List Pages __template/tt2/list_pages_content.html__ [% BLOCK nav_block %]
[% FOREACH letter IN pages %] [% IF letter.value.size > 0 %] [% letter.key %] [% END %] [% END %] [% END %]
[% PROCESS nav_block %] [% FOREACH letter IN pages %] [% IF letter.value.size > 0 %] [% FOREACH page = letter.value %] [% END %] [% END %] [% END %]
[% letter.key %]
[% page.kwiki_link %] [% page.edit_by_link %] [% page.edit_time %]
 

[% PROCESS nav_block %] __icons/gnome/image/list_pages.png__ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAA CXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1QMNDSkFBxl9BgAAAh5JREFUeNqVk89rE0EU xz+TpJmabSAYY5JSK2htqVBB8AeGJIqCeFBQtPpX5NB/QBDv/gF7VQjY2hbsxUs9eGgOCvbg IZfkoPmlSXYTCZuwk6yHmjVlc/Fdhnkz7/O+b94bwZHdABb4P/sBHAT+bjby+fy6UurYDSHE 1EjDMMjlcpuTADKZDKVSCQCfz+euk5Cxv1gsuj4X0Ol0KBaLCCGmAib940QAY/xbwzDWTdP0 yJ5WRqVSIZVKbQJPXQWDwYBms4kQwg1qNpvsvd/l8ZNnhEIhpJQAVKtVbwndbpdareZmVUrx aX+fdDqLrutks1mSySRSSlqtlhcQi8WO1WtZFt8ODxnZfTRNIx6Ps7S0hKZprhKPgnq97j5e uVymVqtyK32Frmmg6zqaFmJt7RKLi2e8ACkl0WgUx3EA2Nra4mY6xclImJcvnrOzs4vfJzj4 /BXDMP61dhIQDAaRUtLv9xkqm+UL58BR9Hsm165e5uLqMnOzQUYTA+cqaLfbbn87nQ4jpZiP RQj6BUINWIiFsZWGGvSwrJAXkEwmiUQiOI6DaZpsh+fY+/CR1fPz4Dj4haDW+EW1/pNH6dte gFKKXq935AwEuHP3Hvk3r6l8P8sJOUPA78eyh3R/W5xOJLwAXddpNBrugW3bLK+s0KhUGSqF CPg4FY8TTcQpFAqeUZ72nX1+2Hj44P51EChnyIyc5d3O9hdnxCugDBz8AX7Y0vgtAxN8AAAA AElFTkSuQmCC