1 --- wiki.pl.orig 2004-09-11 08:21:02.000000000 -0400
2 +++ wiki.pl 2004-06-10 22:03:14.734384880 -0400
3 @@ -485,6 +485,9 @@
4 } elsif ($action eq 'random') {
5 &DoRandom();
6 return 1;
7 + } elsif ($action eq 'orphans') {
8 + &DoOrphanList();
9 + return 1;
10 } elsif ($action eq 'history') {
11 &DoHistory($id) if &ValidIdOrDie($id);
12 return 1;
13 @@ -973,6 +976,43 @@
14 &DoRc(0);
15 }
16
17 +sub GetOrphanList {
18 + my @found;
19 +
20 + my %seen = ();
21 + my @pglist = &AllPagesList();
22 +
23 + foreach my $name (@pglist) {
24 + $seen{$name} = 0;
25 + }
26 +
27 + # pages linked from menu bar aren't orphans
28 + $seen{$HomePage} = 1;
29 + $seen{$RCName} = 1;
30 + foreach my $name (@pglist) {
31 + my @links = &GetPageLinks($name, 1, 0, 0);
32 + foreach my $link (@links) {
33 + #don't include self links
34 + unless ($link eq $name) {
35 + $seen{$link}++ if exists $seen{$link};
36 + }
37 + }
38 + }
39 +
40 + foreach my $name (sort keys %seen) {
41 + push(@found, $name) if $seen{$name} < 1;
42 + }
43 + return @found;
44 +}
45 +
46 +sub DoOrphanList {
47 + print &GetHeader('', &QuoteHtml(T('Full Orphan List')), '');
48 + print "<hr>\n\n\n\n\n"; # Extra lines to get below the logo
49 + &PrintPageList(&GetOrphanList());
50 + print "\n";
51 + print &GetCommonFooter();
52 +}
53 +
54 sub DoRandom {
55 my ($id, @pageList);
56
57 @@ -1219,6 +1256,11 @@
58 return &ScriptLink("action=random", T('Random Page'));
59 }
60
61 +sub GetOrphanLink {
62 + return &ScriptLink("action=orphans", T('Orphans'));
63 +}
64 +
65 +
66 sub ScriptLinkDiff {
67 my ($diff, $id, $text, $rev) = @_;
68
69 @@ -1487,6 +1529,7 @@
70 if (&GetParam("linkrandom", 0)) {
71 $bartext .= " | " . &GetRandomLink();
72 }
73 + # $bartext .= " | " . &GetOrphanLink();
74 if ($UserGotoBar ne '') {
75 $bartext .= " | " . $UserGotoBar;
76 }
benutzt werden, wie sie auch in der folgenden Liste der Dateien erscheint. Es sollte
die URL des Verweises ("laden") kopiert werden, da sich diese jederzeit ändern kann und damit der Verweis auf die Datei brechen würde.