From: <de...@de...> - 2006-07-06 21:26:38
|
Author: MeredithLesly Date: 2006-07-06 14:34:18 -0500 (Thu, 06 Jul 2006) New Revision: 10842 Added: twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/ twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/data/ twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/data/TWiki/ twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/data/TWiki/ChildTopicsFn.txt twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/ twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/ twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/Fns/ twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/Fns/CHILDTOPICS.pm twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/UserFns/ twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/UserFns/ChildTopicsFn.pm twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/UserFns/ChildTopicsFn/ twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/UserFns/ChildTopicsFn/DEPENDENCIES twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/UserFns/ChildTopicsFn/MANIFEST twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/UserFns/ChildTopicsFn/build.pl twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/test/ twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/test/unit/ twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/test/unit/ChildTopicsFn/ twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/test/unit/ChildTopicsFn/ChildTopicsFnSuite.pm twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/test/unit/ChildTopicsFn/ChildTopicsFnTests.pm Log: Added: twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/data/TWiki/ChildTopicsFn.txt =================================================================== --- twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/data/TWiki/ChildTopicsFn.txt 2006-07-06 19:31:13 UTC (rev 10841) +++ twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/data/TWiki/ChildTopicsFn.txt 2006-07-06 19:34:18 UTC (rev 10842) @@ -0,0 +1,44 @@ +%META:TOPICINFO{author="TWikiContributor" date="1111929255" format="1.0" version="$Rev: 9189 $"}% +---+ Empty TWiki Tag + +This is an empty Tag you can use as a template to build your own TWikiTag. + +---++ Syntax Rules + +(none) + +---++ Tag Settings + +Tag settings are stored as preferences variables. To reference +a plugin setting write ==%<nop><plugin>_<setting>%==, i.e. ==%<nop>CHILDTOPICSFN_SHORTDESCRIPTION%== + + * One line description, is shown in the %TWIKIWEB%.TextFormattingRules topic: + * Set SHORTDESCRIPTION = Empty Tag used as a template for new Tags + + * Your own setting, for example: + * Set EXAMPLE = got it! + + * Debug plugin: (See output in =data/debug.txt=) + * Set DEBUG = 0 + +---++ Tag Installation Instructions + + * This plugin is preinstalled, you do not need to install it. + +---++ Tag Info + +| Tag Author: | %MAINWEB%.MeredithLesly | +| Copyright: | © 2001-2006, %MAINWEB%.MeredithLesly | +| License: | GPL ([[http://www.gnu.org/copyleft/gpl.html][GNU General Public License]]) | +| Tag Version: | 06 Jun 2006 | +| Change History: | <!-- versions below in reverse order --> | +| CPAN Dependencies: | none | +| Other Dependencies: | none | +| Perl Version: | 5.8 | +| Tag Home: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC% | +| Feedback: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev | +| Appraisal: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Appraisal | + +__Related Topics:__ %TWIKIWEB%.TWikiTags, %TWIKIWEB%.DeveloperDocumentationCategory, %TWIKIWEB%.AdminDocumentationCategory, %TWIKIWEB%.TWikiPreferences + +-- %TWIKIWEB%.TWikiContributor - 01 Feb 2006 Added: twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/Fns/CHILDTOPICS.pm =================================================================== --- twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/Fns/CHILDTOPICS.pm 2006-07-06 19:31:13 UTC (rev 10841) +++ twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/Fns/CHILDTOPICS.pm 2006-07-06 19:34:18 UTC (rev 10842) @@ -0,0 +1 @@ +link ../UserFns/ChildTopicsFn.pm \ No newline at end of file Property changes on: twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/Fns/CHILDTOPICS.pm ___________________________________________________________________ Name: svn:special + * Added: twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/UserFns/ChildTopicsFn/DEPENDENCIES =================================================================== Added: twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/UserFns/ChildTopicsFn/MANIFEST =================================================================== --- twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/UserFns/ChildTopicsFn/MANIFEST 2006-07-06 19:31:13 UTC (rev 10841) +++ twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/UserFns/ChildTopicsFn/MANIFEST 2006-07-06 19:34:18 UTC (rev 10842) @@ -0,0 +1,3 @@ +data/TWiki/ChildTopicsFn.txt Plugin doc page +lib/TWiki/UserFns/ChildTopicsFn.pm Plugin Perl module +lib/TWiki/Fns/CHILDTOPICS.pm Plugin Perl module Added: twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/UserFns/ChildTopicsFn/build.pl =================================================================== --- twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/UserFns/ChildTopicsFn/build.pl 2006-07-06 19:31:13 UTC (rev 10841) +++ twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/UserFns/ChildTopicsFn/build.pl 2006-07-06 19:34:18 UTC (rev 10842) @@ -0,0 +1,52 @@ +#!/usr/bin/perl -w +# +# Example build class. Copy this file to the equivalent place in your +# plugin or contrib and edit. +# +# Read the comments at the top of lib/TWiki/Contrib/Build.pm for +# details of how the build process works, and what files you +# have to provide and where. +# +# Requires the environment variable TWIKI_LIBS (a colon-separated path +# list) to be set to point at the build system and any required dependencies. +# Usage: ./build.pl [-n] [-v] [target] +# where [target] is the optional build target (build, test, +# install, release, uninstall), test is the default.` +# Two command-line options are supported: +# -n Don't actually do anything, just print commands +# -v Be verbose +# + +# Standard preamble +BEGIN { + unshift @INC, split( /:/, $ENV{TWIKI_LIBS} ); +} + +use TWiki::Contrib::Build; + +# Declare our build package +package BuildBuild; +use base qw( TWiki::Contrib::Build ); + +sub new { + my $class = shift; + return bless( $class->SUPER::new( "ChildTopicsFn", "Build" ), $class ); +} + +# Example: Override the build target +sub target_build { + my $this = shift; + + $this->SUPER::target_build(); + + # Do other build stuff here +} + +package main; + +# Create the build object +$build = new BuildBuild(); + +# Build the target on the command line, or the default target +$build->build($build->{target}); + Added: twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/UserFns/ChildTopicsFn.pm =================================================================== --- twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/UserFns/ChildTopicsFn.pm 2006-07-06 19:31:13 UTC (rev 10841) +++ twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/lib/TWiki/UserFns/ChildTopicsFn.pm 2006-07-06 19:34:18 UTC (rev 10842) @@ -0,0 +1,55 @@ +# Plugin for TWiki Enterprise Collaboration Platform, http://TWiki.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. For +# more details read LICENSE in the root of this distribution. +# +# 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. +# +# For licensing info read LICENSE file in the TWiki root. +# +# '$Rev$' + +# Always use strict to enforce variable scoping +use strict; +use TWiki::Contrib::MoreFuncContrib; +use TWiki::Func; + +use vars qw($tagname); + +$tagname = 'CHILDTOPICS'; + +sub CHILDTOPICS { + my ($session, $params, $topic, $web) = @_; + my $format = $params->{format} || ' * $topic'; + my $join = $params->{format} || "\n"; + my $searchWeb = $params->{web} || $web; + my $searchTopic = $params->{topic} || $topic; + my @eachtopic = (); + my @topics = TWiki::Func::getTopicList($searchWeb); + my $excludeTopic = $params->{excludetopic}; + + if (defined $excludeTopic) { + $excludeTopic = TWiki::Contrib::MoreFuncContrib::makeTopicPattern( $excludeTopic ); + if( $excludeTopic ) { + @topics = grep( !/$excludeTopic/i, @topics ); + } + } + + foreach my $t (@topics) { + my $meta = TWiki::Contrib::MoreFuncContrib::readTopicMeta($searchWeb, $t); + if ($meta->getParent() eq $searchTopic) { + my $f = $format; + $f =~ s/\$topic/$t/; + $f =~ s/\$web/$searchWeb/; + push @eachtopic, $f; + } + } + return join($join, @eachtopic); +} + +return \&CHILDTOPICS; Added: twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/test/unit/ChildTopicsFn/ChildTopicsFnSuite.pm =================================================================== --- twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/test/unit/ChildTopicsFn/ChildTopicsFnSuite.pm 2006-07-06 19:31:13 UTC (rev 10841) +++ twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/test/unit/ChildTopicsFn/ChildTopicsFnSuite.pm 2006-07-06 19:34:18 UTC (rev 10842) @@ -0,0 +1,9 @@ +package ChildTopicsFnSuite; + +use base qw(Test::Unit::TestSuite); + +sub name { 'ChildTopicsFnSuite' }; + +sub include_tests { qw(ChildTopicsFnTests) }; + +1; Added: twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/test/unit/ChildTopicsFn/ChildTopicsFnTests.pm =================================================================== --- twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/test/unit/ChildTopicsFn/ChildTopicsFnTests.pm 2006-07-06 19:31:13 UTC (rev 10841) +++ twiki/scratch/TWikiFns/twikiplugins/ChildTopicsFn/test/unit/ChildTopicsFn/ChildTopicsFnTests.pm 2006-07-06 19:34:18 UTC (rev 10842) @@ -0,0 +1,36 @@ +use strict; + +package ChildTopicsFnTests; + +use base qw(TWikiTestCase); + +use strict; +use TWiki; +use CGI; + +my $twiki; + +sub new { + my $self = shift()->SUPER::new(@_); + return $self; +} + +# Set up the test fixture +sub set_up { + my $this = shift; + + $this->SUPER::set_up(); + + $TWiki::Plugins::SESSION = $twiki; +} + +sub tear_down { + my $this = shift; + $this->SUPER::tear_down(); +} + +sub test_self { + my $this = shift; +} + +1; |