MediaWiki REL1_33
Xml Class Reference

Module of static functions for generating XML. More...

Static Public Member Functions

static attrib ( $name, $present=true)
 Internal function for use in checkboxes and radio buttons and such.
 
static buildForm ( $fields, $submitLabel=null, $submitAttribs=[])
 Generate a form (without the opening form element).
 
static buildTable ( $rows, $attribs=[], $headers=null)
 Build a table of data.
 
static buildTableRow ( $attribs, $cells)
 Build a row for a table.
 
static check ( $name, $checked=false, $attribs=[])
 Convenience function to build an HTML checkbox.
 
static checkLabel ( $label, $name, $id, $checked=false, $attribs=[])
 Convenience function to build an HTML checkbox with a label.
 
static closeElement ( $element)
 Shortcut to close an XML element.
 
static dateMenu ( $year, $month)
 
static element ( $element, $attribs=null, $contents='', $allowShortTag=true)
 Format an XML element with given attributes and, optionally, text content.
 
static elementClean ( $element, $attribs=[], $contents='')
 Format an XML element as with self::element(), but run text through the content language's normalize() validator first to ensure that no invalid UTF-8 is passed.
 
static encodeJsCall ( $name, $args, $pretty=false)
 Create a call to a JavaScript function.
 
static encodeJsVar ( $value, $pretty=false)
 Encode a variable of arbitrary type to JavaScript.
 
static escapeTagsOnly ( $in)
 Replace " > and < with their respective HTML entities ( ", >, <)
 
static expandAttributes ( $attribs)
 Given an array of ('attributename' => 'value'), it generates the code to set the XML attributes : attributename="value".
 
static fieldset ( $legend=false, $content=false, $attribs=[])
 Shortcut for creating fieldsets.
 
static input ( $name, $size=false, $value=false, $attribs=[])
 Convenience function to build an HTML text input field.
 
static inputLabel ( $label, $name, $id, $size=false, $value=false, $attribs=[])
 Convenience function to build an HTML text input field with a label.
 
static inputLabelSep ( $label, $name, $id, $size=false, $value=false, $attribs=[])
 Same as Xml::inputLabel() but return input and label in an array.
 
static isWellFormedXmlFragment ( $text)
 Check if a string is a well-formed XML fragment.
 
static label ( $label, $id, $attribs=[])
 Convenience function to build an HTML form label.
 
static languageSelector ( $selected, $customisedOnly=true, $inLanguage=null, $overrideAttrs=[], Message $msg=null)
 Construct a language selector appropriate for use in a form or preferences.
 
static listDropDown ( $name='', $list='', $other='', $selected='', $class='', $tabindex=null)
 Build a drop-down box from a textual list.
 
static listDropDownOptions ( $list, $params=[])
 Build options for a drop-down box from a textual list.
 
static listDropDownOptionsOoui ( $options)
 Convert options for a drop-down box into a format accepted by OOUI\DropdownInputWidget etc.
 
static monthSelector ( $selected='', $allmonths=null, $id='month')
 Create a date selector.
 
static openElement ( $element, $attribs=null)
 This opens an XML element.
 
static option ( $text, $value=null, $selected=false, $attribs=[])
 Convenience function to build an HTML drop-down list item.
 
static password ( $name, $size=false, $value=false, $attribs=[])
 Convenience function to build an HTML password input field.
 
static radio ( $name, $value, $checked=false, $attribs=[])
 Convenience function to build an HTML radio button.
 
static radioLabel ( $label, $name, $value, $id, $checked=false, $attribs=[])
 Convenience function to build an HTML radio button with a label.
 
static span ( $text, $class, $attribs=[])
 Shortcut to make a span element.
 
static submitButton ( $value, $attribs=[])
 Convenience function to build an HTML submit button When $wgUseMediaWikiUIEverywhere is true it will default to a progressive button.
 
static tags ( $element, $attribs, $contents)
 Same as Xml::element(), but does not escape contents.
 
static textarea ( $name, $content, $cols=40, $rows=5, $attribs=[])
 Shortcut for creating textareas.
 
