UMIhelp

Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: atach от 31 Марта 2016, 16:03:29

Название: Активность страницы при синхронизации
Отправлено: atach от 31 Марта 2016, 16:03:29
Добрый день, подскажите такой вопрос, при синхронизации с "Мой склад", если остаток нулевой, то страница становится не активной. Обмен идет по стандартной точке /admin/exchange/auto/....

Но не могу найти эту строчку в коде. Как можно убрать что бы не свойство активность не изменялось
 
Название: Re: Активность страницы при синхронизации
Отправлено: aghigay от 31 Марта 2016, 16:23:15
Рекомендую не смотреть на функцию.

Возьмите событие и делайте обработку в момент его срабатывания.

В частности, в ЮМИ есть событие exchangeOnUpdateElement (http://api.docs.umi-cms.ru/razrabotka_nestandartnogo_funkcionala/sobytijnaya_model_umicms/standartnye_tochki_vyzova/#sel=4:803,4:834) - оно подходит для этой цели лучше всего.

PS: Возможно, что лучше подойдет exchangeOnUpdateObject
Название: Re: Активность страницы при синхронизации
Отправлено: atach от 31 Марта 2016, 16:26:22
Дело в том что там версия в которой нет ещё события exchangeOnUpdateObject, есть только по изменению объекта, но он я так понял срабатывает только в админке systemModifyObject
Название: Re: Активность страницы при синхронизации
Отправлено: aghigay от 31 Марта 2016, 16:33:19
Вот она, грусть старых версий :-)

Тогда смотрите на папку /xsl/import/custom и может вам повезет найти там commerceML2.xsl, который, теоретически, должен обрабатывать импорт в указанном формате. Тогда можно туда прописать нужные правила и все будет ок.
Название: Re: Активность страницы при синхронизации
Отправлено: e.ioffe от 31 Марта 2016, 18:11:05
Цитировать
Рекомендую не смотреть на функцию.

Возьмите событие и делайте обработку в момент его срабатывания.

С точки зрения производительности, на событие лучше выносить только логику, которую нельзя реализовать преобразованиями (например, загрузку опционных свойств из-за особенностей umiDump).

Цитировать
Добрый день, подскажите такой вопрос, при синхронизации с "Мой склад", если остаток нулевой, то страница становится не активной. Обмен идет по стандартной точке /admin/exchange/auto/....

Но не могу найти эту строчку в коде. Как можно убрать что бы не свойство активность не изменялось

Смотрите файлы /xsl/import/commerceMl.xsl и /xsl/import/custom/commerceML.xsl

В них должна быть строчка вроде

<xsl:attribute name="is-active">
<xsl:choose>
<xsl:when test="Количество &lt; 1 or Количество = ''">0</xsl:when>
<xsl:otherwise>1</xsl:otherwise>
</xsl:choose>
</xsl:attribute>

Либо любая другая с is-active. С ней и нужно работать.