YML шаблон для vendor и model с типом поля Выпадающий список

Материал из Umicms
Версия от 10:04, 30 сентября 2018; Kublan (обсуждение | вклад) (Новая страница: «'''Актуально 19''' Если поля c идентификаторами proizvoditel и model у вас реализованы с типом данны…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Актуально 19

Если поля c идентификаторами proizvoditel и model у вас реализованы с типом данных выпадающий список, то вам необходимо добавить кастомный шаблон в файл /xsl/export/custom/YML.xsl

Сам шаблон находится в файле /xsl/export/YML.xsl между тэгами:

    <xsl:template match="page[basetype/@method = 'object']">
         <!-- код в шаблоне -->
    </xsl:template>

Необходимо скопировать его и перенести в файл /xsl/export/custom/YML.xsl

В данном шаблоне Вам необходимо заменить условие

                <xsl:when test="(.//property[@name = $vendor]/value != '') and (.//property[@name = $model]/value != '')">
					<xsl:if test=".//property[@name = $typePrefix]/value != ''">
						<typePrefix><xsl:value-of select=".//property[@name = $typePrefix]/value"/></typePrefix>
					</xsl:if>
					<vendor><xsl:value-of select=".//property[@name = $vendor]/value"/></vendor>
					<model><xsl:value-of select=".//property[@name = $model]/value"/></model>
				</xsl:when>

на

                <xsl:when test="(.//property[@name = $vendor]/value != '') and (.//property[@name = $model]/value != '')">
					<xsl:if test=".//property[@name = $typePrefix]/value != ''">
						<typePrefix><xsl:value-of select=".//property[@name = $typePrefix]/value"/></typePrefix>
					</xsl:if>
					<xsl:choose>
						<xsl:when test=".//property[@name = $vendor and @type = 'relation']">
							<xsl:variable name="relation-vendor" select=".//property[@name = $vendor]/value/item/@id" />
							<vendor><xsl:value-of select="document(concat('uobject://', $relation-vendor))/udata/object/@name"/></vendor>
						</xsl:when>
						<xsl:otherwise>
							<vendor><xsl:value-of select=".//property[@name = $vendor]/value"/></vendor>
						</xsl:otherwise>
					</xsl:choose>
					<xsl:choose>
						<xsl:when test=".//property[@name = $model and @type = 'relation']">
							<xsl:variable name="relation-model" select=".//property[@name = $model]/value/item/@id" />
							<model><xsl:value-of select="document(concat('uobject://', $relation-model))/udata/object/@name"/></model>
						</xsl:when>
						<xsl:otherwise>
							<model><xsl:value-of select=".//property[@name = $model]/value"/></model>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>