static wrapClass ( $text, $class, $tag='span', $attribs=[])
 Shortcut to make a specific element with a class attribute.
 

Static Private Member Functions

static isWellFormed ( $text)
 Check if a string is well-formed XML.
 

Detailed Description

Module of static functions for generating XML.

Definition at line 28 of file Xml.php.

Member Function Documentation

◆ attrib()

static Xml::attrib ( $name,
$present = true )
static

Internal function for use in checkboxes and radio buttons and such.

Parameters
string$name
bool$present
Returns
array

Definition at line 312 of file Xml.php.

References $name.

◆ buildForm()

static Xml::buildForm ( $fields,
$submitLabel = null,
$submitAttribs = [] )
static

Generate a form (without the opening form element).

Output optionally includes a submit button.

Parameters
array$fieldsAssociative array, key is the name of a message that contains a description for the field, value is an HTML string containing the appropriate input.
string | null$submitLabelThe name of a message containing a label for the submit button.
array$submitAttribsThe attributes to add to the submit button
Returns
string HTML form.

Definition at line 765 of file Xml.php.

References $input, and(), text, and wfMessage().

◆ buildTable()

static Xml::buildTable ( $rows,
$attribs = [],
$headers = null )
static

Build a table of data.

Parameters
array$rowsAn array of arrays of strings, each to be a row in a table
array$attribsAn array of attributes to apply to the table tag [optional]
array | null$headersAn array of strings to use as table headers [optional]
Returns
string

Definition at line 804 of file Xml.php.

References $attribs, $header, $rows, $s, and and().

◆ buildTableRow()

static Xml::buildTableRow ( $attribs,
$cells )
static

Build a row for a table.

Parameters
array$attribsAn array of attributes to apply to the tr tag
array$cellsAn array of strings to put in
Returns
string

Definition at line 843 of file Xml.php.

References $attribs, $s, and and().

◆ check()

static Xml::check ( $name,
$checked = false,
$attribs = [] )
static

Convenience function to build an HTML checkbox.

Parameters
string$nameValue of the name attribute
bool$checkedWhether the checkbox is checked or not
array$attribsArray other attributes
Returns
string HTML

Definition at line 323 of file Xml.php.

References $attribs, and and().

◆ checkLabel()

static Xml::checkLabel ( $label,
$name,
$id,
$checked = false,
$attribs = [] )
static

Convenience function to build an HTML checkbox with a label.

Parameters
string$label
string$name
string$id
bool$checked
array$attribs
Returns
string HTML

Definition at line 419 of file Xml.php.

References $attribs, $wgUseMediaWikiUIEverywhere, and(), and check.

◆ closeElement()

static Xml::closeElement ( $element)
static

Shortcut to close an XML element.

Parameters
string$elementElement name
Returns
string

Definition at line 117 of file Xml.php.

◆ dateMenu()

static Xml::dateMenu ( $year,
$month )
static
Parameters
int | string$yearUse '' or 0 to start with no year preselected.
int | string$monthA month in the 1..12 range. Use '', 0 or -1 to start with no month preselected.
Returns
string Formatted HTML

Definition at line 167 of file Xml.php.

References and(), text, and wfMessage().

◆ element()

static Xml::element ( $element,
$attribs = null,
$contents = '',
$allowShortTag = true )
static

Format an XML element with given attributes and, optionally, text content.

Element and attribute names are assumed to be ready for literal inclusion. Strings are assumed to not contain XML-illegal characters; special characters (<, >, &) are escaped but illegals are not touched.

Parameters
string$elementElement name
array | null$attribsName=>value pairs. Values will be escaped.
string$contentsNull to make an open tag only; '' for a contentless closed tag (default)
bool$allowShortTagWhether '' in $contents will result in a contentless closed tag
Returns
string

Definition at line 41 of file Xml.php.

References $attribs, $out, and and().

Referenced by MediaWiki\Preferences\DefaultPreferencesFactory\datetimePreferences(), and MediaWiki\Preferences\DefaultPreferencesFactory\validateSignature().

