YML шаблон для vendor и model с типом поля Выпадающий список
Материал из Umicms
Актуально для версии 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>