UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: Axiomateria от 05 Сентября 2013, 23:27:25

Название: Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: Axiomateria от 05 Сентября 2013, 23:27:25
Здравствуйте!

Задача такая: отобразить на странице объекта каталога (гостиницы) группу полей с двумя разными полями.
1-е поле с текстом (тип "HTML-текст") + 2-е поле с фотографией (тип данных "Фотография").
То есть пользователь в этой админке заполняет 1-е поле текстом, а во 2-е поле загружает фотографию через файловый менеджер ( как пример - через кнопку "Обзор" по аналогии с процессом загрузки фотографий в новостях)

И на сайте в итоге и по идее пользователь видит загруженное фото рядом с текстом, при чём что главное фотография при нажатии увеличивается с эффектом "лайтбокс".


Решение почти реализовано так:
<xsl:template match="udata" mode="hotel-object-view">
   <xsl:apply-templates select=".//group[@name = 'hotel_restaurants' and not(property/value='')]" mode="hotel-restaurant" />
</xsl:template>

   <xsl:template match="group" mode="hotel-restaurant">
         <h3><xsl:value-of select="concat(title, ':')" /></h3>
         <xsl:apply-templates select="property" disable-output-escaping="yes" mode="hotel-restaurant" />
</xsl:template>
    <xsl:template match="property[@type='img_file']/value" mode="hotel-restaurant">
<div class="cell1"><xsl:value-of select="." disable-output-escaping="yes" /></div>  
</xsl:template>
<xsl:template match="property" mode="hotel-restaurant">                                  
          <div class="cell2"><xsl:value-of select="value" disable-output-escaping="yes" /> </div>
</xsl:template>
 

где  <h3><xsl:value-of select="concat(title, ':')" /></h3> - заголовок группы полей, а
    <xsl:template match="property[@type='img_file']/value" mode="hotel-restaurant">
      <div class="cell1"><xsl:value-of select="." disable-output-escaping="yes" /></div>  
   </xsl:template>    

попытка вывести отдельно фотографию....

Но на странице объекта каталога успешно выводиться только текст,
а вместо фотографии только голая ссылка на неё "/images/hotels_spb/5_star_hotels/astoria_kandinsky_bar.jpg"

Вопрос:
как сделать так, что бы в шаблоне можно было сообщить системе, что изображение надо выводить в таком формате:
<div class="cell1">
                       <a class="fancybox-buttons" rel="media-gallery" href="{.//property[@name = 'picture_situation']/value}" title="{.//group[@name='hotel_restaurants']/title}">
                           <xsl:call-template name="catalog-thumbnail">
             <xsl:with-param name="element-id" select="page/@id" />
             <xsl:with-param name="field-name">picture_situation</xsl:with-param>
             <xsl:with-param name="width">220</xsl:with-param>
              </xsl:call-template>
                        </a>
                      </div>

?

 
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: Axiomateria от 05 Сентября 2013, 23:38:21
В дополнение к сему - пробовал такой вариант, как
   <xsl:template match="group" mode="hotel-restaurant">
         <h3><xsl:value-of select="concat(title, ':')" /></h3>
                              <div class="cell1">
                       <a class="fancybox-buttons" rel="media-gallery" href="{.//property[@name = 'picture_situation']/value}" title="{.//group[@name='hotel_restaurants']/title}">
                           <xsl:call-template name="catalog-thumbnail">
             <xsl:with-param name="element-id" select="page/@id" />
             <xsl:with-param name="field-name">picture_situation</xsl:with-param>
             <xsl:with-param name="width">220</xsl:with-param>
              </xsl:call-template>
                        </a>
                      </div>
         <xsl:apply-templates select="property" disable-output-escaping="yes" mode="hotel-restaurant" />
</xsl:template>

