UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: shoto от 02 Мая 2012, 13:55:12

Название: Вывод атрибутов у IMG
Отправлено: shoto от 02 Мая 2012, 13:55:12
Добрый день.
вывести атрибут например title для <a href> получается с помощью:
<xsl:attribute name="title"><xsl:value-of select="name"/></xsl:attribute>

а вот как вывести alt для картинки, особенно если они выводятся вот подобным образом:
<img src="{$logo//property[@name='logo']/value}" width="100"/>
и
<xsl:call-template name="catalog-thumbnail">
<xsl:with-param name="element-id" select="$document-page-id" />
<xsl:with-param name="field-name"><xsl:value-of select="@name"/></xsl:with-param>
        <xsl:with-param name="empty">empty-photo;</xsl:with-param>
<xsl:with-param name="width">150</xsl:with-param>
</xsl:call-template>
Название: Re:Вывод атрибутов у IMG
Отправлено: shoto от 02 Мая 2012, 14:07:47
так, с первым вариантом получилось вывести alt, если прописать так:
<img src="{$logo//property[@name='logo']/value}" width="100">
<xsl:attribute name="alt"><xsl:value-of select="name"/></xsl:attribute>
</img>

но вот со вторым вариантом... не понимаю.
хотя и нашла вроде как шаблон вывода /library/thumbnails.xsl
Название: Re:Вывод атрибутов у IMG
Отправлено: sergeron от 02 Мая 2012, 15:39:52
а как вы заполняете этот alt к изображению? делаете доп поле в шаблоне данных для типа Фотография?
Название: Re:Вывод атрибутов у IMG
Отправлено: admin от 02 Мая 2012, 17:39:07
в первом случае, что мешает вам сделать так
<img src="{$logo//property[@name='logo']/value}" width="100" alt="{name}" />

а во втором к сожалению alt никак не предусмотрен для передачи в шаблон  с name="catalog-thumbnail", так что можете сделать с моего урезанного варианта
<xsl:variable name="src">
<xsl:choose>
<xsl:when test="$logo//property[@name='logo']/value">
<xsl:value-of select="$logo//property[@name='logo']/value" />
</xsl:when>
<xsl:otherwise>&empty-photo;</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="thumbsrc" select="document(concat('udata://system/makeThumbnailFull/(.',$src,')/100/100/void/0/1/'))/udata/src" />
<img src="{$thumbsrc}" alt="{$photo-name}"/>

или для тех кто использует лайтбоксы (на примере prettyphoto)
<xsl:variable name="src">
<xsl:choose>
<xsl:when test="$logo//property[@name='logo']/value">
<xsl:value-of select="$logo//property[@name='logo']/value" />
</xsl:when>
<xsl:otherwise>&empty-photo;</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="thumbsrc" select="document(concat('udata://system/makeThumbnailFull/(.',$src,')/100/100/void/0/1/'))/udata/src" />
<a href="{$src}" >
<img src="{$thumbsrc}" alt="{$photo-name}"/>
</a>

Название: Re:Вывод атрибутов у IMG
Отправлено: andreych от 03 Мая 2012, 00:47:10
Если хочется автоматизированно заполнить alt, к примеру для изображений товаров каталога, то достаточно в шаблон catalog-thumbnail дописать к тегу изображения следующий код:
alt="{document(concat('upage://', $element-id))/udata/page/name}"
Так я получаю название товара в альт.
Название: Re:Вывод атрибутов у IMG
Отправлено: shoto от 03 Мая 2012, 08:46:24
в первом случае, что мешает вам сделать так
<img src="{$logo//property[@name='logo']/value}" width="100" alt="{name}" />

:) мешало сделать так то, что я перед name пыталась ставить либо $, либо @, и естественно ничего не получалось:) теперь получилось. спасибо.