Корректное отображение полей в первой группе нового типа данных
Материал из Umicms
В некоторых ситуациях необходимо создать совершенно новый тип данных для страниц, и в этом типе первая группа полей имеет идентификатор не 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 необходимо заменить на ваш идентифкатор поля.
Данный образом, мы добавляем еще один шаблон для обработки первой группы полей, в типах данных модуля Каталог.
