Files
oddmuse/modules/dynamic-comments.pl

62 lines
2.0 KiB
Perl
Raw Normal View History

2005-07-13 19:16:08 +00:00
# Copyright (C) 2005 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 2 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, write to the
# Free Software Foundation, Inc.
# 59 Temple Place, Suite 330
# Boston, MA 02111-1307 USA
2005-10-07 23:23:30 +00:00
$ModulesDescription .= '<p>$Id: dynamic-comments.pl,v 1.7 2005/10/07 23:23:30 as Exp $</p>';
2005-07-13 19:16:08 +00:00
2005-07-17 01:35:43 +00:00
push(@MyInitVariables, \&DynamicCommentsAddScript);
sub DynamicCommentsAddScript {
$HtmlHeaders .= qq{
2005-07-13 19:16:08 +00:00
<script type="text/Javascript">
2005-07-13 19:25:02 +00:00
function togglecomments (id) {
var elem = document.getElementById(id);
if (elem.className=="commentshown") {
elem.className="commenthidden";
2005-07-13 19:16:08 +00:00
}
else {
2005-07-13 19:25:02 +00:00
elem.className="commentshown";
2005-07-13 19:16:08 +00:00
}
}
</script>
} unless $HtmlHeaders =~ /commenthidden/; # mod_perl?
}
2005-07-13 19:16:08 +00:00
*DynamicCommentsOldGetPageLink = *GetPageLink;
*GetPageLink = *DynamicCommentsNewGetPageLink;
sub DynamicCommentsNewGetPageLink {
my ($id, @rest) = @_;
if ($CollectingJournal and $id =~ /^$CommentsPrefix/) {
2005-07-13 19:16:08 +00:00
my $title = $id;
$title =~ s/_/ /g;
my $page = PageHtml($id);
if ($page) {
return qq{<a href="javascript:togglecomments('$id')">$title</a>}
. '</p>' # close p before opening div
. $q->div({-class=>commenthidden, -id=>$id},
$page,
$q->p(DynamicCommentsOldGetPageLink($id, T('Add Comment'))))
. '<p>'; # open an empty p that will be closed in PrintAllPages
} else {
return DynamicCommentsOldGetPageLink($id, T('Add Comment'));
}
2005-07-13 19:16:08 +00:00
} else {
return DynamicCommentsOldGetPageLink($id, @rest);
}
}