dépôts
/
lhc
/
web
/
wiklou.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use local context to get messages
[lhc/web/wiklou.git]
/
includes
/
Xml.php
diff --git
a/includes/Xml.php
b/includes/Xml.php
index
1e8696b
..
a0722f7
100644
(file)
--- a/
includes/Xml.php
+++ b/
includes/Xml.php
@@
-132,8
+132,6
@@
class Xml {
}
if( !is_null( $all ) )
}
if( !is_null( $all ) )
- # Please make sure the 'namespacesall' is the first or you will break
- # such an assumption (ex js: mw.special.recentchanges.updateCheckboxes)
$namespaces = array( $all => wfMsg( 'namespacesall' ) ) + $namespaces;
foreach( $namespaces as $index => $name ) {
if( $index < NS_MAIN ) {
$namespaces = array( $all => wfMsg( 'namespacesall' ) ) + $namespaces;
foreach( $namespaces as $index => $name ) {
if( $index < NS_MAIN ) {
@@
-336,10
+334,10
@@
class Xml {
/**
* Convenience function to build an HTML radio button
/**
* Convenience function to build an HTML radio button
- * @param $name value of the name attribute
- * @param $value value of the value attribute
- * @param $checked Whether the checkbox is checked or not
- * @param $attribs other attributes
+ * @param $name
String
value of the name attribute
+ * @param $value
String
value of the value attribute
+ * @param $checked
Bool
Whether the checkbox is checked or not
+ * @param $attribs
Array
other attributes
* @return string HTML
*/
public static function radio( $name, $value, $checked = false, $attribs = array() ) {
* @return string HTML
*/
public static function radio( $name, $value, $checked = false, $attribs = array() ) {
@@
-362,7
+360,7
@@
class Xml {
public static function label( $label, $id, $attribs = array() ) {
$a = array( 'for' => $id );
public static function label( $label, $id, $attribs = array() ) {
$a = array( 'for' => $id );
- # FIXME avoid copy pasting below:
+ # FIXME avoid copy pasting below:
if( isset( $attribs['class'] ) ){
$a['class'] = $attribs['class'];
}
if( isset( $attribs['class'] ) ){
$a['class'] = $attribs['class'];
}
@@
-378,8
+376,8
@@
class Xml {
* @param $label String text of the label
* @param $name String value of the name attribute
* @param $id String id of the input
* @param $label String text of the label
* @param $name String value of the name attribute
* @param $id String id of the input
- * @param $size
int
value of the size attribute
- * @param $value value of the value attribute
+ * @param $size
Int|Bool
value of the size attribute
+ * @param $value
String|Bool
value of the value attribute
* @param $attribs array other attributes
* @return string HTML
*/
* @param $attribs array other attributes
* @return string HTML
*/
@@
-391,11
+389,11
@@
class Xml {
/**
* Same as Xml::inputLabel() but return input and label in an array
*
/**
* Same as Xml::inputLabel() but return input and label in an array
*
- * @param $label
- * @param $name
- * @param $id
- * @param $size
- * @param $value
+ * @param $label
String
+ * @param $name
String
+ * @param $id
String
+ * @param $size
Int|Bool
+ * @param $value
String|Bool
* @param $attribs array
*
* @return array
* @param $attribs array
*
* @return array
@@
-468,7
+466,7
@@
class Xml {
if( $selected ) {
$attribs['selected'] = 'selected';
}
if( $selected ) {
$attribs['selected'] = 'selected';
}
- return
self
::element( 'option', $attribs, $text );
+ return
Html
::element( 'option', $attribs, $text );
}
/**
}
/**
@@
-508,19
+506,24
@@
class Xml {
$optgroup = false;
}
}
$optgroup = false;
}
}
+
if( $optgroup ) $options .= self::closeElement('optgroup');
$attribs = array();
if( $optgroup ) $options .= self::closeElement('optgroup');
$attribs = array();
+
if( $name ) {
$attribs['id'] = $name;
$attribs['name'] = $name;
}
if( $name ) {
$attribs['id'] = $name;
$attribs['name'] = $name;
}
+
if( $class ) {
$attribs['class'] = $class;
}
if( $class ) {
$attribs['class'] = $class;
}
+
if( $tabindex ) {
$attribs['tabindex'] = $tabindex;
}
if( $tabindex ) {
$attribs['tabindex'] = $tabindex;
}
+
return Xml::openElement( 'select', $attribs )
. "\n"
. $options
return Xml::openElement( 'select', $attribs )
. "\n"
. $options
@@
-539,9
+542,11
@@
class Xml {
*/
public static function fieldset( $legend = false, $content = false, $attribs = array() ) {
$s = Xml::openElement( 'fieldset', $attribs ) . "\n";
*/
public static function fieldset( $legend = false, $content = false, $attribs = array() ) {
$s = Xml::openElement( 'fieldset', $attribs ) . "\n";
+
if ( $legend ) {
$s .= Xml::element( 'legend', null, $legend ) . "\n";
}
if ( $legend ) {
$s .= Xml::element( 'legend', null, $legend ) . "\n";
}
+
if ( $content !== false ) {
$s .= $content . "\n";
$s .= Xml::closeElement( 'fieldset' ) . "\n";
if ( $content !== false ) {
$s .= $content . "\n";
$s .= Xml::closeElement( 'fieldset' ) . "\n";
@@
-602,6
+607,7
@@
class Xml {
"\xe2\x80\x8c" => "\\u200c", // ZERO WIDTH NON-JOINER
"\xe2\x80\x8d" => "\\u200d", // ZERO WIDTH JOINER
);
"\xe2\x80\x8c" => "\\u200c", // ZERO WIDTH NON-JOINER
"\xe2\x80\x8d" => "\\u200d", // ZERO WIDTH JOINER
);
+
return strtr( $string, $pairs );
}
return strtr( $string, $pairs );
}
@@
-643,6
+649,7
@@
class Xml {
if ( $s != '{' ) {
$s .= ', ';
}
if ( $s != '{' ) {
$s .= ', ';
}
+
$s .= '"' . self::escapeJsString( $name ) . '": ' .
self::encodeJsVar( $elt );
}
$s .= '"' . self::escapeJsString( $name ) . '": ' .
self::encodeJsVar( $elt );
}
@@
-668,19
+675,22
@@
class Xml {
public static function encodeJsCall( $name, $args ) {
$s = "$name(";
$first = true;
public static function encodeJsCall( $name, $args ) {
$s = "$name(";
$first = true;
+
foreach ( $args as $arg ) {
if ( $first ) {
$first = false;
} else {
$s .= ', ';
}
foreach ( $args as $arg ) {
if ( $first ) {
$first = false;
} else {
$s .= ', ';
}
+
$s .= Xml::encodeJsVar( $arg );
}
$s .= Xml::encodeJsVar( $arg );
}
+
$s .= ");\n";
$s .= ");\n";
+
return $s;
}
return $s;
}
-
/**
* Check if a string is well-formed XML.
* Must include the surrounding tag.
/**
* Check if a string is well-formed XML.
* Must include the surrounding tag.
@@
-704,7
+714,9
@@
class Xml {
xml_parser_free( $parser );
return false;
}
xml_parser_free( $parser );
return false;
}
+
xml_parser_free( $parser );
xml_parser_free( $parser );
+
return true;
}
return true;
}
@@
-722,6
+734,7
@@
class Xml {
'<html>' .
$text .
'</html>';
'<html>' .
$text .
'</html>';
+
return Xml::isWellFormed( $html );
}
return Xml::isWellFormed( $html );
}
@@
-767,7
+780,6
@@
class Xml {
$form .= "</tbody></table>";
$form .= "</tbody></table>";
-
return $form;
}
return $form;
}
@@
-780,36
+792,59
@@
class Xml {
*/
public static function buildTable( $rows, $attribs = array(), $headers = null ) {
$s = Xml::openElement( 'table', $attribs );
*/
public static function buildTable( $rows, $attribs = array(), $headers = null ) {
$s = Xml::openElement( 'table', $attribs );
+
if ( is_array( $headers ) ) {
if ( is_array( $headers ) ) {
+ $s .= Xml::openElement( 'thead', $attribs );
+
foreach( $headers as $id => $header ) {
$attribs = array();
foreach( $headers as $id => $header ) {
$attribs = array();
- if ( is_string( $id ) ) $attribs['id'] = $id;
+
+ if ( is_string( $id ) ) {
+ $attribs['id'] = $id;
+ }
+
$s .= Xml::element( 'th', $attribs, $header );
}
$s .= Xml::element( 'th', $attribs, $header );
}
+ $s .= Xml::closeElement( 'thead' );
}
}
+
foreach( $rows as $id => $row ) {
$attribs = array();
foreach( $rows as $id => $row ) {
$attribs = array();
- if ( is_string( $id ) ) $attribs['id'] = $id;
+
+ if ( is_string( $id ) ) {
+ $attribs['id'] = $id;
+ }
+
$s .= Xml::buildTableRow( $attribs, $row );
}
$s .= Xml::buildTableRow( $attribs, $row );
}
+
$s .= Xml::closeElement( 'table' );
$s .= Xml::closeElement( 'table' );
+
return $s;
}
/**
* Build a row for a table
return $s;
}
/**
* Build a row for a table
- * @param $attribs An array of attributes to apply to the tr tag
- * @param $cells An array of strings to put in <td>
+ * @param $attribs
array
An array of attributes to apply to the tr tag
+ * @param $cells
array
An array of strings to put in <td>
* @return string
*/
public static function buildTableRow( $attribs, $cells ) {
$s = Xml::openElement( 'tr', $attribs );
* @return string
*/
public static function buildTableRow( $attribs, $cells ) {
$s = Xml::openElement( 'tr', $attribs );
+
foreach( $cells as $id => $cell ) {
foreach( $cells as $id => $cell ) {
+
$attribs = array();
$attribs = array();
- if ( is_string( $id ) ) $attribs['id'] = $id;
+
+ if ( is_string( $id ) ) {
+ $attribs['id'] = $id;
+ }
+
$s .= Xml::element( 'td', $attribs, $cell );
}
$s .= Xml::element( 'td', $attribs, $cell );
}
+
$s .= Xml::closeElement( 'tr' );
$s .= Xml::closeElement( 'tr' );
+
return $s;
}
}
return $s;
}
}
@@
-823,9
+858,11
@@
class XmlSelect {
if ( $name ) {
$this->setAttribute( 'name', $name );
}
if ( $name ) {
$this->setAttribute( 'name', $name );
}
+
if ( $id ) {
$this->setAttribute( 'id', $id );
}
if ( $id ) {
$this->setAttribute( 'id', $id );
}
+
if ( $default !== false ) {
$this->default = $default;
}
if ( $default !== false ) {
$this->default = $default;
}
@@
-851,7
+888,7
@@
class XmlSelect {
* @return array|null
*/
public function getAttribute( $name ) {
* @return array|null
*/
public function getAttribute( $name ) {
- if ( isset(
$this->attributes[$name]
) ) {
+ if ( isset(
$this->attributes[$name]
) ) {
return $this->attributes[$name];
} else {
return null;
return $this->attributes[$name];
} else {
return null;
@@
-865,7
+902,8
@@
class XmlSelect {
public function addOption( $name, $value = false ) {
// Stab stab stab
$value = ($value !== false) ? $value : $name;
public function addOption( $name, $value = false ) {
// Stab stab stab
$value = ($value !== false) ? $value : $name;
- $this->options[] = Xml::option( $name, $value, $value === $this->default );
+
+ $this->options[] = array( $name => $value );
}
/**
}
/**
@@
-876,7
+914,7
@@
class XmlSelect {
* @param $options
*/
public function addOptions( $options ) {
* @param $options
*/
public function addOptions( $options ) {
- $this->options[] =
trim( self::formatOptions( $options, $this->default ) )
;
+ $this->options[] =
$options
;
}
/**
}
/**
@@
-890,10
+928,11
@@
class XmlSelect {
*/
static function formatOptions( $options, $default = false ) {
$data = '';
*/
static function formatOptions( $options, $default = false ) {
$data = '';
+
foreach( $options as $label => $value ) {
if ( is_array( $value ) ) {
$contents = self::formatOptions( $value, $default );
foreach( $options as $label => $value ) {
if ( is_array( $value ) ) {
$contents = self::formatOptions( $value, $default );
- $data .=
Xml::tags
( 'optgroup', array( 'label' => $label ), $contents ) . "\n";
+ $data .=
Html::rawElement
( 'optgroup', array( 'label' => $label ), $contents ) . "\n";
} else {
$data .= Xml::option( $label, $value, $value === $default ) . "\n";
}
} else {
$data .= Xml::option( $label, $value, $value === $default ) . "\n";
}
@@
-906,9
+945,14
@@
class XmlSelect {
* @return string
*/
public function getHTML() {
* @return string
*/
public function getHTML() {
- return Xml::tags( 'select', $this->attributes, implode( "\n", $this->options ) );
- }
+ $contents = '';
+ foreach ( $this->options as $options ) {
+ $contents .= self::formatOptions( $options, $this->default );
+ }
+
+ return Html::rawElement( 'select', $this->attributes, rtrim( $contents ) );
+ }
}
/**
}
/**