$selected = isset( $languages[$selected] ) ? $selected : $wgLanguageCode;
$options = "\n";
foreach ( $languages as $code => $name ) {
- $options .= Xml::option( "$code - $name", $code, $code == $selected ) . "\n";
+ $options .= self::option( "$code - $name", $code, $code == $selected ) . "\n";
}
$attrs = [ 'id' => 'wpUserLanguage', 'name' => 'wpUserLanguage' ];
$msg = wfMessage( 'yourlanguage' );
}
return [
- Xml::label( $msg->text(), $attrs['id'] ),
- Xml::tags( 'select', $attrs, $options )
+ self::label( $msg->text(), $attrs['id'] ),
+ self::tags( 'select', $attrs, $options )
];
}
$value = false, $attribs = []
) {
return [
- Xml::label( $label, $id, $attribs ),
+ self::label( $label, $id, $attribs ),
self::input( $name, $size, $value, [ 'id' => $id ] + $attribs )
];
}
$attribs['tabindex'] = $tabindex;
}
- return Xml::openElement( 'select', $attribs )
+ return self::openElement( 'select', $attribs )
. "\n"
. $options
. "\n"
- . Xml::closeElement( 'select' );
- }
-
- /**
- * Converts textual drop-down list to array
- *
- * @param string $list Correctly formatted text (newline delimited) to be
- * used to generate the options.
- * @return array
- */
- public static function getArrayFromWikiTextList( $list = '' ) {
- $options = [];
-
- foreach ( explode( "\n", $list ) as $option ) {
- $value = trim( $option );
- if ( $value == '' ) {
- continue;
- } elseif ( substr( $value, 0, 1 ) == '*' && substr( $value, 1, 1 ) != '*' ) {
- // A new group is starting ...
- $value = trim( substr( $value, 1 ) );
- $options[] = $value;
- } elseif ( substr( $value, 0, 2 ) == '**' ) {
- // groupmember
- $value = trim( substr( $value, 2 ) );
- $options[] = $value;
- } else {
- // groupless reason list
- $options[] = $value;
- }
- }
- return $options;
+ . self::closeElement( 'select' );
}
/**
* @return string
*/
public static function fieldset( $legend = false, $content = false, $attribs = [] ) {
- $s = Xml::openElement( 'fieldset', $attribs ) . "\n";
+ $s = self::openElement( 'fieldset', $attribs ) . "\n";
if ( $legend ) {
- $s .= Xml::element( 'legend', null, $legend ) . "\n";
+ $s .= self::element( 'legend', null, $legend ) . "\n";
}
if ( $content !== false ) {
$s .= $content . "\n";
- $s .= Xml::closeElement( 'fieldset' ) . "\n";
+ $s .= self::closeElement( 'fieldset' ) . "\n";
}
return $s;
*/
public static function encodeJsCall( $name, $args, $pretty = false ) {
foreach ( $args as &$arg ) {
- $arg = Xml::encodeJsVar( $arg, $pretty );
+ $arg = self::encodeJsVar( $arg, $pretty );
if ( $arg === false ) {
return false;
}
$text .
'</html>';
- return Xml::isWellFormed( $html );
+ return self::isWellFormed( $html );
}
/**
foreach ( $fields as $labelmsg => $input ) {
$id = "mw-$labelmsg";
- $form .= Xml::openElement( 'tr', [ 'id' => $id ] );
+ $form .= self::openElement( 'tr', [ 'id' => $id ] );
// TODO use a <label> here for accessibility purposes - will need
// to either not use a table to build the form, or find the ID of
// the input somehow.
- $form .= Xml::tags( 'td', [ 'class' => 'mw-label' ], wfMessage( $labelmsg )->parse() );
- $form .= Xml::openElement( 'td', [ 'class' => 'mw-input' ] )
- . $input . Xml::closeElement( 'td' );
- $form .= Xml::closeElement( 'tr' );
+ $form .= self::tags( 'td', [ 'class' => 'mw-label' ], wfMessage( $labelmsg )->parse() );
+ $form .= self::openElement( 'td', [ 'class' => 'mw-input' ] )
+ . $input . self::closeElement( 'td' );
+ $form .= self::closeElement( 'tr' );
}
if ( $submitLabel ) {
- $form .= Xml::openElement( 'tr' );
- $form .= Xml::tags( 'td', [], '' );
- $form .= Xml::openElement( 'td', [ 'class' => 'mw-submit' ] )
- . Xml::submitButton( wfMessage( $submitLabel )->text(), $submitAttribs )
- . Xml::closeElement( 'td' );
- $form .= Xml::closeElement( 'tr' );
+ $form .= self::openElement( 'tr' );
+ $form .= self::tags( 'td', [], '' );
+ $form .= self::openElement( 'td', [ 'class' => 'mw-submit' ] )
+ . self::submitButton( wfMessage( $submitLabel )->text(), $submitAttribs )
+ . self::closeElement( 'td' );
+ $form .= self::closeElement( 'tr' );
}
$form .= "</tbody></table>";
* @return string
*/
public static function buildTable( $rows, $attribs = [], $headers = null ) {
- $s = Xml::openElement( 'table', $attribs );
+ $s = self::openElement( 'table', $attribs );
if ( is_array( $headers ) ) {
- $s .= Xml::openElement( 'thead', $attribs );
+ $s .= self::openElement( 'thead', $attribs );
foreach ( $headers as $id => $header ) {
$attribs = [];
$attribs['id'] = $id;
}
- $s .= Xml::element( 'th', $attribs, $header );
+ $s .= self::element( 'th', $attribs, $header );
}
- $s .= Xml::closeElement( 'thead' );
+ $s .= self::closeElement( 'thead' );
}
foreach ( $rows as $id => $row ) {
$attribs['id'] = $id;
}
- $s .= Xml::buildTableRow( $attribs, $row );
+ $s .= self::buildTableRow( $attribs, $row );
}
- $s .= Xml::closeElement( 'table' );
+ $s .= self::closeElement( 'table' );
return $s;
}
* @return string
*/
public static function buildTableRow( $attribs, $cells ) {
- $s = Xml::openElement( 'tr', $attribs );
+ $s = self::openElement( 'tr', $attribs );
foreach ( $cells as $id => $cell ) {
$attribs = [];
$attribs['id'] = $id;
}
- $s .= Xml::element( 'td', $attribs, $cell );
+ $s .= self::element( 'td', $attribs, $cell );
}
- $s .= Xml::closeElement( 'tr' );
+ $s .= self::closeElement( 'tr' );
return $s;
}
}
-
-/**
- * A wrapper class which causes Xml::encodeJsVar() and Xml::encodeJsCall() to
- * interpret a given string as being a JavaScript expression, instead of string
- * data.
- *
- * Example:
- *
- * Xml::encodeJsVar( new XmlJsCode( 'a + b' ) );
- *
- * Returns "a + b".
- *
- * @note As of 1.21, XmlJsCode objects cannot be nested inside objects or arrays. The sole
- * exception is the $args argument to Xml::encodeJsCall() because Xml::encodeJsVar() is
- * called for each individual element in that array.
- *
- * @since 1.17
- */
-class XmlJsCode {
- public $value;
-
- function __construct( $value ) {
- $this->value = $value;
- }
-}