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

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

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

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

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

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

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

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

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

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

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

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

*

polo

  • *
  • 19
  • +0/-0
    • Просмотр профиля
Кто знает, или имел опыт - поделитесь плиз. Есть ли какие-то стандартные решения для организации лайтбокса для фотогалереи в XSLT?
Чтобы при нажатии на баннер со случайной фоткой из фотоальбома выплывал поверх всего лайтбокс, который можно листать вперед и назад.
Буду благодарен за любую инфу.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #1 : 23 Июня 2011, 13:16:48 »
статьи ориентированные на tpl не помогли?

http://umihelp.ru/1
http://umihelp.ru/240/lightbox-and-title-attribute/
http://umihelp.ru/87/

*

talanter

  • *
  • 17
  • +0/-0
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #2 : 23 Июня 2011, 13:22:07 »
Попробуй http://fancybox.net/ на jquery
Подключать так

jQuery(document).ready(function($) {
$("a[rel=gallery]").fancybox({
'transitionIn' : 'none',
'transitionOut' : 'none',
'titlePosition' : 'over',
'titleFormat' : function(title, currentArray, currentIndex, currentOpts) {
return '<span id="fancybox-title-over">Image ' + (banner_+ currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' &nbsp; ' + title : '') + '</span>';
}
});


где индекс изображений Image ' + (banner_+ currentIndex + 1)  на пример banner_11_pic.jpg ++  можно заменить на другие.

вызов в шаблоне следующий
<a rel="gallery" href="./img/banner_11_pic.jpg" title="FancyBox отличный лайтбокс для галереи"><img alt="" src="./img/banner_11_th_pic.jpg" /></a>
ну а с шаблоном ХSLT тебе помогут другие я пасс.

Чем смог))
« Последнее редактирование: 23 Июня 2011, 13:25:38 от talanter »

*

polo

  • *
  • 19
  • +0/-0
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #3 : 24 Июня 2011, 13:13:44 »
Попытался сделать тупо. Первые 3 пункта из статьи http://umihelp.ru/1/ не вызвали затруднений.
А дальше пошли отличия XSLT от TPL. Я сделал так:
1. В месте, где надо вставить ссылку на фотогаллерею:
<!-- Баннер фотогалереи -->
<div class="lightbox_gallery">
<xsl:apply-templates match="document('udata://photoalbum/album/94')/udata" mode="gallery"/>
</div>
где 94 - id созданного фотоальбома.
Дальше по задумке следует пункт 2. - шаблоны для вывода лайтбоксов - вывод ссылочек типа <a href="$img_path" rel="lightbox[group]">...</a> для условия типа match="udata[@module = 'photoalbum'][@method = 'album']".

Но я столкнулся с дурацкой проблемой на шаге 1. Почему-то его код просто выводит в див содержимое текущего документа. Ввожу в адр.строку сайт/udata/photoalbum/album/94 - все правильно, выводит xml-сожержимое альбома. А здесь - не работает.
Может, глючит модуль Фотоальбом?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #4 : 24 Июня 2011, 13:27:59 »
скорее всего так как у вас не задан шаблон для обработки фоток то он использует какой-то другой типа

<xsl:templates match="udata" >
....
<.xsl:templates  >

может он и выводит то что вы видите, или я не совсем точно понял в чем у вас проблема?

*

polo

  • *
  • 19
  • +0/-0
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #5 : 24 Июня 2011, 14:29:20 »
Я не очень внятно объяснил. Попробую подробней.
1. В основной таблице стилей (stylesheet) есть div, в котором выводится баннер фотоальбома. При нажатии на него должен всплывать лайтбокс.
В этом диве я задаю:
<!-- Баннер фотогалереи -->
<div class="lightbox_gallery">
<xsl:apply-templates match="document('udata://photoalbum/album/94')/udata" mode="gallery"/>
</div>
2. Шаблон выглядит так:
<xsl:template match="udata[@module = 'photoalbum'][@method = 'album']" mode="gallery">
  Бла-бла-бла
</xsl:template>
По идее, должно вывестись "Бла-бла-бла". Но выводится xml-содержимое текущей страницы (без хмл-тегов конечно) типа:
КейвордсСтраницы контентаГлавнаяСтраницы контентаО насОсновные параметрыПоле H1О насКонтент<p>Собственно Контент</p>Дополнительные параметрыПоказывать подменю1

