Extension:Page Forms

Semantic Forms is an extension to MediaWiki that allows users to add, edit and query data using forms.

It was originally created as an offshoot of the  extension, to be able to edit templates that store their parameters via SMW, which is why it has "Semantic" in its name. However, it can now also work with the alternative  extension, or with neither extension installed.

Very simply, Semantic Forms allows you to have forms for creating and editing pages on your wiki, as well as for querying data, all without any programming.

Forms can be created and edited not just by administrators, but by users themselves.

The main components of Semantic Forms functionality are form definition pages, which exist in a separate namespace, 'Form:'.

These are pages consisting of markup code which gets parsed when a user goes to a form.

Since forms are defined strictly through these definition pages, users can themselves create and edit forms, without the need for any actual programming.

The Semantic Forms extension is mostly used to add and edit calls to infobox-style meta>m:Special:MyLanguage/Help:Template|templates within pages.

A form allows a user to populate a pre-defined set of templates, as well as page sections, for any page; if Cargo or Semantic MediaWiki are used, the data within the templates can then be stored and queried.

Forms can also be used to edit the data in an existing page, and you can enable an "" tab to show up on any page.

Semantic Forms also supports autocompletion of fields, so users can easily see what the previously-entered values were for a given field. This greatly helps to avoid issues of naming ambiguity, spelling, etc.

Data in a page that doesn't fit into the form, like a free-form text description of the page's subject, isn't ignored when the page is edited with a form; rather, it is placed into a separate input box called "free text".

Semantic Forms also includes a wide variety of other functionality related to forms.

Below are links to the entire documentation.

Download and installation ]] '''
 * ''' [[Special:MyLanguage/Extension:Semantic Forms/Download and installation|



How to download Semantic Forms via either Git, a standard download, or a software package; and how to install it. ''

Quick start guide ]] '''
 * ''' [[Special:MyLanguage/Extension:Semantic Forms/Quick start guide|



How to get started with Semantic Forms right away. ''

Hosting ]] '''
 * ''' [[Special:MyLanguage/Extension:Semantic Forms/Hosting|



Wiki hosting sites that support Semantic Forms, plus public wikis that can be used for trying out the software. ''

Special pages ]] '''
 * ''' [[Special:MyLanguage/Extension:Semantic Forms/Special pages|



All the "special pages" that Semantic Forms defines: the ones that provide helper forms (Special:CreateProperty, Special:CreateTemplate, Special:CreateForm, Special:CreateCategory, Special:CreateClass), the ones that display lists (Special:Templates, Special:Forms) and the ones used to display actual forms (Special:FormEdit, Special:FormStart, Special:RunQuery, Special:UploadWindow).

Semantic Forms and templates ]] '''
 * ''' [[Special:MyLanguage/Extension:Semantic Forms/Semantic Forms and templates|



The template-based philosophy of Semantic Forms - plus information on the two parser functions that SF defines for templates: #arraymap and #arraymaptemplate. ''

Defining forms ]] '''
 * ''' [[Special:MyLanguage/Extension:Semantic Forms/Defining forms|



This is the major section. How to define a form via a page within the "Form:" namespace. Covers the entire form-definition syntax, including the  ,   ,   ,   ,   </> and <tvar|6>  </> tags.

Also covers how to add tabs and tooltips. ''

The "<tvar|formedit></>" tab ]] '''
 * ''' [[Special:MyLanguage/Extension:Semantic Forms/The "edit with form" tab|



How to get the "<tvar|formedit></>" tab to appear on pages, using the #default_form parser function. Plus, how to rename the tab to simply "edit", and how to remove the standard "edit" tab (if you want to). ''

Linking to forms ]] '''
 * ''' [[Special:MyLanguage/Extension:Semantic Forms/Linking to forms|



How to bring users to forms, via the #forminput, #formlink, #formredlink and #queryformlink functions. Also, how to have red-linked pages created automatically, using "Creates pages with form". Also, how to create links that directly modify a page, via the #autoedit function. ''

Creating query forms ]] '''
 * ''' [[Special:MyLanguage/Extension:Semantic Forms/Creating query forms|



Creating forms to query data, instead of to modify data, via the Special:RunQuery page. ''

Common problems ]] '''
 * ''' [[Special:MyLanguage/Extension:Semantic Forms/Common problems|



Common issues people have run into, and their solutions, relating to forms, data structure design, and the use of Semantic Forms with other extensions. ''

Known bugs and planned features ]] '''
 * ''' [[Special:MyLanguage/Extension:Semantic Forms/Known bugs and planned features|



Known bugs in the software, and potential workarounds for them; plus features that are planned in the current "development roadmap".

Getting support ]] '''
 * ''' [[Special:MyLanguage/Extension:Semantic Forms/Getting support|



Where to ask questions, submit bug reports, submit feature requests, submit fixes, and add new translations. ''

Developers' documentation ]] '''
 * ''' [[Special:MyLanguage/Extension:Semantic Forms/Developers' documentation|



Information for developers who want to modify Semantic Forms, or create an extension that works in tandem with it. ''

Authors and credits ]] '''
 * ''' [[Special:MyLanguage/Extension:Semantic Forms/Authors and credits|



The main authors, others who have contributed to the code, and credits to other organizations and software projects. ''

Version history ]] '''
 * ''' [[Special:MyLanguage/Extension:Semantic Forms/Version history|



A version history of Semantic Forms, from May 2007 to the present. ''

Sites that use Semantic Forms ]] '''
 * ''' [[Special:MyLanguage/Extension:Semantic Forms/Sites that use Semantic Forms|



A small sampling of the wikis that use Semantic Forms, plus links to more comprehensive lists. ''

Related extensions ]] '''
 * ''' [[Special:MyLanguage/Extension:Semantic Forms/Related extensions|



Extensions that require the presence of Semantic Forms, extensions that can be used together with Semantic Forms, and extensions that have a similar purpose to Semantic Forms. ''