О дополнительных изображениях

#
Re: О дополнительных изображениях
HostCMS писал(а):
что такое тэг для свойства?


xsl:if test="property[@xml_name='item_photos']/small_image/file_path!=''">
<a href="{property[@xml_name = 'item_photos']/file_path}" rel="lightbox" title="{name}">   <img src="{property[@xml_name = 'item_photos']/small_image/file_path}"  alt="" /></a></xsl:if>



у меня свойство типа файл item_photos повторяется 5 раз для товара

в моем коде только один раз выводится а мне надо чтобы все вывелись
ку
Модератор
#
Re: О дополнительных изображениях
я выше показал где ошибка была. Если у Вас не работает - покажите XML и XSL, получится предметный разговор.
#
Re: О дополнительных изображениях
я вас не понял сначала. да все ок спасибо
...

но у меня вот следующая ситуация
есть свойство,остальные повторяются 5раз

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

У меня первое свойство это картинка одного размера а остальные свойства картинки меньшего размера

То есть реализация: на странице товара картинка 300x200 со ссылкой на большую фотографию
а ниже под ней идут одна за другой(align="left" меньшего размера 100x600 со ссылками так же на большие фотографии

Ниже шаблон и вывод всех свойcтв.
Все картинки получаются в ряд.
Как бы отделить первое свойство от остальных для нужного отображения тк первое свойство это большая картинка и она должна быть на одной строке а остальные под ней


Шаблон


<!-- Шаблон вывода дополнительных свойств -->
<xsl:template match="property">
<xsl:choose>
<xsl:when test="type = '1'"><a href="/image/file_path" rel="lightbox" title="{name}"><img src="{small_image/file_path}" align="left"/></a></xsl:when>
<xsl:otherwise>
  <xsl:value-of disable-output-escaping="yes" select="name"/><xsl:value-of disable-output-escaping="yes" select="value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>



Вызываю


<div class="right_item">
<xsl:apply-templates select="property"/>
</div>



ку
#
Re: О дополнительных изображениях
оу вроде разобраля обернув шаблон в див заданной ширины

upd хотя нет - мне все равно надо применить разные css стили для свойств

Все-таки интересно как отделять свойство(а) из общего вызова?

так понимаю вывод делать по тегу первого свойства + общий вызов - там считать с какого номера выводить свойства?

спасибо за помощь
ку
#
Re: О дополнительных изображениях
таксс мысли в слух но это вроде приятно когда начинаешь понимать

вызываю два свойства


<xsl:apply-templates select="property[@xml_name = 'item_photo']" />
<xsl:apply-templates select="property[@xml_name = 'item_photos']" />


так понимаю что нужно просто сделать еще один шаблон и применить к вызову второго свойства.
чтобы отобразить их по разному
ку
#
Re: О дополнительных изображениях
Большое спасибо! С дополнительным изображением получилось.

Подскажите, нельзя ли сделать что-бы изображение при нажатии на нем, открывалось в окне равном по габаритам этому изображению? У меня большая картинка открывается в окне на весь экран, когда изображение намного меньше.

Спасибо.  
Модератор
#
Re: О дополнительных изображениях
vasilev писал(а):
Подскажите, нельзя ли сделать что-бы изображение при нажатии на нем, открывалось в окне равном по габаритам этому изображению? У меня большая картинка открывается в окне на весь экран, когда изображение намного меньше.

Посмотрите JS-код, в нем должны указываться размеры для окна.

compaq,
Ваш вопрос можно решать по-разному. Во первых для одних и тех-же узлов можно применять разные mode, тогда будет обрабатываться разными шаблонами, вот например:
<xsl:apply-templates select="property"/>

<xsl:apply-templates select="property" mode="mymode" />

<xsl:template match="property">
...
</xsl:template>

<xsl:template match="property" mode="mymode">
...
</xsl:template>


Также можно использовать position() при вызове, например:
<xsl:apply-templates select="property[position() = 1]"/>

<xsl:apply-templates select="property[position() > 1]" mode="mymode" />

<xsl:template match="property">
...
</xsl:template>

<xsl:template match="property" mode="mymode">
...
</xsl:template>


Надеюсь ответил на Ваши вопросы
#
Re: О дополнительных изображениях
"Посмотрите JS-код, в нем должны указываться размеры для окна."

Как получить доступ для редактирования этого кода?

Спасибо.
Модератор
#
Re: О дополнительных изображениях
vasilev,
В браузере открыть HTML-код и посмотреть.
#
Re: О дополнительных изображениях
HostCMS писал(а):
Надеюсь ответил на Ваши вопросы


спасибо! много прояснилось для дальнешей работы с cms и xls
вроде информация ничтожна - всего два параметра а сделать можно многое


здесь же вопрос в тему

каким образом я могу сделать проверку - если нет свойста (не заполнено) то не выводить его

при ситуации что таких свойств с одним тегом больше одного

например в моем случае


шаблон

<xsl:template match="property" mode="photos">
<xsl:choose>
<xsl:when test="type = '1'"><a href="{file_path}" rel="lightbox[roadtrip]" title="{name}"><img src="{small_image/file_path}" alt="" class="small"/></a></xsl:when>
<xsl:otherwise>
  <xsl:value-of disable-output-escaping="yes" select="name"/><xsl:value-of disable-output-escaping="yes" select="value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>


вывожу

<xsl:apply-templates select="property[@xml_name = 'item_photos']" mode="photos"/>


итог - 4картинки.
но если одно поле не заполено  то выводится вместо этой картинки шаблон пустой без картинки.
(стиль с бордерами поэтому и видно на странице)

то есть конструкция:
<a href="{file_path}" rel="lightbox[roadtrip]" title="{name}"><img src="{small_image/file_path}" alt="" class="small"/></a>




и вдогонку вопрос как сделать - почти тоже самое но если свойство не заполнено то вывести информацию например "нет фото"


то есть у меня есть

<xsl:apply-templates select="property[@xml_name = 'item_photo']"/>


шаблон такой же как и выше
ку
Авторизация