Difference: TWikiPlugins (12 vs. 13)

Revision 1314 Sep 2001 - PeterThoeny

Line: 1 to 1
 

TWiki Plugins

Line: 13 to 13
 
  • heavily customize an installation and still do clean updates to new versions of TWiki;
  • rapidly develop new TWiki functions in Perl using the Plugin API.
Changed:
<
<
Everything to do with TWiki Plugins - demos, new releases, downloads, development, general discussion - is available at TWiki.org, in the TWiki.org Plugins web.
>
>
Everything to do with TWiki Plugins - demos, new releases, downloads, development, general discussion - is available at TWiki.org, in the TWiki:Plugins web.
 

Preinstalled Plugins

Line: 21 to 21
 
  • DefaultPlugin handles some legacy TWiki variables that may be present in long-established sites. This option can be controlled from TWikiPreferences. (Perl programmers can also add rules for simple custom processing.)
Changed:
<
<
  • EmptyPlug is a fully functional module, minus active code; it does nothing and serves as a template for new Plugin development.
>
>
  • EmptyPlugin is a fully functional module, minus active code; it does nothing and serves as a template for new Plugin development.
 
  • InterwikiPlugin is preinstalled but can be disabled or removed. Use it for quick linking to to remote sites: TWiki:Plugins expands to TWiki:Plugins on TWiki.org. You can add your own shortcuts and URLs to the existing directory of Wiki-related and other probably useful sites.
Line: 83 to 83
 
DEMO: Active Plugin Variables
Changed:
<
<
%ACTIVATEDPLUGINS%
>
>
%ACTIVATEDPLUGINS%
 On this TWiki site, the active Plugins are: SpreadSheetPlugin, AlbumOfSnapsPlugin, ApprovalPlugin, AttachmentListPlugin, CaptchaPlugin, CommentPlugin, CounterPlugin, EditTablePlugin, EmptyPlugin, ImageGalleryPlugin, ImagePlugin, InterwikiPlugin, NewsPlugin, PreferencesPlugin, RenderListPlugin, SendEmailPlugin, SlideShowPlugin, SmiliesPlugin, TablePlugin, TagMePlugin, TinyMCEPlugin, TopicTranslationsPlugin, TwistyPlugin, WysiwygPlugin.
Changed:
<
<
%PLUGINDESCRIPTIONS%
>
>
%PLUGINDESCRIPTIONS%
 You can use any of these active TWiki Plugins:
  • SpreadSheetPlugin (any TWiki, $Rev: 17387 (11 Aug 2008) $): Add spreadsheet calculation like "$SUM( $ABOVE() )" to TWiki tables and other topic text
  • AlbumOfSnapsPlugin (Dakar, $Rev: 10613 (12 Dec 2008) $):
  • ApprovalPlugin (1.0, $Rev: 3923 (2009-05-16) $): Defines a set of states for one more or topics, with each state requiring approval by one or more users.
  • AttachmentList: (disabled)
  • AttachmentListPlugin (1.2.6, $Rev: 17172 (28 Jul 2008) $): Displays a formattable list of topic attachments, anywhere in a topic.
  • BatchUploadPlugin: (disabled)
  • CaptchaPlugin (Dakar, 1.5-pre4): To prevent automated bots from spamming
  • CommentPlugin (03 Aug 2008, $Rev: 17302 (11 Aug 2008) $): Allows users to quickly post comments to a page without an edit/preview/save cycle
  • CounterPlugin (Dakar, $Rev: 14404 (12 Dec 2008) $): This plugin maintains the Visitor Count for the site.
  • EditTablePlugin (4.8.4, $Rev: 17302 (11 Aug 2008) $): Edit TWiki tables using edit fields, date pickers and drop down boxes
  • EmptyPlugin (TWiki-4.2, $Rev: 15942 (11 Aug 2008) $): Empty Plugin used as a template for new Plugins
  • ImageGalleryPlugin (3.72, $Rev: 17034 (16 Jul 2008) $): Displays image gallery with auto-generated thumbnails from attachments
  • ImagePlugin (2010-08-01, $Rev: 19301 (2010-08-01) $): Control the display and alignment of images using an easy syntax
  • InterwikiPlugin (03 Aug 2008, $Rev: 14913 (17 Sep 2007) $): Link ExternalSite:Page text to external sites based on aliases defined in a rules topic
  • MultiEditPlugin: (disabled)
  • NewsPlugin (Dakar, $Rev: 15565 (12 Dec 2008) $): %NEWS% generates a short headlines topic from a list of news
  • PreferencesPlugin (TWiki-4.2, $Rev: 15487 (11 Aug 2008) $): Allows editing of preferences using fields predefined in a form
  • RenderListPlugin (2.0, $Rev: 16235 (11 Aug 2008) $): Render bullet lists in a variety of formats
  • SendEmailPlugin (1.2.2, $Rev: 17666 (12 Dec 2008) $): Allows to send e-mail through an e-mail form
  • SlideShowPlugin (02 Aug 2008, $Rev: 17260 (11 Aug 2008) $): Create web based presentations based on topics with headings.
  • SmiliesPlugin (Dakar, $Rev: 16049 (11 Aug 2008) $): Render smilies as icons, like smile for  :-) or eek! for  :eek:
  • TablePlugin (1.034, $Rev: 17367 (11 Aug 2008) $): Control attributes of tables and sorting of table columns
  • TagMePlugin (TWiki 4, 1.046): Tag wiki content collectively to find content by keywords
  • TinyMCEPlugin (03 Aug 2008, $Rev: 17302 (11 Aug 2008) $): Integration of TinyMCE? with WysiwygPlugin
  • TopicTranslationsPlugin (Dakar, $Rev: 15568 (12 Dec 2008) $): Manages a topic's translations into several languages.
  • TwistyPlugin (1.4.10, $Rev: 15653 (19 Nov 2007) $): Twisty section JavaScript library to open/close content dynamically
  • WysiwygPlugin (03 Aug 2008, $Rev: 17359 (11 Aug 2008) $): Translator framework for Wysiwyg editors
