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>