◆ elementClean()

static Xml::elementClean ( $element,
$attribs = [],
$contents = '' )
static

Format an XML element as with self::element(), but run text through the content language's normalize() validator first to ensure that no invalid UTF-8 is passed.

Parameters
string$element
array$attribsName=>value pairs. Values will be escaped.
string$contentsNull to make an open tag only; '' for a contentless closed tag (default)
Returns
string

Definition at line 90 of file Xml.php.

References $attribs, and and().

◆ encodeJsCall()

static Xml::encodeJsCall ( $name,
$args,
$pretty = false )
static

Create a call to a JavaScript function.

The supplied arguments will be encoded using Xml::encodeJsVar().

Since
1.17
Parameters
string$nameThe name of the function to call, or a JavaScript expression which evaluates to a function object which is called.
array$argsThe arguments to pass to the function.
bool$prettyIf true, add non-significant whitespace to improve readability.
Returns
string|bool String if successful; false upon failure

Definition at line 677 of file Xml.php.

References $args.

◆ encodeJsVar()

static Xml::encodeJsVar ( $value,
$pretty = false )
static

Encode a variable of arbitrary type to JavaScript.

If the value is an XmlJsCode object, pass through the object's value verbatim.

Note
Only use this function for generating JavaScript code. If generating output for a proper JSON parser, just call FormatJson::encode() directly.
Parameters
mixed$valueThe value being encoded. Can be any type except a resource.
bool$prettyIf true, add non-significant whitespace to improve readability.
Returns
string|bool String if successful; false upon failure

Definition at line 659 of file Xml.php.

References $value.

◆ escapeTagsOnly()

static Xml::escapeTagsOnly ( $in)
static

Replace " > and < with their respective HTML entities ( ", >, <)

Parameters
string$inText that might contain HTML tags.
Returns
string Escaped string

Definition at line 747 of file Xml.php.

References and().

◆ expandAttributes()

static Xml::expandAttributes ( $attribs)
static

Given an array of ('attributename' => 'value'), it generates the code to set the XML attributes : attributename="value".

The values are passed to Sanitizer::encodeAttribute. Returns null or empty string if no attributes given.

Parameters
array | null$attribsArray of attributes for an XML element
Exceptions
MWException
Returns
null|string

Definition at line 67 of file Xml.php.

References $attribs, $out, and and().

◆ fieldset()

static Xml::fieldset ( $legend = false,
$content = false,
$attribs = [] )
static

Shortcut for creating fieldsets.

Parameters
string | bool$legendLegend of the fieldset. If evaluates to false, legend is not added.
string$contentPre-escaped content for the fieldset. If false, only open fieldset is returned.
array$attribsAny attributes to fieldset-element.
Returns
string

Definition at line 609 of file Xml.php.

References $attribs, $content, and $s.

◆ input()

static Xml::input ( $name,
$size = false,
$value = false,
$attribs = [] )
static

Convenience function to build an HTML text input field.

Parameters
string$nameValue of the name attribute
int$sizeValue of the size attribute
mixed$valueValue of the value attribute
array$attribsOther attributes
Returns
string HTML

Definition at line 274 of file Xml.php.

References $attribs, $name, and $value.

◆ inputLabel()

static Xml::inputLabel ( $label,
$name,
$id,
$size = false,
$value = false,
$attribs = [] )
static

Convenience function to build an HTML text input field with a label.

Parameters
string$labelText of the label
string$nameValue of the name attribute
string$idId of the input
int | bool$sizeValue of the size attribute
string | bool$valueValue of the value attribute
array$attribsOther attributes
Returns
string HTML

Definition at line 380 of file Xml.php.

References $attribs, $input, $value, and list.

◆ inputLabelSep()

static Xml::inputLabelSep ( $label,
$name,
$id,
$size = false,
$value = false,
$attribs = [] )
static

Same as Xml::inputLabel() but return input and label in an array.

