Формы
Формы в 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