r2 - 22 Jun 2007 - 15:00:45 - TWikiAdminGroupYou are here: TWiki >  TWiki Web  > AttachContentPlugin

Attach Content Plugin

Saves dynamic topic text to an attachment.


This plugin puts any text between a %STARTATTACH{"filename"}% and %ENDATTACH% into an attachment with the given filename.

Pass filename, topic, web or comment as parameters.

The current version only refreshes the attachment when the topic is saved. Obviously this means that the attachment can get out of synch if, for example, it explicitly or implicitly refers to other topics.

This plugin is written specifically to be able to put css into topic(s) and still be able to have efficient stylesheets: i.e., without the overhead of TWiki processing. The feature can be used for many other things where you want TWiki to generate a plain text file a smart way.
For example: write a SEARCH in a topic and save the search results to an XML file. The XML data can be used for efficient look-up.

Syntax Rules



You can pass a number of parameters:


Parameter Description Default Example
topic Topic to save the attachment to. none (the current topic is used) topic="WebHome"
web Web where the save topic is located. none (the current Web is used) web="Main"
comment Attachment comment text. the default ATTACHCONTENTCOMMENT text (see Plugin Settings below) comment="User data as of %DATE%"
hide Use hide="on" to hide the attachment in normal topic view. off hide="on"
keeppars Keep paragraph <p /> tags, <nop> tags, and square bracket type links The default KEEPPARS setting (see Plugin Settings below) keeppars="on"


Creating a color scheme

See: PatternSkinColorSettings?. This topic uses AttachContentPlugin to write a CSS file for colors. Color values are set dynamically in the topic. On topic save the CSS file is attached to the topic and can be referred to using variable USERCOLORSURL.

User data XML

Update user data XML

%STARTATTACH{"userdata.xml" comment="User data as of %DATE%"}%
<?xml version="1.0" encoding="ISO-8859-1"?>
%SEARCH{ "[F]irstName.*value=.*()" web="%MAINWEB%" type="regex" nonoise="on" excludetopic="UserForm,TWikiContributor,TWikiGuest,UnknownUser" format="<user><firstname><![CDATA[$formfield(FirstName)]]></firstname><lastname><![CDATA[$formfield(LastName)]]></lastname><url><![CDATA[%SCRIPTURL{view}%/%WEB%/$topic]]></url></user>" }%

Plugin Settings

Plugin settings are stored as preferences variables. To reference a plugin setting write %<plugin>_<setting>%, i.e. %CACHECONTENTPLUGIN_SHORTDESCRIPTION%

  • One line description, is shown in the TextFormattingRules topic:
    • Set SHORTDESCRIPTION = Saves dynamic topic text to an attachment

  • Debug plugin: (See output in data/debug.txt)
    • Set DEBUG = 0

  • Keep paragraph <p /> tags, <nop> tags, and square bracket type links:
    • Set KEEPPARS = 0

  • The default comment text:
    • Set ATTACHCONTENTCOMMENT = Generated by AttachContentPlugin

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.

  • Download the ZIP file from the Plugin web (see below)
  • Unzip AttachContentPlugin.zip in your twiki installation directory. Content:
    File: Description:
    data/TWiki/AttachContentPlugin.txt Plugin topic
    data/TWiki/AttachContentPlugin.txt,v Plugin topic repository
    lib/TWiki/Plugins/AttachContentPlugin.pm Plugin Perl module
  • Test if the installation was successful: Update user data XML to see if an attachment is created/updated

Plugin Info

Plugin Author: TWiki:Main.MeredithLesly, TWiki:Main.KennethLavrsen, TWiki:Main.ArthurClemens
Plugin Version: 16 Apr 2007 (V2.2.0)
Change History:  
16 Apr 2007 (2.2.0) Kenneth Lavrsen: Add added keeppars parameter. Settings change to being plugin settings only. Removal of plugin tags fixed so text between is still visible.
15 Apr 2007 (2.1.0) Arthur Clemens: added parameters web, topic, comment and hide. Plugin tags are removed from view. Added configurable default comment.
19 Oct 2006 (2.0) TWiki:Main.KennethLavrsen
Fixed major security issue. Original version allowed /../ in the filename so files could be stored everywhere
Plugin now cleans up the its work area and no longer leaves temporary files
Temporary filenames made pseudo random to avoid race condition
Plugin now also removed nops and TML square bracket links
Attachment is no longer saved when uploading other files and changing attributes.
09 Feb 2006 (1.0) Initial version
TWiki Dependency: $TWiki::Plugins::VERSION 1.1
CPAN Dependencies: none
Other Dependencies: none
Perl Version: 5.005
License: GPL (GNU General Public License)
Benchmarks: GoodStyle nn%, FormattedSearch nn%, AttachContentPlugin nn%
Plugin Home: http://TWiki.org/cgi-bin/view/Plugins/AttachContentPlugin
Feedback: http://TWiki.org/cgi-bin/view/Plugins/AttachContentPluginDev
Appraisal: http://TWiki.org/cgi-bin/view/Plugins/AttachContentPluginAppraisal

Related Topics: TWikiPreferences, TWikiPlugins

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r2 < r1 | More topic actions
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
Note: Please contribute updates to this topic on TWiki.org at TWiki:TWiki.AttachContentPlugin