Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Подскажите, пожалуйста, как вывести подсказку в зависимости от цены

Автор nitoitiРаздел Макросы UMI.CMS

Ответов: 1
Просмотров: 1708
Последний ответ 04 Ноября 2014, 19:56:24
от nitoiti
Вывод всех объектов каталога, подскажите

Автор pokerflatРаздел Шаблоны XSLT

Ответов: 5
Просмотров: 2312
Последний ответ 09 Июля 2015, 23:28:38
от john
Подскажите про вкладки в админке (при разработке модуля)

Автор atachРаздел Разработка модулей

Ответов: 2
Просмотров: 2072
Последний ответ 20 Апреля 2014, 16:55:27
от Vladimir
Кто-нибудь подскажите, как в php-шаблонизаторе вызывать extProps

Автор crazygeorgioРаздел Макросы UMI.CMS

Ответов: 6
Просмотров: 622
Последний ответ 22 Декабря 2015, 21:08:39
от e.ioffe
Подскажите как написать правильно %header%

Автор johnРаздел Шаблоны TPL

Ответов: 2
Просмотров: 1668
Последний ответ 31 Августа 2012, 22:43:09
от john

0 Пользователей и 1 Гость просматривают эту тему.

*

aizul

  • **
  • 86
  • +0/-0
    • Просмотр профиля
В этой кмске пока не особо разбираюсь. В общем в админке добавил галерею, в tpl шаблоне она отображается, а в xslt нет.
В главном шаблоне галерею подключил:
Цитировать
<xsl:include href="modules/photoalbum.xsl" />

Вот файл photoalbum.xsl:
Цитировать
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet   version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   xmlns:umi="http://www.umi-cms.ru/TR/umi">


   <xsl:template match="result[@module = 'photoalbum' and @method = 'album']">
      <xsl:apply-templates select="document('udata://photoalbum/album')/udata" />
   </xsl:template>
   
   
   <xsl:template match="udata[@module = 'photoalbum' and @method = 'album']">
      <ul class="photos" umi:module="photoalbum" umi:method="album" umi:element-id="{id}" umi:button-position="bottom left" umi:region="list" umi:sortable="sortable">
         <xsl:apply-templates select="items/item" />
      </ul>
   </xsl:template>
   
   <xsl:template match="udata[@module = 'photoalbum' and @method = 'album']/items/item">
      <xsl:variable name="item" select="document(concat('upage://', @id))/udata" />
      <xsl:variable name="photo" select="$item//property[@name = 'photo']/value" />
   
      <li umi:region="row" umi:element-id="{@id}">
         <img src="{$photo}" width="150" umi:field-name="photo" umi:delete="delete" />
      
         <a href="{@link}" umi:element-id="{@id}" umi:field-name="name" umi:empty="Enter photo name" umi:delete="delete">
            <xsl:value-of select="." />
         </a>
      </li>
   </xsl:template>
   
   
   <xsl:template match="result[@module = 'photoalbum' and @method = 'photo']">
      <xsl:variable name="photo" select="page//property[@name = 'photo']/value" />
      <img src="{$photo}" width="150" umi:field-name="photo" umi:element-id="{page/@id}" />
   </xsl:template>

</xsl:stylesheet>

Вот хтмл код того места, где должна выводиться фотка:
Цитировать
<img src="" width="150" umi:field-name="photo" umi:element-id="13">
Сильно только не пинайте  :)
« Последнее редактирование: 14 Декабря 2011, 22:58:30 от admin »

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
Re:Не отображается галерея. подскажите нубу.
« Ответ #1 : 10 Декабря 2011, 16:31:06 »
попробуй пониже
<xsl:variable name="photo" select="$item//property[@name = 'photo']/value" />

вывести такой код
<textarea col="10" row="20" >
<xsl:copy-of select="$item//property[@name = 'photo']" />
</textarea>

и ты увидишь, что то, что ты получаешь запросом $item//property[@name = 'photo']/value не существует, value вложен глубже (и кстати проверь что в value действительно содержится картинка).

Так что, чтобы вывести value делай так
<xsl:variable name="photo" select="$item//property[@name = 'photo']//value" />

