if( is_null( $attribs ) ) {
return null;
} elseif( is_array( $attribs ) ) {
- foreach( $attribs as $name => $val )
+ foreach( $attribs as $name => $val ) {
$out .= " {$name}=\"" . Sanitizer::encodeAttribute( $val ) . '"';
+ }
return $out;
} else {
throw new MWException( 'Expected attribute array, got something else in ' . __METHOD__ );
if( !is_null( $all ) )
$namespaces = array( $all => wfMsg( 'namespacesall' ) ) + $namespaces;
foreach( $namespaces as $index => $name ) {
- if( $index < NS_MAIN )
+ if( $index < NS_MAIN ) {
continue;
- if( $index === 0 )
+ }
+ if( $index === 0 ) {
$name = wfMsg( 'blanknamespace' );
+ }
$options[] = self::option( $name, $index, $index === $selected );
}
. "\n"
. Xml::closeElement( 'select' );
if ( !is_null( $label ) ) {
- $ret = Xml::label( $label, $element_name ) . ' ' . $ret;
+ $ret = Xml::label( $label, $element_name ) . ' ' . $ret;
}
return $ret;
}
. implode( "\n", $options )
. self::closeElement( 'select' );
}
-
+
/**
* @param $year Integer
* @param $month Integer
* @return array of label and select
*/
public static function languageSelector( $selected, $customisedOnly = true ) {
- global $wgContLanguageCode;
+ global $wgLanguageCode;
/**
* Make sure the site language is in the list; a custom language code
* might not have a defined name...
*/
$languages = Language::getLanguageNames( $customisedOnly );
- if( !array_key_exists( $wgContLanguageCode, $languages ) ) {
- $languages[$wgContLanguageCode] = $wgContLanguageCode;
+ if( !array_key_exists( $wgLanguageCode, $languages ) ) {
+ $languages[$wgLanguageCode] = $wgLanguageCode;
}
ksort( $languages );
* Otherwise, no default is selected and the user ends up
* with an Afrikaans interface since it's first in the list.
*/
- $selected = isset( $languages[$selected] ) ? $selected : $wgContLanguageCode;
+ $selected = isset( $languages[$selected] ) ? $selected : $wgLanguageCode;
$options = "\n";
foreach( $languages as $code => $name ) {
$options .= Xml::option( "$code - $name", $code, ($code == $selected) ) . "\n";
* @param $text content of the element, will be escaped
* @param $class class name of the span element
* @param $attribs other attributes
- * @return string
+ * @return string
*/
public static function span( $text, $class, $attribs=array() ) {
return self::element( 'span', array( 'class' => $class ) + $attribs, $text );
* @param $class class name of the span element
* @param $tag element name
* @param $attribs other attributes
- * @return string
+ * @return string
*/
public static function wrapClass( $text, $class, $tag='span', $attribs=array() ) {
return self::tags( $tag, array( 'class' => $class ) + $attribs, $text );
* @return string HTML
*/
public static function input( $name, $size=false, $value=false, $attribs=array() ) {
- return self::element( 'input', array(
- 'name' => $name,
- 'size' => $size,
- 'value' => $value ) + $attribs );
+ $attributes = array( 'name' => $name );
+
+ if( $size ) {
+ $attributes['size'] = $size;
+ }
+
+ if( $value !== false ) { // maybe 0
+ $attributes['value'] = $value;
+ }
+
+ return self::element( 'input', $attributes + $attribs );
}
/**
* Convenience function to build an HTML form label
* @param $label text of the label
* @param $id
- * @param $attrs Array, other attributes
+ * @param $attribs Array, other attributes
* @return string HTML
*/
public static function label( $label, $id, $attribs=array() ) {
*/
public static function inputLabel( $label, $name, $id, $size=false, $value=false, $attribs=array() ) {
list( $label, $input ) = self::inputLabelSep( $label, $name, $id, $size, $value, $attribs );
- return $label . ' ' . $input;
+ return $label . ' ' . $input;
}
/**
*/
public static function checkLabel( $label, $name, $id, $checked=false, $attribs=array() ) {
return self::check( $name, $checked, array( 'id' => $id ) + $attribs ) .
- ' ' .
+ ' ' .
self::label( $label, $id, $attribs );
}
*/
public static function radioLabel( $label, $name, $value, $id, $checked=false, $attribs=array() ) {
return self::radio( $name, $value, $checked, array( 'id' => $id ) + $attribs ) .
- ' ' .
+ ' ' .
self::label( $label, $id, $attribs );
}
return $s;
}
-
+
/**
* Shortcut for creating textareas.
*
array( '"', '>', '<' ),
$in );
}
-
+
/**
* Generate a form (without the opening form element).
* Output optionally includes a submit button.
public static function buildForm( $fields, $submitLabel = null ) {
$form = '';
$form .= "<table><tbody>";
-
+
foreach( $fields as $labelmsg => $input ) {
$id = "mw-$labelmsg";
$form .= Xml::openElement( 'tr', array( 'id' => $id ) );
$form .= Xml::openElement( 'td', array( 'class' => 'mw-submit' ) ) . Xml::submitButton( wfMsg( $submitLabel ) ) . Xml::closeElement( 'td' );
$form .= Xml::closeElement( 'tr' );
}
-
+
$form .= "</tbody></table>";
-
+
return $form;
}
-
+
/**
* Build a table of data
* @param $rows An array of arrays of strings, each to be a row in a table
$s .= Xml::closeElement( 'table' );
return $s;
}
-
+
/**
* Build a row for a table
* @param $attribs An array of attributes to apply to the tr tag
protected $attributes = array();
public function __construct( $name = false, $id = false, $default = false ) {
- if ( $name ) $this->setAttribute( 'name', $name );
- if ( $id ) $this->setAttribute( 'id', $id );
- if ( $default ) $this->default = $default;
+ if ( $name ) {
+ $this->setAttribute( 'name', $name );
+ }
+ if ( $id ) {
+ $this->setAttribute( 'id', $id );
+ }
+ if ( $default !== false ) {
+ $this->default = $default;
+ }
}
public function setDefault( $default ) {
$value = ($value !== false) ? $value : $name;
$this->options[] = Xml::option( $name, $value, $value === $this->default );
}
-
+
// This accepts an array of form
// label => value
// label => ( label => value, label => value )
// This accepts an array of form
// label => value
- // label => ( label => value, label => value )
+ // label => ( label => value, label => value )
static function formatOptions( $options, $default = false ) {
$data = '';
foreach( $options as $label => $value ) {
$data .= Xml::option( $label, $value, $value === $default ) . "\n";
}
}
-
+
return $data;
}