В данной статье описано как:
Инструменты:
1) Установить пакет Gallery;
2) Создать дополнительное (tv) поле;
3) Создать альбом;
4) Вывод альбома
4.1) Добавление сниппета в шаблон
4.2) Редактирование tpl-файла
4.3) Вывод альбома в конкретном ресурсе
В том месте шаблона, где мы хотим вывести альбом галереи прописываем:
Добавляем Fancybox: (пропустите этот пункт, если создаете галерею для слайдера или карусели)
<link href="fancybox/jquery.fancybox.css" rel="stylesheet">
<script src="fancybox/jquery.fancybox.pack.js"></script>
[ [!Gallery?
&album=`[ [*gal-item]]`
&checkForRequestTagVar=`1`
&useCss=`0`
&thumbTpl=`galItemThumb`]]
<div style="clear:both"></div>
В сниппете:
<script>$(document).ready(function(){$(".fancybox").fancybox();});</script>
<div class="gal-item">
<a href="[ [+image_absolute:rezimgcrop=`r-800`]]" class="fancybox" rel="gallery1" title="[ [+description]]">
<img class="[ [+imgCls]]" src="[ [+image_absolute:rezimgcrop=`min-120,c-120x120`]]" style="width:120px;height:120px;" alt="[ [*pagetitle]] [ [+idx]]" />
</a>
</div>
.gal-item{border:1px solid #EEE;margin:10px;padding:10px;float:left;font-size:0;}
.gal-item:hover{border-color:#CFCFCF;}
Заходим в ресурс, переходим во вкладку "дополнительные поля" и выбираем нужный нам альбом в соответствующем поле.
(если в дополнительных полях нет созданного ранее поля "gal-item", или вкладка "дополнительные поля" отсутствует вовсе — убедитесь, что в настройках дополнительного поля (вкладка "доступно для шаблонов") вы отметили тот шаблон, которому принадлежит редактируемый ныне ресурс.)
Для начала создаем галерею (процесс описан выше)
<link href="css/jquery.bxslider.css" rel="stylesheet">
<link href="fancybox/jquery.fancybox.css" rel="stylesheet">
<script src="js/jquery.bxslider.min.js"></script>
<script src="fancybox/jquery.fancybox.pack.js"></script>
<li><img src="[ [+image_absolute]]" alt="Слайдер [ [+idx]]" /></li>
<ul class="bxslider-slider">
[ [!Gallery?
&album=`[ [*gal-item]]`
&checkForRequestTagVar=`1`
&useCss=`0`
&thumbTpl=`gallery-slider-tpl`]]
</ul>
Примечание: Если нет нужды настраивать динамическое отображение галереи (в данном случае оформленной как слайдер) на разных страницах, то можно обойтись без TV-поля, и просто вписать туда id альбома. В таком случае во всех ресурсах с этим шаблоном выводится один и тот же альбом. TV-поле имеет смысл использовать если на разных ресурсах требуется выводить разный альбом, или на каких-то ресурсах не выводить галерею вовсе.
<script>$(document).ready(function(){$('.bxslider-slider').bxSlider({mode:'fade',captions:false,pager:false});});</script>
Все настройки BXSlider – http://bxslider.com/options
Для начала создаем галерею (процесс описан выше), и устанавливаем пакет для MODx "RezImgCrop".
<link href="css/jquery.bxslider.css" rel="stylesheet">
<link href="fancybox/jquery.fancybox.css" rel="stylesheet">
<script src="js/jquery.bxslider.min.js"></script>
<script src="fancybox/jquery.fancybox.pack.js"></script>
<li><a href="[ [+image_absolute:rezimgcrop=`r-800`]]" class="fancybox" rel="gallery1"><img src="[ [+image_absolute:rezimgcrop=`r-x120`]]" alt="Карусель" /></a></li>
Чуть подробнее о плейсхолдерах и классах:
<ul class="bxslider-carusel">
[ [!Gallery?
&album=`[ [*gal-item:code]]`
&checkForRequestTagVar=`1`
&useCss=`0`
&thumbTpl=`gallery-carusel-tpl`]]
</ul>
<script>
$(document).ready(function(){
$(".fancybox").fancybox();
$('.bxslider-carusel').bxSlider({
minSlides: 5,
maxSlides: 5,
slideWidth: "auto",
slideMargin: 10,
pager:false
});
});
</script>