|Please note: Some techniques recommended in this article require the use of extensions. Please use with care. The status assigned to each extension is self-assigned by the maintainer and does not represent the opinion of the MediaWiki development team.|
Within the Mediawiki ecosystem the concept of "form" can have 3 different meanings:
- built-in forms included in the Mediawiki software by which users can sign-in/login, edit the wikitext of pages, and even to perform structured searches through a large set of Special pages
- input forms to provide WIKIs administrators with data entered by visitors, located in standard wiki articles or Special Pages
- forms located either in standard wiki articles and Special pages by which users can enter structured data in order to create a new wiki article and to "preload" such article with the entered data (these kind of forms are known as "page forms")
Out-of-the-box MediaWiki uses form-based data entry for a variety of page maintenance and administrative functions. MediaWiki articles themselves are created using free-form wikitext. Like most other features of MediaWiki, there are numerous customization possibilities available.
Customizing built-in forms
Please see the following articles:
- Manual:Interface, Help:System message - describe how to customize/localize the text that appears on the built-in forms used by MediaWiki.
Input forms are standard forms placed either in wiki articles or in Special pages where visitors can enter structured data (for instance contact information) and administrators can access submissions easily and securely. Because out-of-the-box MediaWiki does not provide this functionality, here is a list of extensions which implement it:
- Extension:ContactPage - implements a simple contact form within a fixed special page
- Extension:EmailPage - Allows sending fully rendered articles with embedded CSS to users, groups, or contact lists
- Extension:CIForms - Forms with auto-validation, multiple choice questions and cloze tests
- Extension:FormMailer - sends harcoded forms in the WIKI's articles to be sent to a specific email address. It might be used with the $wgRawHtml enabled
- Extension:QuickSurveys - surveys appearing on articles based on a PHP configuration
- LimeSurvey - it might be a paid service, running on an external environment
"Page forms" are forms located either in standard wiki articles, or in Special pages, by which users can enter structured data in order to create and/or edit wiki articles, and to "preload" such articles with the entered data. The difference, compared to "input forms", is that input forms either send the data directly to a provided email address (usually the system administrator) or store submissions in the database, where they can be accessed by authorized users. By contrast, "page forms" use form submissions to fill a standard wiki article (publicly accessible on the wiki) with some structured data.
This is a list of extensions implementing this functionality:
- Extension:InputBox - Extension to create, move pages, insert comments and search for text
- Extension:Page Forms - Extension to create and edit pages with infobox-style templates through forms
- Extension:Form - Extension that lets users create new articles with a form
- Extension:PageProperties - Since version 1.2.4 the extension lets users to create and edit articles through forms
Please see Extension:Page_Forms/Related_extensions for more information on this kind of forms.
Creating/editing articles with structured data
Some articles contain a mix of structured data and free form text. For example, an article that holds a description of a marketing contact or a bug report would normally have a set of questions that must always be answered to create a complete article. In this case, a form or an article with some preloaded wiki text might be more appropriate. For more information on this approach, please see Manual:Creating pages with preloaded text.
Taking over the editing process
If you are an extension developer, and you want your extension to intercept the editing process, you might want to check the following hooks:
- AlternateEdit - is called when action=edit. It gives MediaWiki installations an opportunity to provide an alternate response to the edit action.
- EditPage::showEditForm:initial is called when the text window used to enter MediaWiki text is displayed. It gives extension writers the ability to define an alternative to the simple edit box. For a list of extensions that use this hook, see Category:EditPage::showEditForm:initial extensions.