create new tag
, view all tags


Our TWiki installation(s) support roughly 3500 engineers distributed in over 20 locations world-wide. This was not easy culturally, and various add-ons and extensions were required to gain user acceptance. However, by now a number of applications have been implemented on top of TWiki as a collaboration platform.

In this topic I shall summarize the lessons learned on what helped in the deployment of TWiki and what hindered. Specifically, I shall focus on

  • What plugins or add-ons were needed to provide enough of an environment to interest others in implementing applications on top of TWiki?
  • What code changes were needed?
  • What skins or other customizations of appearance were necessary?

I will primily focus on what has been implemented or added, as this does reflect the strongest needs. I shall conclude by reviewing complaints and suggestions that I hear over and over again.

My hope is that this experience can serve as input to future enhancements or feature choices. Please post feedback, questions, and discussions below.

I also hope that other users (corporate or not) might produce similar lists (with detailed patches of the changes made to their sites). TWiki.org is full of good ideas users have contributed, but sometimes it is difficult to see which enhancements or patches have proven to be widely used.

ALERT! Warning. This topic is still under construction. Sorry for posting an incomplete topic, but otherwise I will never start. What prompted me to put this together was that I just went through the effort of pulling out all the enhancements we made from our installation in order to be able to migrate them from the Athens release (which I am sorry to say we are still running on) to the Beijing release.


Our organization has a large installation of LiveLink used as a corporate knowledge repository. By default, people expect to put content on this repository, referred to as "Compass".

For applications that require work flows, the tool of choice appears to be Rational ClearQuest. Many action trackers, defect databases, feature trackers, configuration trackers, etc., have been implemented using ClearQuest.

Finally, where information is best stored in a database, web applications accessing Oracle are often developed using ASP or similar.

TWiki Extensions

Below I discuss what I believe was essential beyond the bare-bone TWiki for the platform to be accepted. I hope to eventually organize this discussion, but for right now the order is stream-of-conciousness. Where patches were used, these are (or will be) attached.

Patches and Add-ons

  • JavaScriptDatePickerForForm: There is often confusion on how to enter dates; leveraging the jscalendar applet removes any uncertainty on how to format dates.
  • Codev.SimpleTableEntryUsingForms: This is probably the single-most important add-on. For any larger table, or table with many columns, or tables where columns contain larger text fields, EditTablePlugin is too inconvenient. This add-on allows editing of a table row based on a form, which also defines the structure of the table. In addition, the tables are stored in meta data and, therefore, do not clutter up the topic when editing the topic.
  • Codev.MetaTableSearch: Also widely used. Allows tables in the style of SimpleTableEntryUsingForms to be used as a database. You can then search through data in all such tables in some or all webs, and filter the results based on the search expression. The result of the search can be presented in a formatted table.
  • Changes to Form handling: Often, a form should have mandatory fields (see ValidationForWebForms), i.e., fields that must be filled in before the form can be uploaded. Also, we have run into a number of situations where it was necessary to rename the name field of the form (e.g., when generating the possible values as the result of a query, as discussed in DynamicFormOptionDefinitions). The latter patch comes from PeterKlausner.
  • Move "Change Form" button: While this may sound trifle, many users complained about the "Change Form" button being at the wrong location and often being hit by accident. We moved this button next to the "Preview Changes" button, as discussed in MoveFormButton.
  • Fix for empty searches: When a search generating a table that is used in the SpreadSheetPlugin does not return values, the empty row in the resultant table causes most calculations referring to the results in the footer row to fail. The fix is surprisingly tricky, see EmptySearchAndSpreadsheetProblem.
  • Per-topic notification: Notification of topic changes is only on a per-web basis. On PerTopicWebNotifyReports, JosephWasson provided a patch supporting more fine-grained notification.
  • Subscribe to notification from topic: When users find a topic that is of interest to them, they want to subscribe for notifications directly from the topic, rather than remembering it and going to the WebNotify page. This add-on adds a link to the topic footer actions to subscribe a user to be notified of changes to this topic.
  • Digital signatures: In more formalized collaborations, it may be necessary to record a set of signatures on a topic (e.g., certifying agreement to what is expressed in the topic). This add-on presents buttons for each desired signature which will be replaced by the users digital signature when clicked.
  • Codev.TWikiFormsDiffRendering: We extensively leverage forms and other information in meta data (see SimpleTableEntryUsingForms). The standard diff is not good for reviewing such information. PeterKlausner has provided a patch to bin/rdiff making the diff of meta more readable. We have extended this patch by additional formatting of the meta data to look closer to the rendered version.
  • Codev.AlternateFormRendering: Often metadata held in the form should not be displayed as a simple long table, but in a different, maybe more structured form, or maybe only a subset of the meta data should be shown. This patch allows the form meta data to be displayed as specified in a template topic.
  • Keeping track of topics: WebNotify is usefull, but users want to also keep track of topics they are interested in. We added a link to the action bar which records a line of meta data indicating the users interest. This meta data can be search for, and also edited, using MetaTableSearch.

