Sourcecode in Global/macros.js:
1: function gallery_macro(param) {
2: if (param.images) {
3: var items = new Array();
4: var aliases = param.images.split(",");
5: for (var i=0; i<aliases.length; i++) {
6: aliases[i] = aliases[i].trim();
7: var img = getPoolObj(aliases[i], "images");
8: if (img && img.obj) items[items.length] = img.obj;
9: }
10: } else if (param.topic == null && path.Topic) {
11: var items = path.Topic.list();
12: } else {
13: var top = param.topic;
14: if (top && top.indexOf("/") >= 0) {
15: var objPath = top.split("/");
16: var s = (!objPath[0] || objPath[0] == "root") ? root : root.get(objPath[0]);
17: top = objPath[1];
18: }
19: if (s==null) var s = res.handlers.site;
20: var pool = (top) ? s.images.topics.get(top) : s.images;
21: if (pool==null) return;
22: var items = pool.list();
23: }
24: var cols = param.cols ? parseInt(param.cols) : 4;
25: var table_params = param.table_params ? " "+param.table_params : " class=\"gallery\"";
26: var tr_params = param.tr_params ? " "+param.tr_params : "";
27: var td_params = param.td_params ? " "+param.td_params : "";
28: var itemprefix = param.itemprefix ? param.itemprefix : "";
29: var itemsuffix = param.itemsuffix ? param.itemsuffix : "";
30: var order = param.order ? param.order : null;
31: delete(param.topic);
32: delete(param.images);
33: delete(param.cols);
34: delete(param.itemprefix);
35: delete(param.itemsuffix);
36: delete(param.table_params);
37: delete(param.tr_params);
38: delete(param.td_params);
39:
40: if (param.as==null) param.as = "popup";
41: if (cols>0) res.write("<table"+table_params+">\n");
42: if (cols==0 || items.length%cols==0)
43: var max = items.length;
44: else
45: var max = items.length + (cols - items.length%cols);
46: for (var i=0; i<max; i++) {
47: var img = (i<items.length) ? items[i] : null;
48: if (cols>0 && i%cols==0) res.write("<tr"+tr_params+">\n");
49: if (cols>0) res.write("<td"+td_params+">");
50: if (img) {
51: res.write(itemprefix);
52: var obj = new HopObject();
53: for (var j in param) obj[j] = param[j];
54: obj.name = img.site.alias + "/" + img.alias;
55: image_macro(obj);
56: res.write(itemsuffix);
57: }
58: if (cols>0) res.write("</td>\n");
59: if (cols>0 && i%cols==cols-1) res.write("</tr>\n");
60: }
61: if (cols>0) res.write("</table>\n");
62: return;
63: }
|