<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.umisoft.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9A%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_getCreateForm_%D0%B8_getEditForm_%D0%B4%D0%BB%D1%8F_%D0%B3%D0%B8%D0%B1%D0%BA%D0%BE%D0%B9_%D0%B2%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B8_%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9</id>
	<title>Кастомизация getCreateForm и getEditForm для гибкой верстки полей - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.umisoft.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9A%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_getCreateForm_%D0%B8_getEditForm_%D0%B4%D0%BB%D1%8F_%D0%B3%D0%B8%D0%B1%D0%BA%D0%BE%D0%B9_%D0%B2%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B8_%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9"/>
	<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_getCreateForm_%D0%B8_getEditForm_%D0%B4%D0%BB%D1%8F_%D0%B3%D0%B8%D0%B1%D0%BA%D0%BE%D0%B9_%D0%B2%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B8_%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9&amp;action=history"/>
	<updated>2026-04-27T13:12:37Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_getCreateForm_%D0%B8_getEditForm_%D0%B4%D0%BB%D1%8F_%D0%B3%D0%B8%D0%B1%D0%BA%D0%BE%D0%B9_%D0%B2%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B8_%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9&amp;diff=5464&amp;oldid=prev</id>
		<title>Mad grant в 13:02, 5 июня 2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_getCreateForm_%D0%B8_getEditForm_%D0%B4%D0%BB%D1%8F_%D0%B3%D0%B8%D0%B1%D0%BA%D0%BE%D0%B9_%D0%B2%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B8_%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9&amp;diff=5464&amp;oldid=prev"/>
		<updated>2013-06-05T13:02:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Версия 13:02, 5 июня 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l650&quot; &gt;Строка 650:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 650:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;%data getCreateFormCustom(827, &amp;#039;newpage&amp;#039;, &amp;#039;title h1 druzhelyubnost photo menu_pic_ua&amp;#039;, 45)%&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;%data getCreateFormCustom(827, &amp;#039;newpage&amp;#039;, &amp;#039;title h1 druzhelyubnost photo menu_pic_ua&amp;#039;, 45)%&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Категория:Написание кастомных макросов]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Mad grant</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_getCreateForm_%D0%B8_getEditForm_%D0%B4%D0%BB%D1%8F_%D0%B3%D0%B8%D0%B1%D0%BA%D0%BE%D0%B9_%D0%B2%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B8_%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9&amp;diff=2365&amp;oldid=prev</id>
		<title>VITL&#039;: Новая страница: «По умолчанию, методы &#039;&#039;&#039;getCreateForm&#039;&#039;&#039; и &#039;&#039;&#039;getEditForm&#039;&#039;&#039; настроены таким образом, что для каждого типа п…»</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_getCreateForm_%D0%B8_getEditForm_%D0%B4%D0%BB%D1%8F_%D0%B3%D0%B8%D0%B1%D0%BA%D0%BE%D0%B9_%D0%B2%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B8_%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9&amp;diff=2365&amp;oldid=prev"/>
		<updated>2011-02-25T05:51:22Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «По умолчанию, методы &amp;#039;&amp;#039;&amp;#039;getCreateForm&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;getEditForm&amp;#039;&amp;#039;&amp;#039; настроены таким образом, что для каждого типа п…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;По умолчанию, методы &amp;#039;&amp;#039;&amp;#039;getCreateForm&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;getEditForm&amp;#039;&amp;#039;&amp;#039; настроены таким образом, что для каждого типа полей используется один и тот же блок в TPL-шаблоне, из-за этого бывает сложно оформить верстку нужным образом, когда необходимо каждое поле оформить особым образом. Также не всегда необходимо выводить все поля из группы. Оригинальные методы getCreateForm и getEditForm можно вынести в кастом и настроить таким образом, таким образом что в макрос будут передаваться идентифкаторы полей, вместо групп, а сам код, в TPL-шаблоне будет сначала искать блок у которого префикс с нужным идентфикатором поля, допустим: &amp;#039;&amp;#039;&amp;#039;reflection_field_string_h1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Добавим в папку &amp;#039;&amp;#039;&amp;#039;classes/modules/data/&amp;#039;&amp;#039;&amp;#039; файл &amp;#039;&amp;#039;&amp;#039;permissions.custom.php&amp;#039;&amp;#039;&amp;#039; следующего содержания:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    $permissions = Array(&amp;#039;main&amp;#039; =&amp;gt; Array(&amp;#039;getCreateFormCustom&amp;#039; , &amp;#039;getEditFormCustom&amp;#039;));&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
а в файл &amp;#039;&amp;#039;&amp;#039;classes/modules/data/__custom.php&amp;#039;&amp;#039;&amp;#039; добавим новые методы:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
    public function getCreateFormCustom($object_type_id, $template = &amp;quot;default&amp;quot;, $fields_names = &amp;quot;&amp;quot;, $parent_id) {&lt;br /&gt;
      if(!permissionsCollection::getInstance()-&amp;gt;isAuth() || !$parent_id) return false;&lt;br /&gt;
      &lt;br /&gt;
			if(!$template) $template = &amp;quot;default&amp;quot;;&lt;br /&gt;
			&lt;br /&gt;
			list($template_block) = def_module::loadTemplates(&amp;quot;tpls/data/reflection/{$template}.tpl&amp;quot;, &amp;quot;reflection_fields&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
			$fields_names = trim($fields_names);&lt;br /&gt;
&lt;br /&gt;
			$fields_arr = strlen($fields_names) ? explode(&amp;quot; &amp;quot;, $fields_names) : array();&lt;br /&gt;
&lt;br /&gt;
			&lt;br /&gt;
			if(!is_array($fields_arr)) {&lt;br /&gt;
				return &amp;quot;&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			$line_arr = Array();&lt;br /&gt;
        &lt;br /&gt;
				$fields = Array();&lt;br /&gt;
				$type = umiObjectTypesCollection::getInstance()-&amp;gt;getType($object_type_id);&lt;br /&gt;
				      					&lt;br /&gt;
				foreach($fields_arr as $field_name) {				&lt;br /&gt;
				  $field_id = $type-&amp;gt;getFieldId($field_name);	&lt;br /&gt;
					$field = umiFieldsCollection::getInstance()-&amp;gt;getField($field_id);&lt;br /&gt;
				&lt;br /&gt;
					if(!$field-&amp;gt;getIsVisible() &amp;amp;&amp;amp; !$all) continue;&lt;br /&gt;
					if($field-&amp;gt;getIsSystem()) continue;&lt;br /&gt;
					&lt;br /&gt;
					$fields[] = $this-&amp;gt;renderEditFieldCustom($template, $field);&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				if(empty($fields)) continue;&lt;br /&gt;
&lt;br /&gt;
			$line_arr[&amp;#039;nodes:field&amp;#039;] = $line_arr[&amp;#039;void:fields&amp;#039;] = $fields;&lt;br /&gt;
			$line_arr[&amp;#039;parent_id&amp;#039;] = $parent_id;&lt;br /&gt;
			$line_arr[&amp;#039;object_type_id&amp;#039;] = $object_type_id;&lt;br /&gt;
			$line_arr[&amp;#039;template&amp;#039;] = $template;&lt;br /&gt;
			$line_arr[&amp;#039;fields_arr&amp;#039;] = $fields_names;&lt;br /&gt;
			return def_module::parseTemplate($template_block, $line_arr);&lt;br /&gt;
		}&lt;br /&gt;
		  &lt;br /&gt;
   	public function getEditFormCustom($template = &amp;quot;editpage&amp;quot;, $fields_names = &amp;quot;&amp;quot;, $all = false, $ignorePermissions = false) {&lt;br /&gt;
			 if(!$page_id = htmlspecialchars(getRequest(&amp;#039;id&amp;#039;))) return false; &lt;br /&gt;
       $hierarchy = umiHierarchy::getInstance();&lt;br /&gt;
       $element = $hierarchy-&amp;gt;getElement($page_id);&lt;br /&gt;
 &lt;br /&gt;
       if($element instanceof umiHierarchyElement) {&lt;br /&gt;
            $object_id = $element-&amp;gt;getObjectId();&lt;br /&gt;
            $permissions = permissionsCollection::getInstance();&lt;br /&gt;
            if(!$permissions-&amp;gt;isOwnerOfObject($object_id)) return false;&lt;br /&gt;
      }else return false;&lt;br /&gt;
            &lt;br /&gt;
      if(!$template) $template = &amp;quot;default&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
			$b_allow = false;&lt;br /&gt;
			$inst_users = cmsController::getInstance()-&amp;gt;getModule(&amp;quot;users&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
			if($permissions-&amp;gt;isSv()) {&lt;br /&gt;
				$ignorePermissions = true;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if($permissions-&amp;gt;isSv()) {&lt;br /&gt;
				$ignorePermissions = true;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if(!$ignorePermissions) {&lt;br /&gt;
				$b_allow = $permissions-&amp;gt;isOwnerOfObject($object_id);&lt;br /&gt;
&lt;br /&gt;
				$arr_helements = $hierarchy-&amp;gt;getObjectInstances($object_id);&lt;br /&gt;
				foreach ($arr_helements as $i_element_id) {&lt;br /&gt;
					$arr_allow = $inst_users-&amp;gt;isAllowedObject($inst_users-&amp;gt;user_id, $i_element_id);&lt;br /&gt;
					if (is_array($arr_allow) &amp;amp;&amp;amp; count($arr_allow) &amp;gt; 1) {&lt;br /&gt;
						$b_allow = intval($arr_allow[1]);&lt;br /&gt;
						if ($b_allow) break;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				if (!$b_allow) {&lt;br /&gt;
					return templater::getInstance()-&amp;gt;putLangs(&amp;quot;%data_edit_foregin_object%&amp;quot;);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
	  &lt;br /&gt;
			list($template_block) = def_module::loadTemplates(&amp;quot;tpls/data/reflection/{$template}.tpl&amp;quot;, &amp;quot;reflection_fields&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
      if(!($object = umiObjectsCollection::getInstance()-&amp;gt;getObject($object_id))) {&lt;br /&gt;
				return $template_block_empty;&lt;br /&gt;
			}&lt;br /&gt;
			$fields_names = trim($fields_names);&lt;br /&gt;
&lt;br /&gt;
			$fields_arr = strlen($fields_names) ? explode(&amp;quot; &amp;quot;, $fields_names) : array();&lt;br /&gt;
&lt;br /&gt;
			&lt;br /&gt;
			if(!is_array($fields_arr)) {&lt;br /&gt;
				return &amp;quot;&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
       &lt;br /&gt;
			$line_arr = Array();&lt;br /&gt;
        $object_type_id = $object-&amp;gt;getTypeId();&lt;br /&gt;
				$fields = Array();&lt;br /&gt;
				$type = umiObjectTypesCollection::getInstance()-&amp;gt;getType($object_type_id);&lt;br /&gt;
				      					&lt;br /&gt;
				foreach($fields_arr as $field_name) {				&lt;br /&gt;
				  $field_id = $type-&amp;gt;getFieldId($field_name);	&lt;br /&gt;
					$field = umiFieldsCollection::getInstance()-&amp;gt;getField($field_id);&lt;br /&gt;
				&lt;br /&gt;
					if(!$field-&amp;gt;getIsVisible() &amp;amp;&amp;amp; !$all) continue;&lt;br /&gt;
					if($field-&amp;gt;getIsSystem()) continue;&lt;br /&gt;
					&lt;br /&gt;
					$fields[] = $this-&amp;gt;renderEditFieldCustom($template, $field, $object);&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
			$line_arr[&amp;#039;nodes:field&amp;#039;] = $line_arr[&amp;#039;void:fields&amp;#039;] = $fields;&lt;br /&gt;
			$line_arr[&amp;#039;object_id&amp;#039;] = $object_id;&lt;br /&gt;
			$line_arr[&amp;#039;page_link&amp;#039;] = $hierarchy-&amp;gt;getPathById($page_id);&lt;br /&gt;
			$line_arr[&amp;#039;template&amp;#039;] = $template;&lt;br /&gt;
&lt;br /&gt;
			return def_module::parseTemplate($template_block, $line_arr, false, $object_id);&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
        &lt;br /&gt;
    public function renderEditFieldCustom($template, umiField $field, $object = false) {&lt;br /&gt;
			$field_type_id = $field-&amp;gt;getFieldTypeId();&lt;br /&gt;
			$field_type = umiFieldTypesCollection::getInstance()-&amp;gt;getFieldType($field_type_id);&lt;br /&gt;
			$is_multiple = $field_type-&amp;gt;getIsMultiple();&lt;br /&gt;
&lt;br /&gt;
			$data_type = $field_type-&amp;gt;getDataType();&lt;br /&gt;
&lt;br /&gt;
			$xsl = xslTemplater::getInstance()-&amp;gt;getIsInited();&lt;br /&gt;
&lt;br /&gt;
			switch($data_type) {&lt;br /&gt;
				case &amp;quot;counter&amp;quot;:&lt;br /&gt;
				case &amp;quot;int&amp;quot;: {&lt;br /&gt;
					$res = $this-&amp;gt;renderEditFieldIntCustom($field, $is_multiple, $object, $template);&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
				case &amp;quot;price&amp;quot;:&lt;br /&gt;
				case &amp;quot;float&amp;quot;: {&lt;br /&gt;
					$res = $this-&amp;gt;renderEditFieldIntCustom($field, $is_multiple, $object, $template);&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
				case &amp;quot;string&amp;quot;: {&lt;br /&gt;
					$res = $this-&amp;gt;renderEditFieldStringCustom($field, $is_multiple, $object, $template);&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				case &amp;quot;date&amp;quot;: {&lt;br /&gt;
					$res = $this-&amp;gt;renderEditFieldDateCustom($field, $is_multiple, $object, $template);&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				case &amp;quot;password&amp;quot;: {&lt;br /&gt;
					$res = $this-&amp;gt;renderEditFieldPasswordCustom($field, $is_multiple, $object, $template);&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				case &amp;quot;relation&amp;quot;: {&lt;br /&gt;
					$res = $this-&amp;gt;renderEditFieldRelationCustom($field, $is_multiple, $object, $template);&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
				case &amp;quot;symlink&amp;quot;: {&lt;br /&gt;
					$res = $this-&amp;gt;renderEditFieldSymlinkCustom($field, $is_multiple, $object, $template);&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				case &amp;quot;img_file&amp;quot;: {&lt;br /&gt;
					$res = $this-&amp;gt;renderEditFieldImageFileCustom($field, $is_multiple, $object, $template);&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				case &amp;quot;video_file&amp;quot; :&lt;br /&gt;
				case &amp;quot;swf_file&amp;quot;: {&lt;br /&gt;
					$res = $this-&amp;gt;renderEditFieldFileCustom($field, $is_multiple, $object, $template);&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				case &amp;quot;file&amp;quot;: {&lt;br /&gt;
					$res = $this-&amp;gt;renderEditFieldFileCustom($field, $is_multiple, $object, $template);&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				case &amp;quot;text&amp;quot;: {&lt;br /&gt;
					$res = $this-&amp;gt;renderEditFieldTextCustom($field, $is_multiple, $object, $template);&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				case &amp;quot;wysiwyg&amp;quot;: {&lt;br /&gt;
					$res = $this-&amp;gt;renderEditFieldWYSIWYGCustom($field, $is_multiple, $object, $template);&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				case &amp;quot;boolean&amp;quot;: {&lt;br /&gt;
					$res = $this-&amp;gt;renderEditFieldBooleanCustom($field, $is_multiple, $object, $template);&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				&lt;br /&gt;
				case &amp;quot;tags&amp;quot;: {&lt;br /&gt;
					$res = $this-&amp;gt;renderEditFieldTagsCustom($field, $is_multiple, $object, $template);&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				case &amp;quot;optioned&amp;quot;: {&lt;br /&gt;
					$res = $this-&amp;gt;renderEditFieldOptionedCustom($field, $is_multiple, $object, $template);&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
				default: {&lt;br /&gt;
					$res = $xsl ? NULL : &amp;quot;&amp;quot;;&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if($res === false) {&lt;br /&gt;
				return NULL;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if($xsl) {&lt;br /&gt;
				if($data_type == &amp;#039;counter&amp;#039;) $data_type = &amp;#039;int&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
				$res[&amp;#039;attribute:type&amp;#039;] = $data_type;&lt;br /&gt;
				$res[&amp;#039;attribute:id&amp;#039;] = $field-&amp;gt;getId();&lt;br /&gt;
				&lt;br /&gt;
				if($field-&amp;gt;getIsRequired()) {&lt;br /&gt;
					$res[&amp;#039;attribute:required&amp;#039;] = &amp;#039;required&amp;#039;;&lt;br /&gt;
				}&lt;br /&gt;
				if($tip = $field-&amp;gt;getTip()) {&lt;br /&gt;
					$res[&amp;#039;attribute:tip&amp;#039;] = $tip;&lt;br /&gt;
				}&lt;br /&gt;
			} else {&lt;br /&gt;
				$required = $field-&amp;gt;getIsRequired();&lt;br /&gt;
				$res = def_module::parseTemplate($res, array(&lt;br /&gt;
					&amp;#039;required&amp;#039; =&amp;gt; ($required ? &amp;#039;required&amp;#039; : &amp;#039;&amp;#039;),&lt;br /&gt;
					&amp;#039;required_asteriks&amp;#039; =&amp;gt; ($required ? &amp;#039;*&amp;#039; : &amp;#039;&amp;#039;)&lt;br /&gt;
				));&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			return $res;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		public function renderEditFieldStringCustom($field, $is_multiple, $object, $template) {&lt;br /&gt;
		  $field_name = $field-&amp;gt;getName();&lt;br /&gt;
		  list($template_block) = def_module::loadTemplates(&amp;quot;tpls/data/reflection/{$template}.tpl&amp;quot;, &amp;quot;reflection_field_string_&amp;quot; . $field_name);&lt;br /&gt;
		  if(!$template_block){&lt;br /&gt;
			list($template_block) = def_module::loadTemplates(&amp;quot;tpls/data/reflection/{$template}.tpl&amp;quot;, &amp;quot;reflection_field_string&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
			$block_arr = Array();&lt;br /&gt;
&lt;br /&gt;
			if($is_multiple) {&lt;br /&gt;
			&lt;br /&gt;
			} else {				&lt;br /&gt;
				$block_arr[&amp;#039;attribute:name&amp;#039;] = $field_name;&lt;br /&gt;
				$block_arr[&amp;#039;attribute:title&amp;#039;] = $field-&amp;gt;getTitle();&lt;br /&gt;
				$block_arr[&amp;#039;attribute:tip&amp;#039;] = $field-&amp;gt;getTip();&lt;br /&gt;
&lt;br /&gt;
				$block_arr[&amp;#039;node:value&amp;#039;] = ($object) ? $object-&amp;gt;getValue($field-&amp;gt;getName()) : &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
				if($object) {&lt;br /&gt;
					$block_arr[&amp;#039;void:object_id&amp;#039;] = $object-&amp;gt;getId();&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
				$block_arr[&amp;#039;attribute:input_name&amp;#039;] = ($object) ? &amp;quot;data[&amp;quot; . $object-&amp;gt;getId() . &amp;quot;][{$field_name}]&amp;quot; : &amp;quot;data[new][{$field_name}]&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			return def_module::parseTemplate($template_block, $block_arr);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public function renderEditFieldTextCustom($field, $is_multiple, $object, $template) {&lt;br /&gt;
		  		  $field_name = $field-&amp;gt;getName();&lt;br /&gt;
		  list($template_block) = def_module::loadTemplates(&amp;quot;tpls/data/reflection/{$template}.tpl&amp;quot;, &amp;quot;reflection_field_text_&amp;quot; . $field_name);&lt;br /&gt;
		  if(!$template_block){&lt;br /&gt;
			list($template_block) = def_module::loadTemplates(&amp;quot;tpls/data/reflection/{$template}.tpl&amp;quot;, &amp;quot;reflection_field_text&amp;quot;);&lt;br /&gt;
       }&lt;br /&gt;
			$block_arr = Array();&lt;br /&gt;
&lt;br /&gt;
			if($is_multiple) {&lt;br /&gt;
				&lt;br /&gt;
			} else {&lt;br /&gt;
&lt;br /&gt;
				$block_arr[&amp;#039;attribute:name&amp;#039;] = $field_name;&lt;br /&gt;
				$block_arr[&amp;#039;attribute:title&amp;#039;] = $field-&amp;gt;getTitle();&lt;br /&gt;
				$block_arr[&amp;#039;attribute:tip&amp;#039;] = $field-&amp;gt;getTip();&lt;br /&gt;
&lt;br /&gt;
				$block_arr[&amp;#039;node:value&amp;#039;] = ($object) ? $object-&amp;gt;getValue($field-&amp;gt;getName()) : &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
				if($object) {&lt;br /&gt;
					$block_arr[&amp;#039;void:object_id&amp;#039;] = $object-&amp;gt;getId();&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
				$block_arr[&amp;#039;attribute:input_name&amp;#039;] = ($object) ? &amp;quot;data[&amp;quot; . $object-&amp;gt;getId() . &amp;quot;][{$field_name}]&amp;quot; : &amp;quot;data[new][{$field_name}]&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			return def_module::parseTemplate($template_block, $block_arr);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public function renderEditFieldIntCustom($field, $is_multiple, $object, $template) {&lt;br /&gt;
				  $field_name = $field-&amp;gt;getName();&lt;br /&gt;
		  list($template_block) = def_module::loadTemplates(&amp;quot;tpls/data/reflection/{$template}.tpl&amp;quot;, &amp;quot;reflection_field_int_&amp;quot; . $field_name);&lt;br /&gt;
		  if(!$template_block){&lt;br /&gt;
			list($template_block) = def_module::loadTemplates(&amp;quot;tpls/data/reflection/{$template}.tpl&amp;quot;, &amp;quot;reflection_field_int&amp;quot;);&lt;br /&gt;
       }&lt;br /&gt;
			$block_arr = Array();&lt;br /&gt;
&lt;br /&gt;
			if($is_multiple) {&lt;br /&gt;
				&lt;br /&gt;
			} else {&lt;br /&gt;
&lt;br /&gt;
				$block_arr[&amp;#039;attribute:name&amp;#039;] = $field_name;&lt;br /&gt;
				$block_arr[&amp;#039;attribute:title&amp;#039;] = $field-&amp;gt;getTitle();&lt;br /&gt;
				$block_arr[&amp;#039;attribute:tip&amp;#039;] = $field-&amp;gt;getTip();&lt;br /&gt;
&lt;br /&gt;
				$block_arr[&amp;#039;node:value&amp;#039;] = ($object) ? $object-&amp;gt;getValue($field-&amp;gt;getName()) : &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
				if($object) {&lt;br /&gt;
					$block_arr[&amp;#039;void:object_id&amp;#039;] = $object-&amp;gt;getId();&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
				$block_arr[&amp;#039;attribute:input_name&amp;#039;] = ($object) ? &amp;quot;data[&amp;quot; . $object-&amp;gt;getId() . &amp;quot;][{$field_name}]&amp;quot; : &amp;quot;data[new][{$field_name}]&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			return def_module::parseTemplate($template_block, $block_arr);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public function renderEditFieldBooleanCustom($field, $is_multiple, $object, $template) {&lt;br /&gt;
				  $field_name = $field-&amp;gt;getName();&lt;br /&gt;
		  list($template_block) = def_module::loadTemplates(&amp;quot;tpls/data/reflection/{$template}.tpl&amp;quot;, &amp;quot;reflection_field_boolean_&amp;quot; . $field_name);&lt;br /&gt;
		  if(!$template_block){&lt;br /&gt;
			list($template_block) = def_module::loadTemplates(&amp;quot;tpls/data/reflection/{$template}.tpl&amp;quot;, &amp;quot;reflection_field_boolean&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
			$block_arr = Array();&lt;br /&gt;
&lt;br /&gt;
			if ($is_multiple) {&lt;br /&gt;
				&lt;br /&gt;
			} else {&lt;br /&gt;
&lt;br /&gt;
				$block_arr[&amp;#039;attribute:name&amp;#039;] = $field_name;&lt;br /&gt;
				$block_arr[&amp;#039;attribute:title&amp;#039;] = $field-&amp;gt;getTitle();&lt;br /&gt;
				$block_arr[&amp;#039;attribute:tip&amp;#039;] = $field-&amp;gt;getTip();&lt;br /&gt;
&lt;br /&gt;
				$block_arr[&amp;#039;attribute:checked&amp;#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
				$block_arr[&amp;#039;node:value&amp;#039;] = 0;&lt;br /&gt;
				if ($object) {&lt;br /&gt;
					$block_arr[&amp;#039;node:value&amp;#039;] = (int) $object-&amp;gt;getValue($field-&amp;gt;getName());&lt;br /&gt;
					$block_arr[&amp;#039;attribute:checked&amp;#039;] = (bool) $object-&amp;gt;getValue($field-&amp;gt;getName())? &amp;quot;checked&amp;quot; : &amp;quot;&amp;quot;;&lt;br /&gt;
					$block_arr[&amp;#039;void:object_id&amp;#039;] = $object-&amp;gt;getId();&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
				$block_arr[&amp;#039;attribute:input_name&amp;#039;] = ($object) ? &amp;quot;data[&amp;quot; . $object-&amp;gt;getId() . &amp;quot;][{$field_name}]&amp;quot; : &amp;quot;data[new][{$field_name}]&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			return def_module::parseTemplate($template_block, $block_arr);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
		public function renderEditFieldRelationCustom($field, $is_multiple, $object, $template) {&lt;br /&gt;
			if(!($field instanceof umiField)) return;&lt;br /&gt;
			&lt;br /&gt;
			if($guide_id = $field-&amp;gt;getGuideId()) {&lt;br /&gt;
				if(cmsController::getInstance()-&amp;gt;getCurrentMode() != &amp;quot;admin&amp;quot;) {&lt;br /&gt;
					$guide_items = umiObjectsCollection::getInstance()-&amp;gt;getGuidedItems($guide_id);&lt;br /&gt;
				} else {&lt;br /&gt;
					try {&lt;br /&gt;
						$sel = new selector(&amp;#039;objects&amp;#039;);&lt;br /&gt;
						$sel-&amp;gt;types(&amp;#039;object-type&amp;#039;)-&amp;gt;id($guide_id);&lt;br /&gt;
						$total = $sel-&amp;gt;length;&lt;br /&gt;
					} catch (selectorException $e) {&lt;br /&gt;
						$total = 16;&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
					&lt;br /&gt;
					if($total &amp;lt;= 15) {&lt;br /&gt;
						$guide_items = umiObjectsCollection::getInstance()-&amp;gt;getGuidedItems($guide_id);&lt;br /&gt;
					} else {&lt;br /&gt;
						$fieldName = $field-&amp;gt;getName();&lt;br /&gt;
						$guide_items = Array();&lt;br /&gt;
		&lt;br /&gt;
						if($object instanceof iUmiObject) {&lt;br /&gt;
							$val = $object-&amp;gt;getValue($fieldName);&lt;br /&gt;
						} else {&lt;br /&gt;
							$val = false;&lt;br /&gt;
						}&lt;br /&gt;
	&lt;br /&gt;
						if($val &amp;amp;&amp;amp; !is_array($val)) {&lt;br /&gt;
							$val = Array($val);&lt;br /&gt;
						}&lt;br /&gt;
	&lt;br /&gt;
						if(is_array($val)) {&lt;br /&gt;
								$objects = umiObjectsCollection::getInstance();&lt;br /&gt;
								foreach($val as $item_id) {&lt;br /&gt;
										$item = $objects-&amp;gt;getObject($item_id);&lt;br /&gt;
										if($item instanceof iUmiObject) {&lt;br /&gt;
												$guide_items[$item_id] = $item-&amp;gt;getName();&lt;br /&gt;
										}&lt;br /&gt;
										unset($item_id);&lt;br /&gt;
										unset($item);&lt;br /&gt;
								}&lt;br /&gt;
								unset($val);&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			} else {&lt;br /&gt;
				$guide_items = array();&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if(sizeof($guide_items) == 0) {&lt;br /&gt;
				if($object instanceof iUmiObject) {&lt;br /&gt;
					$val = $object-&amp;gt;getValue($field-&amp;gt;getName());&lt;br /&gt;
					if($val &amp;amp;&amp;amp; !is_array($val)) $val = array($val);&lt;br /&gt;
					if(sizeof($val)) {&lt;br /&gt;
						foreach($val as $itemId) {&lt;br /&gt;
							if($item = selector::get(&amp;#039;object&amp;#039;)-&amp;gt;id($itemId)) {&lt;br /&gt;
								$guide_items[$itemId] = $item-&amp;gt;name;&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			$xsl = xslTemplater::getInstance()-&amp;gt;getIsInited();&lt;br /&gt;
&lt;br /&gt;
		  $field_name = $field-&amp;gt;getName();&lt;br /&gt;
&lt;br /&gt;
		  list($template_block, $template_block_line, $template_block_line_a) = def_module::loadTemplates(&amp;quot;tpls/data/reflection/{$template}.tpl&amp;quot;, &amp;quot;reflection_field_relation_&amp;quot; . $field_name, &amp;quot;reflection_field_relation_option_&amp;quot; . $field_name, &amp;quot;reflection_field_relation_option_a_&amp;quot; . $field_name);&lt;br /&gt;
		  if(!$template_block){      &lt;br /&gt;
        list($template_block, $template_block_line, $template_block_line_a, $template_mul_block, $template_mul_block_line, $template_mul_block_line_a) = def_module::loadTemplates(&amp;quot;tpls/data/reflection/{$template}.tpl&amp;quot;, &amp;quot;reflection_field_relation&amp;quot;, &amp;quot;reflection_field_relation_option&amp;quot;, &amp;quot;reflection_field_relation_option_a&amp;quot;, &amp;quot;reflection_field_multiple_relation&amp;quot;, &amp;quot;reflection_field_multiple_relation_option&amp;quot;, &amp;quot;reflection_field_multiple_relation_option_a&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      &lt;br /&gt;
			$block_arr = Array();&lt;br /&gt;
&lt;br /&gt;
			if($object) {&lt;br /&gt;
				$value = $object-&amp;gt;getValue($field-&amp;gt;getName());&lt;br /&gt;
			} else {&lt;br /&gt;
				$value = Array();&lt;br /&gt;
			}&lt;br /&gt;
			$fieldName = $field-&amp;gt;getName();&lt;br /&gt;
			if ($fieldName == &amp;#039;publish_status&amp;#039; &amp;amp;&amp;amp; cmsController::getInstance()-&amp;gt;getCurrentMode() != &amp;quot;admin&amp;quot;) {	&lt;br /&gt;
				return &amp;quot;&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
			if($is_multiple) {&lt;br /&gt;
				$block_arr[&amp;#039;attribute:name&amp;#039;] = $field_name;&lt;br /&gt;
				$block_arr[&amp;#039;attribute:title&amp;#039;] = $field-&amp;gt;getTitle();&lt;br /&gt;
				$block_arr[&amp;#039;attribute:tip&amp;#039;] = $field-&amp;gt;getTip();&lt;br /&gt;
				$block_arr[&amp;#039;attribute:multiple&amp;#039;] = &amp;quot;multiple&amp;quot;;&lt;br /&gt;
				&lt;br /&gt;
				if($guide_id = $field-&amp;gt;getGuideId()) {&lt;br /&gt;
					$block_arr[&amp;#039;attribute:type-id&amp;#039;] = $guide_id;&lt;br /&gt;
					&lt;br /&gt;
					$guide = umiObjectTypesCollection::getInstance()-&amp;gt;getType($guide_id);&lt;br /&gt;
					if($guide instanceof umiObjectType) {&lt;br /&gt;
						if($guide-&amp;gt;getIsPublic()) {&lt;br /&gt;
							$block_arr[&amp;#039;attribute:public-guide&amp;#039;] = true;&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
				$options = Array();&lt;br /&gt;
				foreach($guide_items as $item_id =&amp;gt; $item_name) {&lt;br /&gt;
					$selected = (in_array($item_id, $value)) ? &amp;quot; selected&amp;quot; : &amp;quot;&amp;quot;;&lt;br /&gt;
					&lt;br /&gt;
					$item_object = umiObjectsCollection::getInstance()-&amp;gt;getObject($item_id);&lt;br /&gt;
					if(!is_object($item_object)) {&lt;br /&gt;
						continue;&lt;br /&gt;
					}&lt;br /&gt;
&lt;br /&gt;
					if($item_object-&amp;gt;getValue(&amp;quot;is_hidden&amp;quot;) &amp;amp;&amp;amp; !$selected) {&lt;br /&gt;
						continue;&lt;br /&gt;
					}&lt;br /&gt;
&lt;br /&gt;
					if($template_block_line || $xsl) {&lt;br /&gt;
						$line = ($selected) ? $template_mul_block_line_a : $template_mul_block_line;&lt;br /&gt;
						$line_arr = Array();&lt;br /&gt;
						$line_arr[&amp;#039;attribute:id&amp;#039;] = $item_id;&lt;br /&gt;
						$line_arr[&amp;#039;xlink:href&amp;#039;] = &amp;quot;uobject://&amp;quot; . $item_id;&lt;br /&gt;
						$line_arr[&amp;#039;node:name&amp;#039;] = $item_name;&lt;br /&gt;
&lt;br /&gt;
						if($selected) {&lt;br /&gt;
							$line_arr[&amp;#039;attribute:selected&amp;#039;] = &amp;quot;selected&amp;quot;;&lt;br /&gt;
						}&lt;br /&gt;
&lt;br /&gt;
						$options[] = def_module::parseTemplate($line, $line_arr, false, $item_id);&lt;br /&gt;
					} else {&lt;br /&gt;
						$options .= &amp;quot;&amp;lt;option value=\&amp;quot;{$item_id}\&amp;quot;{$selected}&amp;gt;{$item_name}&amp;lt;/option&amp;gt;\n&amp;quot;;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				if($object) {&lt;br /&gt;
					$block_arr[&amp;#039;void:object_id&amp;#039;] = $object-&amp;gt;getId();&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
				$block_arr[&amp;#039;subnodes:values&amp;#039;] = $block_arr[&amp;#039;void:options&amp;#039;] = $options;&lt;br /&gt;
				$block_arr[&amp;#039;attribute:input_name&amp;#039;] = ($object) ? &amp;quot;data[&amp;quot; . $object-&amp;gt;getId() . &amp;quot;][{$field_name}][]&amp;quot; : &amp;quot;data[new][{$field_name}][]&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
				return def_module::parseTemplate($template_mul_block, $block_arr);&lt;br /&gt;
			} else {&lt;br /&gt;
				$field_name = $field-&amp;gt;getName();&lt;br /&gt;
				$block_arr[&amp;#039;attribute:name&amp;#039;] = $field_name;&lt;br /&gt;
				$block_arr[&amp;#039;attribute:title&amp;#039;] = $field-&amp;gt;getTitle();&lt;br /&gt;
				$block_arr[&amp;#039;attribute:tip&amp;#039;] = $field-&amp;gt;getTip();&lt;br /&gt;
				&lt;br /&gt;
				if($guide_id = $field-&amp;gt;getGuideId()) {&lt;br /&gt;
					$block_arr[&amp;#039;attribute:type-id&amp;#039;] = $guide_id;&lt;br /&gt;
					&lt;br /&gt;
					$guide = umiObjectTypesCollection::getInstance()-&amp;gt;getType($guide_id);&lt;br /&gt;
					if($guide instanceof umiObjectType) {&lt;br /&gt;
						if($guide-&amp;gt;getIsPublic()) {&lt;br /&gt;
							$block_arr[&amp;#039;attribute:public-guide&amp;#039;] = true;&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				$options = &amp;quot;&amp;quot;;&lt;br /&gt;
				foreach($guide_items as $item_id =&amp;gt; $item_name) {&lt;br /&gt;
					$selected = ($item_id == $value) ? &amp;quot; selected&amp;quot; : &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
					$item_object = umiObjectsCollection::getInstance()-&amp;gt;getObject($item_id);&lt;br /&gt;
					if(!is_object($item_object)) {&lt;br /&gt;
						continue;&lt;br /&gt;
					}&lt;br /&gt;
&lt;br /&gt;
					if($item_object-&amp;gt;getValue(&amp;quot;is_hidden&amp;quot;) &amp;amp;&amp;amp; !$selected) {&lt;br /&gt;
						continue;&lt;br /&gt;
					}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
					if($template_block_line || $xsl) {&lt;br /&gt;
						$line = ($selected) ? $template_block_line_a : $template_block_line;&lt;br /&gt;
						$line_arr = Array();&lt;br /&gt;
						$line_arr[&amp;#039;attribute:id&amp;#039;] = $item_id;&lt;br /&gt;
						$line_arr[&amp;#039;xlink:href&amp;#039;] = &amp;quot;uobject://&amp;quot; . $item_id;&lt;br /&gt;
						$line_arr[&amp;#039;node:name&amp;#039;] = $item_name;&lt;br /&gt;
						if($selected) {&lt;br /&gt;
							$line_arr[&amp;#039;attribute:selected&amp;#039;] = &amp;quot;selected&amp;quot;;&lt;br /&gt;
						}&lt;br /&gt;
&lt;br /&gt;
						$options[] = def_module::parseTemplate($line, $line_arr, false, $item_id);&lt;br /&gt;
					} else {&lt;br /&gt;
						$options .= &amp;quot;&amp;lt;option value=\&amp;quot;{$item_id}\&amp;quot;{$selected}&amp;gt;{$item_name}&amp;lt;/option&amp;gt;\n&amp;quot;;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				if($object) {&lt;br /&gt;
					$block_arr[&amp;#039;void:object_id&amp;#039;] = $object-&amp;gt;getId();&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
				$block_arr[&amp;#039;subnodes:values&amp;#039;] = $block_arr[&amp;#039;void:options&amp;#039;] = $options;&lt;br /&gt;
				$block_arr[&amp;#039;attribute:input_name&amp;#039;] = ($object) ? &amp;quot;data[&amp;quot; . $object-&amp;gt;getId() . &amp;quot;][{$field_name}]&amp;quot; : &amp;quot;data[new][{$field_name}]&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
				return def_module::parseTemplate($template_block, $block_arr);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TPL-шаблон в папке tpls/data/reflection/ должен быть примерно следующим:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$FORMS = Array();&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;reflection_fields&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&lt;br /&gt;
&amp;lt;form method=&amp;quot;post&amp;quot; action=&amp;quot;%pre_lang%/data/addNewObject/%object_type_id%/&amp;quot; enctype=&amp;quot;multipart/form-data&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; width=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
	%fields%&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;parent&amp;quot; value=&amp;quot;%parent_id%&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;active&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;system_template&amp;quot; value=&amp;quot;%template%&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;fields&amp;quot; value=&amp;quot;%fields_arr%&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;reflection_field_string_h1&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
  &lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			%title%:&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;%input_name%&amp;quot; value=&amp;quot;%value%&amp;quot; size=&amp;quot;50&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;reflection_field_string&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
  &lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			%title%:&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;%input_name%&amp;quot; value=&amp;quot;%value%&amp;quot; size=&amp;quot;50&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;reflection_field_string_title&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			%title%:&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;%input_name%&amp;quot; value=&amp;quot;%value%&amp;quot; size=&amp;quot;50&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры вызовов макросов:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%data getEditFormCustom(&amp;#039;editpage&amp;#039;, &amp;#039;h1 photo vid menu_pic_ua&amp;#039;)%&lt;br /&gt;
%data getCreateFormCustom(827, &amp;#039;newpage&amp;#039;, &amp;#039;title h1 druzhelyubnost photo menu_pic_ua&amp;#039;, 45)%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
</feed>