1. В группе параметров «Форма» создается параметр «конфигурация формы»:
Название: конфигурация формы
Переменная: form_conf
Тип: textarea
Модификаторы: parse=1 и editor=t_editor
2. В группе параметров «Форма» создается параметр «сохраненная форма»:
Название: сохраненная форма
Переменная: form_save
Тип: textarea
Модификаторы: serialize_is=1
3. В начало файла стилей site_templates.xsl добавляется строка:
<xsl:include href="/www/treegraph4/xsl/jqform.xsl"></xsl:include>
4. В файл стилей site_templates.xsl добавляется стиль «jquery форма [упр.список]» (есть на demo.local.graphit.ru)
5. При необходимости добавляются собственные шаблоны строк формы и элементов:
<xsl:template match="*" mode="'jq_form_row'"> и
<xsl:template match="'*" mode="'form_element'">
6. На сайте создается обычная интерактивная форма со стилем ветви «jquery форма». Параметр «имя формы или параметра» остается пустым.
7. В форму добавляется параметр «конфигурация формы» и заполняется по следующим правилам.
Каждый элемент формы представляет собой несколько строк вида:
ключ[индекс]=значение
ключ – одно из определенных ключевых слов, задающих тип параметра, его внешний вид и различные настройки
индекс – произвольное имя (набор латинских букв, цифр и _, начинается с буквы). Для одного параметра все индексы указываются одинаковые! В качестве индекса можно указать имя «реального» параметра.
значение – строка, задающая значение ключа (зависит от ключа)
Пустые строки и строки, начинающиеся с #, игнорируются.
8. Виды ключей
type
|
Задает тип поля (параметра). Обязательный ключ. Возможные значения: text, textarea, check, image, file, date, number, password, select, mselect, radio, mradio, checks, list, selects, mselects, hidden, header
|
description
|
Название поля формы (текст). Обязательный ключ.
|
desctext
|
Дополнение названия формы (текст)
|
fseparator
|
Разделитель значений для списков. По умолчанию - ; (символ)
|
items
|
Список возможных значений через разделитель (текст;текст;…)
|
vals
|
Список ключей для возможных значений. Если не указан, то для значений применяется список items (текст;текст;…)
|
selected
|
Начальное значение поля формы (текст или список)
|
required
|
Обязательность ввода для поля формы (0/1)
|
disabled
|
Атрибут disabled для поля формы (0/1)
|
readonly
|
Атрибут readonly для поля формы (0/1)
|
nodesc
|
Не показывать название поля (description) (0/1)
|
placeholder
|
Атрибут placeholder для поля (текст)
|
class_row
|
CSS класс для строки с элементом формы
|
|
Ключи для группирования элементов типа radio и checks
|
first
|
Название группы для объединения у первого элемента (текст)
|
group
|
Название группы для объединения элементов (текст)
|
title
|
Заголовок колонки объединенных элементов (текст)
|
numbering
|
Столбец с нумерацией объединенных элементов (0/1)
|
desc_pref
|
Префикс описания объединенных элементов (текст)
|
desc_add
|
Дополнение описания объединенных элементов (текст)
|
items_pref
|
Префикс для названий итемов элемента (текст)
|
sub_groups
|
Список номеров подгрупп объединенных элементов
|
sub_groups_title
|
Список заголовков подгрупп объединенных элементов
|
sub_group
|
Номер подгруппы элемента (число)
|
view
|
Модификатор внешнего вида элемента (table)
|
show_vals
|
Показывать значения вместо текстов элементов в заголовке (0/1)
|
bot_header
|
Повторить строку заголовка под таблицей (0/1)
|
data-max-checked
|
Максимальное число выбранных элементов типа checks
|
data-disabled-elem
|
Имя параметра управляющего элемента. Данный элемент будет скрыт, пока значение параметра указанного элемента не будет равно значению, заданному в ключе data-disabled-val
|
data-disabled-val
|
Значение параметра управляющего элемента для показа элемента с ключом data-disabled-elem
|
9. Примеры
type[n1]=text
description[n1]=Текстовое поле
required[n1]=1
selected[n1]=Graphit
type[n2]=textarea
description[n2]=Блок текста
placeholder[n2]=Введите кратное описание задачи
type[n3]=check
description[n3]=Чекбокс
selected[n3]=1
required[n3]=1
type[n4]=select
description[n4]=Селект с числовыми значениями
items[n4]=выберите значение:;значение 100;значение 200;значение 300
vals[n4]=0;100;200;300
type[n5]=select
description[n5]=Селект с текстовыми значениями
items[n5]=выберите:;значение 1;значение 2;значение 3
type[n6]=radio
description[n6]=Радио-кнопки
items[n6]=выбор 1;выбор 2;выбор 3
vals[n6]=1;2;3
type[n7]=checks
description[n7]=Группа чекбоксов
items[n7]=чек 1;чек 2;чек 3
type[n8]=selects
description[n8]=Множественный селект
items[n8]=значение 1;значение 2;значение 3;значение 4;значение 5
vals[n8]=1;2;3;4;5
type[n9]=number
description[n9]=Число с 3 знаками
feminlength[n9]=3
femaxlength[n9]=3
type[n10]=date
description[n10]=Дата
selected[n10]=05.07.2019
type[view_file]=file
description[view_file]=Файл (реальный параметр)
type[icon]=image
description[icon]=Графика (реальный параметр)
description[n11]=Группировка элементов типа radio
type[n11]=header
desctext[n11]=(дополнение)
first[n11]=n11
width_item[n11]=15%
title[n11]=Заголовок
numbering[n11]=1
description[n11_1]=Первый элемент
type[n11_1]=radio
items[n11_1]=Много; Достаточно; Мало
vals[n11_1]=1;2;3
required[n11_1]=1
group[n11_1]=n11
description[n11_2]=Второй элемент
type[n11_2]=radio
items[n11_2]=Много; Достаточно; Мало
vals[n11_2]=1;2;3
required[n11_2]=1
group[n11_2]=n11
description[n11_3]=Третий элемент
type[n11_3]=radio
items[n11_3]=Много; Достаточно; Мало
vals[n11_3]=1;2;3
required[n11_3]=1
group[n11_3]=n11
description[n12]=Группировка элементов типа checks с подгруппами
type[n12]=header
title_add[n12]=1 – много; 2 – достаточно; 3 – мало
first[n12]=n12
width_group[n12]=35%
width_item[n12]=5%
title[n12]=Заголовок
sub_groups[n12]=1;2
sub_groups_title[n12]=Подгруппа 1;Подгруппа 2
description[n12_1_1]=Первый элемент
type[n12_1_1]=checks
items[n12_1_1]=1;2;3
group[n12_1_1]=n12
sub_group[n12_1_1]=1
description[n12_1_2]=Второй элемент
type[n12_1_2]=checks
items[n12_1_2]=1;2;3
group[n12_1_2]=n12
sub_group[n12_1_2]=1
description[n12_2_1]=Первый элемент
type[n12_2_1]=checks
items[n12_2_1]=1;2;3
group[n12_2_1]=n12
sub_group[n12_2_1]=2
description[n12_2_2]=Второй элемент
type[n12_2_2]=checks
items[n12_2_2]=1;2;3
group[n12_2_2]=n12
sub_group[n12_2_2]=2
10. Экспорт введенных данных
Экспорт данных, введенных в форме, можно произвести несколькими способами.
а) С помощью административного модуля JM
Для этого надо поместить все объекты, дочерние к форме в фильтр (см. описание модуля) и выбрать в контекстном меню команду «Экспорт». В открывшейся панели выбрать нужный формат экспорта, задать кодировку, список экспортируемых атрибутов и параметров и другие настройки. Затем нажать кнопку «ввести» и на новой панели – кнопку «открыть».
б) С помощью отдельного объекта-экспорта
Для этого надо создать отдельный объект со следующими параметрами:
«обработчик» - выбрать jexport
«сколько (start,limit)» - указать количество экспортируемых объектов
«условие выбора» - задать условие в виде: parent_id=XXX (XXX – id формы)
«настройки обработчика» - задать настройки экспорта
в) С помощью самой формы
Для этого надо к адресной строке формы добавить ключ export=1 в одном из форматов:
http://адрес_сайта/форма?export=1
http://адрес_сайта/?id=XXX&export=1
Настройки экспорта можно задать в параметре «настройки обработчика» в самой форме или с помощью ключей в адресной строке после ключа export=1. Например:
https://адрес_сайта/?id=XXX&export=1&export_format=html&export_params=id,params
Все возможные настройки экспорта (для параметра «настройки обработчика» и адресной строки):
Ключ
|
Значение и описание
|
По умолчанию
|
export_params
|
Список атрибутов и параметров для экспорта (через ,). Можно указать * (все атрибуты и параметры), attr (все атрибуты), params (все параметры)
|
*
|
export_format
|
Формат экспорта: text, html, csv, doc, xml, rss, yml, zip (архив + csv)
|
text
|
export_encode
|
Кодировка: UTF-8 (Юникод), windows-1251 (Windows Кириллица), koi8-r (Русская КОИ8), ISO-8859-2 (Западноевропейская ISO-8859-2), ISO-8859-1 (Западноевропейская ISO-8859-1)
|
UTF-8
|
export_delim
|
Символ-разделитель столбцов (; \t TAB COMMA)
|
;
|
export_delimline
|
Символ-разделитель строк
|
\n
|
export_delimelem
|
Символ-разделитель элементов
|
,
|
export_mselect
|
Способ экспорта параметров типа select, radio и др.: id (идентификатор), header (заголовок), all (идентификатор=заголовок)
|
id
|
export_elements
|
Способ экспорта параметров с несколькими элементами: string (одной строкой через разделитель), separate (отдельными колонками), complex (оба варианта)
|
string
|
export_images
|
Способ экспорта параметров типа image: tag (тег img), file (ссылка на файл), alt (поле alt)
|
tag
|
export_date
|
Способ экспорта параметров типа date: normal (по умолчанию), day_time (день время), day (день), time (время)
|
normal
|
export_dayformat
|
Формат для экспорта даты
|
%d.%m.%Y
|
export_timeformat
|
Формат для экспорта времени
|
%H:%M
|
export_sequence
|
Экспортировать колонки в порядке перечисления параметров. В этом случае в ключе export_params можно указывать только имена параметров. Нельзя указывать *, attr, params. (0/1)
|
0
|
export_nan
|
Текст для отсутствующих параметров
|
NaN
|
export_limit
|
Максимальное число дочерних объектов при экспорте формы
|
9999
|
export_order
|
Порядок вывода дочерних объектов при экспорте формы
|
tree_order
|