From: <de...@de...> - 2007-04-16 00:05:09
|
Author: KennethLavrsen Date: 2007-04-15 19:05:09 -0500 (Sun, 15 Apr 2007) New Revision: 13437 Modified: twiki/branches/MAIN/twikiplugins/AttachContentPlugin/data/TWiki/AttachContentPlugin.txt twiki/branches/MAIN/twikiplugins/AttachContentPlugin/lib/TWiki/Plugins/AttachContentPlugin.pm Log: Item3907: Item3906: Several fixes Only the ATTACH tages are hidden and not the text between them Added parameter keeppars with same function as KEEPVARS plugin setting Removed the possibility to use plugin settings in topic unprefixed as this signaled that this was working. But since these topic settings are not read from the saved topic but previous topic it became quite confusing. It is better to have the settings in the STARTATTACH parameters. We should consider removing all the plugin settings for performance. Modified: twiki/branches/MAIN/twikiplugins/AttachContentPlugin/data/TWiki/AttachContentPlugin.txt =================================================================== --- twiki/branches/MAIN/twikiplugins/AttachContentPlugin/data/TWiki/AttachContentPlugin.txt 2007-04-15 21:38:24 UTC (rev 13436) +++ twiki/branches/MAIN/twikiplugins/AttachContentPlugin/data/TWiki/AttachContentPlugin.txt 2007-04-16 00:05:09 UTC (rev 13437) @@ -19,19 +19,22 @@ ---++ Syntax Rules Write: + <pre> -%<nop>STARTATTACH{"filename"}% content-to-be-saved %ENDATTACH% +%<nop>STARTATTACH{"filename"}% +content-to-be-saved +%<nop>ENDATTACH% </pre> - You can pass a number of parameters: ---+++ 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 =COMMENT= text (see [[#PluginSettings][Plugin Settings]] below) | =comment="User data as of %<nop>DATE%"= | -| =hide= | Use =hide="on"= to hide the attachment in normal topic view. | =none= | =hide="on"= | +| =comment= | Attachment comment text. | the default =ATTACHCONTENTCOMMENT= text (see [[#PluginSettings][Plugin Settings]] below) | =comment="User data as of %<nop>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 [[#PluginSettings][Plugin Settings]] below) | =keeppars="on"= | ---++ Examples @@ -69,7 +72,7 @@ * Set KEEPPARS = 0 * The default comment text: - * Set COMMENT = Generated by !AttachContentPlugin + * Set ATTACHCONTENTCOMMENT = Generated by !AttachContentPlugin ---++ Plugin Installation Instructions @@ -86,9 +89,10 @@ ---++ Plugin Info | Plugin Author: | TWiki:Main.MeredithLesly, TWiki:Main.KennethLavrsen, TWiki:Main.ArthurClemens | -| Plugin Version: | 15 Apr 2007 (V2.1.0) | +| Plugin Version: | 16 Apr 2007 (V2.2.0) | | Change History: | <!-- versions below in reverse order --> | -| 15 Apr 2006 (2.1.0) | Arthur Clemens: added parameters =web=, =topic=, =comment= and =hide=. Plugin tags are removed from view. Added configurable default comment. | +| 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<br />Fixed major security issue. Original version allowed /../ in the filename so files could be stored everywhere<br />Plugin now cleans up the its work area and no longer leaves temporary files<br />Temporary filenames made pseudo random to avoid race condition<br />Plugin now also removed nops and TML square bracket links<br />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 | Modified: twiki/branches/MAIN/twikiplugins/AttachContentPlugin/lib/TWiki/Plugins/AttachContentPlugin.pm =================================================================== --- twiki/branches/MAIN/twikiplugins/AttachContentPlugin/lib/TWiki/Plugins/AttachContentPlugin.pm 2007-04-15 21:38:24 UTC (rev 13436) +++ twiki/branches/MAIN/twikiplugins/AttachContentPlugin/lib/TWiki/Plugins/AttachContentPlugin.pm 2007-04-16 00:05:09 UTC (rev 13437) @@ -25,13 +25,13 @@ # $VERSION is referred to by TWiki, and is the only global variable that # *must* exist in this package use vars qw( $VERSION $RELEASE $debug $pluginName ); -use vars qw( $savedAlready $keepPars $defaultComment ); +use vars qw( $savedAlready $defaultKeepPars $defaultComment ); # This should always be $Rev: 11069$ so that TWiki can determine the checked-in # status of the plugin. It is used by the build automation tools, so # you should leave it alone. $VERSION = '$Rev: 11069$'; -$RELEASE = '2.1.0'; +$RELEASE = '2.2.0'; # Name of this Plugin, only used in this module $pluginName = 'AttachContentPlugin'; @@ -46,8 +46,8 @@ } $debug = TWiki::Func::getPluginPreferencesFlag("DEBUG") || TWiki::Func::getPreferencesFlag("DEBUG"); - $keepPars = TWiki::Func::getPluginPreferencesValue("KEEPPARS") || TWiki::Func::getPreferencesValue("KEEPPARS"); - $defaultComment = TWiki::Func::getPluginPreferencesValue("COMMENT") || TWiki::Func::getPreferencesValue("COMMENT") || ''; + $defaultKeepPars = TWiki::Func::getPluginPreferencesFlag("KEEPPARS") || 0; + $defaultComment = TWiki::Func::getPluginPreferencesValue("ATTACHCONTENTCOMMENT") || ''; # Plugin correctly initialized return 1; @@ -62,7 +62,8 @@ =cut sub commonTagsHandler { - $_[0] =~ s/%STARTATTACH{(.*?)}%(.*?)%ENDATTACH%//gs; + $_[0] =~ s/%STARTATTACH{.*?}%//gs; + $_[0] =~ s/%ENDATTACH%//gs; } =pod @@ -125,13 +126,23 @@ my ($inAttr, $inContent, $inWeb, $inTopic) = @_; my $attrs = TWiki::Func::expandCommonVariables($inAttr, $inTopic, $inWeb); - my $web = TWiki::Func::extractNameValuePair( $attrs, 'web' ) || $inWeb; - my $topic = TWiki::Func::extractNameValuePair( $attrs, 'topic' ) || $inTopic; - my $attrFileName = TWiki::Func::extractNameValuePair( $attrs, '' ); - my $comment = TWiki::Func::extractNameValuePair( $attrs, 'comment' ) || $defaultComment; - my $attrHide = TWiki::Func::extractNameValuePair( $attrs, 'hide' ) || ''; - my $hide = $attrHide eq 'on' || ''; + my %params = TWiki::Func::extractParameters($attrs); + + my $attrFileName = $params{_DEFAULT}; + return '' unless $attrFileName; + my $web = $params{'web'} || $inWeb; + my $topic = $params{'topic'} || $inTopic; + my $comment = $defaultComment; + $comment = $params{'comment'} if defined($params{'comment'}); + my $hide = defined($params{'hide'}) && ( $params{'hide'} eq 'on' ); + my $keepPars = $params{'keeppars'}; + if ( defined($keepPars) ) { + $keepPars = $keepPars eq 'on'; + } else { + $keepPars = $defaultKeepPars; + } + my $workArea = TWiki::Func::getWorkArea($pluginName); # Protect against evil filenames - especially for out temp file. |