# Copyright (C) 2004 Brock Wilcox # # 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 . use strict; use v5.10; AddModuleDescription('commentcount.pl', 'Comment Count Extension'); our ($CommentsPrefix); *OldCommentcountAddComment = \&AddComment; *AddComment = \&NewCommentcountAddComment; sub NewCommentcountAddComment { my ($old, $comment) = @_; my $new = OldCommentcountAddComment($old,$comment); if($new eq $old) { # no comment added } else { my $num = $new; if($num =~ /=== (\d+) Comments?\. ===/) { $num = $1; $num++; $new =~ s/=== (\d+) Comments?\. ===/=== $num Comments. ===/; } else { $new = "=== 1 Comment. ===\n" . $new; } } return $new; } *OldCommentcountScriptLink = \&ScriptLink; *ScriptLink = \&NewCommentcountScriptLink; sub NewCommentcountScriptLink { my ($action, $text, @rest) = @_; if ($CommentsPrefix && $action =~ /^$CommentsPrefix(.*)/) { # TODO use $CommentsPattern ? # Add the number of comments here my $id = $action; $id =~ s/%([0-9a-f][0-9a-f])/chr(hex($1))/eg; # undo urlencode my $comments = GetPageContent($id); my $num = 0; if($comments =~ /=== (\d+) Comments?\. ===/) { $num = $1; } # Fix plurals my $plural = T('Comments on'); my $singular = T('Comment on'); $text =~ s/$plural/$singular/ if($num == 1); $text = $num . ' ' . $text; } return OldCommentcountScriptLink($action, $text, @rest); }