| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- <?php return '/**
- * Gallery
- *
- * Copyright 2010-2012 by Shaun McCormick <shaun@modx.com>
- *
- * Gallery is free software; you can redistribute it and/or modify it under the
- * terms of the GNU General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option) any later
- * version.
- *
- * Gallery is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Gallery; if not, write to the Free Software Foundation, Inc., 59 Temple
- * Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * @package gallery
- */
- /**
- * The main Gallery snippet.
- *
- * @var modX $modx
- * @var Gallery $gallery
- *
- * @package gallery
- */
- $gallery = $modx->getService(\'gallery\',\'Gallery\',$modx->getOption(\'gallery.core_path\',null,$modx->getOption(\'core_path\').\'components/gallery/\').\'model/gallery/\',$scriptProperties);
- if (!($gallery instanceof Gallery)) return \'\';
- $modx->lexicon->load(\'gallery:web\');
- /* check for REQUEST vars if property set */
- $imageGetParam = $modx->getOption(\'imageGetParam\',$scriptProperties,\'galItem\');
- $albumRequestVar = $modx->getOption(\'albumRequestVar\',$scriptProperties,\'galAlbum\');
- $tagRequestVar = $modx->getOption(\'tagRequestVar\',$scriptProperties,\'galTag\');
- if ($modx->getOption(\'checkForRequestAlbumVar\',$scriptProperties,true)) {
- if (!empty($_REQUEST[$albumRequestVar])) $scriptProperties[\'album\'] = $_REQUEST[$albumRequestVar];
- }
- if ($modx->getOption(\'checkForRequestTagVar\',$scriptProperties,true)) {
- if (!empty($_REQUEST[$tagRequestVar])) $scriptProperties[\'tag\'] = $_REQUEST[$tagRequestVar];
- }
- if (empty($scriptProperties[\'album\']) && empty($scriptProperties[\'tag\'])) return \'\';
- $data = $modx->call(\'galItem\',\'getList\',array(&$modx,$scriptProperties));
- $totalVar = $modx->getOption(\'totalVar\', $scriptProperties, \'total\');
- $modx->setPlaceholder($totalVar,$data[\'total\']);
- /* load plugins */
- $plugin = $modx->getOption(\'plugin\',$scriptProperties,\'\');
- if (!empty($plugin)) {
- $pluginPath = $modx->getOption(\'pluginPath\',$scriptProperties,\'\');
- if (empty($pluginPath)) {
- $pluginPath = $gallery->config[\'modelPath\'].\'gallery/plugins/\';
- }
- /** @var GalleryPlugin $plugin */
- if (($className = $modx->loadClass($plugin,$pluginPath,true,true))) {
- $plugin = new $className($gallery,$scriptProperties);
- $plugin->load();
- $scriptProperties = $plugin->adjustSettings($scriptProperties);
- } else {
- return $modx->lexicon(\'gallery.plugin_err_load\',array(\'name\' => $plugin,\'path\' => $pluginPath));
- }
- } else {
- if ($modx->getOption(\'useCss\',$scriptProperties,true)) {
- $modx->regClientCSS($gallery->config[\'cssUrl\'].\'web.css\');
- }
- }
- /* iterate */
- $imageProperties = $modx->getOption(\'imageProperties\',$scriptProperties,\'\');
- $imageProperties = !empty($imageProperties) ? $modx->fromJSON($imageProperties) : array();
- $imageProperties = array_merge(array(
- \'w\' => (int)$modx->getOption(\'imageWidth\',$scriptProperties,500),
- \'h\' => (int)$modx->getOption(\'imageHeight\',$scriptProperties,500),
- \'zc\' => (boolean)$modx->getOption(\'imageZoomCrop\',$scriptProperties,0),
- \'far\' => (string)$modx->getOption(\'imageFar\',$scriptProperties,false),
- \'q\' => (int)$modx->getOption(\'imageQuality\',$scriptProperties,90),
- ),$imageProperties);
- $thumbProperties = $modx->getOption(\'thumbProperties\',$scriptProperties,\'\');
- $thumbProperties = !empty($thumbProperties) ? $modx->fromJSON($thumbProperties) : array();
- $thumbProperties = array_merge(array(
- \'w\' => (int)$modx->getOption(\'thumbWidth\',$scriptProperties,100),
- \'h\' => (int)$modx->getOption(\'thumbHeight\',$scriptProperties,100),
- \'zc\' => (boolean)$modx->getOption(\'thumbZoomCrop\',$scriptProperties,1),
- \'far\' => (string)$modx->getOption(\'thumbFar\',$scriptProperties,\'C\'),
- \'q\' => (int)$modx->getOption(\'thumbQuality\',$scriptProperties,90),
- ),$thumbProperties);
- $idx = 0;
- $output = array();
- $filesUrl = $modx->call(\'galAlbum\',\'getFilesUrl\',array(&$modx));
- $filesPath = $modx->call(\'galAlbum\',\'getFilesPath\',array(&$modx));
- $itemCls = $modx->getOption(\'itemCls\',$scriptProperties,\'gal-item\');
- $imageAttributes = $modx->getOption(\'imageAttributes\',$scriptProperties,\'\');
- $linkAttributes = $modx->getOption(\'linkAttributes\',$scriptProperties,\'\');
- $linkToImage = $modx->getOption(\'linkToImage\',$scriptProperties,false);
- $activeCls = $modx->getOption(\'activeCls\',$scriptProperties,\'gal-item-active\');
- $highlightItem = $modx->getOption($imageGetParam,$_REQUEST,false);
- $defaultThumbTpl = $modx->getOption(\'thumbTpl\',$scriptProperties,\'galItemThumb\');
- /** @var galItem $item */
- if (!is_array($data)) return \'\';
- // prep for &thumbTpl_N
- $keys = array_keys($scriptProperties);
- $nthTpls = array();
- foreach($keys as $key) {
- $keyBits = $gallery->explodeAndClean($key, \'_\');
- if (isset($keyBits[0]) && $keyBits[0] === \'thumbTpl\') {
- if ($i = (int) $keyBits[1]) $nthTpls[$i] = $scriptProperties[$key];
- }
- }
- ksort($nthTpls);
- foreach ($data[\'items\'] as $item) {
- $itemArray = $item->toArray();
- $itemArray[\'idx\'] = $idx;
- $itemArray[\'cls\'] = $itemCls;
- if ($itemArray[\'id\'] == $highlightItem) {
- $itemArray[\'cls\'] .= \' \'.$activeCls;
- }
- $itemArray[\'filename\'] = basename($item->get(\'filename\'));
- $itemArray[\'image_absolute\'] = $item->get(\'base_url\').$filesUrl.$item->get(\'filename\');
- $itemArray[\'fileurl\'] = $itemArray[\'image_absolute\'];
- $itemArray[\'filepath\'] = $filesPath.$item->get(\'filename\');
- $itemArray[\'filesize\'] = $item->get(\'filesize\');
- $itemArray[\'thumbnail\'] = $item->get(\'thumbnail\',$thumbProperties);
- $itemArray[\'image\'] = $item->get(\'thumbnail\',$imageProperties);
- $itemArray[\'image_attributes\'] = $imageAttributes;
- $itemArray[\'link_attributes\'] = $linkAttributes;
- if (!empty($scriptProperties[\'album\'])) $itemArray[\'album\'] = $scriptProperties[\'album\'];
- if (!empty($scriptProperties[\'tag\'])) $itemArray[\'tag\'] = $scriptProperties[\'tag\'];
- $itemArray[\'linkToImage\'] = $linkToImage;
- $itemArray[\'url\'] = $item->get(\'url\');
- $itemArray[\'imageGetParam\'] = $imageGetParam;
- $itemArray[\'albumRequestVar\'] = $albumRequestVar;
- $itemArray[\'tagRequestVar\'] = $tagRequestVar;
- $itemArray[\'tag\'] = \'\';
- if ($plugin) {
- $plugin->renderItem($itemArray);
- }
- $thumbTpl = $defaultThumbTpl;
- if (isset($nthTpls[$idx])) {
- $thumbTpl = $nthTpls[$idx];
- } else {
- foreach ($nthTpls as $int => $tpl) {
- if ( ($idx % $int) === 0 ) $thumbTpl = $tpl;
- }
- }
- $output[] = $gallery->getChunk($thumbTpl,$itemArray);
- $idx++;
- }
- $output = implode("\\n",$output);
- /* if set, place in a container tpl */
- $containerTpl = $modx->getOption(\'containerTpl\',$scriptProperties,false);
- if (!empty($containerTpl)) {
- $ct = $gallery->getChunk($containerTpl,array(
- \'thumbnails\' => $output,
- \'album_name\' => $data[\'album\'][\'name\'],
- \'album_description\' => $data[\'album\'][\'description\'],
- \'album_year\' => isset($data[\'album\'][\'year\']) ? $data[\'album\'][\'year\'] : \'\',
- \'albumRequestVar\' => $albumRequestVar,
- \'albumId\' => $data[\'album\'][\'id\'],
- ));
- if (!empty($ct)) $output = $ct;
- }
- /* set to placeholders or output directly */
- $toPlaceholder = $modx->getOption(\'toPlaceholder\',$scriptProperties,false);
- if (!empty($toPlaceholder)) {
- $modx->toPlaceholders(array(
- $toPlaceholder => $output,
- $toPlaceholder.\'.id\' => $data[\'album\'][\'id\'],
- $toPlaceholder.\'.name\' => $data[\'album\'][\'name\'],
- $toPlaceholder.\'.year\' => isset($data[\'album\'][\'year\']) ? $data[\'album\'][\'year\'] : \'\',
- $toPlaceholder.\'.description\' => $data[\'album\'][\'description\'],
- $toPlaceholder.\'.total\' => $data[\'total\'],
- $toPlaceholder.\'.next\' => $data[\'album\'][\'id\'] + 1,
- $toPlaceholder.\'.prev\' => $data[\'album\'][\'id\'] - 1,
- ));
- } else {
- $placeholderPrefix = $modx->getOption(\'placeholderPrefix\',$scriptProperties,\'gallery.\');
- $modx->toPlaceholders(array(
- $placeholderPrefix.\'id\' => $data[\'album\'][\'id\'],
- $placeholderPrefix.\'name\' => $data[\'album\'][\'name\'],
- $placeholderPrefix.\'year\' => isset($data[\'album\'][\'year\']) ? $data[\'album\'][\'year\'] : \'\',
- $placeholderPrefix.\'description\' => $data[\'album\'][\'description\'],
- $placeholderPrefix.\'total\' => $data[\'total\'],
- $placeholderPrefix.\'next\' => $data[\'album\'][\'id\'] + 1,
- $placeholderPrefix.\'prev\' => $data[\'album\'][\'id\'] - 1,
- ));
- return $output;
- }
- return \'\';
- return;
- ';
|