Документация для разработчиков
Темная тема

Класс CFormOutput

Описание и методы

CFormOutput - класс для работы с шаблонами форм

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

Класс используется для для управления визульным отображением формы. При выводе шаблона формы, ему передается переменная $FORM - инициализированный экземпляр класса. Шаблон формируется в виде HTML-кода со вставками вызовов методов класса (пример см. ниже). Возможно визуальное редактирование шаблона, а также, создание формы на основе шаблона.

Основные методы класса

Основные методы класса.

Метод Описание С версии
ShowApplyButton Вывод кнопки "Применить".
ShowCaptcha Вывод отформатированных полей ввода CAPTCHA.
ShowCaptchaField Вывод поля для ввода текста CAPTCHA.
ShowCaptchaImage Вывод изображения CAPTCHA.
ShowErrorMsg Вывод ошибок модуля формы. Вызывается автоматически.
ShowFormDescription Вывод описания формы.
ShowFormErrors Вывод отформатированного списка ошибок валидатора формы.
ShowFormErrorsText Вывод неотформатированного списка ошибок валидатора формы.
ShowFormFooter Вывод завершающей части HTML-кода формы. Вставляется в конец шаблона автоматически.
ShowFormHeader Вывод заголовка HTML-кода формы. Вставляется в начало шаблона автоматически.
ShowFormImage Вывод картинки формы.
ShowFormNote Вывод отформатированных заметок формы.
ShowFormNoteText Вывод неотформатированных заметок формы.
ShowFormTitle Вывод текстового заголовка формы.
ShowInput Вывод поля формы.
ShowInputCaption Вывод подписи поля формы.
ShowInputCaptionImage Вывод картинки поля формы.
ShowRequired Вывод метки "обязательное поле".
ShowResetButton Вывод кнопки "Сбросить".
ShowSubmitButton Вывод кнопки отправки формы.
SetInputDefaultValue Устанавливает значение по умолчанию для поля веб-формы. 5.9.2

Методы для проверки условий. Все условные методы недоступны в режиме визуального редактора. Их можно использовать только в режиме редактирования PHP-кода.

Метод Описание С версии
isFormDescription Имеет ли форма описание.
isFormErrors Есть ли ошибки валидатора.
isFormImage Имеет ли форма картинку.
isFormNote Имеет ли форма заметки.
isFormTitle Имеет ли форма текстовый заголовок.
isInputCaptionImage Имеет ли поле формы картинку.
isUseCaptcha Используется ли в форме CAPTCHA.

Примеры

Пример шаблона формы

$FORM - экземпляр класса CFormOutput - создаётся и инициализируется автоматически вне шаблона. Вызов методов CFormOutput::ShowFormHeader() и CFormOutput::ShowFormFooter() также добавляется к шаблону автоматически.


<!-- Выведем описание формы -->
<table width="100%" cellpadding="2" cellspacing="0" border="0">
    <tr>
        <td align="center"><?=$FORM->ShowFormDescription()?></td>
    </tr>
</table>

<!-- Если есть ошибки валидатора - выведем их -->
<?if($FORM->isFormErrors()):?>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
    <tr>
        <td><?=$FORM->ShowFormErrors()?></td>
    </tr>
</table>
<?endif?>

<!-- Выведем поля формы -->
<table width="100%" cellpadding="2" cellspacing="0" border="0">
    <tr>
        <td width="40%" valign="top" align="right"><?=$FORM->ShowInputCaption('test_q')?>: </td>
        <td width="60%" valign="top"><?=$FORM->ShowInput('test_q')?></td>
    </tr>
    <tr>
        <td valign="top" align="right"><?=$FORM->ShowInputCaption('test_q_text')?>: </td>
        <td valign="top"><?=$FORM->ShowInput('test_q_text')?></td>
    </tr>
    <tr>
        <td valign="top" align="right"><?=$FORM->ShowInputCaption('test_q_textarea')?>: </td>
        <td valign="top"><?=$FORM->ShowInput('test_q_textarea')?></td>
    </tr>
</table>

<!-- Если используется CAPTCHA - выведем картинку и поле для ввода -->
<?if($FORM->isUseCaptcha()):?>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
    <tr>
        <td colspan="2" height="8"></td>
    </tr>
    <tr>
        <td width="40%" valign="top" align="right" class="text">Защита от автоматической регистрации: </td>
        <td width="60%" valign="top"><?=$FORM->ShowCaptchaImage()?></td>
    </tr>
    <tr>
        <td valign="top" align="right" class="text">Введите слово с картинки<?=$FORM->ShowRequired()?>: </td>
        <td valign="top"><?=$FORM->ShowCaptchaField()?></td>
    </tr>
</table>
<?endif?>

<!-- Выведем кнопки формы -->
<table width="100%" cellpadding="2" cellspacing="0" border="0">
    <tr>
        <td width="40%">&nbsp;</td>
        <td width="60%">
            <?=$FORM->ShowSubmitButton()?>&nbsp;
            <?=$FORM->ShowApplyButton()?>&nbsp;
            <?=$FORM->ShowResetButton()?>
        </td>
    </tr>
</table>

Если не предполагается использование страниц редактирования результата формы или просмотра списка результатов, то имеет смысл вставить в шаблон ответ веб-формы в обход основного шаблона:


<!-- Если есть ответ формы - выведем его в обход шаблона -->
<?if($FORM->isFormNote()):?>
<?=$FORM->ShowFormNote()?>
<?else:?>
<!-- здесь остальной шаблон веб-формы -->
<?endif?>


© «Битрикс», 2001-2020, «1С-Битрикс», 2020
Наверх