Но в таком случае миниатюрка (превьюшка) загруженной фотографии не грузится, хотя при нажатии на неё фотография успешно увеличивается "лайтбоксом".
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: NOIRMAN от 06 Сентября 2013, 11:18:17
Попробуйте заменить имена параметров на те же имена, но с нижним подчеркиванием  - "element-id" = "element_id".
В одном из своих проектов именно это и помогло ...
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: NOIRMAN от 06 Сентября 2013, 12:26:14
Долго разглядывал первое сообщение (там где фотография не выводится рядом с текстом) и не нашел в коде нигде вызова тега <img>.
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: Axiomateria от 06 Сентября 2013, 12:43:49
Попробуйте заменить имена параметров на те же имена, но с нижним подчеркиванием  - "element-id" = "element_id".
В одном из своих проектов именно это и помогло ...
К сожалению не сработало....
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: Axiomateria от 06 Сентября 2013, 12:48:54
Долго разглядывал первое сообщение (там где фотография не выводится рядом с текстом) и не нашел в коде нигде вызова тега <img>.

Действительно этого тега нет в этом шаблоне, так как тег <img> вставляется через вызов
                        <xsl:call-template name="catalog-thumbnail">
           <xsl:with-param name="element-id" select="page/@id" />
           <xsl:with-param name="field-name">photo_conference_hall</xsl:with-param>
           <xsl:with-param name="width">220</xsl:with-param>
           </xsl:call-template>
Этот вызов я скопировал из шаблона фотоальбома для формирования превьюшки фотографии с фиксированным размером ширины 220px

И главная она же единственная проблема в том, что сама превьюшка не отображается, когда как при нажатии на её пувстое место большая фотография успешно раскрывается в режиме "лайтбокс"...

Можно уонечно и сразу так вместо этого вызова вставить
<img src="{.//property[@name = 'picture_situation']/value}" alt="{.//property[@name='h1']/value}" />
НО тогда как размер превьюшкеи зафиксировать в 220px если без CSS? .
 
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: e.ioffe от 06 Сентября 2013, 13:04:50
Дайте ссылку на страницу
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: Axiomateria от 06 Сентября 2013, 13:25:34
Дайте ссылку на страницу
Пока сайт на заглушке, но я могу дать вам кусок кода из xml этой страницы:
<group id="436" name="conferencing_capabilities">
<title>Конференц возможности</title>
<property id="447" name="photo_conference_hall" type="img_file">
<title>Фото конференц зала</title>
<value path="./images/hotels_spb/5_star_hotels/astoria_ballroom.jpg" folder="/images/hotels_spb/5_star_hotels" name="astoria_ballroom" ext="jpg" width="800" height="531">/images/hotels_spb/5_star_hotels/astoria_ballroom.jpg</value>
</property><property id="448" name="description_conference_features_hotel" type="wysiwyg">
<title>Описание конференц возможностей</title>
<value>
  <p>Гостиница Астория располагает большими ресурсами для проведения мероприятий любого уровня - от неформальной встречи в узком кругу до крупной международной конференции.</p>
  <p>Астория может разместить до 450 человек, объединив Банкетный зал и зал Зимний сад, где в распоряжение гостей будет предоставлено самое современное оборудование.</p>
  <p>В Астории имеются переговорные комнаты с новейшими техническими средствами, широкополосным и беспроводным Интернетом.</p>
  <p>К услугам гостей также Бизнес-центр.</p>
</value>
</property>
</group>
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: NOIRMAN от 06 Сентября 2013, 14:09:25
Покажите код вызываемого шаблона "catalog-thumbnail".
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: Axiomateria от 06 Сентября 2013, 14:33:16
Покажите код вызываемого шаблона "catalog-thumbnail".
Если я вас правильно понял, то код HTML такой в итоге получается, где <img src="/images/cms/thumbs/b9efc5210e47f3649ffa75dc61236c6c30f2196e/logo_220_auto_5_80.png" это грузящаяся картинка "no foto" из demodizzy
<a class="fancybox-buttons" rel="media-gallery" href="/images/hotels_spb/5_star_hotels/astoria_ballroom.jpg" title="На фотографии зал для конференций в отеле"><img src="/images/cms/thumbs/b9efc5210e47f3649ffa75dc61236c6c30f2196e/logo_220_auto_5_80.png" alt="Главная" itemprop="image" height="204" width="220"></a>
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: NOIRMAN от 06 Сентября 2013, 17:36:51
Если я вас правильно понял, то код HTML такой в итоге получается, где <img src="/images/cms/thumbs/b9efc5210e47f3649ffa75dc61236c6c30f2196e/logo_220_auto_5_80.png" это грузящаяся картинка "no foto" из demodizzy
<a class="fancybox-buttons" rel="media-gallery" href="/images/hotels_spb/5_star_hotels/astoria_ballroom.jpg" title="На фотографии зал для конференций в отеле"><img src="/images/cms/thumbs/b9efc5210e47f3649ffa75dc61236c6c30f2196e/logo_220_auto_5_80.png" alt="Главная" itemprop="image" height="204" width="220"></a>
Не совсем правильно меня поняли. Код шаблона name="catalog-thumbnail" хочется посмотреть
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: Axiomateria от 06 Сентября 2013, 20:30:34
Если я вас правильно понял, то код HTML такой в итоге получается, где <img src="/images/cms/thumbs/b9efc5210e47f3649ffa75dc61236c6c30f2196e/logo_220_auto_5_80.png" это грузящаяся картинка "no foto" из demodizzy
<a class="fancybox-buttons" rel="media-gallery" href="/images/hotels_spb/5_star_hotels/astoria_ballroom.jpg" title="На фотографии зал для конференций в отеле"><img src="/images/cms/thumbs/b9efc5210e47f3649ffa75dc61236c6c30f2196e/logo_220_auto_5_80.png" alt="Главная" itemprop="image" height="204" width="220"></a>
Не совсем правильно меня поняли. Код шаблона name="catalog-thumbnail" хочется посмотреть

В таком случае вот код полностью:
<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 name="catalog-thumbnail">
<xsl:param name="element-id" />
<xsl:param name="field-name" />
<xsl:param name="empty" />
<xsl:param name="width">auto</xsl:param>
<xsl:param name="height">auto</xsl:param>
<xsl:param name="item">1</xsl:param>
<xsl:param name="align" />

<xsl:variable name="property" select="document(concat('upage://', $element-id, '.', $field-name))/udata/property" />

<xsl:call-template name="thumbnail">
<xsl:with-param name="width" select="$width" />
<xsl:with-param name="height" select="$height" />
<xsl:with-param name="align" select="$align" />
<xsl:with-param name="item" select="$item"/>

<xsl:with-param name="element-id" select="$element-id" />
<xsl:with-param name="field-name" select="$field-name" />
<xsl:with-param name="empty" select="$empty" />

<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:call-template>
</xsl:template>

<xsl:template name="thumbnail">
<xsl:param name="src" />
<xsl:param name="width">auto</xsl:param>
<xsl:param name="height">auto</xsl:param>
<xsl:param name="empty" />
<xsl:param name="align" />
<xsl:param name="item" />

<xsl:param name="element-id" />
<xsl:param name="field-name" />

<xsl:apply-templates select="document(concat('udata://system/makeThumbnailFull/(.', $src, ')/', $width, '/', $height, '/void/0/1/'))/udata">
<xsl:with-param name="element-id" select="$element-id" />
<xsl:with-param name="field-name" select="$field-name" />
<xsl:with-param name="empty" select="$empty" />
<xsl:with-param name="align" select="$align" />
<xsl:with-param name="item" select="$item" />
</xsl:apply-templates>
</xsl:template>

<xsl:template match="udata[@module = 'system' and (@method = 'makeThumbnail' or @method = 'makeThumbnailFull')]">
<xsl:param name="element-id" />
<xsl:param name="field-name" />
<xsl:param name="empty" />
<xsl:param name="align" />
<xsl:param name="item" />

<img src="{src}" width="{width}" height="{height}" alt="{document(concat('upage://', $element-id))/udata/page/name}">
<xsl:if test="$element-id and $field-name">
<xsl:attribute name="umi:element-id">
<xsl:value-of select="$element-id" />
</xsl:attribute>

<xsl:attribute name="umi:field-name">
<xsl:value-of select="$field-name" />
</xsl:attribute>
</xsl:if>

<xsl:if test="$align">
<xsl:attribute name="align">
<xsl:value-of select="$align" />
</xsl:attribute>
</xsl:if>

<xsl:if test="$empty">
<xsl:attribute name="umi:empty">
<xsl:value-of select="$empty" />
</xsl:attribute>
</xsl:if>

<xsl:if test="$item = 1">
<xsl:attribute name="itemprop">image</xsl:attribute>
</xsl:if>
</img>
</xsl:template>
</xsl:stylesheet>
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: e.ioffe от 06 Сентября 2013, 20:38:37
У вас не работает строчка

<xsl:with-param name="element-id" select="page/@id" />, так как в ветке group нет значений page. Покажите полностью шаблон
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: Axiomateria от 06 Сентября 2013, 20:55:02
У вас не работает строчка

<xsl:with-param name="element-id" select="page/@id" />, так как в ветке group нет значений page. Покажите полностью шаблон

Уточните пожалуйста какой теперь шаблон вам показать.
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: e.ioffe от 06 Сентября 2013, 22:00:45
У вас не работает строчка

<xsl:with-param name="element-id" select="page/@id" />, так как в ветке group нет значений page. Покажите полностью шаблон

Уточните пожалуйста какой теперь шаблон вам показать.

Тот, в котором вызываете <xsl:apply-templates select="что-то тут" mode="hotel-object-view" />

Определены ли переменные с именами pageId или page-id (как правило, определяются в файле common.xsl)?
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: Axiomateria от 06 Сентября 2013, 22:50:40
У вас не работает строчка

<xsl:with-param name="element-id" select="page/@id" />, так как в ветке group нет значений page. Покажите полностью шаблон

Уточните пожалуйста какой теперь шаблон вам показать.

Тот, в котором вызываете <xsl:apply-templates select="что-то тут" mode="hotel-object-view" />

Определены ли переменные с именами pageId или page-id (как правило, определяются в файле common.xsl)?

Шаблон в папке /modules/catalog/object-view.xsl в полный рост такой:

<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 = 'catalog' and @method = 'object' and page/@type-id=143]">    
<xsl:apply-templates select="document(concat('udata://content/addRecentPage/', $document-page-id))/udata" />
<xsl:apply-templates select="document(concat('upage://', page/@id,'?show-empty'))/udata" mode="hotel-object-view" />
</xsl:template>

<xsl:template match="udata" mode="hotel-object-view">
 
                  <img class="element-decor-2a" src="{$template-recources}pictures/element-doubleline-1.png" width="180" height="5" />
                  <b><xsl:value-of select="document('upage://149.title')//value" /></b>
                  <img class="element-decor-2a" src="{$template-recources}pictures/element-doubleline-1.png" width="180" height="5" />              
                  <div class="element-decor-3"><img src="{$template-recources}pictures/element-decor-2.png" width="90" height="37" /></div>  
        
                  <div class="floatarea20"> </div>
              
<div class="hotel-card" itemscope="itemscope" itemtype="http://schema.org/Hotel">
        
                  <div class="card-block-1">
                    <div class="cell1">
                       <h1><xsl:value-of select=".//property[@name = 'h1']/value" /></h1>
                       <link itemprop="name" content="{page/name}" />
                       <p><xsl:value-of select=".//property[@name = 'address']/title" /> <xsl:text> </xsl:text> <xsl:value-of select=".//property[@name = 'address']/value" /></p>
                       <p class="metroname">
                         <xsl:value-of select=".//property[@name = 'nearest_metro_station']/title" />
                         <xsl:text> </xsl:text>
                         <xsl:apply-templates select=".//property[@name = 'nearest_metro_station']/value/item/@name" mode="div" />
                       </p>
                       <a class="iframe-location various fancybox.iframe" href="{.//property[@name = 'location']/value/page/@link}" title="{.//property[@name = 'location']/value/page/name}">
                         <xsl:value-of select=".//property[@name = 'location']/title" />
                       </a>                
                       <a class="conference-rooms" href="{.//property[@name = 'conference_rooms_in_hotel']/value/page/@link}" title="{.//property[@name = 'conference_rooms_in_hotel']/value/page/name}">
                         <xsl:value-of select=".//property[@name = 'conference_rooms_in_hotel']/title" />
                       </a>                                      
                       <a class="special-offers" href="{.//property[@name = 'price_special_offers']/value}" title="{.//property[@name = 'price_special_offers']/title}" target="_blank">
                         <xsl:value-of select=".//property[@name = 'price_special_offers']/title" />
                       </a>
                       <div class="button-bookig"><a href="#">Забронировать</a></div>
                    </div>
                    <div class="cell2">
                    <xsl:if test=".//property[@name = 'title-hotel-photo']/value">
                      <div class="title-photo">
                        <a class="fancybox-buttons" rel="media-gallery" href="{.//property[@name = 'title-hotel-photo']/value}" title="{.//property[@name='title']/value}">
                           <!-- <img src="{.//property[@name = 'title-hotel-photo']/value}" alt="{.//property[@name='h1']/value}" />-->
                           <xsl:call-template name="catalog-thumbnail">
     <xsl:with-param name="element-id" select="page/@id" />
     <xsl:with-param name="field-name">title-hotel-photo</xsl:with-param>
     <xsl:with-param name="width">460</xsl:with-param>
      </xsl:call-template>
                        </a>
                      </div>
                    </xsl:if>                    
                   </div>                  
                 </div>
                
                 <div class="carouseling">                    
                      <xsl:apply-templates select="document(concat('udata://photoalbum/album/', //property[@name = 'photoslist']/value/page/@id,'/void/1000'))/udata" mode="carousel-photos-hotel"/>
                 </div>  
                
                 <div class="hotel-descripion">
                      <h3><xsl:value-of select=".//property[@name = 'brief_description_hotel']/title" /></h3>              
                      <xsl:value-of select=".//property[@name = 'brief_description_hotel']/value" disable-output-escaping="yes" />
                 </div>
                
                 <div class="floatarea20"> </div>
                
                 <div class="hotel-restaurants">                
                    <xsl:apply-templates select=".//group[@name = 'hotel_restaurants' and not(property/value='')]" mode="hotel-restaurant" />
                 </div>
                
                 <div class="floatarea20"> </div>
                
                 <div class="conf-cap">                
                    <xsl:apply-templates select=".//group[@name = 'conferencing_capabilities' and not(property/value='')]" mode="hotel_conf_cap" />
                 </div>                
                
                 <div class="floatarea20"> </div>
                
                 <div class="services">                
                    <xsl:apply-templates select=".//group[@name = 'hotel_facilities' and not(property/value='')]" mode="hotel_services" />
                 </div>
                       <div class="floatarea40"> </div>
                
                       <img class="element-decor-3" src="{$template-recources}pictures/element-doubleline-2.png" />

</div>
</xsl:template>

 
    <xsl:template match="group" mode="hotel-restaurant">
         <h3><xsl:value-of select="concat(title, ':')" /></h3>
                <div class="cell1">                  
                    <a class="fancybox-buttons" rel="media-gallery" href="{.//property[@name = 'picture_situation']/value}" title="{.//property[@name = 'picture_situation']/title}">        
                        <xsl:call-template name="catalog-thumbnail">
           <xsl:with-param name="element-id" select="page/@id" />
           <xsl:with-param name="field-name">picture_situation</xsl:with-param>
           <xsl:with-param name="width">220</xsl:with-param>
           </xsl:call-template>                    
                     </a>
                </div>
         <xsl:apply-templates select="property" disable-output-escaping="yes" mode="hotel-restaurant" />
</xsl:template>
    <xsl:template match="property[@type='img_file']/value" mode="hotel-restaurant">
<div class="cell1"><xsl:value-of select="." disable-output-escaping="yes" /></div>  
</xsl:template>
<xsl:template match="property" mode="hotel-restaurant">                                  
          <div class="cell2"><xsl:value-of select="value" disable-output-escaping="yes" /> </div>
</xsl:template>
    

    <xsl:template match="group" mode="hotel_conf_cap">
         <h3><xsl:value-of select="concat(title, ':')" /></h3>
                <div class="cell1">
                    <a class="fancybox-buttons" rel="media-gallery" href="{.//property[@name = 'photo_conference_hall']/value}" title="{.//property[@name='photo_conference_hall']/title}">
                        <xsl:call-template name="catalog-thumbnail">
           <xsl:with-param name="element-id" select="page/@id" />
           <xsl:with-param name="field-name">photo_conference_hall</xsl:with-param>
           <xsl:with-param name="width">220</xsl:with-param>
           </xsl:call-template>
                     </a>
                </div>
         <xsl:apply-templates select="property" disable-output-escaping="yes" mode="hotel_conf_cap" />
</xsl:template>
    <xsl:template match="property[@type='img_file']/value" mode="hotel_conf_cap">
<div class="cell1"><xsl:value-of select="." disable-output-escaping="yes" /></div>  
</xsl:template>
<xsl:template match="property" mode="hotel_conf_cap">                                  
          <div class="cell2"><xsl:value-of select="value" disable-output-escaping="yes" /> </div>
</xsl:template>
</xsl:stylesheet>

Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: e.ioffe от 06 Сентября 2013, 22:57:53
Внести следующие изменения:

<xsl:apply-templates select=".//group[@name = 'hotel_restaurants' and not(property/value='')]" mode="hotel-restaurant">
<xsl:with-param name="pageId" select="page/@id" />
</xsl:apply-templates>

и

<xsl:template match="group" mode="hotel-restaurant">
<xsl:param name="pageId" />
         <h3><xsl:value-of select="concat(title, ':')" /></h3>
                <div class="cell1">                 
                    <a class="fancybox-buttons" rel="media-gallery" href="{.//property[@name = 'picture_situation']/value}" title="{.//property[@name = 'picture_situation']/title}">         
                        <xsl:call-template name="catalog-thumbnail">
            <xsl:with-param name="element-id" select="$pageId" />
            <xsl:with-param name="field-name">picture_situation</xsl:with-param>
            <xsl:with-param name="width">220</xsl:with-param>
            </xsl:call-template>                     
                     </a>
                </div>
         <xsl:apply-templates select="property" disable-output-escaping="yes" mode="hotel-restaurant" />
</xsl:template>
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: Axiomateria от 06 Сентября 2013, 23:40:05
Внести следующие изменения:............

Большое, вам e.ioffe, Спасибо !
С подгрузкой превьшки теперь проблемы нет!

Однако осталась одна деталь: ссылка на саму картинку по прежнему выводиться рядом с превьюшкой в чистом виде:
/images/hotels_spb/5_star_hotels/astoria_kandinsky_bar.jpg

не могу понять как заблокировать в шаблоне её "голый" вывод....

Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: Axiomateria от 07 Сентября 2013, 22:10:50
Я имею ввиду вот эту часть шаблона, где select="value" выводится всё, включая ссылку на превьюшку в чистом виде:
	<xsl:template match="property" mode="hotel-restaurant">                                  
          <div class="cell2"><xsl:value-of select="value" disable-output-escaping="yes" /></div>
</xsl:template>
На странице сайта это выглядит так (во вложении скриншот)
Вот ни как не могу понять как её убрать ?
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: e.ioffe от 07 Сентября 2013, 23:02:45
Добавьте строчку <xsl:template match="property[@type='img_file']" mode="hotel-restaurant" />.

