Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Вывод количества объектов в категории. XSLT

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

Ответов: 6
Просмотров: 4750
Последний ответ 18 Октября 2014, 17:39:24
от idu.kuru
Сортировка по алфавиту в xslt

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

Ответов: 2
Просмотров: 4251
Последний ответ 14 Января 2012, 17:25:36
от admin
Не выводятся все теги в xslt

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

Ответов: 2
Просмотров: 3877
Последний ответ 03 Июня 2014, 13:52:04
от goodprofy
webforms & XSLT & модальное окно

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

Ответов: 8
Просмотров: 8607
Последний ответ 13 Июня 2011, 00:41:56
от talanter
Как вывести itemprop="position" content="" в XSLT?

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

Ответов: 0
Просмотров: 1578
Последний ответ 15 Ноября 2018, 09:30:06
от makarov2979

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

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #30 : 26 Марта 2012, 19:22:38 »
в нужном месте делаем вывод группы с полями типа изображение

<xsl:apply-templates select=".//group[@name = 'parametry_gostinicy']" mode="lightbox" />

и пишем дополнительные шаблоны
шаблон для блока со всеми полями, там можно класс задать или еще что если надо
 
<xsl:template match="group" mode="lightbox">
          <div umi:element-id="{../../@id}">
               <xsl:apply-templates select="property" mode="lightbox" />
          </div>
     </xsl:template>

шаблон для всех полей сделаем его пустым, чтобы если в группе были поля не являющимися типом данных "изображение" они не выводились и уточняющий шаблон для поля типа изображение

<xsl:template match="property" mode="lightbox"/>
<xsl:template match="property[@type='img_file']" mode="lightbox">

<a href="{value}" umi:element-id="{$document-page-id}" umi:field-name="@name" rel="lightbox[slide]">                                 
<xsl:call-template name="catalog-thumbnail_rks">
<xsl:with-param name="element-id" select="$document-page-id" />
<xsl:with-param name="field-name"><xsl:value-of select="@name"></xsl:with-param>
        <xsl:with-param name="empty">empty-photo;</xsl:with-param>
<xsl:with-param name="width">281</xsl:with-param>
</xsl:call-template>   
</a>   

</xsl:template>

следует лишь отметить что переменная $document-page-id у вас должна быть определена (если вы делаете сайт на основе demodizzy, то она у вас есть)

*

kudryashka_web

  • *
  • 12
  • +0/-0
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #31 : 26 Марта 2012, 20:08:25 »
попробовала ваш вариан - похоже что то-то нужно поменять - так как выдает ошибки, пока не могу понять что нужно менять.

$document-page-id у меня используется на этой же сранице для вывода кнопки - "купить".
<form class="options" action="{$lang-prefix}/emarket/basket/put/element/{page/@id}/" onsubmit="frontEndBasket.add('{page/@id}', this); return false;">
<xsl:apply-templates select=".//group[@name = 'catalog_option_props']" mode="table_options" />
<div class="buy_button">
<input type="submit" class="button big" id="add_basket_{$document-page-id}">
<xsl:attribute name="value">
<xsl:text>&basket-add;</xsl:text>
<xsl:if test="$cart_items/item[page/@id = $document-page-id]">
<xsl:text> (</xsl:text>
<xsl:value-of select="sum($cart_items/item[page/@id = $document-page-id]/amount)" />
<xsl:text>)</xsl:text>
</xsl:if>
</xsl:attribute>
</input>
</div>
</form>

на чем написано я не знаю- так как переделываю стандартный шаблон,  и еще не разобралась  с xsl

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #32 : 26 Марта 2012, 21:33:03 »
самая первая строчка у меня,
<xsl:apply-templates select=".//group[@name = 'parametry_gostinicy']" mode="lightbox" />

там указывается имя группы полей, которые вы выводите, вы их поменяли на название вашей группы полей? У меня эта группа называлась parametry_gostinicy

*

kudryashka_web

  • *
  • 12
  • +0/-0
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #33 : 26 Марта 2012, 22:48:53 »
хм,у меня нет группы полей  - я в админке добавила возможность для каждого товара загружать 4 фотографии, и при выводе описания товара эти картинки отображаются в виде превью.  нужно что-бы при клике на любую из них они открывались с помощью лайт бокса  и можно было просмотеть все 4.

поэтому я вывод каждой картинки превью отдельно оборачиваю ссылкой с лайтбоксом.

и ошибка в том,что я использую оди параметр src заданный перед выводом картинок,и он один, и поэтому выводится только одна картинка.

как с группой полей организовать просмотр я что-то не поняла.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #34 : 26 Марта 2012, 23:01:15 »
тут без урока не обойтись) но это уже только в среду, завтра курсы веду. Попробуйте просто вместо src для второй, третьей картинки вы сделайте еще 4 переменных или сколько там у вас их должно быть, то есть во вторую ссылку не $src вставляйте а новую переменную

<xsl:variable name="src" select="document(concat('upage://',page/@id,'.dop_photo1'))/udata//value" /> 
и так далее для всех фоток

*

kudryashka_web

  • *
  • 12
  • +0/-0
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #35 : 26 Марта 2012, 23:15:10 »
даже не знаю, но видимо я что-то совсем не то делаю)))

наверное есть какие-то определенные переменные, нельзя наверное просто любые буквы вводить?))))

я написала src1 src2 src3 в той строчке что вы написали - поменяла названия полей - но всеравно показывает при увидичении одну и ту же картинку))

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #36 : 26 Марта 2012, 23:43:25 »
а в ссылки ниже вставили свои новые переменные?

*

kudryashka_web

  • *
  • 12
  • +0/-0
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #37 : 26 Марта 2012, 23:45:18 »
Да, вот так получилось:
<!-- ВЫВОД ОСНОВНОЙ КАРТИНКИ--> 

          <a href="{$src}" umi:element-id="{@id}" umi:field-name="photo" rel="lightbox[slide]">                                  <xsl:call-template name="catalog-thumbnail_rks">
<xsl:with-param name="element-id" select="page/@id" />
<xsl:with-param name="field-name">photo</xsl:with-param>
                        <xsl:with-param name="empty">empty-photo;</xsl:with-param>
<xsl:with-param name="width">281</xsl:with-param>
</xsl:call-template>   
          </a>   
<!-- ВЫВОД ОСНОВНОЙ КАРТИНКИ --> 


 <!-- вторая картинка -->
<xsl:variable name="src1" select="document(concat('upage://',page/@id,'.photo'))/udata//value" />
 
     <a href="{$src1}" umi:element-id="{@id}" umi:field-name="dop_photo1" rel="lightbox[slide]">
                     <xsl:call-template name="catalog-thumbnail_rks">
<xsl:with-param name="element-id" select="page/@id" />
<xsl:with-param name="field-name">dop_photo1</xsl:with-param>
                        <xsl:with-param name="empty">empty-photo;</xsl:with-param>
<xsl:with-param name="width">95</xsl:with-param>
</xsl:call-template>    </a> 
                 

*

kudryashka_web

  • *
  • 12
  • +0/-0
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #38 : 26 Марта 2012, 23:47:28 »
ура! я нашла ошибку! заработало

*

kudryashka_web

  • *
  • 12
  • +0/-0
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #39 : 26 Марта 2012, 23:48:43 »
я в этой сточке не меняла название поля с картинкой!
<xsl:variable name="src1" select="document(concat('upage://',page/@id,'.photo'))/udata//value" /> 


Спасибо вам огромное за помощь!!

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #40 : 17 Сентября 2012, 02:44:46 »
Всем добрый вечер, подскажите где скачать lightbox который бы работал на XSLT. В данный момент ссылка на картинку открывается так. А эффекта ноль, пример скрипта.
Шаблон album.xsl
         <xsl:template match="item" mode="album_photo">   
    <xsl:variable name="src" select="document(concat('upage://',@id,'.photo'))/udata//value" /> 
<div class="lightbox_gallery">
<a href="{$src}" umi:element-id="{@id}" umi:field-name="photo">
            <xsl:call-template name="catalog-thumbnail">
                <xsl:with-param name="element-id" select="@id" />
                <xsl:with-param name="field-name">photo</xsl:with-param>
                <xsl:with-param name="empty">&empty-photo;</xsl:with-param>
                <xsl:with-param name="width">144</xsl:with-param>
                <xsl:with-param name="height">110</xsl:with-param>
            </xsl:call-template>
            </a></div>
        </xsl:template>
Шаблон /layouts/default.xsl
<script type='text/javascript' src='/js/lightbox/jquery.lightbox.js'></script>
<link rel='stylesheet' type='text/css' href='/js/lightbox/css/jquery.lightbox.css' media='screen' />

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #41 : 18 Сентября 2012, 00:01:04 »
Заработало, Сделано вот так!
В шаблоне /xsltTpls/layouts/default.xsl
   
[b]<!-- Arquivos utilizados pelo jQuery lightBox plugin -->
    <script type="text/javascript" src="/js/jquery.js"></script>
    <script type="text/javascript" src="/js/jquery.lightbox-0.5.js"></script>
    <link rel="stylesheet" type="text/css" href="/css/jquery.lightbox-0.5.css" media="screen" />
    <!-- / fim dos arquivos utilizados pelo jQuery lightBox plugin -->
   
    <!-- Ativando o jQuery lightBox plugin -->
    <script type="text/javascript">
    $(function() {
        $('#gallery a').lightBox();
    });
    </script>[/b]

В шаблоне /xsltTpls/modules/photoalbum/album.xsl

   
<xsl:template match="udata[@module = 'photoalbum' and @method = 'album' and total]">
<div id="photoalbum"><div class="gray_block">[b]<div id="gallery">[/b]
            <xsl:apply-templates select="document(concat('udata://photoalbum/album/',@id,'///'))/udata" mode="album_photo"/>         
<div class="clear" />
</div></div></div>
<xsl:apply-templates select="total" />
</xsl:template>
….
        <xsl:template match="item" mode="album_photo">   
[b]    <xsl:variable name="src" select="document(concat('upage://',@id,'.photo'))/udata//value" /> 
<div class="lightbox_gallery">
<a href="{$src}" rel="lightbox" umi:element-id="{@id}" umi:field-name="photo">[/b]
            <xsl:call-template name="catalog-thumbnail">
                <xsl:with-param name="element-id" select="@id" />
                <xsl:with-param name="field-name">photo</xsl:with-param>
                <xsl:with-param name="empty">&empty-photo;</xsl:with-param>
                <xsl:with-param name="width">144</xsl:with-param>
                <xsl:with-param name="height">110</xsl:with-param>
            </xsl:call-template>
            </a></div>
        </xsl:template>