# # TWiki WikiClone ($wikiversion has version info) # # Copyright (C) 2000-2001 Andrea Sterbini, a.sterbini@flashnet.it # Copyright (C) 2001 Peter Thoeny, Peter@Thoeny.com # # 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, published at # http://www.gnu.org/copyleft/gpl.html # # ========================= # # This is an empty TWiki plugin. Use it as a template # for your own plugins; see TWiki.TWikiPlugins for details. # # Each plugin is a package that contains the subs: # # initPlugin ( $topic, $web, $user, $installWeb ) # commonTagsHandler ( $text, $topic, $web ) # startRenderingHandler( $text, $web ) # outsidePREHandler ( $text ) # insidePREHandler ( $text ) # endRenderingHandler ( $text ) # # initPlugin is required, all other are optional. # For increased performance, all handlers except initPlugin are # disabled. To enable a handler remove the leading DISABLE_ from # the function name. # # NOTE: To interact with TWiki use the official TWiki functions # in the &TWiki::Func module. Do not reference any functions or # variables elsewhere in TWiki!! # ========================= package TWiki::Plugins::ShowTopicSectionPlugin; # change the package name!!! # ========================= use vars qw( $web $topic $user $installWeb $VERSION $debug ); $VERSION = '1.000'; # ========================= sub initPlugin { return 1; } # ========================= sub commonTagsHandler { $_[0] =~ s/%SHOW{(.*?)}%/&handleShowTopicSection($1)/geo; } # ========================= sub handleShowTopicSection { my $rawentry = shift || return ""; $rawentry =~ s/\"//g; $rawentry =~ /\s*(.*?)\s*,\s*(.*)\s*from\s*=\s*"(.*)"\s*to\s*=\s*"(.*)"/; my $page = $1 || return ""; my $rev = $2 || return ""; my $from = $3 || return ""; my $to = $4 || return ""; my $text; # convert all .'s into /'s $page =~ s/\./\//g; # match the webname and topicnames $page =~ /(.*)\/(.*)/; my $webName = $1; my $topic = $2; $text .= &TWiki::Store::readTopicRaw( $webName, $topic, "$rev" ); $text =~ s/%META.*{.*version=\"(.*?)\"}?%/$topic<\/a> *Revision: $1*/g; $text =~ s/.*?$from//s; $text =~ s/$to.*//s; return $text; } # ========================= 1;