Пример вызова
$this->macros('photoalbum', 'photo', array(<идентификатор фотографии>))
Не используется. Описание фотографии нужно получать из ответа UPage (см. «Страницы: протокол UPage») — для произвольной страницы описания фотографии, или UMI Data — для текущей страницы описания фотографии.
Например, если в шаблоне разметки страниц стоит следующая инструкция:
<div id="page">
...
<div id="content">
<xsl:apply-templates select="result" />
</div>
...
</div>
То мы можем описать шаблон, обрабатывающий все страницы с описаниями фотографий, например, таким образом:
<xsl:template match="result[@module = 'photoalbum'][@method = 'photo']">
<xsl:variable name="filepath" select=".//property[@name = 'photo']/value/@path" />
<h1><xsl:value-of select=".//property[@name = 'h1']/value" /></h1>
<table width="100%">
<tr>
<td style="width: 250px;">
<img>
<xsl:attribute name="src">
<xsl:value-of
select="document(concat('udata://system/makeThumbnail/(', $filepath, ')/250/', 'auto'))//src" />
</xsl:attribute>
</img>
</td>
<td>
<p>Теги:
<xsl:apply-templates select=".//property[@name= 'tags']/value" mode="tags"/>
</p>
<xsl:value-of select=".//property[@name= 'descr']/value" disable-output-escaping="yes" />
</td>
</tr>
</table>
</xsl:template>
И два дополнительных шаблона для вывода тегов:
<xsl:template match="value" mode="tags">
<xsl:value-of select="." />
<xsl:text>, </xsl:text>
</xsl:template>
<xsl:template match="value[position() = last()]" mode="tags">
<xsl:value-of select="." />
</xsl:template>
Вывод информации о фотографии осуществляется по шаблону, указанному в параметре template. Вы можете не указывать этот параметр, тогда для вывода будет использован шаблон по умолчанию — default.tpl
.
Примеры использования
Создайте фотографию с именем myphoto в фотоальбоме myphotos модуля «Фотогалереи».
Создайте файл sample.tpl
в директории /tpls/photoalbum/
и напишите в нем следующий код:
<?php
$FORMS['photo_block'] = <<<END
<table width="100%">
<tr>
<td style="width: 250px;">
%data getProperty('%id%', 'photo', 'view_image')%
</td>
<td>
<p>Теги: %tags%</p>
%descr%
</td>
</tr>
</table>
%comments insert(%id%)%
END;
?>
Создайте страницу «Mоя фотография» в модуле «Структура». В редакторе содержимого страницы введите макрос %photoalbum photo('/myphotos/myphoto', 'sample')%. Сохраните страницу. Теперь на созданной странице должна появиться фотография myphoto.
Вы можете предоставить возможность посетителям оставлять свои комментарии к Вашей фотографии. Для этого смотрите описание макроса %comments insert()% .
Название
%photoalbum photo()% — Выводит подробную информацию о фотографии.
Параметры: photoalbum photo( [element_id = 0, template = 'default'])
- element_id
-
id фотографии, или путь к ней от корня сайта.
- template
-
Имя шаблона, по которому выводится фотография и ее описание.