Отображение третьего столбца для поля типа Составное

Материал из Umicms
Перейти к:навигация, поиск

Актуально для версии 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>