GalleryItemPagination
Последнее обновление not available | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$204 per month—let's make that $500!
Learn moreСниппет GalleryItemPagination¶
Сниппет GalleryItemPagination задаёт плейсхолдеры для базовой навигации (previous, next) при выводе одного элемента Gallery через GalleryItem.
Свойства¶
GalleryItemPagination использует следующие свойства:
| Name | Description | default value |
|---|---|---|
| curItem | ID текущего изображения. Можно переопределить URL-параметром. | 1, or an url parameter |
| checkForRequestVar | Переопределять ли curItem URL-параметром из getParam | 1 |
| getParam | URL-параметр для checkForRequestVar | galItem |
| album | ID или имя альбома | 1 |
| checkForRequestAlbumVar | Переопределять ли album URL-параметром из albumRequestVar | 1 |
| albumRequestVar | URL-параметр для checkForRequestAlbumVar | galAlbum |
Плейсхолдеры¶
GalleryItemPagination задаёт плейсхолдеры для текущего, предыдущего, следующего, первого и последнего элемента альбома. Пространства имён в таблице ниже. Можно использовать те же поля, что у плейсхолдеров GalleryItem, кроме album и tags.
| Name | Description |
|---|---|
| galitem.cur.* | Пространство имён текущего элемента альбома |
| galitem.prev.* | Пространство имён предыдущего элемента альбома |
| galitem.next.* | Пространство имён следующего элемента альбома |
| galitem.first.* | Пространство имён первого элемента альбома |
| galitem.last.* | Пространство имён последнего элемента альбома |
Примеры плейсхолдеров¶
Ниже частые плейсхолдеры GalleryItemPagination для tpl или ресурса.
| Name | Description |
|---|---|
| galitem.cur.id | Плейсхолдер ID текущего элемента альбома |
| galitem.prev.id | Плейсхолдер ID предыдущего элемента альбома |
| galitem.next.id | Плейсхолдер ID следующего элемента альбома |
| galitem.first.id | Плейсхолдер ID первого элемента альбома |
| galitem.last.id | Плейсхолдер ID последнего элемента альбома |
| galitem.next.filename | Имя файла следующего элемента |
| galitem.cur.description | Описание текущего элемента |
Примеры GalleryItemPagination¶
Базовая навигация для элемента GalleryItem с плейсхолдерами previous и next.
Создайте сниппет «GalleryItemPagination»¶
Сначала создайте сниппет. Назовите его «GalleryItemPagination» и сохраните.
<?php
// First instantiate the Gallery package
$modx->addPackage('gallery',$modx->getOption('gallery.core_path',$config,$modx->getOption('core_path').'components/gallery/').'model/');
$curItem = $modx->getOption('curItem',$scriptProperties,1);
if ($modx->getOption('checkForRequestVar',$scriptProperties,true)) {
$getParam = $modx->getOption('getParam',$scriptProperties,'galItem');
if (!empty($_REQUEST[$getParam])) { $curItem = (int)$_REQUEST[$getParam]; }
}
if (empty($curItem)) return '';
$album = $modx->getOption('album',$scriptProperties,1);
if ($modx->getOption('checkForRequestAlbumVar',$scriptProperties,true)) {
$albumRequestVar = $modx->getOption('albumRequestVar',$scriptProperties,'galAlbum');
if (!empty($_REQUEST[$albumRequestVar])) $album = $_REQUEST[$albumRequestVar];
}
// We pass the album name/ID to an &album property and find the gallery object
if (!is_int($album)) {
$gallery = $modx->getObject('galAlbum',array('name' => $album));
if ($gallery instanceof galAlbum)
$album = $gallery->get('id');
}
$c = $modx->newQuery('galAlbumItem');
$c->innerJoin('galItem','Item');
$c->where(
array(
'album' => $album,
)
);
$c->select(
array(
'galAlbumItem.*',
'Item.*',
)
);
$c->sortby('rank','asc');
$collection = $modx->getCollection('galAlbumItem',$c);
$items = array();
foreach ($collection as $i) {
$items[] = $i->toArray();
}
$continue = true;
$i = 0; $prev = array(); $cur = array(); $next = array();
while ($continue) {
$prev = $cur;
$cur = $items[$i];
if ($cur['id'] == $curItem) {
$next = $items[$i+1];
$continue = false;
}
$i++;
}
$first = $items[0];
$last = $items[count($items)-1];
$phs['galitem.cur.'] = $cur;
$phs['galitem.prev.'] = $prev;
$phs['galitem.next.'] = $next;
$phs['galitem.first.'] = $first;
$phs['galitem.last.'] = $last;
$modx->setPlaceholders($phs);
return '';
Настройте плейсхолдеры навигации:
[[!GalleryItemPagination? &album=`1`]]
[[!If? &subject=`[[!+galitem.prev.id]]`&operator=`isnotempty` &then=`
<a id="previmg" href="[[++site_url]]?id=[[*id]]&galItem=[[!+galitem.prev.id]]&galAlbum=1&galTag=">previous image</a>`]]
[[!If? &subject=`[[!+galitem.next.id]]`&operator=`isnotempty` &then=`
<a id="nextimg" href="[[++site_url]]?id=[[*id]]&galItem=[[!+galitem.next.id]]&galAlbum=1&galTag=">next image</a>`]]
`]]
Смотрите также¶
- Gallery.Gallery
- Gallery.GalleryAlbums
- Gallery.GalleryItem
- Gallery.Plugins
- Gallery.Setting Up Your Gallery
- Gallery.Example1
- Gallery.Setting Up the GalleryItem TV
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$204 per month—let's make that $500!
Learn more










