Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'core/Validators/CharacterLength.php')
-rw-r--r--core/Validators/CharacterLength.php58
1 files changed, 58 insertions, 0 deletions
diff --git a/core/Validators/CharacterLength.php b/core/Validators/CharacterLength.php
new file mode 100644
index 0000000000..5478e4c8f7
--- /dev/null
+++ b/core/Validators/CharacterLength.php
@@ -0,0 +1,58 @@
+<?php
+/**
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+
+namespace Piwik\Validators;
+
+use Piwik\Common;
+use Piwik\Piwik;
+
+class CharacterLength extends BaseValidator
+{
+ /**
+ * @var null|int
+ */
+ private $min;
+
+ /**
+ * @var null|int
+ */
+ private $max;
+
+ /**
+ * @param null|int $min
+ * @param null|int $max
+ */
+ public function __construct($min = null, $max = null)
+ {
+ if (isset($min)) {
+ $this->min = (int) $min;
+ }
+ if (isset($max)) {
+ $this->max = (int) $max;
+ }
+ }
+
+ public function validate($value)
+ {
+ if (!is_string($value) && !is_numeric($value)) {
+ return;
+ }
+
+ $lenValue = Common::mb_strlen($value);
+
+ if (isset($this->min) && $this->min > $lenValue) {
+ throw new Exception(Piwik::translate('General_ValidatorErrorCharacterTooShort', array($lenValue, $this->min)));
+ }
+
+ if (isset($this->max) && $this->max < $lenValue) {
+ throw new Exception(Piwik::translate('General_ValidatorErrorCharacterTooLong', array($lenValue, $this->max)));
+ }
+
+ }
+} \ No newline at end of file