Вывод уменьшенного изображения картинки на XSLT — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
Строка 14: Строка 14:
  
 
3. Теперь выведем картинку.
 
3. Теперь выведем картинку.
  <img src="'''http://localhost'''{$test2}"/>
+
  <img src="'''httр://localhost'''{$test2}"/>
В данном случае http://localhost - это домен, в Вашей системе должен быть адрес Вашего сайта.
+
В данном случае httр://localhost - это домен, в Вашей системе должен быть адрес Вашего сайта.
  
 
== Итог ==
 
== Итог ==
Строка 21: Строка 21:
 
  <xsl:variable name="test1" select="document('upage://47.photo)/udata/property/value" />
 
  <xsl:variable name="test1" select="document('upage://47.photo)/udata/property/value" />
 
  <xsl:variable name="test2" select="document(concat('udata://system/makeThumbnail/(.', $test1, ')/(auto)/103'))/udata/src"/>
 
  <xsl:variable name="test2" select="document(concat('udata://system/makeThumbnail/(.', $test1, ')/(auto)/103'))/udata/src"/>
  <img src="http://localhost{$test2}"/>
+
  <img src="httр://localhost{$test2}"/>
 
[[Категория:Шаблонизаторы]][[Категория:Верстка в XSLT]]
 
[[Категория:Шаблонизаторы]][[Категория:Верстка в XSLT]]

Версия 07:27, 1 августа 2012

Задача

Вывести уменьшенную картинку. Аналогично макросу %system makeThumbnail()% в tpl-шаблонах. Рассмотрим пример на

Решение

При решении данной проблемы используем переменные.

1. На первом шаге извлечём в переменную test1 адрес картинки нормального размера из поля "Фотография" в объекте каталога.

<xsl:variable name="test1" select="document('upage://47.photo')/udata/property/value" />

В данном случае 47 - это id объекта каталога, вместо этого может быть например переменный элемент @id. В данном случае надо будет использовать функцию concat(), которая позволяет объединить статичные и переменные элементы. Photo в данном случае это идентификатор поля в котором введён адрес картинки.

2. На втором шаге используем метод makeThumbnail для получания адреса уменьшенной картинки. Этот адрес запишем в переменную test2.

<xsl:variable name="test2" select="document(concat('udata://system/makeThumbnail/(.', $test1, ')/(auto)/103'))/udata/src"/>

В данном случае auto - обозначает автоматический расчёт ширины в пропорции к высоте. 103 - высота картинки в пикселях.

3. Теперь выведем картинку.

<img src="httр://localhost{$test2}"/>

В данном случае httр://localhost - это домен, в Вашей системе должен быть адрес Вашего сайта.

Итог

<xsl:variable name="test1" select="document('upage://47.photo)/udata/property/value" />
<xsl:variable name="test2" select="document(concat('udata://system/makeThumbnail/(.', $test1, ')/(auto)/103'))/udata/src"/>
<img src="httр://localhost{$test2}"/>