Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
%total% для %data doSelection()%

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

Ответов: 5
Просмотров: 2971
Последний ответ 24 Июля 2011, 10:29:40
от albion
Warning: DOMDocument::load(): Entity 'settings-page-id' not def "

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

Ответов: 2
Просмотров: 1741
Последний ответ 31 Августа 2012, 09:22:05
от Babajka
Модуль Меню - заголовки для блоков меню их поля "Название"

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

Ответов: 8
Просмотров: 3615
Последний ответ 06 Июня 2014, 12:06:35
от admin
Требуется по "клику" на элемент увеличить значение поля и показать значение

Автор tkalyuginaРаздел JS и AJAX

Ответов: 0
Просмотров: 273
Последний ответ 02 Сентября 2016, 12:03:55
от tkalyugina
Раздел "Скидки"

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

Ответов: 0
Просмотров: 38
Последний ответ 07 Августа 2017, 13:58:36
от onelawyer

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

*

diii3

  • ***
  • 154
  • +6/-0
    • Просмотр профиля
Вывод картинки "Нет фото"
« : 27 Января 2012, 12:23:42 »
Здравствуйте! Не могу решить вроде не сложный вопрос) Среди свойств объекта каталога есть фотография. Нужно сделать так, чтобы после добавления объекта без фотографии, выводилась картинка "Нет фото" в поле его изображения в каталоге. Как правильно это сделать?

*

BaceH

  • ***
  • 141
  • +21/-0
    • Просмотр профиля
Re:Вывод картинки "Нет фото"
« Ответ #1 : 27 Января 2012, 16:24:10 »
посмотрите файл xsltTpls/library/thumbnails.xsl шаблон <xsl:template name="catalog-thumbnail">
конструкция которая выводит картинку или надпись "нету"
<xsl:with-param name="src">

<xsl:choose>

<xsl:when test="$property/value">

<xsl:value-of select="$property/value" />

</xsl:when>

<xsl:otherwise>&empty-photo;</xsl:otherwise>

</xsl:choose>

</xsl:with-param>
в секции <xsl:otherwise>&empty-photo;</xsl:otherwise> пропишите адресс к своему изображению

*

aizul

  • **
  • 86
  • +0/-0
    • Просмотр профиля
Re:Вывод картинки "Нет фото"
« Ответ #2 : 08 Февраля 2012, 15:41:31 »
Не буду заводить новый топик, спрошу здесь...
Как сделать тоже самое только для картинки анонса новости?

*

BaceH

  • ***
  • 141
  • +21/-0
    • Просмотр профиля
Re:Вывод картинки "Нет фото"
« Ответ #3 : 08 Февраля 2012, 16:05:42 »
покажите шаблон где выводиться анонс с картинкой.

*

aizul

  • **
  • 86
  • +0/-0
    • Просмотр профиля
Re:Вывод картинки "Нет фото"
« Ответ #4 : 08 Февраля 2012, 16:12:03 »
Вот /xsltTpls/modules/news.xsl:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:umi="http://www.umi-cms.ru/TR/umi"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="result[@module = 'news' and @method = 'item']">
<xsl:value-of select="page//property[@name = 'content']/value" disable-output-escaping="yes" />
</xsl:template>

<xsl:template match="result[@module = 'news' and @method = 'rubric']">
<xsl:apply-templates select="document('udata://news/lastlist')/udata" />
</xsl:template>

<xsl:template match="udata[@module = 'news' and @method = 'lastlist']">
<xsl:apply-templates select="items">
<xsl:with-param name="list-class">
<xsl:text>news-lastlist</xsl:text>
</xsl:with-param>
</xsl:apply-templates>
</xsl:template>


<xsl:template match="udata[@method = 'lastlist']//item">
<xsl:param name="item-info" select="document(concat('upage://', @id))" />
<xsl:variable name="date" select="document(concat('udata://system/convertDate/', @publish_time, '/(d-m-Y)'))/udata" />
<li>
<a href="{@link}" umi:element-id="{@id}" umi:field-name="name">
<xsl:value-of select="." />
</a>

<xsl:text> (</xsl:text>
<span umi:element-id="{@id}" umi:field-name="publish_time" umi:format="d-m-Y">
<xsl:value-of select="$date" />
</span>
<xsl:text>)</xsl:text>

