$item) { $item = filter_var($item, $type, $options); if ($item !== false) { $newArr[$id] = $item; } } return $newArr; } public function filterAllowedValues($value, array $allowedValues) { return in_array($value, $allowedValues, true) ? $value : null; } public function filterTitle($title): ?string { return $this->returnIfNotBlank($title); } /** * @return false|string */ public function filterId($id) { $filtered = filter_var($id, FILTER_VALIDATE_REGEXP, ['options' => ['regexp' => POLL_REGEX]]); return $filtered ? substr($filtered, 0, 64) : false; } public function filterName($name): ?string { $filtered = trim($name); return $this->returnIfNotBlank($filtered); } /** * @return false|string */ public function filterMail($mail) { /////////////////////////////////////////////////////////////////////////////////////// // formatting $mail = trim($mail); /////////////////////////////////////////////////////////////////////////////////////// // e-mail validation $resultat = FALSE; $validator = new EmailValidator(); if ($validator->isValid($mail, new RFCValidation())) { $resultat = $mail; } /////////////////////////////////////////////////////////////////////////////////////// // return return $resultat; } public function filterDescription($description): string { return str_replace("\r\n", "\n", $description); } /** * @return false|string */ public function filterMD5($control) { return filter_var($control, FILTER_VALIDATE_REGEXP, ['options' => ['regexp' => MD5_REGEX]]); } /** * @return false|int */ public function filterInteger($int) { return filter_var($int, FILTER_VALIDATE_INT); } /** * @return false|int */ public function filterValueMax($int) { return $this->filterInteger($int) >= 1 ? $this->filterInteger($int) : false; } public function filterBoolean($boolean): bool { return (bool)filter_var($boolean, FILTER_VALIDATE_REGEXP, ['options' => ['regexp' => BOOLEAN_TRUE_REGEX]]); } /** * @return false|string */ public function filterEditable($editable) { return filter_var($editable, FILTER_VALIDATE_REGEXP, ['options' => ['regexp' => EDITABLE_CHOICE_REGEX]]); } public function filterComment($comment): ?string { $comment = str_replace("\r\n", "\n", $comment); return $this->returnIfNotBlank($comment); } public function validateDate(DateTime $date, DateTime $minDate, DateTime $maxDate): DateTime { if ($date < $minDate) { return $minDate; } if ($maxDate < $date) { return $maxDate; } return $date; } /** * @throws CantLoadDictionaryException * @return DateTime|false */ public function parseDate(string $date) { return DateTime::createFromFormat(__('Date', 'datetime_parseformat'), $date)->setTime(0, 0); } /** * Return the value if it's not blank. * * @param string $filtered The value * @return string|null */ private function returnIfNotBlank(string $filtered): ?string { if ($filtered) { $withoutSpaces = str_replace(' ', '', $filtered); if (!empty($withoutSpaces)) { return $filtered; } } return null; } }