YML шаблон для vendor и model с типом поля Выпадающий список — различия между версиями
Материал из Umicms
Kublan (обсуждение | вклад) (Новая страница: «'''Актуально 19''' Если поля c идентификаторами proizvoditel и model у вас реализованы с типом данны…») |
Whoa (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | '''Актуально 19''' | + | '''Актуально для версии 19.''' |
− | Если поля c идентификаторами proizvoditel и model у вас реализованы с типом данных | + | Если поля c идентификаторами proizvoditel и model у вас реализованы с типом данных "Выпадающий список", |
− | то вам необходимо добавить кастомный шаблон в файл /xsl/export/custom/YML.xsl | + | то вам необходимо добавить кастомный шаблон в файл /xsl/export/custom/YML.xsl. |
Сам шаблон находится в файле /xsl/export/YML.xsl между тэгами: | Сам шаблон находится в файле /xsl/export/YML.xsl между тэгами: | ||
Строка 11: | Строка 11: | ||
</source> | </source> | ||
− | Необходимо скопировать его и перенести в файл /xsl/export/custom/YML.xsl | + | Необходимо скопировать его и перенести в файл /xsl/export/custom/YML.xsl. |
− | В данном шаблоне | + | В данном шаблоне необходимо заменить условие |
<source lang='xml'> | <source lang='xml'> | ||
<xsl:when test="(.//property[@name = $vendor]/value != '') and (.//property[@name = $model]/value != '')"> | <xsl:when test="(.//property[@name = $vendor]/value != '') and (.//property[@name = $model]/value != '')"> |
Текущая версия на 10:05, 1 октября 2018
Актуально для версии 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>