Логотип

Документация по макросам и шаблонам UMI.CMS

<?=$this->render(array('form' => $this->macros('data', 'getEditForm', array($purchasing['onestep']['customer']['@id']))), 'data/formTemplate')?>

Метод выводит набор полей для составления формы. Саму форму необходимо задать в шаблоне самостоятельно.

Атрибут input_name для каждого поля содержит имя (атрибут name), которое нужно использовать для тега input при верстке формы. У этого метода значение атрибута выглядит следующим образом:

data[id_редактируемого_объекта][уникальное_имя_поля]

Пример вызова

udata://data/getEditForm/27174/notemplate/(svojstva_publikacii)(dopolnitelno)/

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"/>

Элементы и атрибуты

<group>

Ветвь описывающая группу полей и содержащая элементы field — поля объекта.

<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()% .

Макрос имеет более жесткую проверку прав, чем остальные. Редактировать объект может только пользователь, который его создал, либо супервайзер.