Разработка:moodleQuickForm — различия между версиями

Материал из DOF
Перейти к: навигация, поиск
(Описание некоторых стандартных методов: Добавлено описание конструктора)
(Описание некоторых стандартных методов: Дополнено описанеие методов)
Строка 12: Строка 12:
 
== Правила объявления формы ==
 
== Правила объявления формы ==
 
== Описание некоторых стандартных методов ==
 
== Описание некоторых стандартных методов ==
'''Метод __construct'''($action, $customdata, $method, $target, $attributes)
+
'''__construct'''($action, $customdata, $method, $target, $attributesб $editable)
  
 
Этот метод вызывается когда вы создаете новый объект формы.
 
Этот метод вызывается когда вы создаете новый объект формы.
Строка 18: Строка 18:
 
Параметры:
 
Параметры:
 
* ''$action'' - какая страница будет обрабатывать данные это формы. Работает аналогично <form action="...">. По умолчанию - адрес той страницы, на которой находится форма.
 
* ''$action'' - какая страница будет обрабатывать данные это формы. Работает аналогично <form action="...">. По умолчанию - адрес той страницы, на которой находится форма.
* ''$customdata'' - дополнительные данные для формы. Эти параметры будут записаны во внутреннюю переменную '''$this->_customdata''' доступны из всех внутренних методов формы. Передать можно все что угодно, никаних ограничений нет, тип переменной - на ваше усмотрение, но если вам нужно передать несколько значений, то рекомендуется использовать объект.
+
* ''$customdata'' - дополнительные данные для формы. Эти параметры будут записаны во внутреннюю переменную '''$this->_customdata''' доступны из всех внутренних методов формы. Передать можно все что угодно, никаних ограничений нет, тип переменной - на ваше усмотрение, но если вам нужно передать несколько значений, то рекомендуется использовать объект. По умолчанию null.
 
* ''$method'' - метод формы, GET или POST. По умолчанию POST.
 
* ''$method'' - метод формы, GET или POST. По умолчанию POST.
 
* ''$target'' - только для фреймов. Имя фрейма, обрабатывающего эту форму. Используется крайне редко. По умолчанию null.
 
* ''$target'' - только для фреймов. Имя фрейма, обрабатывающего эту форму. Используется крайне редко. По умолчанию null.
* ''$attributes'' - строка атрибутов для тега <form>. Будет добавлена внутрь тега. Разрешены любые атрибуты, предусмотренные стандартом HTML 4.01
+
* ''$attributes'' - строка атрибутов для тега <form>. Будет добавлена внутрь тега. Разрешены любые атрибуты, предусмотренные стандартом HTML 4.01. По умолчанию пустая строка.
 +
* ''$editable'' - доступна ли форма для редактирования. По умолчанию true (в противном случае все поля в форме будут неактивными).
  
'''Метод add_element'''()
+
'''display'''()
  
'''Метод add_group'''()
+
Вывести форму на экран.
  
'''Метод add_rule'''()
+
'''get_data'''($slashed)
  
'''Метод set_default'''()
+
Получить данные формы после всех проверок на столроне клиента и сервера.
 +
* $slashed - экранировать кавычки. По умолчанию true.
 +
 
 +
'''get_submitted_data'''($slashed)
 +
 
 +
Получить данные из формы, к которым еще не применены никакие проверки.
 +
* $slashed - экранировать кавычки. По умолчанию true.
 +
 
 +
'''add_element'''()
 +
 
 +
'''add_group'''()
 +
 
 +
'''add_rule'''()
 +
 
 +
'''set_default'''()
 +
 
 +
'''is_submitted'''()
 +
 
 +
Возвращает true если форма подтверждена, т. е. в ней нажата кнопка типа "submit"
 +
 
 +
'''is_cancelled'''()
 +
 
 +
Возвращает true если форма отменена.
  
 
== Описание всех элементов ==
 
== Описание всех элементов ==

Версия 12:22, 1 июня 2009

Общие сведения

Библиотека moodleQuickForm (она же moodleform) построена на основе библиотеки PEAR HTML_QuickForm. Описание работы всех функций moodleQuickForm следует искать именно по этой ссылке.

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

Перечисление всего того, что доступно в moodleQuickForm заняло бы слишком много места, поэтому перечислим только те задачи, которые при помощи этой библиотеки решить нельзя:

  • создать форму в виде таблицы, в которой более 2-х столбцов
  • создать длинную горизонтальную форму

Внешний вид

Внешне все формы класса moodleform выглядят одинаково: это таблица из 2-х столбцов, и некоторого количества строк:

Правила объявления формы

Описание некоторых стандартных методов

__construct($action, $customdata, $method, $target, $attributesб $editable)

Этот метод вызывается когда вы создаете новый объект формы.

Параметры:

  • $action - какая страница будет обрабатывать данные это формы. Работает аналогично <form action="...">. По умолчанию - адрес той страницы, на которой находится форма.
  • $customdata - дополнительные данные для формы. Эти параметры будут записаны во внутреннюю переменную $this->_customdata доступны из всех внутренних методов формы. Передать можно все что угодно, никаних ограничений нет, тип переменной - на ваше усмотрение, но если вам нужно передать несколько значений, то рекомендуется использовать объект. По умолчанию null.
  • $method - метод формы, GET или POST. По умолчанию POST.
  • $target - только для фреймов. Имя фрейма, обрабатывающего эту форму. Используется крайне редко. По умолчанию null.
  • $attributes - строка атрибутов для тега <form>. Будет добавлена внутрь тега. Разрешены любые атрибуты, предусмотренные стандартом HTML 4.01. По умолчанию пустая строка.
  • $editable - доступна ли форма для редактирования. По умолчанию true (в противном случае все поля в форме будут неактивными).

display()

Вывести форму на экран.

get_data($slashed)

Получить данные формы после всех проверок на столроне клиента и сервера.

  • $slashed - экранировать кавычки. По умолчанию true.

get_submitted_data($slashed)

Получить данные из формы, к которым еще не применены никакие проверки.

  • $slashed - экранировать кавычки. По умолчанию true.

add_element()

add_group()

add_rule()

set_default()

is_submitted()

Возвращает true если форма подтверждена, т. е. в ней нажата кнопка типа "submit"

is_cancelled()

Возвращает true если форма отменена.

Описание всех элементов

Заголовок формы

Этот заголовок будет говорить об общем содержании данных в форме. Также он используется в случае, когда вам нужно разбить форму на несколько частей.

Код:

   $mform->addElement('header','имя_html-элемента', 'Текст заголовка');

Текстовое пояснение

Поле select

Элемент text

Элемент radio

Элемент checkbox

Элемент textarea

Элемент hidden

Элемент dateselector

Добавление дополнительных данных

Установка обязательных полей

Установка дополнительных полей

Установка проверки на стороне клиента или сервера

По умолчанию все данные из формы подлежат проверке на стороне сервера. Существует возможность добавить проверку на стороне клиента. Не забывайте при этом, что эти данные нужно потом все равно еще раз проверить на стороне сервера, так как всегда существует возможность послать данные в обход формы.

Проверка на стороне сервера

Проверка на стороне клиента

Установка зависимых полей