Корректное отображение полей в первой группе нового типа данных
В некоторых ситуациях необходимо создать совершенно новый тип данных для страниц, и в этом типе первая группа полей имеет идентификатор не common, и в этой группе уже нет полей h1 и title, тогда необходимо переназначить xslt-шаблон, который отвечает за отображение первой группы, иначе будут проблемы с отображением полей в этой группе.
Если первая группа полей в ваше типе данных имеет идентификатор file, и этот тип относится к модулю "Каталог", то необходимо в папку \styles\skins\mac\data\modules\catalog\ добавить файл form.modify.custom.xsl следующего содержания:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet SYSTEM "ulang://common">
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:umi="http://www.umi-cms.ru/TR/umi">
<xsl:template match="group[position() = 1 and count(../../basetype) and ./@name='file']" mode="form-modify-group-fields">
<xsl:param name="show-name">
<xsl:text>1</xsl:text>
</xsl:param>
<xsl:param name="show-type">
<xsl:text>1</xsl:text>
</xsl:param>
<xsl:if test="@name = 'file'">
<div style="width:50%; float:left; padding-bottom:5px;">
<a href="javascript:void(0);" class="extended_fields_expander">&js-fields-expand;</a>
</div>
</xsl:if>
<xsl:if test="$show-name = '1'">
<xsl:call-template name="std-form-is-active">
<xsl:with-param name="value" select="../../@active = 'active'" />
</xsl:call-template>
<xsl:call-template name="std-form-name">
<xsl:with-param name="value" select="../../name" />
</xsl:call-template>
<xsl:call-template name="std-form-alt-name">
<xsl:with-param name="value" select="../../@alt-name" />
</xsl:call-template>
</xsl:if>
<div class="extended_fields">
<xsl:if test="@name = 'file'">
<xsl:attribute name="style">
<xsl:text>display:none</xsl:text>
</xsl:attribute>
</xsl:if>
<xsl:choose>
<xsl:when test="$show-type = '1'">
<xsl:call-template name="std-form-data-type">
<xsl:with-param name="value" select="../../@type-id" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<input type="hidden" name="type-id" value="{../../@type-id}" />
</xsl:otherwise>
</xsl:choose>
<xsl:apply-templates select="field[not(@type='wysiwyg' or @type='text')]" mode="form-modify" />
</div>
<xsl:apply-templates select="field[@type='wysiwyg' or @type='text']" mode="form-modify" />
</xsl:template>
</xsl:stylesheet>
В данном шаблоне, в трех местах, идентификатор file необходимо заменить на ваш идентифкатор поля.
Данный образом, мы добавляем еще один шаблон для обработки первой группы полей, в типах данных модуля Каталог.