Путь до шаблонов и расширение прописаны в nsuts_new_olymp.cfg в разделе [Templates]
Требуется указать SERVER_DIR после установки тестирующей системы (Возможно, это нужно как-то переделать)
Тип | Описание |
open | Ставится только <form> без </form> |
close | Ставится только </form> |
both | Ставится и <form>, и </form> |
neither | Не будут установлены <form> и </form> |
addRow – добавить элемент на форму в качестве аргументов идут (filter, type иногда можно ставить undef):
setFormOptions – Установить action, method, name для формы.
setSubmitOptions Установить атрибуты для input submit, берутся ключи из переданного hashи ставится так key = value. Если переданная ссылка на hash=undef, то кнопка submit не устанавливается.
check – проверяет, что значения элементов формы удовлетворяют filter. Если был установлен filter = undef, то фильтр по умолчанию /^.+$/
setTemplate – указать название шаблона, по умолчанию Default Template.
getHTML – возвращает html формы, устанавливает значения из $post/$get для элементов формы. В наследниках можно переопределить и добавлять элементы в hash $self->{_rows} и они будут доступны в шаблоне.
setTitle – установить заголовок формы, доступен в шаблоне по form_
По умолчанию стоит экранирование переменных шаблона, но его можно отключить указав атрибут escape="no" у tmpl_var в шаблоне.
По умолчанию включен _rows_enable, который позволяет на основе $post/$get устанавливать переданные значения в форму. Его можно отключить, указав значение 0.
В форме доступны переменные form_title, form_attr, form_submit, form_submit_enable, form_open, form_end.
Подробнее в Form.pm, примеры использования – Attribute Form.pm, Registration Form.pm.
Примечание: У form_submit, form_attr и comment escape=none, т.к там находится что-то вроде form_submit = 'value="Сохранить" name="saveattrs"'. В comment иногда выводится ошибка, а там '<font color=red>...</font>'.