Логотип

Документация по макросам и шаблонам UMI.CMS

Пример вызова

$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.

Используемые шаблоны

Макрос оперирует шаблонами, находящимися в каталоге /tpls/photoalbum/.

Используемые блоки шаблона

photo_block

Блок вывода информации о фотографии.

%id%

id фотографии.

%name%

Имя фотографии.

Примеры использования

Создайте фотографию с именем 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

Имя шаблона, по которому выводится фотография и ее описание.

Описание

Макрос выводит подробное описание фотографии, указанной в параметре element_id. Если параметр не указан, система берет id текущей страницы.

Дополнительные сведения