summaryrefslogtreecommitdiff
path: root/includes/FormOptions.php
diff options
context:
space:
mode:
authorPierre Schmitz <pierre@archlinux.de>2014-12-27 15:41:37 +0100
committerPierre Schmitz <pierre@archlinux.de>2014-12-31 11:43:28 +0100
commitc1f9b1f7b1b77776192048005dcc66dcf3df2bfb (patch)
tree2b38796e738dd74cb42ecd9bfd151803108386bc /includes/FormOptions.php
parentb88ab0086858470dd1f644e64cb4e4f62bb2be9b (diff)
Update to MediaWiki 1.24.1
Diffstat (limited to 'includes/FormOptions.php')
-rw-r--r--includes/FormOptions.php58
1 files changed, 46 insertions, 12 deletions
diff --git a/includes/FormOptions.php b/includes/FormOptions.php
index 54822e32..c91c3367 100644
--- a/includes/FormOptions.php
+++ b/includes/FormOptions.php
@@ -4,6 +4,7 @@
*
* Copyright © 2008, Niklas Laxström
* Copyright © 2011, Antoine Musso
+ * Copyright © 2013, Bartosz Dziewoński
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -42,6 +43,9 @@ class FormOptions implements ArrayAccess {
const STRING = 0;
/** Integer type, maps guessType() to WebRequest::getInt() */
const INT = 1;
+ /** Float type, maps guessType() to WebRequest::getFloat()
+ * @since 1.23 */
+ const FLOAT = 4;
/** Boolean type, maps guessType() to WebRequest::getBool() */
const BOOL = 2;
/** Integer type or null, maps to WebRequest::getIntOrNull()
@@ -112,6 +116,8 @@ class FormOptions implements ArrayAccess {
return self::BOOL;
} elseif ( is_int( $data ) ) {
return self::INT;
+ } elseif ( is_float( $data ) ) {
+ return self::FLOAT;
} elseif ( is_string( $data ) ) {
return self::STRING;
} else {
@@ -234,19 +240,29 @@ class FormOptions implements ArrayAccess {
}
/**
- * Validate and set an option integer value
- * The value will be altered to fit in the range.
+ * @see validateBounds()
+ */
+ public function validateIntBounds( $name, $min, $max ) {
+ $this->validateBounds( $name, $min, $max );
+ }
+
+ /**
+ * Constrain a numeric value for a given option to a given range. The value will be altered to fit
+ * in the range.
*
- * @param string $name option name
- * @param int $min minimum value
- * @param int $max maximum value
+ * @since 1.23
+ *
+ * @param string $name Option name
+ * @param int|float $min Minimum value
+ * @param int|float $max Maximum value
* @throws MWException If option is not of type INT
*/
- public function validateIntBounds( $name, $min, $max ) {
+ public function validateBounds( $name, $min, $max ) {
$this->validateName( $name, true );
+ $type = $this->options[$name]['type'];
- if ( $this->options[$name]['type'] !== self::INT ) {
- throw new MWException( "Option $name is not of type int" );
+ if ( $type !== self::INT && $type !== self::FLOAT ) {
+ throw new MWException( "Option $name is not of type INT or FLOAT" );
}
$value = $this->getValueReal( $this->options[$name] );
@@ -333,6 +349,9 @@ class FormOptions implements ArrayAccess {
case self::INT:
$value = $r->getInt( $name, $default );
break;
+ case self::FLOAT:
+ $value = $r->getFloat( $name, $default );
+ break;
case self::STRING:
$value = $r->getText( $name, $default );
break;
@@ -354,22 +373,37 @@ class FormOptions implements ArrayAccess {
* @see http://php.net/manual/en/class.arrayaccess.php
*/
/* @{ */
- /** Whether the option exists. */
+ /**
+ * Whether the option exists.
+ * @param string $name
+ * @return bool
+ */
public function offsetExists( $name ) {
return isset( $this->options[$name] );
}
- /** Retrieve an option value. */
+ /**
+ * Retrieve an option value.
+ * @param string $name
+ * @return mixed
+ */
public function offsetGet( $name ) {
return $this->getValue( $name );
}
- /** Set an option to given value. */
+ /**
+ * Set an option to given value.
+ * @param string $name
+ * @param mixed $value
+ */
public function offsetSet( $name, $value ) {
$this->setValue( $name, $value );
}
- /** Delete the option. */
+ /**
+ * Delete the option.
+ * @param string $name
+ */
public function offsetUnset( $name ) {
$this->delete( $name );
}