Line: 94 to 94
 

The TWiki Plugin API

Changed:
<
<
The Application Programming Interface (API) for TWikiPlugins provides the specifications for hooking into the core TWiki code from your external Perl Plugin module. The Plugin API is new to the Production version of TWiki with the TWikiReleaseSpring2001.
>
>
The Application Programming Interface (API) for TWikiPlugins provides the specifications for hooking into the core TWiki code from your external Perl Plugin module. The Plugin API is new to the Production version of TWiki with the 01-Sep-2001 release.
 

Available Core Functions

Line: 128 to 128
 

The DefaultPlugin Alternative

Changed:
<
<
  • DefaultPlugin can handle some outdated TWiki variables, found, for example, in sites recently updated from an old version. Settings are in TWikiPreferences. You can also add your own simple custom processing rules here, though in all but very simple cases, writing a new Plugin is preferable.
>
>
  • DefaultPlugin can handle some outdated TWiki variables, found, for example, in sites recently updated from an old version. Settings are in DefaultPlugin? topic. You can also add your own simple custom processing rules here, though in all but very simple cases, writing a new Plugin is preferable.
 

Anatomy of a Plugin

A basic TWiki Plugin consists of two elements:

Changed:
<
<
  • a Perl module, ex: YourPlugin.pm
  • a documentation topic, ex: YourPlugin.txt
>
>
  • a Perl module, ex: MyFirstPlugin.pm
  • a documentation topic, ex: MyFirstPlugin.txt
  The Perl module can be a block of code that connects with TWiki alone, or it can include other elements, like other Perl modules (including other Plugins), graphics, TWiki templates, external applications (ex: a Java applet), or just about anything else it can call.
Changed:
<
<
In particular, files that should be web-accessible (graphics, Java applets ...) are best placed as attachments of the YourPlugin topic. Other needed Perl code is best placed in a lib/TWiki/Plugins/YourPlugin/ directory.
>
>
In particular, files that should be web-accessible (graphics, Java applets ...) are best placed as attachments of the MyFirstPlugin topic. Other needed Perl code is best placed in a lib/TWiki/Plugins/MyFirstPlugin/ directory.
  The Plugin API handles the details of connecting your Perl module with main TWiki code. When you're familiar with the Plugin API, you're ready to develop Plugins.

Creating the Perl Module