Parameters
string$label
string$name
string$id
int | bool$size
string | bool$value
array$attribs
Returns
array

Definition at line 399 of file Xml.php.

References $attribs, and $value.

◆ isWellFormed()

static Xml::isWellFormed ( $text)
staticprivate

Check if a string is well-formed XML.

Must include the surrounding tag. This function is a DoS vector if an attacker can define entities in $text.

Parameters
string$textString to test.
Returns
bool
Todo
Error position reporting return

Definition at line 702 of file Xml.php.

References $parser, and and().

◆ isWellFormedXmlFragment()

static Xml::isWellFormedXmlFragment ( $text)
static

Check if a string is a well-formed XML fragment.

Wraps fragment in an \<html\> bit and doctype, so it can be a fragment and can use HTML named entities.

Parameters
string$text
Returns
bool

Definition at line 730 of file Xml.php.

References $html.

◆ label()

static Xml::label ( $label,
$id,
$attribs = [] )
static

Convenience function to build an HTML form label.

Parameters
string$labelText of the label
string$id
array$attribsAn attribute array. This will usually be the same array as is passed to the corresponding input element, so this function will cherry-pick appropriate attributes to apply to the label as well; only class and title are applied.
Returns
string HTML

Definition at line 358 of file Xml.php.

References $attribs, and and().

◆ languageSelector()

static Xml::languageSelector ( $selected,
$customisedOnly = true,
$inLanguage = null,
$overrideAttrs = [],
Message $msg = null )
static

Construct a language selector appropriate for use in a form or preferences.

Parameters
string$selectedThe language code of the selected language
bool$customisedOnlyIf true only languages which have some content are listed
string | null$inLanguageThe ISO code of the language to display the select list in
array$overrideAttrsOverride the attributes of the select tag (since 1.20)
Message | null$msgLabel message key (since 1.20)
Returns
array Array containing 2 items: label HTML and select list HTML

Definition at line 204 of file Xml.php.

References $code, $languages, $options, $wgLanguageCode, and(), and wfMessage().

◆ listDropDown()

static Xml::listDropDown ( $name = '',
$list = '',
$other = '',
$selected = '',
$class = '',
$tabindex = null )
static

Build a drop-down box from a textual list.

This is a wrapper for Xml::listDropDownOptions() plus the XmlSelect class.

Parameters
string$nameName and id for the drop-down
string$listCorrectly formatted text (newline delimited) to be used to generate the options.
string$otherText for the "Other reasons" option
string$selectedOption which should be pre-selected
string$classCSS classes for the drop-down
int | null$tabindexValue of the tabindex attribute
Returns
string

Definition at line 508 of file Xml.php.

References $options, and $tabindex.

◆ listDropDownOptions()

static Xml::listDropDownOptions ( $list,
$params = [] )
static

Build options for a drop-down box from a textual list.

The result of this function can be passed to XmlSelect::addOptions() (to render a plain <select> dropdown box) or to Xml::listDropDownOptionsOoui() and then OOUI\DropdownInputWidget() (to render a pretty one).

Parameters
string$listCorrectly formatted text (newline delimited) to be used to generate the options.
array$paramsExtra parameters:
  • string $params['other'] If set, add an option with this as text and a value of 'other'
Returns
array Array keys are textual labels, values are internal values

Definition at line 539 of file Xml.php.

References $opt, $options, $params, $value, and and().

◆ listDropDownOptionsOoui()

static Xml::listDropDownOptionsOoui ( $options)
static

Convert options for a drop-down box into a format accepted by OOUI\DropdownInputWidget etc.

TODO Find a better home for this function.

Parameters
array$optionsOptions, as returned e.g. by Xml::listDropDownOptions()
Returns
array

Definition at line 581 of file Xml.php.

References $options, $value, and(), and string.

◆ monthSelector()

static Xml::monthSelector ( $selected = '',
$allmonths = null,
$id = 'month' )
static

Create a date selector.

Parameters
string$selectedThe month which should be selected, default ''.
string | null$allmonthsValue of a special item denoting all month. Null to not include (default).
string$idElement identifier
Returns
string Html string containing the month selector

