Ну, примерно так: <?php /** * Smarty plugin * *
Ну, примерно так:
<?php
/**
* Smarty plugin
*
* @package Smarty
* @subpackage PluginsFunction
*/
function smarty_function_galAlbum($params, & $smarty)
{
if(!isset($params['album']) OR !$album = $params['album']){return;}
$output = '';
if(!$rowTpl = $params['rowTpl']){
$output = array();
}
if(!empty($params['assign'])){
$assign = (string)$params['assign'];
}
$modx = & $smarty->modx;
// Получаем все элементы
$q = $modx->newQuery('galItem');
$q->join('galAlbumItem', 'AlbumItems');
$q->where(array(
'AlbumItems.album' => $album,
));
if($items=$modx->getCollection('galItem', $q)){
foreach($items as $item){
$item = array(
'name' =>$item->get('name'),
'description' =>$item->get('description'),
// 'filename' =>$item->get('filename'),
// 'mediatype' =>$item->get('mediatype'),
// 'url' =>$item->get('url'),
'relativeImage' => $item->get('relativeImage'),
// 'thumbnail' =>$item->get('thumbnail'),
// 'image' =>$item->get('image'),
// 'absoluteImage' =>$item->get('absoluteImage'),
// 'filesize' =>$item->get('filesize'),
// 'image_path' =>$item->get('image_path'),
);
if($rowTpl){
$smarty->assign('item',$item);
$output.=$smarty->fetch($rowTpl);
}
else{
$output[]=$item;
}
}
}
return !empty($assign) ? $smarty->assign($assign, $output) : $output;
}