Hi,
I also wanted to display a random image with GalleryItem snippet (from any album).
So I changed few lines in GalleryItem snippet as I didn’t want to wait until the next update
.....
/* get ID of item */
if($id !=’random’) { $id = (int)$modx->getOption(’id’,$scriptProperties,false); }
if ($modx->getOption(’checkForRequestVar’,$scriptProperties,true)) {
$getParam = $modx->getOption(’getParam’,$scriptProperties,’galItem’);
if (!empty($_REQUEST[$getParam])) { $id = (int)$_REQUEST[$getParam]; }
}
if (empty($id)) return ’’;
/* setup default properties */
$tpl = $modx->getOption(’tpl’,$scriptProperties,’galItem’);
$toPlaceholders = $modx->getOption(’toPlaceholders’,$scriptProperties,true);
$toPlaceholdersPrefix = $modx->getOption(’toPlaceholdersPrefix’,$scriptProperties,’galitem’);
$albumTpl = $modx->getOption(’albumTpl’,$scriptProperties,’galItemAlbum’);
$albumSeparator = $modx->getOption(’albumSeparator’,$scriptProperties,’, ’);
$albumRequestVar = $modx->getOption(’albumRequestVar’,$scriptProperties,’galAlbum’);
$tagTpl = $modx->getOption(’tagTpl’,$scriptProperties,’galItemTag’);
$tagSeparator = $modx->getOption(’tagSeparator’,$scriptProperties,’, ’);
$tagSortDir = $modx->getOption(’tagSortDir’,$scriptProperties,’DESC’);
$tagRequestVar = $modx->getOption(’tagRequestVar’,$scriptProperties,’galTag’);
/* get item */
$c = $modx->newQuery(’galItem’);
$c->select($modx->getSelectColumns(’galItem’,’galItem’));
if($id != ’random’) {
$c->where(array(’id’ => $id)); }
else {
$c->sortby(’RAND()’,’ASC’);
$c->limit(1); }
$item = $modx->getObject(’galItem’,$c);
if (empty($item)) return ’’;
....
And it works with :
[[!GalleryItem? &id=`random` ]]
+++
Vincent
(tested with Revo 2.1.1 with Gallery 1.2.1)