Класс проверки корректности вводимых данных.
SYS()->library('validation')
validation() // или SYS()->validation
public function check(mixed $params)
return array
Метод проверяет массив данных $params. Метод проверяет post-данные в соответсвии с переданной структурой данных. Для передачи в массив рекомендуется использовать значения из переменной SYS()->DBTables.
Начиная с версии 1.0.6 метод check может принимать строку, содержащию имя таблицы в переменной SYS()->DBTables.
Вид массива:
array(
'название POST поля' => array(
'valid' => 'Параметры валидации',
'label' => 'Название поля для вывода в сообщения об ошибках',
)
)
// пример
array(
'name' => array(
'valid' => 'required/xss/maxlen{255}',
'label' => 'Название страницы',
),
'uri' => array(
'valid' => 'xss/maxlen{255}',
'label' => 'Адрес страницы',
),
'text' => array(
'type' => 'text', // Тип указан для базы данных см. install в классе db
'valid' => 'html/db_clean',
'label' => 'Описание',
),
);
Доступны следующие параметры валидации:
_ - параметр обработки произвольной функцией. Пример: 'valid' => '_{aint}/_{md5}'
html - обработка методом text_clean.
db_clean - обработка методом db_clean.
maxlen - указывает максимальную длину строки. Принимает два параметра: 1 - длину строки, 2 - boolean значение обрезать ли строку. Пример: 'valid' => 'maxlen{255|true}'
minlen - указывает минимальную длину строки.
email - проверяет валидность email.
name_ru - проверяет, состоит ли поле только из русских букв, пробелов и знаков тире.
name_en - проверяет, состоит ли поле только из латинских букв, знаков подчёркивания, тире и точки.
name - проверяет, состоит ли поле только из латинских и русских букв.
alpha_numeric - проверяет, состоит ли поле только из латинских букв и цифр.
uniq_db - проверяет, уникальное ли поле в базе данных. Принимает 3 параметра: Имя таблицы|поле|текущее значение в md5. Текущее значение указывается для проверки в случае обновления существующей записи.
isset_db - проверяет, существует ли переменная в базе данных. Принимает 2 параметра: Имя таблицы|поле.
required - проверяет, заполнено ли поле.
phone_ru - проверяет валидность Российского телефонного номера.
Параметры разделяются между собой знаком '/', аргументы передаются в параметр в {фигурных скобках}, внутри аргументы разделяются знаком '|'.
Если передать в метод поле без параметров valid и label, поле будет проигнорировано.
Возвращает массив с проверенными post-данными.
В случае возникновения ошибок, поле не будет возвращено, также в шаблонизатор будет передана переменная $validation_имя поля с текстом ошибки.
Тексты ошибок:
'maxlen' => "Поле %s содержит слишком много символов",
'minlen' => "Поле %s содержит слишком мало символов",
'required' => "Поле %s обязательно для заполнения",
'uniq_db' => "Текст в поле %s уже содержится в базе",
'isset_db' => "Текст в поле %s не содержится в базе",
'phone_ru' => "Содержимое поля %s не является российским телефонным номером",
'email' => "Содержимое поля %s не является e-mail адресом",
'name' => "Содержимое поля %s может состоять только из латинских или руcских букв",
'name_ru' => "Содержимое поля %s может состоять только из руcских букв",
'name_en' => "Содержимое поля %s может состоять только из латинских букв",
'alpha_numeric' => "Содрежимое поля %s может состоять только из цифр и латинских букв",
Где %s - это переданный label.
public function result()
return boolean
Метод возвращает false, если в результате проверки возникла ошибка. Также в случае ошибки будет добавлена flashdata переменная в сессию с именем validation_error.
public function valid(string $value, string $valid)
return boolean
Метод проверяет одно значение. Метод не изменяет значения, возвращаемого в result.
$value - значение для проверки
$valid - параметры валидации
public function value()
return string
Метод возвращает последнее обрабатываемое значение.
public function set_valid(string $filed, string $label, string $valid)
return string
Метод проверяет одно значение. Изменяет result.
$filed - имя post-переменной для проверки
$label - описания поля для вывода в ошибки
$valid - правила валидации
В случае возникновения ошибок поле не будет возвращено, также в шаблонизатор будет передана переменная $validation_имя поля с текстом ошибки.
public function set_tags(string $start = '<div class="validation-error">', string $end = '</div>', string $valStart = "<p>", string $valEnd = "</p>")
Метод установки оформительных тегов сообщения об ошибке.
$start - начальный тег блока сообщения
$end - конечный тег блока собщения
$valStart - начальный тег каждой строки сообщения
$valEnd - конечный тег каждой строки сообщения
public function set_error(string $filed, string $text)
Метод устанавливает пользовательский текст ($text) об ошибке для поля $field. Меняет значение, выводимое в result на false.
public function get_error(string $filed = null)
return string
Метод возвращает текст ошибок.
$filed - указывается, чтобы получить текст определённого поля