<?=$this->render(array('form' => $this->macros('data', 'getEditForm', array($purchasing['onestep']['customer']['@id']))), 'data/formTemplate')?>
Метод выводит набор полей для составления формы. Саму форму необходимо задать в шаблоне самостоятельно.
Атрибут input_name
для каждого поля содержит имя (атрибут name
), которое нужно использовать для тега input
при верстке формы. У этого метода значение атрибута выглядит следующим образом:
data[id_редактируемого_объекта][уникальное_имя_поля]
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>
Примеры типов полей можно посмотреть в ответе UData макроса %data getCreateForm()%. Отличие заключается в том, что вместо new
в значении атрибута будет стоять id редактируемого объекта. Например, для вызова приведенного выше:
<field name="publish_comments" title="Комментарий к публикации"
input_name="data[27174][publish_comments]" type="text" id="9026"/>
Элементы и атрибуты
<field>
Элемент описывающий отдельное поле. В случае справочников (см. примеры выше), может содержать в себе ветвь values
с элементами item
.
- @name
-
Уникальное имя поля.
- @title
-
Название (заголовок) поля. Отображается в административном интерфейсе при редактировании объекта.
- @tip
-
Подсказка к полю. Отображается в административном интерфейсе при наведении на "?" рядом с названием поля (выводится, если была заполнена при добавлении поля).
- @input_name
-
Имя (атрибут
name
тегаinput
) для полей ввода данных формы. - @type
- @id
-
Идентификатор поля.
- @required
-
Атрибут, указывающий является ли это поле обязательным для заполнения (выводится, если был отмечен при добавлении поля).
Используемые шаблоны
Макрос оперирует шаблонами, находящимися в каталоге /tpls/data/reflection/
.
Используемые блоки шаблона
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 getEditForm()% — Выводит список свойств для редактирования объекта с указанным id.
Параметры: data getEditForm(object_id [, template = 'default', groups_names = ''] )
- object_id
-
id объекта, для которого необходимо вывести форму добавления.
- template
-
Имя шаблона, по которому следует вывести форму добавления.В XSLT-шаблонизаторе игнорируется, можно указать любое значение.
- groups_names
-
В этом параметре можно перечислить идентификаторы групп полей, которые необходимо вывести в форму создания. Идентификаторы групп полей в этом случае должны быть разделены пробелами. По умолчанию выводятся все видимые группы полей.
Описание
Этот макрос выводит форму редактирования объекта с id object_id.
Вывод формы добавления осуществляется по шаблону, указанному в параметре template. Вы можете не указывать этот параметр, в этом случае для вывода формы будет использован шаблон по умолчанию — default.tpl
. Данный макрос использует общий шаблон с %data getCreateForm()% .
Макрос имеет более жесткую проверку прав, чем остальные. Редактировать объект может только пользователь, который его создал, либо супервайзер.