Summary: Comparison of various form recipes
Categories: Forms

Questions answered by this recipe

  • How do I choose the right recipe to implement HTML forms in pmwiki?


The following recipes can do this (not counting PITS):


PmWiki's built-in form script defines an (:input:) markup which allows simple custom form creation. It doesn't actually do any processing of form data, but with a custom "action" field a custom function can be called to process submitted data.

The standard input controls are:

    (:input text name value size=n:)
    (:input hidden name value:)
    (:input password name value:)
    (:input radio name value:)
    (:input checkbox name value:)
    (:input select name value label:)
    (:input submit name label:)
    (:input textarea name rows=n cols=n:)
    (:input default name defaultvalue:)

This recipe also defines a number of custom types for implementing page edit controls.


Form processing script created by Pm. As other form recipes it can be used to process forms built with Input markup, using templates to format the output.

Examples for creating an email form, a comment form and a data form can be seen at PmForm wiki.


Fox is a feature-rich form processing extension to work with standard PmWiki Input directives. It is designed for flexible and easy creation of forms for all kinds of applications. With Fox forms users can post content to a single or multiple target pages. Content can be appended or prepended to various locations on the page, or PTVs added and updated. Fox uses templates from template pages for formatting the content posted, with standard PmWiki syntax.

Other features: detailed input verifications, error messages, edit links and forms to work on pages, sections or PTVs, delete links, email notification (including HTML formatted), adding and updating PTVs, "display mode" to show information rather than posting it.

Fox has a number of admin controlled security features, like enabling access codes, prohibiting directives and setting the general posting authorisation level. With the latter Fox can offer posting of content to users who have no page edit rights, even to read protected pages.

Fox can be used to build comment forms, simple forums, forms to create new pages and groups, CMS systems, simple lists(see voting list, contact and appointment pages, email list notification and more.

Maintained by HansB

Wiki Forms

Something simple but fairly powerful -- like PITS but (cough) richer and better. The aim was simplicity over functionality. It lets an author use a form to create and edit wiki pages, and produce lists of specified columns on pages meeting specified selection criteria.

It's suited to cases where the administrator wants writers to follow a defined layout for every page in a group, like a projects register or an issues register or a movie catalogue. You can create new pages and edit existing pages using the same form. Form fields can contain the full range of wiki markups.

Because it uses :term:definition markup to structure the resulting page, it's not suited to cases where you want fine-grained control of page layout. But it does allow the use of a ViewTemplate which allows you to format the page output.


ZAP is a forms processing engine which stores content submitted through form input on regular wiki pages.

This recipe is designed to work with and extend the standard Input directives, and enables you to do about anything you can imagine with a form. It mostly works by adding special form fields to flag certain behavior.

The ZAP Toolbox adds several powerful built in extensions, markups, markup expressions, page variables, and conditionals, and a number of extensions covering everything from Member Management and Newsletters, to File Management, Shopping Carts, and Chat, etc. It can even be used in conjuction with DataQuery to read and write to a database instead of a wiki page.

For a fuller description of it's many features please see the ZAP recipe page. Powerful, flexible, and secure!

Relating the "secure" claim, I remember it being questioned on the mailing list. Could someone possibly elborate more on this topic? -- MateuszCzaplinski

ZAP is no longer maintained.

Build Forms

Creates a HTML form on a Wiki page with special markup, saves values in a file, and passes values to a local user defined function (in PHP) or/and to an external CGI.
Other markup allows to read the values associated with a wiki page form from another wiki page.

This does NOT create a pmwiki page. It requires programming knowledge to write a script to process the output of the form. That script COULD generate new wiki pages or even process data on existing pages.

Directives can be used to arrange forms in tables, surrounded by text, etc.

Marked as obsolete, last update appears to be 2005

Form Guide System

Complex system still under heavy testing. It uses one script to create another script that can then be used to add any sort of forms to any page or group.

This generates wiki-pages and allows in-wiki editing of forms.

It defines directive, creates and manages special files, and by the looks of it, it may need a third script to do the installation.

Marked as obsolete, last update appears to be 2005


WikiSh implements a simplified language from linux shell scripting using markup expressions. It can do just about anything in form processing. It should be considered a Rapid Application Development (RAD) platform rather than a simple markup tool. Lots of examples (several are forms-related) on WikiShExamples and several form-specific examples at Forms. A tutorial for the language is available at WikiShTutorial.

For the forms themselves WikiSh uses plain vanilla pmwiki input directives. WikiSh handles the validation, processing, saving data, etc.

This is the list of links used for the wikitrail called forms-related This list needed to be added because none of the other markup used in this page created a valid wikitrail and thus the trail markup on each page went nowhere. To include another page on the trail, add a link to the following list and include the trail markup on that other page

Notes and Comments

Recipe authors, please check the above and edit it, but keep it simple: what it does, what it affects, how it does it. Summary of the most important aspects, not in-depth descriptions. To add your recipes to this mini trail, include them in the commented list that will appear above this section in the edit screen.