MultiEditPlugin
This plugin allows the user to break a topic into sections which can be edited individually. A secondary usage of this plugin is to render text in portions of a topic where it ordinarily could not be placed. For example, one could place a table within a cell of a table, or bullet lists inside of table cells.
This plugin leverages from
TWiki:Plugins/SectionalEditPlugin and
TWiki:Plugins/RecursiveRenderPlugin. From the former, it inherits the ability to edit sections of a topic individually; from the latter the ability to place these sections into arbitrary contexts, even if the inserted text could not ordinarily be placed in that context per TWiki ML.
The motivation behind this plugin was to allow the separation of a topic into several
TWikiApplications, or, at least, into several independently editable sections. The creator of a topic might define the overall layout of a topic, and identify the sections that should be editable individually. (One might even disable the topic actions for other users, such these users would interact with the topic via the editable sections only.
Syntax Rules
- Enclose a portion of your topic by
<section>
and </section>
tags.
- The attribute
edit
can be given to the section
tag. If edit
is given the value 0
, the section is not editable. If there is no attribute, or the value of edit
is 1
, the section is editable.
- Sections cannot be nested, but may appear anywhere within the topic.
Examples
The following topic
<table borderwidth="0"><tr valign="top"><td rowspan="2">
<section>*Welcome to TWiki:* a flexible, powerful, secure, yet simple web-based collaboration platform. Use TWiki to run a project development space, a document management system, a knowledge base or any other groupware tool on either an intranet or on the Internet.</section>
</td><td align="center" bgcolor="#8490A1"><b>Available webs</b></td></tr><tr>
<td bgcolor="#b4d5ff">
<section>%WEBLIST{" * $web"}%</section>
</td></tr><tr><td colspan="2">
<section>*Activated plugins:* %ACTIVATEDPLUGINS%</section>
</td></tr></table>
will render as shown in the picture below and allow each section to be edited individually, when the edit button is clicked.
MultiEditPlugin Settings
Plugin settings are stored as preferences variables. To reference a plugin setting write
%<plugin>_<setting>%
, i.e.
%INTERWIKIPLUGIN_SHORTDESCRIPTION%
- One line description, is shown in the TextFormattingRules topic:
- Set SHORTDESCRIPTION = This plugin allows arbitrary section of a topic to be edited individually
- Debug plugin: (See output in
$logDir/debug.txt
)
- Edit label (may also be an <img> tag):
- #Set LABEL = Edit
- Set LABEL =
Edit
- A comma separated list of skins NOT to allow editing (you'll probably want the
viewprint
template here as well):
- Set SKIPSKIN = viewprint, print, plain
- Placement of edit button
before
or after
editable section
- Several css classes are available for further formatting of edited sections:
-
multiEditSection
: for the section text
-
multiEditLabel
: for the label text
-
multiEditLink
: for the edit link
Bug Warning
It is not possible based on the current TWiki rendering model to make this feature work when only part of a topic is included. If there are sections identified in an included topic which are before the %STARTINCLUDE% marker, then the sections in the included topic cannot be properly edited.
A patch is included below to support sectional editing of included topics.
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
MultiEditPlugin.zip
in your twiki installation directory. Content: File: | Description: |
data/TWiki/MultiEditPlugin.txt | Plugin topic |
data/TWiki/MultiEditPlugin.txt,v | Plugin topic repository |
pub/TWiki/MultiEditPlugin/multieditplugin_example.jgp | |
lib/TWiki/Plugins/MultiEditPlugin.pm | Plugin Perl module |
bin/editonesection | |
- Verify access and ownership settings for the new scripts.
- If you want the editing of included sections to fully work, you need to apply the following patch to
lib/TWiki.pm
. Otherwise the plugin will fail to edit a section included from another topic unless all sections are included from that topic.
Index: lib/TWiki.pm
===================================================================
--- lib/TWiki.pm (revision 12006)
+++ lib/TWiki.pm (working copy)
@@ -2824,6 +2824,9 @@
return '';
}
+ $this->{plugins}->beforeCommonTagsHandler( $text, $includedTopic,
+ $includedWeb );
+
# remove everything before and after the selected include block
if( !$section ) {
$text =~ s/.*?%STARTINCLUDE%//s;
- Edit your .htaccess file to require a valid user for the editonesection script (if needed).
- Test if the installation was successful:
Plugin Info
Related Topics: TWiki:Plugins/SectionalEditPlugin,
TWiki:Plugins/RecursiveRenderPlugin
--
TWiki:Main/ThomasWeigert - 10 Dec 2006