forked from Bruno17/multiItemsTv
-
Notifications
You must be signed in to change notification settings - Fork 0
/
snippet.getImagelist.php
81 lines (73 loc) · 2.35 KB
/
snippet.getImagelist.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
/**
* getImageList
*
* Copyright 2009-2010 by Bruno Perner <[email protected]>
*
* getImageList 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.
*
* getImageList 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
* FormIt; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
* Suite 330, Boston, MA 02111-1307 USA
*
* @package imageListTv
*/
/**
* getImageList
*
* get Images from TV with custom-input-type imageList for MODx Revolution 2.0.
*
* @version 1.0
* @author Bruno Perner <[email protected]>
* @copyright Copyright © 2009-2010
* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU General Public License
* version 2 or (at your option) any later version.
* @package imageListTv
*/
/*example: <ul>[[!getImageList? &tvname=`myTV`&tpl=`@CODE:<li><img src="[[+imageURL]]"/><p>[[+imageAlt]]</p></li>`]]</ul>*/
/* get default properties */
$tvname = $modx->getOption('tvname', $scriptProperties, '');
$tpl = $modx->getOption('tpl', $scriptProperties, '');
$docid = $modx->getOption('docid', $scriptProperties, $modx->resource->get('id'));
if ($tvname == '' || $tpl == 'xx')
{
return;
}
$tv = $modx->getObject('modTemplateVar', array ('name'=>$tvname));
$outputvalue = $tv->renderOutput($docid);
$items = $modx->fromJSON($outputvalue);
$output = '';
if (substr($tpl, 0, 6) == "@FILE:")
{
$template = $this->get_file_contents($modx->config['base_path'].substr($tpl, 6));
} else if (substr($tpl, 0, 6) == "@CODE:")
{
$template = substr($tpl, 6);
} else if ($chunk = $modx->getObject('modChunk', array ('name'=>$tpl), true))
{
$template = $chunk->getContent();
} else
{
$template = FALSE;
}
if ($template)
{
if (count($items) > 0)
{
foreach ($items as $item)
{
$chunk = $modx->newObject('modChunk');
$chunk->setCacheable(false);
$output .= $chunk->process($item, $template);
}
}
}
return $output;
?>