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

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «Начиная с версии системы 2.8.0, в UMI.CMS появилось поле типа "Составное", которое позволяет созд…»)
 
Строка 1: Строка 1:
Начиная с версии системы 2.8.0, в UMI.CMS появилось поле типа "Составное", которое позволяет создавать товары с опционными свойствами, более подробно об этом можно прочитать в статье: [[Работа с опционными свойствами (umi 2.8, tpl шаблоны)]]
+
'''Актуально для версии 19'''
  
В действительности по мимо полей "название наценки" и "значение наценки", у это типа есть еще третье поле, которое можно отобразить и в нем указать количество опций на складе. Потом это поле можно использовать в кастомных скриптах, для отслеживания значений этого поля. Чтобы отобразить третье поле для страниц модуля "Каталог", скопируем в папку '''\styles\skins\mac\data\modules\catalog\''' скопируем файл '''form.modify.custom.xsl''' следующего содержания:
+
Начиная с версии системы 2.8.0, в UMI.CMS появилось поле типа "Составное", которое позволяет создавать товары с опционными свойствами.</br>
 +
У опционного свойства имеется 2 числовых значения <option int="1" float="1">, однако для редактирования доступно только одно (int).
 +
 
 +
'''Задача:''' На примере модуля "Каталог" сделать поле float отображаемым и доступным для редактирования.</br>
 +
'''Решение:''' Создадим файл '''form.modify.custom.xsl''' в папке '''styles/skins/modern/data/modules/catalog/''' и вставим в него следующий код:
 
<source lang="xml">
 
<source lang="xml">
 
<?xml version="1.0" encoding="utf-8"?>
 
<?xml version="1.0" encoding="utf-8"?>
Строка 7: Строка 11:
  
 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:umi="http://www.umi-cms.ru/TR/umi">
 
<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:template match="field/values/value" mode="field-optioned">
      <xsl:param name="input-name" />
+
<xsl:param name="input-name" />
      <xsl:param name="type">
+
<xsl:variable name="position" select="position()" />
        <xsl:text>float</xsl:text>
+
<div class="layout-row-icon row">
      </xsl:param>
+
<div class="col-md-6" style="min-height:10px;">
      <xsl:variable name="position" select="position()" />
+
Количество:
      <tr>
+
<input type="number" class="default edit number" umi:type="int" name="{$input-name}[{$position}][int]" value="{@int}" style="width:40px; display: inline;" />
        <td>Количество:
+
</div>
          <input type="text" style="width:40px;" umi:type="int" name="{$input-name}[{$position}][int]" value="{@int}" />
+
<div class="col-md-5">
        </td>
+
<xsl:value-of select="object/@name" />
        <td>
+
<input type="hidden" name="{$input-name}[{$position}][rel]" value="{object/@id}" />
          <xsl:value-of select="object/@name" />
+
<input type="number" class="default edit number" umi:type="float" name="{$input-name}[{$position}][float]" value="{@float}" style="display: inline;"/>
          <input type="hidden" name="{$input-name}[{$position}][rel]" value="{object/@id}" />
+
<div class="layout-col-icon" style="display: inline;">
        </td>
+
<a class="icon-action remove-option" style="display: inline;">
        <td class="center">
+
<i class="small-ico i-remove" title="Убрать опцию"></i>
          <input type="text" umi:type="float" name="{$input-name}[{$position}][float]" value="{@float}" />
+
</a>
        </td>
+
</div>
        <td class="center narrow">
+
</div>
          <a href="#" class="remove">
+
</div>
            <img src="/images/cms/admin/mac/table/ico_del.gif" />
+
     </xsl:template>  
          </a>
 
        </td>
 
      </tr>
 
     </xsl:template>
 
   
 
 
</xsl:stylesheet>
 
</xsl:stylesheet>
 
</source>
 
</source>
  
В итоге, при редактировании страницы, для поля типа "Составное" будет отображено третье поле, слева от "названия наценки".
+
<hr></br>
 +
'''Устаревшая информация для старого интерфейса административной панели.'''</br>
 +
Чтобы отобразить третье поле для страниц модуля "Каталог", создадим в папке '''/styles/skins/mac/data/modules/catalog/''' файл '''form.modify.custom.xsl''' следующего содержания:
 +
<source lang="xml">
 +
<?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>
 +
</source>
  
 
[[Категория: Верстка в XSLT]][[Категория: API]]
 
[[Категория: Верстка в XSLT]][[Категория: API]]

Версия 12:21, 14 декабря 2018

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