Логотип

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

<?=$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"/>

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

<group>

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

<field>

Элемент описывающий отдельное поле. В случае справочников (см. примеры выше), может содержать в себе ветвь values с элементами item.

@name

Уникальное имя поля.

@title

Название (заголовок) поля. Отображается в административном интерфейсе при редактировании объекта.

@tip

Подсказка к полю. Отображается в административном интерфейсе при наведении на "?" рядом с названием поля (выводится, если была заполнена при добавлении поля).

@input_name

Имя (атрибут name тега input) для полей ввода данных формы.

@type

Тип поля.

@id

Идентификатор поля.

@required

Атрибут, указывающий является ли это поле обязательным для заполнения (выводится, если был отмечен при добавлении поля).

Вывод формы добавления осуществляется по шаблону, указанному в параметре template. Вы можете не указывать этот параметр, в этом случае для вывода формы будет использован шаблон по умолчанию — default.tpl.

Данный макрос использует общий шаблон с %data getEditForm()% .

Используемые шаблоны

Макрос оперирует шаблонами, находящимися в каталоге /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 getCreateForm()% — Выводит список свойств для добавления объекта.

Параметры: data getCreateForm(type_id [, template = 'default', groups_names = '])

type_id

id типа данных, для которого необходимо вывести форму добавления.

template

Имя шаблона, по которому следует вывести форму добавления.В XSLT-шаблонизаторе игнорируется, можно указать любое значение.

groups_names

В этом параметре можно перечислить идентификаторы групп полей, которые необходимо вывести в форму создания. Идентификаторы групп полей в этом случае должны быть разделены пробелами. По умолчанию выводятся все видимые группы полей.

Описание

Этот макрос используется для вывода форм добавления объекта с типом type_id.