Практически ни один модуль в RUNCMS не обходится без применения форм ввода данных. В RUNCMS существует набор классов упрощающих создание всех основных элементов для таких форм. В дальнейшем эти классы мы будем называть «пакет XoopsForm» или просто XoopsForm. В данной статье мы не будем их подробно рассматривать, а лишь коснемся практической стороны – как с помощью существующих методов мы можем быстро создать нужную нам форму. В приложении к данной статье вы найдете описание всех классов XoopsForm.
1. Наша первая форма
Для начала создадим нашу первую форму. Создайте PHP файл с произвольным именем (файл нужно расположить в корневой директории вашего сайта), и скопируйте в него код следующего содержания:
<?php include_once("./mainfile.php"); include_once("header.php"); // подключаем классы XoopsForm include_once(XOOPS_ROOT_PATH . "/class/xoopsformloader.php"); // создаём объект $form - форму form $form = new XoopsThemeForm("Форма", "form", "index.php"); // создаём объект $text - элемент text (текстовое поле) $text = new XoopsFormText ("Однострочное текстовое поле", "text", 50, 100); // Добавляем элемент text в форму form $form->addElement($text); // создаём объект $textarea - элемент textarea $textarea = new XoopsFormTextArea("Текстовое поле", "textarea"); // Добавляем элемент textarea в форму form $form->addElement($textarea ); // создаём объект $submit_button - элемент submit $submit_button = new XoopsFormButton("Отправить", "submit_button", "OK", "submit"); // Добавляем элемент submit в форму form $form->addElement($submit_button); // Включаем проверку полей "text" и "textarea" на заполнение стороне клиента $form->setRequired(array("text", "textarea")); // Выводим форму $form->display(); include_once("footer.php"); ?>
Прежде чем открыть созданный файл в вашем обозревателе рассмотрим данный код более подробно:
Подключаем классы пакета XoopsForm. Надо сказать, что файл xoopsformloader.php загружает все классы для работы с формой, в том числе и те которые вам могут и не понадобиться. Поэтому в последствии лучше подключать только те классы, которые необходимые для создания конкретных элементов формы.
$form = new XoopsThemeForm("Форма", "form", "index.php");
Создаем объект $form – форму с заголовком "Форма" и именем form. Третий параметр – путь к файлу, которому будут переданы данные формы после нажатия на кнопку отправки формы.
$text = new XoopsFormText ("Однострочное текстовое поле", "text", 50, 100);
Создаем объект $text – элемент формы text (однострочное текстовое поле) с заголовком "Однострочное текстовое поле", именем "text", с максимально допустимой длиной вписываемого значения 50 (в символах) и размером поля - 100.
После того как мы создали элемент (объект $text) мы должны добавить его в форму:
$form->addElement($text);
С помощью метода addElement() мы добавляем любые созданные нами элементы формы.
Добавим еще один элемент, на этот раз textarea – многострочное текстовое поле:
Создаем объект $textarea с заголовком "Текстовое поле" и именем textarea
Добавляем этот элемент в форму:
$form->addElement($textarea );
Часто достаточно важно проверять поля формы на заполнение. Метод setRequired() позволяет нам указать поля необходимые для обязательного заполнения. Если указанные поля не будут заполнены, будет показано диалоговое окно, сообщающее об ошибке. Проверка проводится, используя JavaScript на стороне клиента.
Таким образом, чтобы сделать проверку на заполнение созданных нами полей "text" и "textarea" мы должны добавить их с помощью метода setRequired()
$form->setRequired(array("text", "textarea"));
Обратите внимание, что аргумент setRequired() это массив, параметры которого - это имена проверяемых элементов формы.
Нам осталось создать кнопку отправки формы:
$submit_button = new XoopsFormButton("Отправить", "submit_button", "OK", "submit");
Мы создаем объект $submit_button – первый параметр ("Отправить") – это заголовок кнопки, второй – имя элемента, третий – имя, отображаемое на кнопке, четвертый – тип кнопки, в данном случае submit.