[TASK] Remove reqCHash functionality for plugins
[Packages/TYPO3.CMS.git] / typo3 / sysext / extbase / Classes / Validation / Validator / NumberRangeValidator.php
1 <?php
2 namespace TYPO3\CMS\Extbase\Validation\Validator;
3
4 /*
5 * This file is part of the TYPO3 CMS project.
6 *
7 * It is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License, either version 2
9 * of the License, or any later version.
10 *
11 * For the full copyright and license information, please read the
12 * LICENSE.txt file that was distributed with this source code.
13 *
14 * The TYPO3 project - inspiring people to share!
15 */
16
17 /**
18 * Validator for general numbers
19 */
20 class NumberRangeValidator extends AbstractValidator
21 {
22 /**
23 * @var array
24 */
25 protected $supportedOptions = [
26 'minimum' => [0, 'The minimum value to accept', 'integer'],
27 'maximum' => [PHP_INT_MAX, 'The maximum value to accept', 'integer']
28 ];
29
30 /**
31 * The given value is valid if it is a number in the specified range.
32 *
33 * @param mixed $value The value that should be validated
34 */
35 public function isValid($value)
36 {
37 if (!is_numeric($value)) {
38 $this->addError(
39 $this->translateErrorMessage(
40 'validator.numberrange.notvalid',
41 'extbase'
42 ),
43 1221563685
44 );
45 return;
46 }
47
48 $minimum = $this->options['minimum'];
49 $maximum = $this->options['maximum'];
50
51 if ($minimum > $maximum) {
52 $x = $minimum;
53 $minimum = $maximum;
54 $maximum = $x;
55 }
56 if ($value < $minimum || $value > $maximum) {
57 $this->addError($this->translateErrorMessage(
58 'validator.numberrange.range',
59 'extbase',
60 [
61 $minimum,
62 $maximum
63 ]
64 ), 1221561046, [$minimum, $maximum]);
65 }
66 }
67 }