1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- # Copyright (C) 2006 Alex Schroeder <alex@emacswiki.org>
- #
- # This program is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation; either version 3 of the License, or
- # (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
- use strict;
- use v5.10;
- our ($WantedPageName, $WantedPageNameFilter, $WantedPageReferrerFilter);
- AddModuleDescription('wanted.pl', 'Wanted Pages Extension');
- our ($q, %Action, %IndexHash, @MyAdminCode);
- push(@MyAdminCode, \&WantedAction);
- sub WantedAction {
- my ($id, $menuref, $restref) = @_;
- push(@$menuref, ScriptLink('action=wanted', Ts('Wanted Pages'), 'wanted'));
- }
- sub PrintWantedData {
- my %links = %{(GetFullLinkList(1,0,0,1))};
- my %wanted;
- foreach my $page (sort keys %links) {
- next if defined $WantedPageReferrerFilter and ($page =~ m/$WantedPageReferrerFilter/);
- foreach my $link (@{$links{$page}}) {
- next if defined $WantedPageNameFilter and ($link =~ m/$WantedPageNameFilter/);
- push @{$wanted{$link}}, $page if not $IndexHash{$link};
- }
- }
- print $q->p(Ts('%s pages', scalar keys %wanted));
- foreach my $page (sort keys %wanted) {
- my @references = map {GetPageLink($_)} (sort @{$wanted{$page}});
- my $pageLink = sprintf( T('%s, referenced from:'), GetEditLink($page,$page) );
- print $q->ul( $q->li($pageLink, $q->ul($q->li(\@references))));
- }
- }
- $Action{'wanted'} = \&DoWantedPages;
- sub DoWantedPages {
- my $title = defined $WantedPageName ? $WantedPageName : T('Wanted Pages');
- print GetHeader('', $title, '', 1), $q->start_div({-class=>'content wanted'});
- PrintWantedData();
- print $q->end_div();
- PrintFooter();
- }
|