Topic Create Plugin
TOPICCREATE - Automatically Create a Set of TWiki Topics
- The
%TOPICCREATE{}%
TWikiVariable is useful for creating topics based on templates. - Example scenario: You have a notebook application where users can create new notebooks based on a notebook template topic. Each time a user creates a new notebook you would like to create a set of children topics, each based on a different template.
- Syntax:
%TOPICCREATE{ <attributes> }%
- Attributes recognized:
Attribute Meaning Valid input Default template=""
Name of TWiki topic to be used as template Any valid TWiki topic (required) topic=""
Name of new TWiki topic to create Any valid WikiWord (required) parent=""
Name of parent topic Any valid WikiWord (parent of template topic) disable=""
Name of the template topic containing this use of TOPICCREATE Any valid topic name (WikiWord) recommended parameters=""
List of parameters to pass to a child topic to initialize any urlparams. Following syntax:
<parameter-name>=<parameter-value>
followed by any number of parameter name, value pairs separated by&
or;
No Parameters - The action to create the TWiki topic will not occur until one hits the
Save Changes
button in preview. - The
%TOPICCREATE{}%
variable will be removed upon saving of the topic. - Any attachments that are in the
template
will also be copied over to the new topic. -
%TOPICCREATE%
is recursive - Write
%TOPICCREATE{ template="MyTemplate" topic="%TOPIC%MyNewTopicName" parameters="MyParameterName=MyParameterValue&Hello=Goodbye" }%
to create a twiki topic based on another topicMyTemplate
with the name%TOPIC%MyNewTopicName
. Any%URLPARAM{}%
with the nameMyParameterName
andHello
present inMyTemplate
will be replaced withMyParameterValue
andGoodbye
. - To prevent the action from happening in your template topic you should either include the
disable
argument, or escape it:%TOPICCRE%NOP%ATE{...}%
. The%NOP%
gets removed when a topic gets instantiated based on a template.
TOPICATTACH - Automatically Copy Attachments to a Topic
- Example scenario: You have a template topic and would like to attach a file whose's content or name is determined by URL parameters at topic creation time. This is usually done for a topic that was just created via TOPICCREATE as described above.
- Syntax:
%TOPICATTACH{ <attributes> }%
- Attributes recognized:
Attribute Meaning Valid input Default comment=""
Comment to appear for the attachment within this topic, replacing the comment that was in the fromtopic
a one line string {omit parameter if no change desired} fromfile=""
The attachment to copy from Any attached file from fromtopic
(required) disable=""
Name of the template topic containing this use of TOPICATTACH Any valid topic name (WikiWord) (required) fromtopic=""
Topic (or Web.Topic) that contains the attachment Any valid TWiki topic (required) - Write
%TOPICATTACH{ fromtopic="SourceTopic" fromfile="Sample.jpg" name="Snoopy.jpg" disable="..."}%
to attachSample.jpg
from topicSourceTopic
asSnoopy.jpg
. - The parameter value comment is used to change the comment (description) that shows for the topic in the table of attachments.
- The "hidden" attribute of the topic is removed: the attachment can be hidden in the
fromtopic
if desired. - The
fromtopic
can specify a different web if desired. For exampleTWiki.SomeTemplate
would be valid as afromtopic
. - To prevent the action from happening in your template topic you must provide the
disable
parameter with the topic name containing the%TOPICATTACH%
.
Known issues & limitations
- The
TOPICATTACH
must be in the 'top level' topic being saved by aTOPICCREATE
. It can not be in a recursive/subordinate topic invoked by the TOPICCREATE. - Precautions have been taken to make this Plugin safe. It does not have ANY WARRANTY, does not even have the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. It is up to the administrator to decide if this Plugin is safe for a public TWiki site.
Plugin Installation Instructions
Note: You do not need to install anything on the browser to use this plugin. The following instructions are for the administrator who installs the plugin on the server where TWiki is running.- Run configure to install the plugin, then enable the plugin in configure.
- Alternatively, download the ZIP file from the Plugin web (see below) and install the plugin manually:
- Unzip
TopicCreatePlugin.zip
in your twiki installation directory. Content:File: Description: data/TWiki/TopicCreatePlugin.txt
Plugin topic lib/TWiki/Plugins/TopicCreatePlugin.pm
Plugin Perl module lib/TWiki/Plugins/TopicCreatePlugin/Func.pm
Plugin core functionality - Test if the installation was successful:
- Create a test topic called
TestTopicCreate
with this content:
%TOPICCREATE{ template="TWiki.WikiWord" topic="%TOPIC%Child" }%
- After saving
TestTopicCreate
you should get a new topicTestTopicCreateChild
with the content of WikiWord.
- Create a test topic called
Plugin Info
- One line description, is shown in the TextFormattingRules topic:
- Set SHORTDESCRIPTION = Automatically create a set of topics and attachments at topic save time
Plugin Author: | TWiki:Main.StanleyKnutson![]() ![]() ![]() ![]() |
Copyright: | © 2005-2014 Peter Thoeny; © 2009 Andrew Jones; © 2008-2014 TWiki:TWiki.TWikiContributor ![]() |
License: | GPL (GNU General Public License![]() |
Sponsor: | Alba Power Quality Solutions![]() |
Plugin Version: | 2014-11-07 |
Change History: | |
2014-11-07: | TWikibug:Item7586![]() |
2011-07-13: | TWikibug:Item6725![]() |
25 Oct 2009: | TWikibug:Item6357![]() cp and mkdir , should now work on any OS that TWiki does; removed depreciated API calls -- TWiki:Main.AndrewRJones![]() |
11686 | TWikibug:Item2956![]() |
10613 | TWikibug:Item2473![]() |
7960 | TWikibug:Item1238![]() |
7585 | TWikibug:Item1016![]() ![]() |
21 Nov 2005: | Initial TOPICCATTACH |
30 Apr 2005: | Initial version |
TWiki Dependency: | $TWiki::Plugins::VERSION 1.2 |
CPAN Dependencies: | none |
Other Dependencies: | none |
Perl Version: | 5.008 |
Plugin Benchmark![]() |
GoodStyle nn%, FormattedSearch nn%, TopicCreatePlugin nn% |
Plugin Home: | http://TWiki.org/cgi-bin/view/Plugins/TopicCreatePlugin![]() |
Feedback: | http://TWiki.org/cgi-bin/view/Plugins/TopicCreatePluginDev![]() |
Appraisal: | http://TWiki.org/cgi-bin/view/Plugins/TopicCreatePluginAppraisal![]() |