<a href="{@link}" umi:element-id="{@id}" umi:field-name="name">
<xsl:apply-templates select="document(concat('upage://', @id, '.anons_pic'))/udata">
<xsl:with-param name="page-id" select="@id" />
</xsl:apply-templates></a>

<xsl:value-of select="$item-info//property[@name = 'anons']/value" disable-output-escaping="yes" />
</li>
</xsl:template>

<!-- short_list -->
<xsl:template match="udata[@module = 'news' and @method = 'lastlist']" mode="short_list">
<xsl:apply-templates select="items" mode="short_list">
<xsl:with-param name="list-class">
<xsl:text>news-lastlist</xsl:text>
</xsl:with-param>
</xsl:apply-templates>
</xsl:template>


<xsl:template match="udata[@method = 'lastlist']//item"  mode="short_list">
<xsl:param name="item-info" select="document(concat('upage://', @id))" />
<xsl:variable name="date" select="document(concat('udata://system/convertDate/', @publish_time, '/(d-m-Y)'))/udata" />
<li>
<a href="{@link}" umi:element-id="{@id}" umi:field-name="name">
<xsl:value-of select="." />
</a>

<xsl:text> (</xsl:text>
<span umi:element-id="{@id}" umi:field-name="publish_time" umi:format="d-m-Y">
<xsl:value-of select="$date" />
</span>
<xsl:text>)</xsl:text>

<!--<xsl:apply-templates select="document(concat('upage://', @id, '.anons_pic'))/udata">
<xsl:with-param name="page-id" select="@id" />
</xsl:apply-templates>-->
</li>
</xsl:template>
<!-- short_list -->


<xsl:template match="property[@name = 'anons_pic']">
<xsl:param name="page-id" />


<img align="right" src="/images/autothumbs{value/@folder}/{value/@name}_50_.{value/@ext}"
umi:element-id="{$page-id}"
umi:field-name="{@name}"
/>

</xsl:template>

<xsl:template match="udata[@module = 'system' and @method = 'makeThumbnail']">
<xsl:param name="page-id" />
<xsl:param name="object-id" />
<xsl:param name="field-name" />

<img src="{src}" umi:element-id="{$page-id}" umi:object-id="{$object-id}" umi:field-name="{$field-name}" />
</xsl:template>


</xsl:stylesheet>

*

BaceH

  • ***
  • 141
  • +21/-0
    • Просмотр профиля
Re:Вывод картинки "Нет фото"
« Ответ #5 : 08 Февраля 2012, 22:49:14 »
правим шаблон <xsl:template match="property[@name = 'anons_pic']">
<xsl:choose> 
          <xsl:when test="{value/@name}">
//если присутствует название картинки выводим картинку
  <img align="right" src="/images/autothumbs{value/@folder}/{value/@name}_50_.{value/@ext}"
umi:element-id="{$page-id}"
umi:field-name="{@name}"
/>
</xsl:when>
          <xsl:otherwise>
  //иначе выводим свою картинку
  //проверяем размер создаваемых превьющек, и делаем тако го же размера заглушку
  //либо продублировать в теге img высоту и ширину
<img align="right" src="выводим_путь_к_своей_картинке.жипег"/>
  </xsl:otherwise>
     </xsl:choose>

*

aizul

  • **
  • 86
  • +0/-0
    • Просмотр профиля
Re:Вывод картинки "Нет фото"
« Ответ #6 : 09 Февраля 2012, 09:54:13 »
Что-то не работает. Шаблон <xsl:template match="property[@name = 'anons_pic']"> исправил на такой:
	<xsl:template match="property[@name = 'anons_pic']">
<xsl:param name="page-id" />

<xsl:choose>
          <xsl:when test="{value/@name}">

  <img align="right" src="/images/autothumbs{value/@folder}/{value/@name}_50_.{value/@ext}"
umi:element-id="{$page-id}"
umi:field-name="{@name}"
/>
</xsl:when>
          <xsl:otherwise>
<img align="right" src="111.jpg"/>
  </xsl:otherwise>
     </xsl:choose>

</xsl:template>

*

BaceH

  • ***
  • 141
  • +21/-0
    • Просмотр профиля
