UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: webtrend от 04 Февраля 2016, 12:24:19

Название: YML выгрузка - вопрос по изображениям
Отправлено: webtrend от 04 Февраля 2016, 12:24:19
Доброго времени суток любители самой крутой cms. Вопрос следующий, хочу передать в маркет товар, у товара 4 поля с картинками, но у одного товара может быть 1 картинка а у другова все 4, так вот необходимо чтобы у того товара где 1 картинка в выгрузке не отображались остальные пустые поля, делаю следующее - <xsl:if test=".//property[@name = 'photo']/value != ''">
          <picture>
            <xsl:value-of select="concat('http://', /umidump/meta/domain, .//property[@name = 'photo']/value)"/>
          </picture>
        </xsl:if>
      <xsl:if test=".//property[@name = 'photo_2']/value and not(value='')">
          <picture>
            <xsl:value-of select="concat('http://', /umidump/meta/domain, .//property[@name = 'photo_2']/value)"/>
          </picture>
        </xsl:if>
      <xsl:if test=".//property[@name = 'photo_3']/value and not(value='')">
          <picture>
            <xsl:value-of select="concat('http://', /umidump/meta/domain, .//property[@name = 'photo_3']/value)"/>
          </picture>
        </xsl:if>

на итоге выгрузка получается следующая - <picture>http://myerotictoys.ru/images/cms/data/import_a8a3bb41701c1e385454bd2ef891223f_19_01_2016/a7d1d14a610f269e32a3fa04ce40ff8a.jpg</picture><picture>http://myerotictoys.ru/</picture><picture>http://myerotictoys.ru/</picture>
в полях где отсутствует картинка выводится адрес сайта, помогите пожалуйста разобраться.
Название: Re: YML выгрузка - вопрос по изображениям
Отправлено: crazygeorgio от 04 Февраля 2016, 17:13:14
такая конструкция не работает <xsl:if test=" .//property[@name = 'photo']/value != '' "> в принципе, нужно писать так <xsl:if test=" not(.//property[@name = 'photo']/value = '') ">

я бы сделал так, если других каких-то ненужных полей с photo  в названии нет)

<xsl:apply-templates select=".//property[contains(@name, 'photo')]" mode="yml-photo">
  <xsl:with-param name="domain" select="/umidump/meta/domain" />
</xsl:apply-templates>

и шаблон

<xsl:template match="property" mode="yml-photo" />
<xsl:template match="property[not(value = '')]" mode="yml-photo">
  <xsl:param name="domain" />
  <picture>
     <xsl:value-of select="concat('http://', $domain, value)"/>
  </picture>
</xsl:template>

p/s/ и друзья, давайте код все-таки вставлять в соответствующие теги, чтобы всем было удобно его читать
Название: Re: YML выгрузка - вопрос по изображениям
Отправлено: webtrend от 04 Февраля 2016, 19:35:09
Добрый день, попробовали, не помогло, все равно та же бяда. Вопрос остается актуален
Название: Re: YML выгрузка - вопрос по изображениям
Отправлено: crazygeorgio от 04 Февраля 2016, 19:58:30
а если так <xsl:template match="property[value != '']" mode="yml-photo">
Название: Re: YML выгрузка - вопрос по изображениям
Отправлено: webtrend от 04 Февраля 2016, 20:03:17
И так тоже к сожалению не получается
Название: Re: YML выгрузка - вопрос по изображениям
Отправлено: crazygeorgio от 04 Февраля 2016, 20:06:07
блин, возможно там что-то другое возвращается, а не ''... посмотрите что вообще umidump возвращает в property через <xsl:copy-of select="." />
Название: Re: YML выгрузка - вопрос по изображениям
Отправлено: webtrend от 04 Февраля 2016, 20:09:53
Передает следующее
<group name="opisanie_tovara">
<title>Описание товара</title>
<property id="497" name="photo" type="img_file" is-important="0">
<title>Фотография</title>
<value path="./images/cms/data/import_a8a3bb41701c1e385454bd2ef891223f_19_01_2016/d4214ed081130b040993623069dd7990.jpg" folder="/images/cms/data/import_a8a3bb41701c1e385454bd2ef891223f_19_01_2016" name="d4214ed081130b040993623069dd7990" ext="jpg" width="400" height="570" is_broken="0">/images/cms/data/import_a8a3bb41701c1e385454bd2ef891223f_19_01_2016/d4214ed081130b040993623069dd7990.jpg</value>
</property>
<property id="521" name="photo_2" type="img_file" is-important="0">
<title>Фотография 2</title>
<value path="./" is_broken="1">/</value>
</property>
<property id="522" name="photo_3" type="img_file" is-important="0">
<title>Фотография 3</title>
<value path="./" is_broken="1">/</value>
</property>
</group>
Название: Re: YML выгрузка - вопрос по изображениям
Отправлено: crazygeorgio от 04 Февраля 2016, 20:12:46
ну вот видите, у вас значит условие должно быть не != '' а != '/'

я бы сделал сразу два условия на всякий случай <xsl:template match="property[not(value = '') and not(value = '/')]" mode="yml-photo">
Название: Re: YML выгрузка - вопрос по изображениям
Отправлено: webtrend от 04 Февраля 2016, 20:20:28
Спасибо огромное, все заработало)