## Objective The `SEARCH_FORM_SCHEMA` schema type defines forms used in the extended `Special:Search` profile. ## Properties - `type` - `tags` simple tags to categorize a schema - `forms` defines the forms and fields to be displayed ### Example
{ "type": "SEARCH_FORM_SCHEMA", "forms": { "Foo": [], } "tags": [ "search form" ] }#### Form definition - `type` requires `SEARCH_FORM_SCHEMA` - `forms` defines a collection of forms - `Books and journals` as title of a form - `Has title` is a simple input field without any constraints - `Publication type` is a input field with additional attributes
{ "type": "SEARCH_FORM_SCHEMA", "forms": { "Books and journals": [ "Has title", "Has author", "Has year", { "Publication type": { "autocomplete": true, "tooltip": "Some context to be shown ...", "required": true } }, { "Publisher": { "autocomplete": true "tooltip": "message-can-be-a-msg-key" } } ], "Media and files": [ ] } }Fields can define attributes such as: - `autocomplete` (true, false) whether the field should add an autocomplete function or not - `tooltip` (text or msg key) shows a tooltip with either a text or retrieves information from a message key - `placeholder` (text) shown instead of the property name - `required` (true, false) whether the field input is required before submitting or not - `type` (HTML5) preselect a specific type field #### Default form `default_form` to define a default form that is displayed when no other form was preselected.
{ "type": "SEARCH_FORM_SCHEMA", "default_form": "Books and journals", ... }#### Term parser The `term_parser` prefix can be used to shorten the input cycle and summarize frequent properties so that a user can write: - `(in:foobar || phrase:foo bar) lang:fr` instead of - `
[[in:foobar]] || [[phrase:foo bar]]
[[Language code::fr]] OR [[Document language::fr]] OR [[File attachment.Content language::fr]] OR [[Has interlanguage link.Page content language::fr]]`
{ "type": "SEARCH_FORM_SCHEMA", "term_parser": { "prefix": { "lang": [ "Language code", "Document language", "File attachment.Content language", "Has interlanguage link.Page content language" ] } } }Prefixes are only applicable (and usable as means the shorten the search term) from within the extended search form. #### Namespaces `namespaces` section defines namespaces to be preslected or hidden. - `default_hide` hides the namespace box by default on the extended profile form - `hidden` identifies namespaces that should be hidden from appearing in any SMW related form - `preselect` assign a pre-selection of namespaces to a specific form
{ "type": "SEARCH_FORM_SCHEMA", "namespaces": { "default_hide": true, "hidden": [ "NS_PROJECT", "NS_PROJECT_TALK" ], "preselect": { "Books and journals": [ "NS_CUSTOM_BOOKS", "NS_FILE" ], "Media and files": [ "NS_FILE" ] } } }#### Descriptions Describes a form and is shown at the top of the form fields to inform users about the intent of the form.
{ "type": "SEARCH_FORM_SCHEMA", "descriptions": { "Books and journals": "Short description to be shown on top of a selected form" } }## Validation `/data/schema/search-form-schema.v1.json`