Other perl wikis with this feature or related: http://www.oddmuse.org/cgi-bin/wiki/Contrib_Action.
Sub DoOtherRequest { ... &DoTrimUsers(); + } elsif ($action eq "contrib") { + &DoContrib($id); sub GetFooterText { ... $result .= &GetPageLinkText($id, T('View current revision')); } + $result .= ' | '; + $result .= &ScriptLink("action=contrib&id=$id", T('View Contributors')); + sub DoContrib { + my ($id) = @_; + my ($status, $fileData, $oldFileData); + my ($firstTs, @firstTs, @firstUs, @firstT, @firstU); + my (@full, @fullrc, @fullnewrc); + my $action; + my ($i, @i); + my ($c, @unsorted, $dupla, $date, $auth, %v, %t, @sorted, @auth); + + print &GetHeader('', Ts('ContribsOn %s', $id),''); + ($status, $fileData) = &ReadFile($RcFile); + if ($status) {@fullnewrc = split(/\n/, $fileData);} + ($status, $oldFileData) = &ReadFile($RcOldFile); + if ($status) {@fullrc = split(/\n/, $oldFileData);} + @full = (@fullrc, @fullnewrc); + if (@full > 0) { # Only false if no lines in file + for ($i=0; $i<=$#full; $i++) { + $c++; + @firstTs = split(/$FS3/, $full[$i]); + if ($id eq $firstTs[1]) { + @firstUs = split(/$FS2/, $full[$i]); + $v{$c} = $firstTs[0]; + if ($firstUs[$#i-2] eq $firstUs[3] && $firstUs[3] ne '') { + $t{$c} = $firstUs[3]; + } else { $t{$c} = 0;} + $dupla = "$v{$c}|$t{$c}"; + push(@unsorted, $dupla); + } + } + } + + @sorted = sort { $b <=> $a } @unsorted; + print '<ol>'; + foreach $c (@sorted) { + ($date,$auth) = split(/\|/,$c); # $dupla = "$v{$c}|$t{$c}"; + if ($auth) { + print '<li>' . '(' . &TimeToText($date) . ') '; + print &GetPageOrEditLink($auth, $auth) + . ' ' . &GetPageOrEditLink($auth.'/Talk', "Talk") + . ' ' . &ScriptLink("action=contribs&userName=$auth", + T("Contribs")); + } else { + print '<li>' . '(' . &TimeToText($date) . ') ' + . '...'; + } + } + print &GetCommonFooter(); + } +}
(This snapshot contains more information (i.e UserID) than the patch's features)
--JuanmaMP