Re:Вывод картинки "Нет фото"
« Ответ #7 : 09 Февраля 2012, 10:35:32 »
возможно причина ошибки состоит при вызове шаблона
<!--<xsl:apply-templates select="document(concat('upage://', @id, '.anons_pic'))/udata">
<xsl:with-param name="page-id" select="@id" />
</xsl:apply-templates>-->
исправить
<xsl:apply-templates select="document(concat('upage://', @id, '.anons_pic'))/udata">
<xsl:with-param name="page-id" select="@id" />
</xsl:apply-templates>

и еще, заглушка 111.jpg в какой папке находится?

*

aizul

  • **
  • 86
  • +0/-0
    • Просмотр профиля
Re:Вывод картинки "Нет фото"
« Ответ #8 : 09 Февраля 2012, 11:26:36 »
Вот исправленный код:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:umi="http://www.umi-cms.ru/TR/umi"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="result[@module = 'news' and @method = 'item']">
<xsl:value-of select="page//property[@name = 'content']/value" disable-output-escaping="yes" />
</xsl:template>

<xsl:template match="result[@module = 'news' and @method = 'rubric']">
<xsl:apply-templates select="document('udata://news/lastlist')/udata" />
</xsl:template>

<xsl:template match="udata[@module = 'news' and @method = 'lastlist']">
<xsl:apply-templates select="items">
<xsl:with-param name="list-class">
<xsl:text>news-lastlist</xsl:text>
</xsl:with-param>
</xsl:apply-templates>
</xsl:template>


<xsl:template match="udata[@method = 'lastlist']//item">
<xsl:param name="item-info" select="document(concat('upage://', @id))" />
<xsl:variable name="date" select="document(concat('udata://system/convertDate/', @publish_time, '/(d-m-Y)'))/udata" />
<li>
<a href="{@link}" umi:element-id="{@id}" umi:field-name="name">
<xsl:value-of select="." />
</a>

<xsl:text> (</xsl:text>
<span umi:element-id="{@id}" umi:field-name="publish_time" umi:format="d-m-Y">
<xsl:value-of select="$date" />
</span>
<xsl:text>)</xsl:text>

<a href="{@link}" umi:element-id="{@id}" umi:field-name="name">
<xsl:apply-templates select="document(concat('upage://', @id, '.anons_pic'))/udata">
<xsl:with-param name="page-id" select="@id" />
</xsl:apply-templates></a>

<xsl:value-of select="$item-info//property[@name = 'anons']/value" disable-output-escaping="yes" />
</li>
</xsl:template>

<!-- short_list -->
<xsl:template match="udata[@module = 'news' and @method = 'lastlist']" mode="short_list">
<xsl:apply-templates select="items" mode="short_list">
<xsl:with-param name="list-class">
<xsl:text>news-lastlist</xsl:text>
</xsl:with-param>
</xsl:apply-templates>
</xsl:template>


<xsl:template match="udata[@method = 'lastlist']//item"  mode="short_list">
<xsl:param name="item-info" select="document(concat('upage://', @id))" />
<xsl:variable name="date" select="document(concat('udata://system/convertDate/', @publish_time, '/(d-m-Y)'))/udata" />
<li>
<a href="{@link}" umi:element-id="{@id}" umi:field-name="name">
<xsl:value-of select="." />
</a>

<xsl:text> (</xsl:text>
<span umi:element-id="{@id}" umi:field-name="publish_time" umi:format="d-m-Y">
<xsl:value-of select="$date" />
</span>
<xsl:text>)</xsl:text>

<xsl:apply-templates select="document(concat('upage://', @id, '.anons_pic'))/udata">
<xsl:with-param name="page-id" select="@id" />
</xsl:apply-templates>
</li>
</xsl:template>
<!-- short_list -->


<xsl:template match="property[@name = 'anons_pic']">
<xsl:param name="page-id" />

<xsl:choose>
          <xsl:when test="{value/@name}">

  <img align="right" src="/images/autothumbs{value/@folder}/{value/@name}_50_.{value/@ext}"
umi:element-id="{$page-id}"
umi:field-name="{@name}"
/>
</xsl:when>
          <xsl:otherwise>
