|
TWiki Plugins |
|
- 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.
|
|
< < | 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 |
|
- 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.)
|
|
< < |
- 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.
|
|
DEMO: Active Plugin Variables |
|
< < | %ACTIVATEDPLUGINS%
|
> > | %ACTIVATEDPLUGINS%
|
| On this TWiki site, the active Plugins are: SpreadSheetPlugin, BackupRestorePlugin, BatchUploadPlugin, BeautifierPlugin, BibliographyPlugin, BibtexPlugin, BreadCrumbsPlugin, CalendarPlugin, ChartPlugin, ColorPickerPlugin, CommentPlugin, CounterPlugin, DatabasePlugin, DatePickerPlugin, EditTablePlugin, EmbedPDFPlugin, ExcelImportExportPlugin, FilterPlugin, FlexWebListPlugin, FlowchartPlugin, FormPlugin, GaugePlugin, GeoLookupPlugin, GluePlugin, GnuPlotPlugin, HeadlinesPlugin, IfDefinedPlugin, ImageGalleryPlugin, ImagePlugin, InterwikiPlugin, JQueryPlugin, JQueryTwistyPlugin, LatexModePlugin, LightboxPlugin, LocalTimePlugin, ObjectPlugin, PercentCompletePlugin, PreferencesPlugin, QRCodePlugin, RackPlannerPlugin, RecentVisitorPlugin, RedDotPlugin, RedirectPlugin, RemoteFileAttachPlugin, RenderListPlugin, RevisionLinkPlugin, SendEmailPlugin, SendMailPlugin, SetGetPlugin, ShareMePlugin, SkillsPlugin, SlideShowPlugin, SmiliesPlugin, SourceHighlightPlugin, TWikiDrawPlugin, TWikiSheetPlugin, TablePlugin, TagCloudPlugin, TagMePlugin, TimeSincePlugin, TimeTablePlugin, TinyMCEPlugin, TopicCreatePlugin, TwistyPlugin, UserInfoPlugin, VotePlugin, WatchlistPlugin, WebPermissionsPlugin, WysiwygPlugin. |
|
< < | %PLUGINDESCRIPTIONS%
|
> > | %PLUGINDESCRIPTIONS%
|
| You can use any of these active TWiki Plugins:
- SpreadSheetPlugin (2018-07-05, $Rev: 30478 (2018-07-16) $): Add spreadsheet calculation like
"$SUM( $ABOVE() )" to TWiki tables or anywhere in topic text - BackupRestorePlugin (2018-07-10, $Rev: 30551 (2018-07-16) $): Administrator utility to backup, restore and upgrade a TWiki site
- BatchUploadPlugin (1.4, $Rev: 17006 (12 Dec 2008) $): Attach multiple files at once by uploading a zip archive
- BeautifierPlugin (2012-12-02, $Rev: 24286 (2012-12-02) $): Highlight and format source code fragments of various languages
- BibliographyPlugin (2011-03-09, $Rev: 20645 (2011-03-09) $): Cite bibliography in one topic and get an automatically created references list
- BibtexPlugin (1.6, $Rev: 19851 (2010-11-15) $): Embeds BibTeX entries in a TWiki page
- BreadCrumbsPlugin (2010-08-01, $Rev: 19303 (2010-08-01) $): A flexible way to display breadcrumbs navigation
- CalendarPlugin (2012-12-03, $Rev: 24315 (2012-12-04) $): Show a monthly calendar with highlighted events
- ChartPlugin (2013-05-23, $Rev: 25974 (2013-05-23) $): Visualize TWiki tables with area charts, bar charts, line graphs, scatter charts and sparklines
- ColorPickerPlugin (2018-07-05, $Rev: 30442 (2018-07-16) $): Color picker, packaged for use in TWiki forms and TWiki applications
- CommentPlugin (2018-07-05, $Rev: 30530 (2018-07-16) $): Quickly post comments to a page without an edit/preview/save cycle
- CounterPlugin (2010-09-05, $Rev: 19433 (2010-09-04) $): Show a site visit counter in a TWiki topic
- DatabasePlugin (2011-11-11, $Rev: 22417 (2011-11-11) $): Provide access to data in a SQL database
- DatePickerPlugin (2018-07-05, $Rev: 30446 (2018-07-16) $): Pop-up calendar with date picker, for use in TWiki forms, HTML forms and TWiki plugins
- EditTablePlugin (2018-07-05, $Rev: 30448 (2018-07-16) $): Edit TWiki tables using edit fields, date pickers and drop down boxes
- EmbedPDFPlugin (2011-05-10, $Rev: 21206 (2011-05-11) $): Embed PDF documents in TWiki pages
- ExcelImportExportPlugin (TWiki, $Rev: 0$): Renders an attached Excel spreadsheet as TWiki table
- FilterPlugin (2010-07-25, $Rev: 19240 (2010-07-25) $): Substitute and extract information from content by using regular expressions
- FlexWebListPlugin (2010-07-25, $Rev: 19261 (2010-07-26) $): Flexible way to display hierarchical weblists
- FlowchartPlugin (2012-12-02, $Rev: 24291 (2012-12-02) $): Create a flowchart from topic text
- FormPlugin (2015-02-25, $Rev: 28764 (2015-02-25) $): Create simple and advanced web forms using TWiki forms
- GaugePlugin (2013-05-16, $Rev: 25944 (2013-05-16) $): Create gauges (graphical or not), typically used for dashboards
- GeoLookupPlugin (2015-01-09, $Rev: 28639 (2015-01-09) $): Lookup geolocation by IP address or domain name
- GluePlugin (2.1, $Rev: 18553 (2010-04-30) $): Enable markup to span multiple lines
- GnuPlotPlugin (2011-03-12, $Rev: 20701 (2011-03-13) $): Allows users to plot data and functions using GnuPlot
- HeadlinesPlugin (2018-07-13, $Rev: 30560 (2018-07-16) $): Show headline news in TWiki pages based on RSS and ATOM news feeds from external sites
- IfDefinedPlugin (v1.1, $Rev: 18548 (2010-04-29) $): Render content conditionally
- ImageGalleryPlugin (2011-07-21i - v3.74, $Rev: 21797 (2011-07-21) $): Show 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 (2018-07-05, $Rev: 30454 (2018-07-16) $): Write
ExternalSite:Page to link to a page on an external site based on aliases defined in a rules topic - JQueryPlugin (2018-07-05, $Rev: 30456 (2018-07-16) $): jQuery JavaScript library for TWiki
- JQueryTwistyPlugin (2010-07-25, $Rev: 19236 (2010-07-25) $): Twisty section JavaScript library to open/close content dynamically
- LatexModePlugin (3.71, $Rev: 16926 (12 Dec 2008) $): Enables LaTeX markup (mathematics and more) in TWiki topics
- LightboxPlugin (2010-11-09, $Rev: 19812 (2010-11-09) $): TWiki hooks to the Lightbox Javascript package for better thumbnail clickthrough
- LocalTimePlugin (2010-12-11, $Rev: 19947 (2010-12-11) $): Show the current date and time of a particular city/timezone.
- ObjectPlugin (2010-08-29, $Rev: 19389 (2010-08-29) $): Embed multi-media Objects into TWiki topics
- PercentCompletePlugin (2015-05-29, $Rev: 29248 (2015-05-29) $): Percent complete selector, for use in TWiki forms and TWiki applications
- PreferencesPlugin (2018-07-05, $Rev: 30528 (2018-07-16) $): Allows editing of preferences using fields predefined in a form
- QRCodePlugin (2012-11-14, $Rev: 24045 (2012-11-15) $): Create QR Code (a matrix barcode) in TWiki pages, useful for mobile applications
- RackPlannerPlugin (Dakar, $Rev: 15566 (2010-08-19) $): Render a rack overview (e.g. of 19'' computer racks) with HTML tables
- RecentVisitorPlugin (2011-06-06, $Rev: 21426 (2011-06-06) $): Show recent visitors to a TWiki site
- RedDotPlugin (2010-07-27, $Rev: 21402 (2011-06-04) $): Renders edit-links as little red dots
- RedirectPlugin (2015-12-02, $Rev: 29697 (2015-12-03) $): Create a redirect to another topic or website
- RemoteFileAttachPlugin (2011-01-13, $Rev: 20204 (2011-01-13) $): Download and attach remote files to topics
- RenderListPlugin (2018-07-05, $Rev: 30468 (2018-07-16) $): Render bullet lists in a variety of formats
- RevisionLinkPlugin (2.2, $Rev: 19837 (2010-11-10) $): Enable linking to specific topic revisions
- SendEmailPlugin (2013-01-24, $Rev: 25975 (2013-05-28) $): Allows to send e-mails through an e-mail form.
- SendMailPlugin (2016-01-19, $Rev: 29910 (2016-01-20) $): Send e-mail from actions in TWiki topics, useful for workflow automation
- SetGetPlugin (2018-07-05, $Rev: 30472 (2018-07-16) $): Set and get variables and JSON objects in topics, optionally persistently across topic views
- ShareMePlugin (2012-12-01, $Rev: 24254 (2012-12-01) $): Icon bar to share a TWiki page on popular social media sites such as Facebook, StumbleUpon, Twitter
- SkillsPlugin (2011-06-04, $Rev: 21404 (2011-06-04) $): Allows users to list their skills, which can then be searched
- SlideShowPlugin (2018-07-05, $Rev: 30474 (2018-07-16) $): Create web based presentations based on topics with headings.
- SmiliesPlugin (2018-07-05, $Rev: 30476 (2018-07-16) $): Render smilies as icons, like
:-) as or :eek: as - SourceHighlightPlugin (2010-08-06, $Rev: 19332 (2010-08-06) $): Highlight and format code fragments using GNU source-highlight
- TWikiDrawPlugin (2013-05-17, $Rev: 25952 (2013-05-17) $): Vector drawing editor and clickable maps for diagrams and workflows
- TWikiSheetPlugin (2018-07-15, $Rev: 30604 (2018-07-16) $): Add TWiki Sheet spreadsheet functionality to TWiki tables
- TablePlugin (2018-07-05, $Rev: 30480 (2018-07-16) $): Control attributes of tables and sorting of table columns
- TagCloudPlugin (2010-07-26, $Rev: 19266 (2010-07-26) $): Renders a tag cloud given a list of terms
- TagMePlugin (2018-07-05, $Rev: 30482 (2018-07-16) $): Tag wiki content collectively or authoritatively to find content by keywords
- TimeSincePlugin (2010-07-27, $Rev: 19277 (2010-07-27) $):
- TimeTablePlugin (Dakar, $Rev: 18182 (2010-08-19) $): Render a weekly timetable
- TinyMCEPlugin (2018-07-10, $Rev: 30541 (2018-07-16) $): Integration of the Tiny MCE WYSIWYG Editor
- TopicCreatePlugin (2014-11-07, $Rev: 28434 (2014-11-07) $): Automatically create a set of topics and attachments at topic save time
- TwistyPlugin (2018-07-06, $Rev: 30497 (2018-07-16) $): Twisty section JavaScript library to open/close content dynamically
- UserInfoPlugin (2010-07-25, $Rev: 19259 (2010-07-25) $): Render information about users on a TWiki site
- VotePlugin (2012-12-10, $Rev: 24404 (2012-12-10) $): Simple way to count votes
- WatchlistPlugin (2018-07-10, $Rev: 30536 (2018-07-16) $): Watch topics of interest and get notified of changes by e-mail
- WebPermissionsPlugin (2013-06-18, $Rev: 26000 (2013-06-18) $): View and edit web permissions
- WysiwygPlugin (2018-07-06, $Rev: 30528 (2018-07-16) $): Translator framework for WYSIWYG editors
|
|
The TWiki Plugin API |
|
< < | 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 |
|
The DefaultPlugin Alternative |
|
< < |
- 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: |
|
< < |
- 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. |
|
< < | 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 |
|
< < | 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: |
|
< < |
- Copy the Plugin topic template from http://TWiki.org/cgi-bin/view/TWiki/EmptyPlugin
. To copy the text, go to the page and:
|
> > |
- 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
|
|
OUTLINE: Doc Topic Contents
|
|
< < | 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. |
|
< < | 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: |
|
Packaging for Distribution |
|
< < | 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 ). |
| |
|
< < |
- 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]
- 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
|
> > |
- 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]
- 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 |
| 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:
- Post the Plugin documentation topic in the TWiki:Plugins
web:
|
|
< < |
-
- create a new topic using the Plugin name, ex:
YourPlugin.txt ;
|
> > |
-
- create a new topic using the Plugin name, ex:
MyFirstPlugin.txt ;
|
| |
|
< < |
- Attach the distribution zip file to the topic, ex:
YourPlugin.zip .
- 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 .)
|
> > |
- Attach the distribution zip file to the topic, ex:
MyFirstPlugin.zip .
- 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 .)
|
| |
|
< < | -- AndreaSterbini - 29 May 2001
-- MikeMannix - 01 Sep 2001 |
> > | -- AndreaSterbini - 29 May 2001
-- MikeMannix - 01 Sep 2001
-- PeterThoeny - 14 Sep 2001
|