*

aizul

  • **
  • 86
  • +0/-0
    • Просмотр профиля
Re:Не отображается галерея. подскажите нубу.
« Ответ #2 : 11 Декабря 2011, 11:44:52 »
Сейчас файл photoalbum.xsl такой:
Цитировать
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet   version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   xmlns:umi="http://www.umi-cms.ru/TR/umi">


   <xsl:template match="result[@module = 'photoalbum' and @method = 'album']">
      <xsl:apply-templates select="document('udata://photoalbum/album')/udata" />
   </xsl:template>
   
   
   <xsl:template match="udata[@module = 'photoalbum' and @method = 'album']">
      <ul class="photos" umi:module="photoalbum" umi:method="album" umi:element-id="{id}" umi:button-position="bottom left" umi:region="list" umi:sortable="sortable">
         <xsl:apply-templates select="items/item" />
      </ul>
   </xsl:template>
   
   <xsl:template match="udata[@module = 'photoalbum' and @method = 'album']/items/item">
      <xsl:variable name="item" select="document(concat('upage://', @id))/udata" />
      <xsl:variable name="photo" select="$item//property[@name = 'photo']//value" />
   
      <li umi:region="row" umi:element-id="{@id}">
         <img src="{$photo}" width="150" umi:field-name="photo" umi:delete="delete" />
      
         <a href="{@link}" umi:element-id="{@id}" umi:field-name="name" umi:empty="Enter photo name" umi:delete="delete">
            <xsl:value-of select="." />
         </a>
      </li>
   </xsl:template>
   
   
   <xsl:template match="result[@module = 'photoalbum' and @method = 'photo']">
      <xsl:variable name="photo" select="page//property[@name = 'photo']/value" />
      <img src="{$photo}" width="150" umi:field-name="photo" umi:element-id="{page/@id}" />
   </xsl:template>

</xsl:stylesheet>

Фото все равно не отображается.

Цитировать
проверь что в value действительно содержится картинка
А как это сделать, фото в админке в гелерею добавлял.

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
Re:Не отображается галерея. подскажите нубу.
« Ответ #3 : 11 Декабря 2011, 19:06:37 »
ты пробовал вставить
<textarea col="10" row="20" >
<xsl:copy-of select="$item//property[@name = 'photo']" />
</textarea>

что он тебе вывел?

*

aizul

  • **
  • 86
  • +0/-0
    • Просмотр профиля
Re:Не отображается галерея. подскажите нубу.
« Ответ #4 : 11 Декабря 2011, 19:44:31 »
Да пробовал, вывел поле ввода.

*

aizul

  • **
  • 86
  • +0/-0
    • Просмотр профиля
Re:Не отображается галерея. подскажите нубу.
« Ответ #5 : 14 Декабря 2011, 12:29:06 »
Файл photoalbum.xsl я до этого не трогал, наверно это не из-за этого файла.

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
вопрос в том что в поле с фотографией у тебя ничего не было, фото было в поле контент, а в шаблоне фото пытаеться загрузиться из поля photo ? его кстати неплохо было бы проверять на наличие значения, что-то в таком духе.

Этот код подгружает значение из поля 'photo' , если значения нет берется картинка заглушка (она вставляется через языковую сущность &empty-photo;).
потом из картинки делается превью размера 286 на 286 и выводиться ссылка на оригинальную картинку и уменьшенную картинку внутри ссылки.

этот кусок я обычно использую для lightbox эффектов, как раз для них в ссылке есть атрибут rel="prettyPhoto[mixed]"

<xsl:variable name="src">
<xsl:choose>
<xsl:when test="//property[@name = 'photo']/value">
<xsl:value-of select="//property[@name = 'photo']/value" />
</xsl:when>
<xsl:otherwise>&empty-photo;</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="thumbsrc" select="document(concat('udata://system/makeThumbnailFull/(.',$src,')/286/286'))/udata/src" />
<a  rel="prettyPhoto[mixed]" href="{$src}" umi:element-id="{@id}" umi:field-name="{@name}">
<img src="{$thumbsrc1}" />
</a>