Er trad een fout op tijdens de verwerking van de sjabloon.
The following has evaluated to null or missing:
==> ExtraLinknaam  [in template "20097#20123#1034641" at line 276, column 42]

----
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: #if ExtraLinknaam.getSiblings()?has_c...  [in template "20097#20123#1034641" at line 276, column 37]
----
1<#setting locale="nl_NL"> 
2<#setting date_format= "yyyy-MM-dd"/> 
3 
4<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
5 
6<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
7 
8<#assign article = JournalArticleLocalService.getArticle(getterUtil.getLong(scopeGroupId), .vars['reserved-article-id'].data)> 
9 
10<#assign asset = assetEntryLocalService.getEntry('com.liferay.journal.model.JournalArticle', article.resourcePrimKey) > 
11 
12<#assign currentURL = "${themeDisplay.getURLPortal()}${themeDisplay.getURLCurrent()}" /> 
13 
14<link rel="stylesheet" href="https://js.arcgis.com/4.18/esri/themes/light/main.css"> 
15<script src="https://js.arcgis.com/4.18/"></script> 
16 
17 
18<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" integrity="sha512-W/zrbCncQnky/EzL+/AYwTtosvrM+YG/V6piQLSe2HuKS6cmbw89kjYkp3tWFn1dkWV7L1ruvJyKbLz73Vlgfg==" crossorigin="anonymous" referrerpolicy="no-referrer" /> 
19<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" integrity="sha512-siarrzI1u3pCqFG2LEzi87McrBmq6Tp7juVsdmGY1Dr8Saw+ZBAzDzrGwX3vgxX1NkioYNCFOVC0GpDPss10zQ==" crossorigin="anonymous" referrerpolicy="no-referrer" /> 
20 
21<style> 
22.header-back-to { 
23    display: none; 
24
25 
26#circkaart{ 
27    height: 100%; 
28    width: 100%; 
29    object-fit: cover; 
30    background: white; 
31
32 
33.articleImage{ 
34    width: 100%; 
35    max-height: 350px; 
36    object-fit: contain; 
37    background: #ffffff; 
38    background-image: url(https://www.hilversummers.nl/documents/1037192/0/Vector+ssSmart+Object+%282%29.png/c53f2166-bbe1-ea1c-3812-eaa96cda06a4?t=1695885308284); 
39    background-size: cover; 
40
41.clrsWrap{ 
42    flex-direction: row; 
43    height: 100%; 
44
45.articleBody { 
46    background: red; 
47    color: white; 
48    padding: 40px; 
49    box-shadow: 0px 3px 6px #00000028; 
50 
51
52.backToHome{ 
53       display: inline-block; 
54    margin-bottom: 20px; 
55
56#bericht_inhoud{ 
57    white-space: pre-line; 
58
59.shareBtn{ 
60    font-size: 23px; 
61    font-family: 'Lexend Deca'; 
62    font-weight: bold; 
63    background: red; 
64    color:white; 
65    padding: 7px 15px; 
66
67.shareBtn:hover, .shareBtn:focus{ 
68    color:#FFE500; 
69 
70
71.sharemodal{ 
72    display: none; 
73
74.sharemodal-dialog{ 
75    position: relative; 
76    transition: -webkit-transform .3s ease-out; 
77    transition: transform .3s ease-out; 
78    transition: transform .3s ease-out,-webkit-transform .3s ease-out; 
79
80 
81a.customer-share:hover, .customer-share:focus{ 
82    text-decoration: none; 
83
84.customer-share{ 
85    margin:5px; 
86        display: inline-table; 
87    margin: 5px; 
88    height: 40px; 
89    width: 40px; 
90    border-radius: 50px; 
91    border: solid red 3px; 
92
93.customer-share i{ 
94        background: white; 
95    display: inline-block !important; 
96    border-radius: 60px; 
97    padding: 0.75em 0.8em; 
98    width: 40px; 
99    height: 40px; 
100    text-align: center; 
101
102.articleTitle{ 
103    font-size: clamp(22px,2.292vw,38px); 
104    margin: 0; 
105
106.tagsShare{ 
107    padding: 40px;     
108    overflow: hidden; 
109    position: relative; 
110    display: flex; 
111    flex-direction: column; 
112
113.eventSvg { 
114    right: 0; 
115    top: 0; 
116    height: auto; 
117    max-height: 100%; 
118    margin-right: -40px; 
119    margin-top: -40px; 
120    position: absolute; 
121    width: auto; 
122    pointer-events: none; 
123
124    .tagsNSvg { 
125    color: red; 
126    text-transform: uppercase; 
127    font-family: 'Lexend Deca'; 
128    margin-bottom: 20px; 
129
130.tagsNSvg h2 { 
131    margin: 0; 
132    font-size: 15px; 
133
134.toFaqAndShare{ 
135    display: flex; 
136    justify-content: space-between; 
137    align-items: end; 
138    flex-wrap: wrap; 
139    position: relative; 
140    margin-top: auto; 
141
142.vragen{ 
143    font-family: 'Lexend Deca'; 
144    font-weight: bold; 
145    color:red; 
146    text-decoration: underline; 
147    font-size: clamp(22px,2.292vw,38px); 
148
149.tagsOrg{ 
150        z-index: 1; 
151    position: relative; 
152    font-size: 15px; 
153
154.datumtijd { 
155    font-weight: bold; 
156    font-family: 'Lexend Deca'; 
157    color: white; 
158    font-size: 15px; 
159
160.organisatorLink{ 
161    text-decoration:underline; 
162
163@media (min-width: 576px){ 
164.sharemodal-dialog { 
165    max-width: 370px; 
166    margin: 1.75rem auto; 
167
168.sharemodal-dialog { 
169    min-height: calc(100% - (1.75rem * 2)); 
170
171
172 
173@media(max-width:767.9px){ 
174        #circkaart{ 
175        height: 187px; 
176        width: 100%; 
177
178
179@media(max-width:575.9px){ 
180 
181    .bericht_detail_container{ 
182        padding:0; 
183
184    .articleBody,.tagsShare{ 
185        padding: 20px; 
186
187    #bericht_inhoud, #bericht_inhoud p{ 
188        font-size: 12px; 
189
190
191</style> 
192 
193 
194<div class="outerContainer"> 
195 
196    <div class="bericht_detail_container"> 
197        <a class="backToHome" href="<#if !paramUtil.getString(request, "redirect")?has_content> 
198        ${themeDisplay.getURLPortal()}/web${themeDisplay.getScopeGroup().friendlyURL} 
199        <#else> 
200            ${themeDisplay.getURLPortal()}${paramUtil.getString(request, "redirect")} 
201        </#if>"><img src="https://www.hilversummers.nl/documents/1037192/0/arrow.png/b5814a56-ceec-a1b6-c147-4a01b04f1ff2?t=1657115711257"></a> 
202         
203         
204         
205        <div class="bericht_details"> 
206            <div class="row no-gutters"> 
207                 
208                <div class="col-md-6"> 
209                    <#if (Afbeelding.getData())?? && Afbeelding.getData() != ""> 
210                        <img class="articleImage" alt="${Afbeelding.getAttribute("alt")}" src="${Afbeelding.getData()}" /> 
211                    </#if> 
212                </div> 
213 
214                <div class="col-md-6"> 
215                    <div class="d-flex clrsWrap"> 
216                        <div id="circkaart"> 
217                            <#assign latitude = 0> 
218                            <#assign longitude = 0> 
219 
220                            <#if (Geolocation1mdn.getData() != "")> 
221                                <#assign geolocationJSONObject = jsonFactoryUtil.createJSONObject(Geolocation1mdn.getData())> 
222                                <#assign latitude = geolocationJSONObject.getDouble("latitude")> 
223                                <#assign longitude = geolocationJSONObject.getDouble("longitude")> 
224                            </#if> 
225                        </div> 
226                    </div> 
227                </div> 
228 
229                 
230                <div class="col-md-6"> 
231 
232                    <div class="articleBody h-100"> 
233                        <h1 class="articleTitle">${.vars['reserved-article-title'].data}</h1> 
234                        <div id="bericht_inhoud"> 
235                            <p>${Beschrijving.getData()}</p> 
236                        </div> 
237                        <div class="datumtijd"> 
238                            <#if Begintijd?has_content><div>Starttijd: ${Begintijd.getData()}</div></#if> 
239                            <#if Eindtijd?has_content><div>Eindtijd: ${Eindtijd.getData()}</div></#if> 
240                            <#if Begindatum?has_content><div>Datum: <#assign Begindatum_Data = getterUtil.getString(Begindatum.getData())> 
241 
242                            <#if validator.isNotNull(Begindatum_Data)> 
243                                <#assign Begindatum_DateObj = dateUtil.parseDate("yyyy-MM-dd", Begindatum_Data, locale)> 
244 
245                                ${dateUtil.getDate(Begindatum_DateObj, "dd MMM yyyy", locale)} 
246                            </#if></div></#if> 
247                            <div><#if Locatie?has_content>Locatie: <span id="locatiespan">${Locatie.getData()}</#if></span> 
248                            </div> 
249                        </div> 
250                    </div> 
251                </div> 
252 
253                <div class="col-md-6"> 
254                    <div class="bg-white h-100 tagsShare "> 
255                        <div class="tagsNSvg row"> 
256                            <div class="tagsOrg col-lg-6"> 
257                                <div class="tags_event"> 
258                                    <#if asset.getTags()?has_content> 
259                                    <h2>TAGS:</h2> 
260                                    <#list asset.getTags() as tag> 
261                                        <span>#${tag.name}</span> 
262                                    </#list> 
263                                    </#if> 
264                                </div> 
265                                <br> 
266                                <div class="organisatie"> 
267                                <h2>ORGANISATOR: </h2> 
268                                    <#if OrganisatieLink?has_content && Organisatie?has_content> 
269                                        <a class="organisatorLink" target="_blank" href="${OrganisatieLink.getData()}">${Organisatie.getData()} <i class="icon-external-link"></i></a><br> 
270                                        <#else> 
271                                            <#if Organisatie?has_content> 
272                                                ${Organisatie.getData()}<br> 
273                                            </#if> 
274                                    </#if> 
275                                     
276                                    <#if ExtraLinknaam.getSiblings()?has_content> 
277                                    	<#list ExtraLinknaam.getSiblings() as cur_ExtraLinknaam> 
278                                            <#if cur_ExtraLinknaam.getChildren()[0].getData()?has_content> 
279                                                <a class="organisatorLink" target="_blank" href="${cur_ExtraLinknaam.getChildren()[0].getData()}">${cur_ExtraLinknaam.getData()} <i class="icon-external-link"></i></a><br> 
280                                            </#if> 
281                                    	</#list> 
282                                    </#if> 
283                                </div> 
284                            </div> 
285                            <div class="col-lg-6 d-none d-lg-block"> 
286                            <svg class="eventSvg" xmlns="http://www.w3.org/2000/svg" width="409.25" height="506.519" viewBox="0 0 409.25 506.519"> 
287                              <g id="Group_16" data-name="Group 16" transform="translate(-1184.024 -409)"> 
288                                <path id="Path_102" data-name="Path 102" d="M5351.022,4118,5759.3,4624.519v-160.6L5587.55,4118H5351.022" transform="translate(-4166.998 -3709)" fill="red"/> 
289                                <path id="Path_103" data-name="Path 103" d="M5351.022,4118,5575,4619.519V4460.508L5480.781,4118H5351.022" transform="translate(-3981.726 -3709)" fill="#ffe500"/> 
290                              </g> 
291                            </svg> 
292                            </div> 
293                        </div> 
294                        <div class="toFaqAndShare"> 
295                            <a class="vragen" href="${themeDisplay.getURLPortal()}/web${themeDisplay.getScopeGroup().friendlyURL}/faq">Vragen?</a> 
296                            <a aria-hidden="true" id="modal-buttton" data-toggle="modal" data-target="#sharemodal" href="#" class="shareBtn">Share</a> 
297                        </div> 
298                      
299                        <!-- Modal --> 
300                        <div class="modal fade sharemodal" id="sharemodal" tabindex="-1" role="dialog" aria-labelledby="sharemodalTitle" aria-hidden="true"> 
301                          <div class="modal-dialog modal-dialog-centered sharemodal-dialog" role="document"> 
302                            <div class="modal-content"> 
303                              <div class="modal-header"> 
304                                <h5 class="modal-title" id="exampleModalLongTitle">Social share</h5> 
305                                <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 
306                                  <span aria-hidden="true">&times;</span> 
307                                </button> 
308                              </div> 
309                              <div class="modal-body"> 
310                                  <a class="facebook customer-share" href="https://www.facebook.com/sharer.php?u=${currentURL}" title="Facebook share" target="_blank" data-toggle="tooltip" data-placement="top"><i class="icon-facebook"></i></a> 
311                                    <a class="twitter customer-share" href="https://twitter.com/share?url=${currentURL}&amp;text=Evenement &amp;" title="Twitter share" target="_blank" data-toggle="tooltip" data-placement="top"><i class="fa-brands fa-x-twitter"></i></a> 
312 
313                                    <a class="linkedin customer-share" href="https://www.linkedin.com/shareArticle?mini=true&url=${currentURL}" title="linkedin Share" target="_blank" data-toggle="tooltip" data-placement="top"><i class="icon-linkedin"></i></a> 
314 
315                                    <a class="linkje customer-share" onclick="copyHulpLink()" href="javascript:void(0);" data-toggle="tooltip" data-placement="top" title="Link kopieren"><i class="icon-link"></i></a> 
316 
317                                <input style="visibility:hidden; pointer-events: none;height: 0;" class="form-control copyInput" type="text" value="${currentURL}" id="hulpLink"> 
318                              </div> 
319                              <div class="modal-footer"> 
320                                <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> 
321                              </div> 
322                            </div> 
323                          </div> 
324                        </div><#--end modal --> 
325                    </div> 
326                </div>                 
327                 
328                 
329            </div><#--/row--> 
330        </div><#--/container--> 
331         
332    </div> 
333 
334</div> 
335 
336<script> 
337        require([ 
338        "esri/config","esri/Map", 
339        "esri/views/MapView", 
340        "esri/layers/FeatureLayer",   
341        "esri/Graphic",  
342        "esri/layers/GraphicsLayer",  
343        "esri/popup/content/TextContent" 
344        ], function (esriConfig, Map, MapView, FeatureLayer, Graphic, GraphicsLayer, TextContent) { 
345   
346          esriConfig.apiKey = "AAPKe8255caa87c84654adcc4adbeda3e728VLQhw77TXB29lPOPaGO-IC-4Wq49M-DYOdDTTw-Dsc6MOB7OAPtsnz1sbsgvMuSw"; 
347   
348          const map = new Map({ 
349            basemap: "arcgis-topographic" // Basemap layer service 
350          }); 
351   
352          const view = new MapView({ 
353            map: map, 
354            center: [${longitude},${latitude}], // Longitude, latitude 
355            zoom: 15, // Zoom level 
356            container: "circkaart", // Div element 
357            navigation: { 
358              mouseWheelZoomEnabled: false, 
359              browserTouchPanEnabled: false 
360
361          }); 
362   
363          const graphicsLayertje =  new GraphicsLayer(); 
364           map.add(graphicsLayertje); 
365   
366 
367              <#assign 
368   
369               kaartImage = "${themeDisplay.getPortalURL()}/documents/1037192/0/Kaart-pin-square.png/a2c77c79-bb99-b424-1002-102ffb9d04c0?t=1657100916495" 
370   
371              height = "45px" 
372              width = "45px" 
373   
374   
375              /> 
376 
377     
378   
379           const point = { 
380                  type: "point", 
381                  longitude: ${longitude}, 
382                   latitude:  ${latitude} 
383              }; 
384   
385            
386             const markerSymbol = { 
387                  type: "simple-marker", 
388                  color: [226, 15, 5], 
389                  outline: { 
390                      color: [255, 255, 255], 
391                      width: 2 
392
393              }; 
394   
395              let imageSymbol = { 
396                type: "picture-marker",  // autocasts as new PictureMarkerSymbol() 
397                url: "${kaartImage}", 
398                width: "${width}", 
399                height: "${height}" 
400              }; 
401   
402              const template = { 
403            // autocasts as new PopupTemplate() 
404          //   title: "${.vars['reserved-article-title'].data}", 
405            content: `<div class='mapPopupContainer row'><div class="col-3 imgContainer"><img class="popupImg" src='<#if (Afbeelding.getData())?? && Afbeelding.getData() != "">${Afbeelding.getData()}</#if>'/></div><div class="titelContainer col-9"><h2>${.vars['reserved-article-title'].data?replace("`", "'")?json_string}</h2><#if beschrijving?has_content><p>${Beschrijving.getData()?replace("<[^>]*>", "", "r")}</p></#if></div><br></div>` 
406          }; 
407           
408           const pointGraphic = new Graphic({ 
409              geometry: point, 
410              symbol: imageSymbol, 
411              popupTemplate: template 
412           }); 
413           graphicsLayertje.add(pointGraphic); 
414    
415        }); 
416 
417 
418 
419 
420function copyHulpLink() { 
421  var copyText = document.getElementById("hulpLink"); 
422  copyText.select(); 
423  copyText.setSelectionRange(0, 99999); 
424  navigator.clipboard.writeText(copyText.value); 
425   
426
427 
428        $(function () { 
429  $('[data-toggle="tooltip"]').tooltip() 
430}) 
431      </script> 
432 
433 
434 
435 
436<@liferay_util["html-top"]> 
437<#if (Afbeelding.getData())?? && Afbeelding.getData() != ""> 
438     <meta property="og:image" content="${Afbeelding.getData()}">  
439    <#else> 
440     <meta property="og:image" content="${themeDisplay.getCompanyLogo()}">  
441</#if> 
442 
443    
444 
445 
446    <meta property="og:title" content="${.vars['reserved-article-title'].data}"> 
447 
448<#if Beschrijving?has_content> 
449    <meta property="og:description" content="${htmlUtil.escape(Beschrijving.getData())}"> 
450<#else> 
451    <meta property="og:description" content="Artikel"> 
452 </#if> 
453    <meta property="og:type" content="article"> 
454    <meta property="og:url" content="${themeDisplay.getPortalURL()}/web${themeDisplay.getScopeGroup().friendlyURL}/-/${.vars['reserved-article-url-title'].data}" /> 
455         
456    <meta name="twitter:card" content="${.vars['reserved-article-title'].data}"/> 
457     
458    
459<meta name="twitter:site" content="${themeDisplay.getPortalURL()}/web${themeDisplay.getScopeGroup().friendlyURL}/-/${.vars['reserved-article-url-title'].data}" /> 
460     
461    <#if (Afbeelding.getData())?? && Afbeelding.getData() != ""> 
462     <meta name="twitter:image" content="${Afbeelding.getData()}">  
463    <#else> 
464         <meta name="twitter:image" content="${themeDisplay.getCompanyLogo()}">  
465</#if> 
466 
467 </@>