Changed:
<
<
Copy file (EmptyPlugin.pm to <name>Plugin.pm EmptyPlugin.pm contains no executable code, so it does nothing, but it's ready to be used. Customize it. Refer to the Plugin API specs for more information.
>
>
Copy file lib/TWiki/Plugins/EmptyPlugin.pm to <name>Plugin.pm. EmptyPlugin.pm contains no executable code, so it does nothing, but it's ready to be used. Customize it. Refer to the Plugin API specs for more information.
 

Writing the Documentation Topic

The Plugin documentation topic contains usage instructions and version details. It serves the Plugin files as FileAttachments for downloading. (The doc topic is also included in the distribution package.) To create a documentation topic:

Changed:
<
<
  1. Copy the Plugin topic template from http://TWiki.org/cgi-bin/view/TWiki/EmptyPlugin. To copy the text, go to the page and:
>
>
  1. Copy the Plugin topic template from EmptyPlugin. To copy the text, go to the page and:
 
    • click Edit
    • select all in the Edit box & copy
    • Cancel the edit
Line: 161 to 161
 
OUTLINE: Doc Topic Contents
Changed:
<
<
Check EmptyPlugin on TWiki.org for the latest Plugin doc topic template. Here's a quick overview of what's covered:
>
>
Check EmptyPlugin on TWiki.org for the latest Plugin doc topic template. Here's a quick overview of what's covered:
  Syntax Rules: Describe any special text formatting that will be rendered.
Changed:
<
<
YourPlugin Settings: Description and settings for your custom Plugin %VARIABLES%, and those required by TWiki.
>
>
MyFirstPlugin Settings: Description and settings for custom Plugin %VARIABLES%, and those required by TWiki.
  Plugins Preferences work exactly like TWikiPreferences and WebPreferences: six (6) spaces and then:
    • Set EXAMPLE = got it!
Line: 180 to 180
 

Packaging for Distribution

Changed:
<
<
A minimum Plugin release consists of a Perl module with a WikiName that ends in Plugin, ex: YourPlugin.pm, and a documentation page with the same name(YourPlugin.txt).
>
>
A minimum Plugin release consists of a Perl module with a WikiName that ends in Plugin, ex: MyFirstPlugin.pm, and a documentation page with the same name(MyFirstPlugin.txt).
 
Changed:
<
<
  1. Distribute your Plugin files in a directory structure that mirrors TWiki. If your Plugin uses additional files, include them ALL:
    • lib/TWiki/Plugins/YourPlugin.pm
    • data/TWiki/YourPlugin.txt
    • pub/TWiki/YourPlugin/uparrow.gif [a required graphic]
  2. Create a zip archive with the Plugin name (YourPlugin.zip) and add the entire directory structure from Step 1. Your archive should look like this:
    • lib/TWiki/Plugins/YourPlugin.pm
    • data/TWiki/YourPlugin.txt
    • pub/TWiki/YourPlugin/uparrow.gif
>
>
  1. Distribute the Plugin files in a directory structure that mirrors TWiki. If your Plugin uses additional files, include them ALL:
    • lib/TWiki/Plugins/MyFirstPlugin.pm
    • data/TWiki/MyFirstPlugin.txt
    • pub/TWiki/MyFirstPlugin/uparrow.gif [a required graphic]
  2. Create a zip archive with the Plugin name (MyFirstPlugin.zip) and add the entire directory structure from Step 1. The archive should look like this:
    • lib/TWiki/Plugins/MyFirstPlugin.pm
    • data/TWiki/MyFirstPlugin.txt
    • pub/TWiki/MyFirstPlugin/uparrow.gif
 

Publishing for Public Use

Line: 197 to 197
 You can release your tested, packaged Plugin to the TWiki community through the TWiki:Plugins web, where all Plugins submitted to TWiki.org are available for download and further development discussion. Publish your Plugin in three steps:

  1. Post the Plugin documentation topic in the TWiki:Plugins web:
Changed:
<
<
    • create a new topic using the Plugin name, ex: YourPlugin.txt;
>
>
    • create a new topic using the Plugin name, ex: MyFirstPlugin.txt;
 
Changed:
<
<
  1. Attach the distribution zip file to the topic, ex: YourPlugin.zip.
  2. Link from the doc page to a new, blank page named after the Plugin, and ending in Dev, ex: YourPluginDev. This is the discussion page for future development. (User support for Plugins is handled in TWiki:Support.)
>
>
  1. Attach the distribution zip file to the topic, ex: MyFirstPlugin.zip.
  2. Link from the doc page to a new, blank page named after the Plugin, and ending in Dev, ex: MyFirstPluginDev. This is the discussion page for future development. (User support for Plugins is handled in TWiki:Support.)
 
Changed:
<
<
-- AndreaSterbini? - 29 May 2001
-- MikeMannix? - 01 Sep 2001
>
>
-- AndreaSterbini? - 29 May 2001
-- MikeMannix? - 01 Sep 2001
-- PeterThoeny - 14 Sep 2001
 
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.TWikiPlugins