Документация

Начало работы

Модели (models)

Шаблоны (views) и маршрутизация (routes)

Формы

SQL запросы

Сессии и безопасность

Плагины

Работа с данными формы

После проверки данных формы, можно извлекать значения полей для дальнейшего использования.

//Значение конкретного поля
$form -> getValue("staff");

//Значение (название) поля типа "enum" (не ключ)
$form -> getEnumTitle("gender")

//Все значения формы, возвращает ассоциированный массив
$form -> getAllValues();

/Выборочные значения формы, возвращает ассоциированный массив
$form -> getAllValues(array("company", "about", "staff"));

//Передача значений формы в объект модели
$data = $form -> getAllValues(array("company", "type", "email"));
$mv -> clients -> getDataFromArray($data);
$mv -> clients -> create();

//Передача значений формы в объект класса Record
для создания/обновления записи
$values = $form -> getAllValues(array("first_name", "last_name", "email"));
$client = $mv -> clients -> findRecordById(34);
$client -> setValues($values) -> update();

//Создание списка всех полей для отправки email сообщения
$message = $form -> composeMessage();

//Создание списка выборочных полей в нужной последовательности для email сообщения
$message = $form -> composeMessage(array("company", "about", "email"));

Полный пример обработки данных формы

Предположим есть URL "/question/" по которому должна открываться контактная форма. Файл шаблона назовем "view-contact.php" и пропишем в файле "config/routes.php" строку "question/" => "view-contact.php". Также создадим в модуле страниц новую страницу с полем "Ссылка" равным "question".

Ниже приведено содержимое файла "views/view-contact.php".

<?
$content = $mv -> pages -> findRecord(array("url" => "question", "active" => 1));
$mv -> display404($content);

$fields = array(
    array("Имя", "char", "name", array("required" => true)),
    array("Email", "email", "email", array("required" => true)),
    array("Сообщение", "text", "message", array("required" => true)),
    array("Код безопасности", "char", "captcha", array("required" => true, 
                                                       "captcha" => "extra/captcha-code/")));

$form = new Form($fields);

if(!empty($_POST))
{    
    $form -> getDataFromPost() -> validate();

    if($form -> getValue("captcha"))
        if(!isset($_SESSION["captcha"]) || $_SESSION["captcha"] != $form -> getValue("captcha"))
            $form -> addError("Не верно введен код безопасности.");    

    if(!$form -> hasErrors())
    {
        $message = $form -> composeMessage(array("name", "email", "message"));
        $message .= $mv -> registry -> getSetting("EmailSigature");
        Email :: send($mv -> options -> getValue("email-send"), "Вопрос с сайта", $message);

        $mv -> reload("?sent");
    }
}

include $mv -> views_path."main-header.php";
?>

<div id="content">
    <div id="page" class="editable">   
        <h2 class="page-name"><? echo $content -> name; ?></h2>
        <?             
            echo $form -> displayErrors();

            if(isset($_GET['sent']))
                echo "<p>Ваше сообщение было успешно отправлено.</p>";
            else
            {
                echo $content -> content;

                $fields = array("name", "email", "message", "captcha");
                include $mv -> views_path."parts/form-typical.php";
            }     
        ?>
    </div>      
</div>

<?
include $mv -> views_path."main-footer.php";
?>

Предыдущий раздел

Проверка полей формы