Ralat berlaku semasa memproses templat.
The following has evaluated to null or missing: ==> Image.getSiblings()[itemCounter].getAttribute("alt") [in template "20096#20121#66430" at line 128, column 98] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${Image.getSiblings()[itemCounter].ge... [in template "20096#20121#66430" at line 128, column 96] ----
1<!--
2 <link rel="stylesheet" href="/html/web/plugins/fancybox/fancybox.css" />
3 -->
4<link rel="stylesheet" href="/html/web/plugins/fancybox/jquery.fancybox.min.css" />
5
6
7<style>
8 @media (max-width:991px) {
9
10 .w-100-mobile {
11 width: 100% !important;
12 margin-bottom: 10px;
13 }
14
15 }
16</style>
17<div class="container py-5">
18
19 <div class="">
20
21 <div class="row">
22 <div class="col">
23 <#if (Title.getData())??>
24 <h1 class="text-orange medium-bold">
25 ${Title.getData()}
26 </h1>
27 </#if>
28 </div>
29 </div>
30
31 <div class="row">
32 <div class="col">
33 <#if (Date.getData())??>
34 <p>Date : ${Date.getData()}</p>
35 </#if>
36 <#if (Venue.getData())??>
37 <p>Venue : ${Venue.getData()}</p>
38 </#if>
39 </div>
40 </div>
41
42 <hr>
43
44 <#if Image.getSiblings()?has_content>
45 <#assign totalCount=Image.getSiblings()?size />
46 <#if totalCount gt 4>
47
48
49 <#if (totalCount % 4)==0>
50
51 <#assign itemCounter=0 />
52 <#assign fourXCount=(totalCount / 4)?floor />
53 <#list 1..fourXCount as item>
54
55 <!-- main loop - start -->
56 <div class="row m-0 d-md-flex justify-content-around my-5">
57 <!-- item loop - start -->
58 <div class="col-md-3">
59 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter].getData()}">
60 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter].getData()}" />
61 </a>
62 </div>
63 <div class="col-md-3">
64 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter + 1].getData()}">
65 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter + 1].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter + 1].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter + 1].getData()}" />
66 </a>
67 </div>
68 <div class="col-md-3">
69 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter + 2].getData()}">
70 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter + 2].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter + 2].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter + 2].getData()}" />
71 </a>
72 </div>
73 <div class="col-md-3">
74 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter + 3].getData()}">
75 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter + 3].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter + 3].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter + 3].getData()}" />
76
77 </a>
78 </div>
79 <!-- item loop - end -->
80 </div>
81 <!-- main loop - end -->
82
83 <#assign itemCounter=itemCounter + 4 />
84 </#list>
85
86 <#elseif (totalCount % 3)==0>
87
88 <#assign itemCounter=0 />
89 <#assign threeXCount=(totalCount / 3)?floor />
90 <#list 1..threeXCount as item>
91
92 <!-- main loop - start -->
93 <div class="row m-0 d-md-flex justify-content-around my-5">
94 <!-- item loop - start -->
95 <div class="col-md-3">
96 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter].getData()}">
97 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter].getData()}" />
98 </a>
99 </div>
100 <div class="col-md-3">
101 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter + 1].getData()}">
102 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter + 1].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter + 1].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter + 1].getData()}" />
103 </a>
104 </div>
105 <div class="col-md-3">
106 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter + 2].getData()}">
107 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter + 2].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter + 2].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter + 2].getData()}" />
108 </a>
109 </div>
110 <!-- item loop - end -->
111 </div>
112 <!-- main loop - end -->
113
114 <#assign itemCounter=itemCounter + 3 />
115 </#list>
116
117 <#elseif (totalCount % 4)==3>
118
119 <#assign itemCounter=0 />
120 <#assign fortyThreeXCount=(totalCount / 4)?floor />
121 <#list 1..fortyThreeXCount as item>
122
123 <!-- main loop - start -->
124 <div class="row m-0 d-md-flex justify-content-around my-5">
125 <!-- item loop - start -->
126 <div class="col-md-3">
127 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter].getData()}">
128 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter].getData()}" />
129 </a>
130 </div>
131 <div class="col-md-3">
132 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter + 1].getData()}">
133 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter + 1].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter + 1].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter + 1].getData()}" />
134 </a>
135 </div>
136 <div class="col-md-3">
137 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter + 2].getData()}">
138 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter + 2].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter + 2].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter + 2].getData()}" />
139 </a>
140 </div>
141 <div class="col-md-3">
142 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter + 3].getData()}">
143 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter + 3].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter + 3].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter + 3].getData()}" />
144 </a>
145 </div>
146 <!-- item loop - end -->
147 </div>
148 <!-- main loop - end -->
149
150 <#assign itemCounter=itemCounter + 4 />
151 </#list>
152
153 <div class="row m-0 d-md-flex justify-content-around my-5">
154 <!-- item loop - start -->
155 <div class="col-md-3">
156 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter].getData()}">
157 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter].getData()}" />
158 </a>
159 </div>
160 <div class="col-md-3">
161 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter + 1].getData()}">
162 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter + 1].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter + 1].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter + 1].getData()}" />
163 </a>
164 </div>
165 <div class="col-md-3">
166 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter + 2].getData()}">
167 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter + 2].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter + 2].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter + 2].getData()}" />
168 </a>
169 </div>
170 <!-- item loop - end -->
171 </div>
172
173 <#elseif (totalCount % 3)==2>
174
175 <#assign itemCounter=0 />
176 <#assign thirtyTwoXCount=(totalCount / 3)?floor />
177 <#list 1..thirtyTwoXCount as item>
178
179 <!-- main loop - start -->
180 <div class="row m-0 d-md-flex justify-content-around my-5">
181 <!-- item loop - start -->
182 <div class="col-md-3">
183 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter].getData()}">
184 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter].getData()}" />
185 </a>
186 </div>
187 <div class="col-md-3">
188 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter + 1].getData()}">
189 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter + 1].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter + 1].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter + 1].getData()}" />
190 </a>
191 </div>
192 <div class="col-md-3">
193 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter + 2].getData()}">
194 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter + 2].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter + 2].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter + 2].getData()}" />
195 </a>
196 </div>
197 <!-- item loop - end -->
198 </div>
199 <!-- main loop - end -->
200
201 <#assign itemCounter=itemCounter + 3 />
202 </#list>
203
204 <div class="row m-0 d-md-flex justify-content-around my-5">
205 <!-- item loop - start -->
206 <div class="col-md-3">
207 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter].getData()}">
208 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter].getData()}" />
209 </a>
210 </div>
211 <div class="col-md-3">
212 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter + 1].getData()}">
213 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter + 1].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter + 1].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter + 1].getData()}" />
214 </a>
215 </div>
216 <!-- item loop - end -->
217 </div>
218
219 <#else>
220
221 <#assign itemCounter=0 />
222 <#assign specialCounter=totalCount - 4 />
223 <div class="row m-0 d-md-flex justify-content-around my-5">
224 <!-- item loop - start -->
225 <div class="col-md-3">
226 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter].getData()}">
227 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter].getData()}" />
228 </a>
229 </div>
230 <div class="col-md-3">
231 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter + 1].getData()}">
232 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter + 1].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter + 1].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter + 1].getData()}" />
233 </a>
234 </div>
235 <div class="col-md-3">
236 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter + 2].getData()}">
237 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter + 2].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter + 2].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter + 2].getData()}" />
238 </a>
239 </div>
240 <div class="col-md-3">
241 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter + 3].getData()}">
242 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter + 3].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter + 3].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter + 3].getData()}" />
243 </a>
244 </div>
245 <!-- item loop - end -->
246 </div>
247 <#assign itemCounter=4 />
248 <#list 1..specialCounter/3 as item>
249
250 <!-- main loop - start -->
251 <div class="row m-0 d-md-flex justify-content-around my-5">
252 <!-- item loop - start -->
253 <div class="col-md-3">
254 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter].getData()}">
255 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter].getData()}" />
256 </a>
257 </div>
258 <div class="col-md-3">
259 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter + 1].getData()}">
260 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter + 1].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter + 1].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter + 1].getData()}" />
261 </a>
262 </div>
263 <div class="col-md-3">
264 <a data-fancybox="gallery" href="${Image.getSiblings()[itemCounter + 2].getData()}">
265 <img width="90%" class="mx-auto w-100-mobile" alt="${Image.getSiblings()[itemCounter + 2].getAttribute("alt")}" data-fileentryid="${Image.getSiblings()[itemCounter + 2].getAttribute("fileEntryId")}" src="${Image.getSiblings()[itemCounter + 2].getData()}" />
266
267 </div>
268 <!-- item loop - end -->
269 </div>
270 <!-- main loop - end -->
271
272 <#assign itemCounter=itemCounter + 3 />
273 </#list>
274
275 </#if>
276
277
278 <#else>
279 <div class="row m-0 d-md-flex justify-content-around my-5">
280 <#list Image.getSiblings() as cur_Image>
281 <div class="col-md-3">
282 <#if (cur_Image.getData())?? && cur_Image.getData() !="">
283 <a data-fancybox="gallery" href="${cur_Image.getData()}">
284 <img width="90%" class="mx-auto w-100-mobile" alt="${cur_Image.getAttribute("alt")}" data-fileentryid="${cur_Image.getAttribute("fileEntryId")}" src="${cur_Image.getData()}" />
285 </a>
286 </#if>
287 </div>
288 </#list>
289 </div>
290 </#if>
291 </#if>
292 </div>
293
294</div>
295<!--
296<script src="/html/web/plugins/fancybox/fancybox.umd.js"></script>
297<script>
298Fancybox.bind('[', {
299 //
300 });
301
302</script>
303-->
304<script src="/html/web/plugins/fancybox/jquery.fancybox.min.js"></script>