Definition at line 143 of file Xml.php.

References $data, $options, $wgLang, and(), and wfMessage().

◆ openElement()

static Xml::openElement ( $element,
$attribs = null )
static

This opens an XML element.

Parameters
string$elementName of the element
array | null$attribsArray of attributes, see Xml::expandAttributes()
Returns
string

Definition at line 108 of file Xml.php.

References $attribs.

◆ option()

static Xml::option ( $text,
$value = null,
$selected = false,
$attribs = [] )
static

Convenience function to build an HTML drop-down list item.

Parameters
string$textText for this item. Will be HTML escaped
string | null$valueForm submission value; if empty, use text
bool$selectedIf true, will be the default selected item
array$attribsOptional additional HTML attributes
Returns
string HTML

Definition at line 484 of file Xml.php.

References $attribs, $value, and and().

◆ password()

static Xml::password ( $name,
$size = false,
$value = false,
$attribs = [] )
static

Convenience function to build an HTML password input field.

Parameters
string$nameValue of the name attribute
int$sizeValue of the size attribute
mixed$valueValue of the value attribute
array$attribsOther attributes
Returns
string HTML

Definition at line 297 of file Xml.php.

References $attribs, $value, and and().

◆ radio()

static Xml::radio ( $name,
$value,
$checked = false,
$attribs = [] )
static

Convenience function to build an HTML radio button.

Parameters
string$nameValue of the name attribute
string$valueValue of the value attribute
bool$checkedWhether the checkbox is checked or not
array$attribsOther attributes
Returns
string HTML

Definition at line 341 of file Xml.php.

References $attribs, and $value.

◆ radioLabel()

static Xml::radioLabel ( $label,
$name,
$value,
$id,
$checked = false,
$attribs = [] )
static

Convenience function to build an HTML radio button with a label.

Parameters
string$label
string$name
string$value
string$id
bool$checked
array$attribs
Returns
string HTML

Definition at line 444 of file Xml.php.

References $attribs, and $value.

◆ span()

static Xml::span ( $text,
$class,
$attribs = [] )
static

Shortcut to make a span element.

Parameters
string$textContent of the element, will be escaped
string$classClass name of the span element
array$attribsOther attributes
Returns
string

Definition at line 250 of file Xml.php.

References $attribs.

◆ submitButton()

static Xml::submitButton ( $value,
$attribs = [] )
static

Convenience function to build an HTML submit button When $wgUseMediaWikiUIEverywhere is true it will default to a progressive button.

Parameters
string$valueLabel text for the button (unescaped)
array$attribsOptional custom attributes
Returns
string HTML

Definition at line 459 of file Xml.php.

References $attribs, $value, $wgUseMediaWikiUIEverywhere, and and().

◆ tags()

static Xml::tags ( $element,
$attribs,
$contents )
static

Same as Xml::element(), but does not escape contents.

Handy when the content you have is already valid xml.

Parameters
string$elementElement name
array | null$attribsArray of attributes
string$contentsContent of the element
Returns
string

Definition at line 130 of file Xml.php.

References $attribs.

◆ textarea()

static Xml::textarea ( $name,
$content,
$cols = 40,
$rows = 5,
$attribs = [] )
static

Shortcut for creating textareas.

Parameters
string$nameThe 'name' for the textarea
string$contentContent for the textarea
int$colsThe number of columns for the textarea
int$rowsThe number of rows for the textarea
array$attribsAny other attributes for the textarea
Returns
string

Definition at line 635 of file Xml.php.

References $attribs, $content, and $rows.

◆ wrapClass()

static Xml::wrapClass ( $text,
$class,
$tag = 'span',
$attribs = [] )
static

Shortcut to make a specific element with a class attribute.

Parameters
string$textContent of the element, will be escaped
string$classClass name of the span element
string$tagElement name
array$attribsOther attributes
Returns
string

Definition at line 262 of file Xml.php.

References $attribs.


The documentation for this class was generated from the following file: