Отображение третьего столбца для поля типа Составное
Актуально для версии 19.
Начиная с версии системы 2.8.0, в UMI.CMS появилось поле типа "Составное", которое позволяет создавать товары с опционными свойствами.
У опционного свойства имеется 2 числовых значения <option int="1" float="1">, однако для редактирования доступно только одно (int).
Задача: На примере модуля "Каталог" сделать поле float отображаемым и доступным для редактирования.
Решение: Создадим файл form.modify.custom.xsl в папке styles/skins/modern/data/modules/catalog/ и вставим в него следующий код:
<?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="field/values/value" mode="field-optioned">
<xsl:param name="input-name" />
<xsl:variable name="position" select="position()" />
<div class="layout-row-icon row">
<div class="col-md-6" style="min-height:10px;">
Количество:
<input type="number" class="default edit number" umi:type="int" name="{$input-name}[{$position}][int]" value="{@int}" style="width:40px; display: inline;" />
</div>
<div class="col-md-5">
<xsl:value-of select="object/@name" />
<input type="hidden" name="{$input-name}[{$position}][rel]" value="{object/@id}" />
<input type="number" class="default edit number" umi:type="float" name="{$input-name}[{$position}][float]" value="{@float}" style="display: inline;"/>
<div class="layout-col-icon" style="display: inline;">
<a class="icon-action remove-option" style="display: inline;">
<i class="small-ico i-remove" title="Убрать опцию"></i>
</a>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
Устаревшая информация для старого интерфейса административной панели.
Чтобы отобразить третье поле для страниц модуля "Каталог", создадим в папке /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="field/values/value" mode="field-optioned">
<xsl:param name="input-name" />
<xsl:param name="type">
<xsl:text>float</xsl:text>
</xsl:param>
<xsl:variable name="position" select="position()" />
<tr>
<td>Количество:
<input type="text" style="width:40px;" umi:type="int" name="{$input-name}[{$position}][int]" value="{@int}" />
</td>
<td>
<xsl:value-of select="object/@name" />
<input type="hidden" name="{$input-name}[{$position}][rel]" value="{object/@id}" />
</td>
<td class="center">
<input type="text" umi:type="float" name="{$input-name}[{$position}][float]" value="{@float}" />
</td>
<td class="center narrow">
<a href="#" class="remove">
<img src="/images/cms/admin/mac/table/ico_del.gif" />
</a>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>