3. Ввожу в браузер http://сайт/udata/photoalbum/album/94 - выдает все как надо:
<udata module="photoalbum" method="album" generation-time="0.045104">
<id>94</id>
<items>
<item id="95" link="/album1/homyak1/" xlink:href="upage://95">Хомяк1</item>
<item id="96" link="/album1/homyak2/" xlink:href="upage://96">Хомяк2</item>
</items>
<total>2</total>
<per_page>10</per_page>
<link>/album1/</link>
</udata>

Сижу вот тупо втыкаю в монитор  и не могу понять где ошибка в четырех строках кода...  :-[

Кто-нибудь с таким сталкивался?
« Последнее редактирование: 24 Июня 2011, 16:08:26 от polo »

*

polo

  • *
  • 19
  • +0/-0
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #6 : 26 Июня 2011, 13:33:10 »
Я так и знал, что проблема в какой-нибудь фигне.
После apply-templates надо ставить не match, а select!!!

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #7 : 26 Июня 2011, 14:15:48 »
а я все гадал, почему у меня работает, вот так всегда с xslt, надо быть внимательнее или пользоваться  komodo edit, как мне тут недавно подсказали)

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #8 : 16 Октября 2011, 22:51:40 »
А можно по подробнее как прикрутить lightbox в шаблоне XSLT.
Я подключил, нажимаю на фото, серый экран и вижу грузится,
и должна появиться фото но ее нет.
http://ns.competentit.com.swteh.ru/portfolio/arhitekturnoe_osvewenie/

Как делал:
1. Скопировал папку lightbox в папку /js
2. В шаблоне прописал
<script type='text/javascript' src='/js/lightbox/jquery-lightbox-0.5/js/jquery.lightbox-0.5.min.js'></script>
<link rel='stylesheet' type='text/css' href='/js/lightbox/jquery-lightbox-0.5/css/jquery.lightbox-0.5.css' media='screen' />
<script type='text/javascript' src='/js/lightbox/jquery-lightbox-0.5/js/start.js'></script>
3. А дальше в шаблоне /xslttpls/modules/photoalbum/album.xsl

Прописал div код
   <xsl:template match="page" mode="photo_list">
      <div class="gray_block_gal"><div class="lightbox_gallery">
         <a href="{@link}" 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">154</xsl:with-param>
               <xsl:with-param name="height">110</xsl:with-param>
            </xsl:call-template>
         </a>
         <div class="clear" />
      </div></div>
   </xsl:template>

И что еще надо сделать не пойма, подскажите.

*

NOIRMAN

  • *****
  • 101
  • +16/-1
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #9 : 17 Октября 2011, 00:00:20 »

         <a href="{@link}" umi:element-id="{@id}" umi:field-name="photo">


Не пробовал еще сам lightbox подключать, но в данном случае не уверен, что надо использовать @link. Может все таки путь к картинке самой попробовать?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #10 : 17 Октября 2011, 04:24:45 »
по правилам, по моему, всех lighbox ссылка, в которую обвернута картинка превью, должна иметь в href путь к картинке полноразмерной, а не к странице с картинкой

в данном случае
  <a href="{@link}" umi:element-id="{@id}" umi:field-name="photo">

@link это ссылка на страницу типа "фотография", а не сама картинка, путь к картинке можно получить таким путем


<xsl:template match="page" mode="photo_list">
<xsl:variable name="src" select="document(concat('upage://',@id,'.photo'))/udata//value" />     
<div class="gray_block_gal"><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">154</xsl:with-param>
               <xsl:with-param name="height">110</xsl:with-param>
            </xsl:call-template>
         </a>
         <div class="clear" />
      </div></div>
   </xsl:template>

код выше написан навскидку, могут быть неточности в синтаксисе, проверяйте

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #11 : 17 Октября 2011, 08:28:05 »
Спасибо, все заработало.

*

Prus

  • *
  • 46
  • +1/-0
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #12 : 21 Февраля 2012, 13:17:54 »
Ребят, помогите.

Работает все, кроме ссылки на изображение (прямой путь до .jpg)
если пишу $src перестает работать сайт.

Как вывести прямой путь?

*

BaceH

  • ***
  • 141
  • +21/-0
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #13 : 21 Февраля 2012, 14:33:58 »
посмотрите что попадает $src, и что имеется в upage://',@id

*

Prus

  • *
  • 46
  • +1/-0
    • Просмотр профиля
Re:Лайтбоксы для Фотогалереи в XSLT
« Ответ #14 : 21 Февраля 2012, 18:13:12 »
как это смотреть? научи и моих вопросов будет еще меньше)