<?=$this->render(array('form' => $this->macros('data', 'getCreateForm', array($purchasing['onestep']['delivery']['attribute:type-id'])), 'isHeaderShow' => false), 'data/formTemplate')?>
XSLT-шаблонизатор
Метод выводит набор полей для составления формы. Саму форму необходимо задать в шаблоне самостоятельно.
Атрибут input_name
для каждого поля содержит имя (атрибут name
), которое нужно использовать для тега input
при верстке формы. У этого метода значение атрибута выглядит следующим образом:
data[new][уникальное_имя_поля]
Пример вызова
udata://data/getCreateForm/772/notemplate/(cenovye_svojstva)(svojstva_publikacii)(pictures)(short_info)
XML-ответ UData
Общий вид ответа UData:
<udata module="data" method="getCreateForm" generation-time="0.009103">
<group name="group_1" title="Первая группа полей">
<field name="field_1_1" title="Первое поле" ... и другие атрибуты ... />
<field name="field_1_2" title="Первое поле" ... и другие атрибуты ... />
<field name="field_1_3" title="Первое поле" ... и другие атрибуты ... />
... и другие поля ...
</group>
<group name="group_2" title="Вторая группа полей">
<field name="field_2_1" title="Первое поле" ... и другие атрибуты ... />
<field name="field_2_2" title="Первое поле" ... и другие атрибуты ... />
<field name="field_2_3" title="Первое поле" ... и другие атрибуты ... />
... и другие поля ...
</group>
... и другие группы полей ...
</udata>
Пример поля с типом Число:
<field name="kolichestvo_lap" title="Количество лап"
input_name="data[new][kolichestvo_lap]" type="int" id="9119"/>
Пример поля с типом Число с точкой:
<field name="dlina_usov" title="Длина усов"
input_name="data[new][dlina_usov]" type="float" id="9120"/>
Пример поля с типом Цена:
<field name="price" title="Цена"
input_name="data[new][price]" type="price" id="8918"/>
Пример поля с типом Дата:
<field name="expiration_date" title="Дата снятия с публикации"
input_name="data[new][expiration_date]" type="date" id="9024"/>
Пример поля с типом Строка:
<field name="fname" title="Имя"
input_name="data[new][fname]" type="string" id="9"/>
Пример поля с типом Простой текст:
<field name="publish_comments" title="Комментарий к публикации"
input_name="data[new][publish_comments]" type="text" id="9026"/>
Пример поля с типом HTML-текст:
<field name="opisanie" title="Описание товара"
input_name="data[new][opisanie]" type="wysiwyg" id="9113"/>
Пример поля с типом Теги:
<field name="tegi_posta" title="Теги поста"
input_name="data[new][tegi_posta]" type="tags" id="9133" />
Пример поля с типом Выпадающий список или Выпадающий список с множественным выбором (справочники):
<field name="harakter" title="Характер" type-id="755" public-guide="1"
input_name="data[new][harakter]" type="relation" id="9124">
<values>
<item id="27181" xlink:href="uobject://27181">Взрывной</item>
<item id="27200" xlink:href="uobject://27200">Уравновешенный</item>
<item id="27190" xlink:href="uobject://27190">Флегматичный</item>
</values>
</field>
Пример поля с типом Изображение:
<field name="photo" title="Фотография" destination-folder="./images/cms/data"
input_name="data[new][photo]" type="img_file" id="9112"/>
Пример поля с типом Флеш-ролик:
<field name="swf" title="Флеш-ролик"
input_name="data[new][swf]" destination-folder="./files/" type="swf_file" id="8805"/>
Пример поля с типом Файл:
<field name="file_new" title="Новый файл"
input_name="data[new][file_new]" destination-folder="./files/" type="file" id="9134"/>
Пример поля с типом Набор изображений:
<field name="multiple_images" title="Несколько изображений" maxsize="2" field_id="9965" input_name="data[new][multiple_images]" type="multiple_image" id="9965">
<values/>
</field>
Пример поля с типом Кнопка-флажок:
<field name="akciya" title="akciya"
input_name="data[new][akciya]" type="boolean" id="9132"/>
Пример поля с типом Пароль:
<field name="parol" title="Пароль"
input_name="data[new][parol][]" type="password" id="9135"/>
Пример поля с типом Ссылка на дерево:
<field name="recommend" title="Рекомендуем"
input_name="data[new][recommend][]" type="symlink" id="9128"/>
Элементы и атрибуты
<field>
Элемент описывающий отдельное поле. В случае справочников (см. примеры выше), может содержать в себе ветвь values
с элементами item
.
- @name
-
Уникальное имя поля.
- @title
-
Название (заголовок) поля. Отображается в административном интерфейсе при редактировании объекта.
- @tip
-
Подсказка к полю. Отображается в административном интерфейсе при наведении на "?" рядом с названием поля (выводится, если была заполнена при добавлении поля).
- @input_name
-
Имя (атрибут
name
тегаinput
) для полей ввода данных формы. - @type
- @id
-
Идентификатор поля.
- @required
-
Атрибут, указывающий является ли это поле обязательным для заполнения (выводится, если был отмечен при добавлении поля).
Вывод формы добавления осуществляется по шаблону, указанному в параметре template. Вы можете не указывать этот параметр, в этом случае для вывода формы будет использован шаблон по умолчанию — default.tpl
.
Данный макрос использует общий шаблон с %data getEditForm()% .
Используемые блоки шаблона
reflection_block
Выводит блок оформления для формы.
- %groups%
-
Выводит список групп полей для редактирования.
reflection_group
Выводит блок оформления группы полей для редактирования.
- %title%
-
Выводит название группы полей.
- %name%
-
Выводит идентификатор группы полей.
- %fields%
-
Выводит список полей для редактирования.
reflection_field_string
Выводит элемент формы для редактирования строковых полей.
- %title%
-
Выводит название поля.
- %name%
-
Выводит идентификатор поля.
- %value%
-
Выводит значение поля.
- %tip%
-
Выводит подсказку, если оно указано в шаблонах данных для этого поля.
- %input_name%
-
Выводит значение атрибута
name
для тегаinput
, чтобы система могла корректно получить эти значения после отправки формы. - %type%
-
Выводит тип поля.
- %required%
-
Выводит слово "required" в случае, если поле обязательно для заполнения.
- %required_asteriks%
-
Выводит звёздочку (*) в случае, если поле обязательно для заполнения.
reflection_field_text
Выводит элемент формы для текстовых полей.
- %title%
-
Выводит название поля.
- %name%
-
Выводит идентификатор поля.
- %value%
-
Выводит значение поля.
- %tip%
-
Выводит подсказку, если оно указано в шаблонах данных для этого поля.
- %input_name%
-
Выводит значение атрибута
name
для тегаinput
, чтобы система могла корректно получить эти значения после отправки формы. - %type%
-
Выводит тип поля.
- %required%
-
Выводит слово "required" в случае, если поле обязательно для заполнения.
- %required_asteriks%
-
Выводит звёздочку (*) в случае, если поле обязательно для заполнения.
reflection_field_wysiwyg
Выводит элемент формы для полей с html-кодом, которые заполняются через WYSIWYG-редактор.
- %title%
-
Выводит название поля.
- %name%
-
Выводит идентификатор поля.
- %value%
-
Выводит значение поля.
- %tip%
-
Выводит подсказку, если оно указано в шаблонах данных для этого поля.
- %input_name%
-
Выводит значение атрибута
name
для тегаinput
, чтобы система могла корректно получить эти значения после отправки формы. - %type%
-
Выводит тип поля.
- %required%
-
Выводит слово "required" в случае, если поле обязательно для заполнения.
- %required_asteriks%
-
Выводит звёздочку (*) в случае, если поле обязательно для заполнения.
reflection_field_int
Выводит элемент формы для числовых полей.
- %title%
-
Выводит название поля.
- %name%
-
Выводит идентификатор поля.
- %value%
-
Выводит значение поля.
- %tip%
-
Выводит подсказку, если оно указано в шаблонах данных для этого поля.
- %input_name%
-
Выводит значение атрибута
name
для тегаinput
, чтобы система могла корректно получить эти значения после отправки формы. - %type%
-
Выводит тип поля.
- %required%
-
Выводит слово "required" в случае, если поле обязательно для заполнения.
- %required_asteriks%
-
Выводит звёздочку (*) в случае, если поле обязательно для заполнения.
reflection_field_date
Выводит элемент формы для редактирования полей типа «Дата».
- %title%
-
Выводит название поля.
- %name%
-
Выводит идентификатор поля.
- %value%
-
Выводит значение поля.
- %tip%
-
Выводит подсказку, если оно указано в шаблонах данных для этого поля.
- %input_name%
-
Выводит значение атрибута
name
для тегаinput
, чтобы система могла корректно получить эти значения после отправки формы. - %type%
-
Выводит тип поля.
- %required%
-
Выводит слово "required" в случае, если поле обязательно для заполнения.
- %required_asteriks%
-
Выводит звёздочку (*) в случае, если поле обязательно для заполнения.
reflection_field_boolean
Выводит элемент формы для полей типа «Кнопка-флажок».
- %title%
-
Выводит название поля.
- %name%
-
Выводит идентификатор поля.
- %checked%
-
Выводит «checked» если значение поля равно «да», в противном случае не выводит ничего.
- %tip%
-
Выводит подсказку, если оно указано в шаблонах данных для этого поля.
- %input_name%
-
Выводит значение атрибута
name
для тегаinput
, чтобы система могла корректно получить эти значения после отправки формы. - %type%
-
Выводит тип поля.
- %required%
-
Выводит слово "required" в случае, если поле обязательно для заполнения.
- %required_asteriks%
-
Выводит звёздочку (*) в случае, если поле обязательно для заполнения.
reflection_field_relation
Выводит элемент формы для полей типа «Выпадающий список». Обычно это обрамляющий тег select
.
- %title%
-
Выводит название поля.
- %name%
-
Выводит идентификатор поля.
- %type-id%
-
Если поле связано с каким-либо справочником, то выводится id этого справочника.
- %values%
-
Выводит список возможных значений для выбора, используя блоки шаблонов reflection_field_relation_option и reflection_field_relation_option_a . Если эти блоки в шаблоне не заданы, то будут использованы теги
option
. - %tip%
-
Выводит подсказку, если оно указано в шаблонах данных для этого поля.
- %input_name%
-
Выводит значение атрибута
name
для тегаinput
, чтобы система могла корректно получить эти значения после отправки формы. - %type%
-
Выводит тип поля.
- %required%
-
Выводит слово "required" в случае, если поле обязательно для заполнения.
- %required_asteriks%
-
Выводит звёздочку (*) в случае, если поле обязательно для заполнения.
reflection_field_relation_option
Выводит вариант выбора для выпадающего списка (reflection_field_relation), если он еще не выбран.
- %name%
-
Выводит название варианта.
- %id%
-
Выводит id варианта.
- %required%
-
Выводит слово "required" в случае, если поле обязательно для заполнения.
- %required_asteriks%
-
Выводит звёздочку (*) в случае, если поле обязательно для заполнения.
reflection_field_relation_option_a
Выводит вариант выбора для выпадающего списка (reflection_field_relation), если он еще не выбран (только для %data getEditForm()% ).
- %name%
-
Выводит название варианта.
- %id%
-
Выводит id варианта.
- %required%
-
Выводит слово "required" в случае, если поле обязательно для заполнения.
- %required_asteriks%
-
Выводит звёздочку (*) в случае, если поле обязательно для заполнения.
reflection_field_multiple_relation
Выводит элемент формы для полей типа «Выпадающий список с множественным выбором». Обычно это обрамляющий тег select
с атрибутом multiple
.
- %title%
-
Выводит название поля.
- %name%
-
Выводит идентификатор поля.
- %type-id%
-
Если поле связано с каким-либо справочником, то выводится id этого справочника.
- %values%
-
Выводит список возможных значений для выбора, используя блоки шаблонов reflection_field_multiple_relation_option и reflection_field_multiple_relation_option_a . Если эти блоки в шаблоне не заданы, то будут использованы теги
option
. - %tip%
-
Выводит подсказку, если оно указано в шаблонах данных для этого поля.
- %input_name%
-
Выводит значение атрибута
name
для тегаinput
, чтобы система могла корректно получить эти значения после отправки формы. - %type%
-
Выводит тип поля.
- %required%
-
Выводит слово "required" в случае, если поле обязательно для заполнения.
- %required_asteriks%
-
Выводит звёздочку (*) в случае, если поле обязательно для заполнения.
reflection_field_multiple_relation_option
Выводит вариант выбора для выпадающего списка (reflection_field_multiple_relation), если он еще не выбран.
- %name%
-
Выводит название варианта.
- %id%
-
Выводит id варианта.
- %required%
-
Выводит слово "required" в случае, если поле обязательно для заполнения.
- %required_asteriks%
-
Выводит звёздочку (*) в случае, если поле обязательно для заполнения.
reflection_field_multiple_relation_option_a
Выводит вариант выбора для выпадающего списка (reflection_field_multiple_relation), если он еще не выбран (только для %data getEditForm()%).
- %name%
-
Выводит название варианта.
- %id%
-
Выводит id варианта.
- %required%
-
Выводит слово "required" в случае, если поле обязательно для заполнения.
- %required_asteriks%
-
Выводит звёздочку (*) в случае, если поле обязательно для заполнения.
reflection_field_file
Выводит элемент формы для полей типа «Файл».
- %title%
-
Выводит название поля.
- %name%
-
Выводит идентификатор поля.
- %value%
-
Выводит путь до файла, если он уже загружен. Справедливо только для макроса %data getEditForm()% .
- %tip%
-
Выводит подсказку, если оно указано в шаблонах данных для этого поля.
- %input_name%
-
Выводит значение атрибута
name
для тегаinput
, чтобы система могла корректно получить эти значения после отправки формы. - %type%
-
Выводит тип поля.
- %required%
-
Выводит слово "required" в случае, если поле обязательно для заполнения.
- %required_asteriks%
-
Выводит звёздочку (*) в случае, если поле обязательно для заполнения.
reflection_field_img_file
Выводит элемент формы для полей типа «Изображение».
- %title%
-
Выводит название поля.
- %name%
-
Выводит идентификатор поля.
- %value%
-
Выводит путь до файла, если он уже загружен. Справедливо только для макроса %data getEditForm()%.
- %tip%
-
Выводит подсказку, если оно указано в шаблонах данных для этого поля.
- %input_name%
-
Выводит значение атрибута
name
для тегаinput
, чтобы система могла корректно получить эти значения после отправки формы. - %type%
-
Выводит тип поля.
- %required%
-
Выводит слово "required" в случае, если поле обязательно для заполнения.
- %required_asteriks%
-
Выводит звёздочку (*) в случае, если поле обязательно для заполнения.
Примеры использования
<?php
$FORMS = Array();
$FORMS['reflection_block'] = <<<END
<i>Редактирование объекта</i>
<pre>%groups%</pre>
END;
$FORMS['reflection_group'] = <<<END
<hr />
<b>%title% (%name%)</b><br />
<table border="0" width="500">
%fields%
</table>
END;
$FORMS['reflection_field_string'] = <<<END
<tr>
<td>%title%:</td>
<td>
<input type="text" name="%input_name%" value="%value%" size="50" />
</td>
</tr>
END;
$FORMS['reflection_field_text'] = <<<END
<tr>
<td>%title%:</td>
<td><textarea name="%input_name%" style="width: 200px">%value%</textarea></td>
</tr>
END;
$FORMS['reflection_field_wysiwyg'] = <<<END
<tr>
<td>%title%:</td>
<td><textarea name="%input_name%" style="width: 200px">%value%</textarea></td>
</tr>
END;
$FORMS['reflection_field_int'] = <<<END
<tr>
<td>%title%:</td>
<td><input type="text" name="%input_name%" value="%value%" size="15" /></td>
</tr>
END;
$FORMS['reflection_field_boolean'] = <<<END
<tr>
<td>%title%:</td>
<td>
<input type="hidden" id="%input_name%" name="%input_name%" value="%value%" />
<input onclick="javascript:document.getElementById('%input_name%').value = this.checked;" type="checkbox" %checked% value="1" />
</td>
</tr>
END;
$FORMS['reflection_field_relation'] = <<<END
<tr>
<td>%title%:</td>
<td>
<select name="%input_name%">
<option />%options%</select>
</td>
</tr>
END;
$FORMS['reflection_field_img_file'] = <<<END
<tr>
<td>%title%:</td>
<td>
<table width="100%">
<tr>
<td><input type="file" name="%input_name%" /></td>
<td>%data getPropertyOfObject(%object_id%, '%name%', 'avatar')%</td>
</tr>
</table>
</td>
</tr>
END;
?>
Название
%data getCreateForm()% — Выводит список свойств для добавления объекта.
Параметры: data getCreateForm(type_id [, template = 'default', groups_names = '])
- type_id
-
id типа данных, для которого необходимо вывести форму добавления.
- template
-
Имя шаблона, по которому следует вывести форму добавления.В XSLT-шаблонизаторе игнорируется, можно указать любое значение.
- groups_names
-
В этом параметре можно перечислить идентификаторы групп полей, которые необходимо вывести в форму создания. Идентификаторы групп полей в этом случае должны быть разделены пробелами. По умолчанию выводятся все видимые группы полей.