Формы

Формы

Формы в FlexyCMS состоят из 4 файлов:

form.php - код формы
processor.php - обработчик формы
styles.scss - таблица стилей SCSS
scripts.js - javascript, для предобработки отправляемых с формы данных, организации передачи формы по AJAX и т.п.

Обработчик формы предназначен для обработки данных, переданных из формы на сервер.

Стили и скрипты в коде специально регистрировать не нужно, они будут скомпилированы, обработаны и зарегистрированы для вставки в шаблон автоматически.

Использование

Использовать формы можно как в коде раздела, так и в шаблоне. Для получения объекта формы воспользуйтесь командой

$form = Core::getObject('Form')->load('key', [Код формы]);

Получение и вывод кода формы:

print $form->getForm();

Запуск обработчика формы:

$form->process();

Обработчик формы может находиться как на странице с формой, так и в отдельном разделе. Рекомендуется запускать обработчик формы как можно ближе к началу страницы.

В обработчике и форме доступно поле $this->key. Это уникальный в пределах сайта ключ формы. Рекомендуется добавить в код формы скрытое поле formKey и проверять его в процессоре - это может потребоваться для проверки, какая именно форма была отправлена и требует работы процессора.

Для передачи между кодом и обработчиком параметров предназначен набор функций:

$this->setProperty($name, $value)
$this->getProperty($name)
$this->isProperty($name)

Они соответственно устанавливают, возвращают и проверяют наличие произвольного параметра.

Для проверки входных данных определён набор функций:

$this->isData($name, $method = 'REQUEST')
$this->eqData($name, $value, $method = 'REQUEST')

Первая проверяет, существует ли в массиве $_REQUEST, $_GET или $_POST значение с именем $name
Вторая - проверяет наличие и сравнивает значение с $value

Для безопасного получения данных определены функции:

$this->getData($name, $type = FILTER_UNSAFE_RAW, $method = 'REQUEST') // произвольные данные без проверки или с проверкой, определяемой пользователем
$this->getDataTel($name, $method = 'REQUEST') // Получение номера телефона
$this->getDataBoolset($name, $method = 'REQUEST') //Получение массива установленных флажков
$this->getDataDate($name, $method = 'REQUEST') //Получение даты
$this->getDataInt($name, $method = 'REQUEST') //Получение целого значения
$this->getDataFloat($name, $method = 'REQUEST') //Получение числа с плавающей запятой
$this->getDataEmail($name, $method = 'REQUEST') //Получение email-а
$this->getDataBool($name, $method = 'REQUEST') //Получение значения флажка
$this->getDataIp($name, $method = 'REQUEST') //Получение IP-адреса
$this->getDataMac($name, $method = 'REQUEST' )//Получение MAC-адреса
$this->getDataUrl($name, $method = 'REQUEST') //Получение url
$this->getDataString($name, $method = 'REQUEST') //Получение строки
$this->getDataFile($name, $method = 'REQUEST') //Получение данных о файле, возвращает массив с ключами name, type, size, tmp_name, error