Формирование YML файла для разных доменов в системе
Материал из Umicms
В версии системы 2.8.1.3 и ниже, при формировании YML файла, такие параметры как name и company берутся из модуля "Конфигурация", вкладка "Глобальные", поле "Название сайта". Из-за этого при формировании YML-файла, XML-данные будут с указанием одного и того же "Названия сайта". Чтобы исправить данное обстоятельство, можно использовать решение, которое будет описано далее. В файле classes/modules/custom.php добавляем кастомный метод:
public function ymlcompany(){ $element = cmsController::getInstance()->getCurrentDomain()->getHost(); return $element; }
а шаблон /xsl/export/custom/YML.xsl настраиваем следующим образом:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl" xmlns:udt="http://umi-cms.ru/2007/UData/templates" extension-element-prefixes="php" exclude-result-prefixes="xsl php udt"> <xsl:template match="umidump[@version='2.0']"> <xsl:variable name="date2" select="document('udata://system/convertDate/now/(Y-m-d%20H:i)')/udata" /> <yml_catalog date="{$date2}"> <shop> <name> <xsl:value-of select="document('udata://custom/ymlcompany')/udata" /> </name> <company> <xsl:value-of select="document('udata://custom/ymlcompany')/udata" /> </company> <xsl:if test="phone"> <phone> <xsl:value-of select="phone" /> </phone> </xsl:if> <url> <xsl:value-of select="concat('http://', meta/domain)" /> </url> <currencies> <xsl:choose> <xsl:when test="count($currency/item)"> <xsl:apply-templates select="$currency/item" mode="currency-list" /> </xsl:when> <xsl:otherwise> <currency id="RUB" rate="1"/> </xsl:otherwise> </xsl:choose> </currencies> <categories> <xsl:apply-templates select="pages/page[basetype/@method = 'category']" /> </categories> <offers> <xsl:apply-templates select="pages/page[basetype/@method = 'object']" /> </offers> </shop> </yml_catalog> </xsl:template> </xsl:stylesheet>
В вашем аккаунте Яндекс-Маркета, необходимо будет указывать ссылки на yml-данные с указанием разных доменов системы, т.е.:
_http://sait1.ru/admin/exchange/get_export/119616/?as_file=0 _http://sait2.ru/admin/exchange/get_export/116085/?as_file=0
В итоге, в блоках name и company будет указан текущий домен сайта, а не из настроек модуля "Конфигурация"
