diff --git a/core/components/gallery/model/gallery/galitem.class.php b/core/components/gallery/model/gallery/galitem.class.php index 61e85e8..b54a9fb 100644 --- a/core/components/gallery/model/gallery/galitem.class.php +++ b/core/components/gallery/model/gallery/galitem.class.php @@ -243,6 +243,7 @@ public function move($album) { } public static function getList(modX &$modx,array $scriptProperties = array()) { + $sort = $modx->getOption('sort',$scriptProperties,'rank'); $cacheKey = 'gallery/item/list/'.md5(serialize($scriptProperties)); if ($modx->getCacheManager() && $cache = $modx->cacheManager->get($cacheKey)) { $items = array(); @@ -252,8 +253,12 @@ public static function getList(modX &$modx,array $scriptProperties = array()) { $item->fromArray($data,'',true,true); $items[] = $item; } - - $data = array( + + if (in_array(strtolower($sort),array('random','rand()','rand'))) { + shuffle($items); + } + + $data = array( 'items' => $items, 'total' => $cache['total'], 'album' => $cache['album'], @@ -267,7 +272,6 @@ public static function getList(modX &$modx,array $scriptProperties = array()) { /* Fix to make it work with getPage which uses "offset" instead of "start" */ $offset = $modx->getOption('offset',$scriptProperties,0); if ($offset > 0) { $start = $offset; } - $sort = $modx->getOption('sort',$scriptProperties,'rank'); $sortAlias = $modx->getOption('sortAlias',$scriptProperties,'galItem'); if ($sort == 'rank') $sortAlias = 'AlbumItems'; $dir = $modx->getOption('dir',$scriptProperties,'ASC');