123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- # Copyright (C) 2005-2007 Fletcher T. Penney <fletcher@freeshell.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
- use strict;
- use v5.10;
- AddModuleDescription('plainsite.pl', 'PlainSite Module');
- our ($q, $OpenPageName, $HomePage, $CommentsPrefix, $RCName);
- our ($PlainSiteAllowCommentLink);
- *OldGetFooterLinks = \&GetFooterLinks;
- *GetFooterLinks = \&PlainSiteGetFooterLinks;
- sub PlainSiteGetFooterLinks {
- return if (GetParam('action','') eq 'static');
- if (UserIsAdmin() or UserIsEditor()) {
- return OldGetFooterLinks(@_);
- } else {
- if ($PlainSiteAllowCommentLink) {
- return CommentFooterLink(@_);
- } else {
- return;
- }
- }
- }
- sub CommentFooterLink {
- my ($id, $rev) = @_;
- my @elements;
- if ($id and $rev ne 'history' and $rev ne 'edit') {
- if ($CommentsPrefix) {
- if ($OpenPageName =~ /^$CommentsPrefix(.*)/) {
- push(@elements, GetPageLink($1, undef, 'original'));
- } else {
- push(@elements, GetPageLink($CommentsPrefix . $OpenPageName, undef, 'comment'));
- }
- }
- }
- return @elements ? $q->span({-class=>'edit bar'}, $q->br(), @elements) : '';
- }
- *OldGetFooterTimestamp = \&GetFooterTimestamp;
- *GetFooterTimestamp = \&PlainSiteGetFooterTimestamp;
- sub PlainSiteGetFooterTimestamp {
- return if (GetParam('action','') eq 'static');
- if (UserIsAdmin() or UserIsEditor()) {
- return OldGetFooterTimestamp(@_);
- } else {
- return;
- }
- }
- *OldGetRcRss = \&GetRcRss;
- *GetRcRss = \&PlainSiteGetRcRss;
- sub PlainSiteGetRcRss {
- # Have Rss point to HomePage rather than RecentChanges, since we want
- # to avoid drawing visitors to RecentChanges
- $RCName = $HomePage;
- OldGetRcRss(@_);
- }
- *GetNearLinksUsed = \&PlainSiteGetNearLinksUsed;
- sub PlainSiteGetNearLinksUsed {
- return;
- }
- # Disable the Recent Change function on cluster pages
- # Must load before clustermap module if that module is used
- *OldPrintRc = \&PrintRc;
- *PrintRc = \&PlainSitePrintRc;
- sub PlainSitePrintRc{
- my ($id, $standalone) = @_;
- if (!(UserIsAdmin() or UserIsEditor())) {
- DoRc(\&PlainSiteRcHtml);
- } else {
- return OldPrintRc($id, $standalone);
- }
- }
- sub PlainSiteRcHtml {
- my ($html, $inlist) = ('', 0);
- if (!(UserIsAdmin() or UserIsEditor())) {
- return;
- } else {
- *GetRcHtml = \&OldGetRcHtml;
- return OldGetRcHtml();
- }
- }
|