Plugins and AddOns

  • Plugins.TablePlugin: Much content is presented in tabular format. This plugin allows flexible and attractive formatting of tables.
  • Plugins.EditTablePlugin: For smaller tables, it is convenient to support editing via this plugin.
  • Plugins.ExplicitNumberingPlugin: Outline numbering is often needed. We had written an add-on that supported numbering in the heading syntax (e.g., you could use ---## rather than ---++ to obtain numbered headings) but this plugin is more flexible, at the price of a little less convenience for headings. ALERT! There is a bug in the current version which creates incorrect anchors when the numbering is reset, see ExplicitNumberingPluginDev.
  • Plugins.SpreadSheetPlugin: Another very useful addition to tables. We had originally extended this plugin to support computations over dates, but this was added to a more recent version of the SpreadSheetPlugin.
  • ActionTrackerPlugin: We had originally extended CrawfordCurrie's code with actions being formatted by templates to allow additional and flexible fields. This idea was then adapted into the ActionTrackerPlugin.
  • Plugins.CalendarPlugin: Before the CalendarPlugin supported date ranges, we had written an extension to enter a date range. This script supported entering information for work days only.
  • Plugins.SpacedWikiWordPlugin: While the wiki community has gotten used to the WikiWords notation, the casual reader is often irritated by the "bumpy words". The SpacedWikiWordPlugin renders WikiWords with spaces inserted, making topics much more readable and accessible to non-fanatics.
  • Plugins.WorkFlowAddOn: When building applications on twiki, often simple work flow management is required. For example, the information on a form attached to a topic changes as the topic transitions through the state machine of the work flow. At certain states in the work flow, changes may be limited to certain user roles. This add-on allows to associate a state machine to a topic that controls which form is shown as part of the topic. A "Change State" button is shown in the edit mode, with a drop down menu of choices if more than one action is possible in a state. The state change can be limited to certain users (roles).

Skin Changes

Open Issues

Example Applications

In the following I list examples of applications that have been developed on top of the twiki platform to help teams to collaborate.

Feedback and Discussion


If there are no comments, installation is as discussed in the reference page.

JavaScriptDatePickerForForm Download jscalendar, patched bin/edit, bin/view, and lib/TWiki/Form.pm to use the jscalendar. Install the calendar in the pub/jscalendar directory and add templates/jscalendar.tmpl.
EditTablePlugin As this plugin has the jscalendar included, the jscalendar files installed by this plugin in pub/TWiki/EditTablePlugin were removed and lib/TWiki/Plugins/EditTablePlugin was patched to point to the jscalendar installation.
SimpleTableEntryUsingForms patch lib/TWiki/Meta.pm, lib/TWiki/Plugins/TablePlugin.pm, install bin/uploadTable, bin/editTable, templates/editTable.tmpl, templates/editnewTable.tmpl, and finally patch bin/editTable to work with jscalendar. 1
MetaTableSearch patch lib/TWiki/Plugins/TablePlugin.pm and add bin/assemble
MetaTableSearch patch lib/TWiki/Plugins/TablePlugin.pm
ActionTrackerPlugin Define addtional fields as needed.
Changes to Form handling patch lib/TWiki/Form.pm, bin/preview, lib/TWiki/Search.pm, and add a new template templates/oopsfielderr.tmpl
Move "Change Form" button patch lib/TWiki/Form.pm to remove the change form button from the top of the form. Note that this requires that scripts that generate topics which should allow changing of forms must add the form change button back in, as in the patch to bin/edit, templates/edit.tmpl, templates/edit.iejs.tmpl 2
Fix for empty searches patch to lib/TWiki.pm and lib/TWiki/Search.pm
SpacedWikiWordPlugin patch lib/TWiki.pm
Per-topic notification patch to lib/TWiki.pm and bin/mailnotify
Subscribe to notification from topic REFACTOR still need to upload
WorkFlowAddOn REFACTOR still need to upload
Digital signatures REFACTOR still need to upload
TWikiFormsDiffRendering REFACTOR still need to upload
AlternateFormRendering patch lib/TWiki.pm, assuming the patch in Changes to Form handling above has already been applied (otherwise go to AlternateFormRendering for the patch).
Keeping track of topics REFACTOR still need to upload


[1] bin/editTable does not use the current skin

[2] e.g., bin/editTable currently does not have a change form button, which is actually preferred.


Although almost a year old, there are some interesting ideas here for a TWikiPackage, especially considering the TWikiMission.

-- JosMaccabiani - 16 Apr 2005

Sorry, I realize that this is somewhat incomplete. What I have done since is captured much of the above as a PluginPackage or AddOnPackage. I should update the text above with that.... The list is still accurate as far as our organization is concerned....

-- ThomasWeigert - 16 Apr 2005

Update will be appreciated. BTW: We're also using LiveLink smile User acceptance is very bad though...

-- JosMaccabiani - 16 Apr 2005

TopicClassification TWikiDeployment
TopicSummary What needs to be added to an out-of-the-box TWiki installation to make it acceptable as a collaboration platform in a large distributed organization?
InterestedParties PeterThoeny, WillNorris, JosMaccabiani
RelatedTopics HowToGetInternalBuyInForTWiki, ArgumentsAgainstTWikiOnIntranet, TWikiPackage
Edit | Attach | Watch | Print version | History: r15 < r14 < r13 < r12 < r11 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r15 - 2005-04-16 - JosMaccabiani
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by Perl Hosted by OICcam.com Ideas, requests, problems regarding TWiki? Send feedback. Ask community in the support forum.
Copyright © 1999-2018 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.