Manual:Forms

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")

Built-in 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:
 * , - describe how to customize/localize the text that appears on the built-in forms used by MediaWiki.

Input forms
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
"Page forms" are forms located either in standard wiki articles and in a Special page 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"). The difference with "Input forms" is that the latter either send data directly to a provided email address (usually the system administrator) or store submissions in a dedicated table where they can be accessed from authorized users. On the contrary "page forms" use form submissions to pre-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 to create pages with semantic data through forms
 * Extension:Form - Extension that lets users create new articles with a form

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.

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:


 * - is called when . It gives MediaWiki installations an opportunity to provide an alternate response to the edit action.
 * 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.