Хотя такой подход говорит о неправильной организации кода и неверном разбиении верстки на блоки.
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: Axiomateria от 08 Сентября 2013, 12:59:58
Добавьте строчку <xsl:template match="property[@type='img_file']" mode="hotel-restaurant" />.

Хотя такой подход говорит о неправильной организации кода и неверном разбиении верстки на блоки.
Спасибо, e.ioffe!
Всё теперь как надо.
Однако я просто использовал "заготовки" шаблонов из набора demodizzy и если есть более оптимальный вариант организации шаблонизатора для данного случая, то может быть вы поделитесь примером?
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: john от 25 Февраля 2014, 14:54:23
<xsl:call-template name="makeThumbnailSqueeze">
<xsl:with-param name="element_id" select="@id" />
<xsl:with-param name="field_name" select="'photo'" />
<xsl:with-param name="width">114</xsl:with-param>
<xsl:with-param name="height">120</xsl:with-param>
<xsl:with-param name="alt" select="$photo_name" />
<xsl:with-param name="no-empty-image" select="0" />
</xsl:call-template>
Почему если задать конкретную ширину и высоту картинки в album.xsl
Размеры выводимых картинок будут не точные?
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: john от 28 Февраля 2014, 16:30:56
Накапал этот файл thumbnails.xsl
Пробовал править  в нём. Убирал авто, ставил  свои значения.
<xsl:template name="makeThumbnailSqueeze">
<xsl:param name="alt" />
<xsl:param name="class" />
<xsl:param name="element_id" />
<xsl:param name="object_id" />
<xsl:param name="field_name" />
<xsl:param name="width" select="'auto'" />
<xsl:param name="height" select="'auto'" />
<xsl:param name="empty-image">&empty-photo;</xsl:param>
<xsl:param name="no-empty-image" select="1" />
<xsl:variable name="path">
<xsl:if test="$element_id">
<xsl:value-of select="document(concat('upage://',$element_id))//property[@name = $field_name]/value/@path" />
</xsl:if>
<xsl:if test="$object_id">
<xsl:value-of select="document(concat('uobject://',$object_id,'.',$field_name))/udata/property/value/@path" />
</xsl:if>
</xsl:variable>
<xsl:variable name="thumbnail" select="document(concat('udata://custom/makeThumbnailSqueeze/(',$path,')/',$width,'/',$height,'/void/0/7/'))/udata"/>
<xsl:choose>
<xsl:when test="not($thumbnail/src) and ($no-empty-image = 1) and ($isAdmin = 0)" />
<xsl:when test="not($thumbnail/src) and ($no-empty-image = 1) and ($isAdmin = 1)">
<span class="hidden">
<xsl:apply-templates select="$thumbnail" >
<xsl:with-param name="alt" select="$alt" />
<xsl:with-param name="class" select="$class" />
<xsl:with-param name="element_id" select="$element_id" />
<xsl:with-param name="object_id" select="$object_id" />
<xsl:with-param name="field_name" select="$field_name" />
<xsl:with-param name="empty_width" select="$width" />
<xsl:with-param name="empty_height" select="$height" />
<xsl:with-param name="empty-image" select="$empty-image" />
</xsl:apply-templates>
</span>
</xsl:when>
<xsl:when test="($no-empty-image = 0) and ($isAdmin = 1)">
<xsl:apply-templates select="$thumbnail" >
<xsl:with-param name="alt" select="$alt" />
<xsl:with-param name="class" select="$class" />
<xsl:with-param name="element_id" select="$element_id" />
<xsl:with-param name="object_id" select="$object_id" />
<xsl:with-param name="field_name" select="$field_name" />
<xsl:with-param name="empty_width" select="$width" />
<xsl:with-param name="empty_height" select="$height" />
<xsl:with-param name="empty-image" select="$empty-image" />
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="$thumbnail" >
<xsl:with-param name="alt" select="$alt" />
<xsl:with-param name="class" select="$class" />
<xsl:with-param name="element_id" select="$element_id" />
<xsl:with-param name="object_id" select="$object_id" />
<xsl:with-param name="field_name" select="$field_name" />
<xsl:with-param name="empty_width" select="$width" />
<xsl:with-param name="empty_height" select="$height" />
<xsl:with-param name="empty-image" select="$empty-image" />
</xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
</xsl:template>