<img align="right" src="/images/cms/design/video-blok.jpg"/>
  </xsl:otherwise>
     </xsl:choose>

</xsl:template>

<xsl:template match="udata[@module = 'system' and @method = 'makeThumbnail']">
<xsl:param name="page-id" />
<xsl:param name="object-id" />
<xsl:param name="field-name" />

<img src="{src}" umi:element-id="{$page-id}" umi:object-id="{$object-id}" umi:field-name="{$field-name}" />
</xsl:template>


</xsl:stylesheet>
После этого сайт перестает работать.
« Последнее редактирование: 09 Февраля 2012, 11:31:03 от aizul »

*

admin

  • *****
  • 2420
  • +172/-1
    • Просмотр профиля
Re:Вывод картинки "Нет фото"
« Ответ #9 : 09 Февраля 2012, 13:00:30 »
у вас там смутно в месте где идет вызов

<xsl:apply-templates select="document(concat('upage://', @id, '.anons_pic'))/udata">
<xsl:with-param name="page-id" select="@id" />
</xsl:apply-templates>

и где идет шаблон для этих узлов
<xsl:template match="property[@name = 'anons_pic']">...

я бы написал точнее,
<xsl:apply-templates select="document(concat('upage://', @id, '.anons_pic'))//property ">
<xsl:with-param name="page-id" select="@id" />
</xsl:apply-templates>
так как в вызове возвращается udata  узел со всем содержимым, а в шаблоне для вызова в match стоит уже property.
наверняка, проблема в какой-то мелочи...

Вот пример кода для вывода картинки anons_pic
<xsl:template match="udata[@module = 'news' and @method = 'lastlist']" mode="short_list">
<xsl:apply-templates select="items/item" mode="short_list" />

</xsl:template>

<xsl:template match="item" mode="short_list">
<xsl:variable name="item-info" select="document(@xlink:href)" />

<div class="news_yslygi_item" umi:element-id="{@id}" umi:region="row">
<div >
<a href="{@link}" umi:field-name="name" umi:empty="пусто">
<xsl:value-of select="." />
</a>
</div>
<div>
<a href="{@link}" umi:field-name="anons_pic" umi:empty="картинка">
<xsl:choose>
<xsl:when test="$item-info//property[@name='anons_pic']/value">
<xsl:variable name="src" select="$item-info//property[@name='anons_pic']/value" />
<xsl:variable name="img_width" select="310" />
<xsl:variable name="img_height" select="auto" />

<xsl:variable name="thumb" select="document(concat('udata://system/makeThumbnail/(.',$src,')/',$img_width,'/',$img_height))/udata/src" />
<img src="{$thumb}"/>
</xsl:when>
<xsl:otherwise>нет картинки</xsl:otherwise>
</xsl:choose>
</a>

</div>
</div>
</xsl:template>


*

aizul

  • **
  • 86
  • +0/-0
    • Просмотр профиля
Re:Вывод картинки "Нет фото"
« Ответ #10 : 09 Февраля 2012, 16:12:00 »
Большое спасибо, все работает.

*

diii3

  • ***
  • 154
  • +6/-0
    • Просмотр профиля
Re:Вывод картинки "Нет фото"
« Ответ #11 : 11 Февраля 2012, 21:26:08 »
Здравствуйте! Если не сложно, по поводу первого сообщения в теме. Не получается разобраться. Есть две строки.

В одной вывод картинки (точнее группы свойств объекта)

<xsl:apply-templates select="document(concat('upage://', @id))/udata/page/properties/group[@name='svojstva_obekta_nedvizhimosti']/property" mode="bl5"/>

Ну и обработчие вывода изображения

  <xsl:template match="property[@type='img_file']" mode="bl5">
 
    <div class="img"> 
      <img src="{.//value}" width="150" />     
    </div>   
   
  </xsl:template>

Подскажите, пожалуйста, как здесь сделать так, чтобы при отсутствии изображения выводилась картинка "Нет фото".



*

diii3

  • ***
  • 154
  • +6/-0
    • Просмотр профиля
Re:Вывод картинки "Нет фото"
« Ответ #12 : 11 Февраля 2012, 22:24:03 »
Все разобрался) Нужно было изменить первый код. Спасибо.