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 plugin refreshes the attachment when the topic is saved, or viewed.

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 is defined in the plugin Configuration settings 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 is defined in the plugin Configuration settings keeppars="on"
attachonview Do/not do action in view The default ATTACHONVIEW setting is defined in the plugin Configuration settings ) attachonview="1"

Special note on use of attachview

If the global flag is enabled (using configure), attachments are saved every time on page view which could

  • slow down page views
  • increase server load
  • makes pages look updated even if there is no update (recent changes and e-mail notification)
  • saves pages regardless of access control (for example as TWikiGuest if not logged in)

The attachview parameter allows a targeted save on view, to apply only on the pages that need this feature


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: (This needs to be set up in configure. This setting will have no effect. See output in data/debug.txt)
    • Set DEBUG = 0

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.

You may also choose to install this plugin using the "Find More Extensions" link on the configure script of your TWiki installation, or do so manually using the instructions below.

  • Download the ZIP file from the Plugin web (see below)
  • Unzip in your twiki installation directory. Content:
    File: Description:
    data/TWiki/AttachContentPlugin.txt Plugin topic
    lib/TWiki/Plugins/ Plugin Perl module
  • Visit configure in your TWiki installation, and enable the plugin in the {Plugins} section.
  • 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
Copyright: © 2006 TWiki:Main.MeredithLesly,
© 2006-2007 TWiki:Main.KennethLavrsen,
© 2007 TWiki:Main.ArthurClemens,
© 2006-2011 TWiki:TWiki.TWikiContributor
License: GPL (GNU General Public License)
Plugin Version: 21431 (2011-06-06)
Change History:  
2011-06-06: TWikibug:Item6745: Control attachment save on view behavior with global flag, and override individually with parameter. Also move plugin settings from topic to configure -- TWiki:Main.DipuDeshmukh
2011-06-03: TWikibug:Item6725: Change global package variables from "use vars" to "ours" -- TWiki:Main.PeterThoeny
2011-06-03: TWikibug:Item6745: Enhancement to allow attach on Topic view, not just on save -- TWiki:Main.DipuDeshmukh
2010-07-27: TWikibug:Item6530: Doc fixes; changing TWIKIWEB to SYSTEMWEB
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)
TWiki:Plugins/Benchmark: GoodStyle nn%, FormattedSearch nn%, AttachContentPlugin nn%
Plugin Home:

Related Topics: TWikiPreferences, TWikiPlugins

Topic attachments
I Attachment History Action Size Date Who Comment
XMLxml userdata.xml r1 manage 0.8 K 23 Jan 2019 - 14:08 TWikiAdminUser User data as of 23 Jan 2019
Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r3 - 23 Jan 2019 - TWikiAdminUser
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 1999-2021 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 at TWiki:TWiki.AttachContentPlugin.