<xsl:template match="udata[@module = 'system' or @module = 'custom'][@method = 'makeThumbnail' or @method = 'makeThumbnailFull' or @method = 'makeThumbnailSqueeze']">
<xsl:param name="alt" select="''" />
<xsl:param name="class" />
<xsl:param name="element_id" />
<xsl:param name="object_id" />
<xsl:param name="field_name" />
<xsl:param name="empty_width" select="'auto'" />
<xsl:param name="empty_height" select="'auto'" />
<xsl:param name="empty-image">&empty-photo;</xsl:param>
<img>
<xsl:attribute name="alt"><xsl:value-of select="$alt" disable-output-escaping="yes"/></xsl:attribute>
<xsl:attribute name="title"><xsl:value-of select="$alt" disable-output-escaping="yes"/></xsl:attribute>
<xsl:if test="$isAdmin = 1">
<xsl:attribute name="style">
<xsl:if test="$empty_width != 'auto'">
<xsl:text>max-width:</xsl:text><xsl:value-of select="$empty_width"/><xsl:text>px;</xsl:text>
</xsl:if>
<xsl:if test="$empty_height != 'auto'">
<xsl:text>max-height:</xsl:text><xsl:value-of select="$empty_height"/><xsl:text>px;</xsl:text>
</xsl:if>
</xsl:attribute>
</xsl:if>
<xsl:if test="$class">
<xsl:attribute name="class"><xsl:value-of select="$class"/></xsl:attribute>
</xsl:if>
<xsl:if test="$field_name">
<xsl:if test="$element_id"><xsl:attribute name="umi:element-id"><xsl:value-of select="$element_id" /></xsl:attribute></xsl:if>
<xsl:if test="$object_id"><xsl:attribute name="umi:object-id"><xsl:value-of select="$object_id" /></xsl:attribute></xsl:if>
<xsl:attribute name="umi:field-name"><xsl:value-of select="$field_name" /></xsl:attribute>
<xsl:attribute name="umi:field-type"><xsl:text>img_file</xsl:text></xsl:attribute>
</xsl:if>
<xsl:attribute name="src">
<xsl:choose>
<xsl:when test="src"><xsl:value-of select="src" /></xsl:when>
<xsl:otherwise>
<xsl:value-of select="document(concat('udata://custom/makeThumbnailSqueeze/(.',$empty-image,')/',$empty_width,'/',$empty_height,'/void/0/7/'))/udata/src" />
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="umi:empty"><xsl:value-of select="$empty-image" /></xsl:attribute>
</img>
</xsl:template>

<xsl:template match="udata[(@module = 'system' or @module = 'custom') and (@method = 'makeThumbnail' or @method = 'makeThumbnailFull' or @method = 'makeThumbnailSqueeze')]/width">
<xsl:attribute name="width"><xsl:value-of select="." /></xsl:attribute>
</xsl:template>

<xsl:template match="udata[(@module = 'system' or @module = 'custom') and (@method = 'makeThumbnail' or @method = 'makeThumbnailFull' or @method = 'makeThumbnailSqueeze')]/height">
<xsl:attribute name="height"><xsl:value-of select="." /></xsl:attribute>
</xsl:template>
Все равно не могу задать значения картинки.
Название: Re:Вывод загружаемой фотографии из группы полей в шаблоне
Отправлено: admin от 14 Мая 2014, 12:50:52
Накапал этот файл thumbnails.xsl
Пробовал править  в нём. Убирал авто, ставил  свои значения.

Все равно не могу задать значения картинки.

что у вас в макросе udata://custom/makeThumbnailSqueeze мы можем только гадать. Возможно, там и кроется решение вашего вопроса.