• DE
  • FR
Canton du valais
  • Startseite
  • Organisation
  • Kommunikation und Medien
  • Organisation
  • Verwaltung
  • KDJ
  • Sektion Platzierungen und vertraglich geregelte Leistungen
  • Ferienkolonien
menu

Ferienkolonien

 

Die kantonale Dienststelle für die Jugend ist in Zusammenarbeit mit den kommunalen Sicherheitsbeauftragten und dem Amt für Feuerwesen für die Prüfung und Erteilung der Grundbewilligung der Ferienkolonien oder Ferienhäuser zuständig. Die Betriebsbewilligung ist in der Regel für einen Zeitraum von vier Jahren gültig.

Als Ferienkolonie oder Ferienhaus gilt jede Beherbergungsstätte für Kinder, die während den Schulferien oder für kurze Zeitdauer Unterkunft anbietet und sich auf dem Territorium des Kantons Wallis befindet.

Gemäss Verordnung betreffend verschiedene Einrichtungen für die Jugend vom 9. Mai 2001 und sobald die Ferienkolonie oder das Ferienhaus den geltenden gesetzlichen Anforderungen entspricht, wird das Dossier an die entsprechende Gemeindeverwaltung weitergeleitet. Diese führt dann die Erneuerung der Betriebsbewilligungen anstelle der kantonalen Dienststelle für die Jugend durch.

Die kantonale Dienststelle für die Jugend bleibt jedoch für die Bewilligung von Ferienkolonien oder Ferienhäuser, die den Burgschaften oder den Gemeinden gehören, zuständig.

Kontakt

Hélène Vouillamoz
Email : helene.vouillamoz@admin.vs.ch
Tel : 027 606 48 37

Raihan Islam
Email: raihan.islam@admin.vs.ch
Tel :  027 606 99 63

 

Avenue Ritz 29
1950 Sitten


pdf Gesuch um Erteilung einer Betriebsbewilligung - Ferienkolonien.pdf

Rechtsgrundlage

Rechtliche Grundlagen
  • Jugendgesetz
  • Verordnung betreffend verschiedene Einrichtungen für die Jugend
Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing:
==> cur_docGroup.annexeUrlTitle  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" at line 386, column 10]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be 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 cur_docGroup.annexeUrlTitle.getSi...  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" in function "isDocEmpty" at line 386, column 5]
	- Reached through: #if isDocEmpty() == "false"  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" at line 61, column 9]
----
1<#assign JournalArticleLocalService =  serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/> 
2<#assign AssetLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/> 
3<#assign AssetLinkService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")/> 
4<#assign DLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
5<#assign DLFolderLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFolderLocalService") /> 
6<#assign queryDefinition = objectUtil("com.liferay.portal.kernel.dao.orm.QueryDefinition")  /> 
7<#assign QD = queryDefinition /> 
8<#assign yourChoosenLocal = locale?split("_")[0] /> 
9<#assign pathFileicon = "/html/themes/classic/images/file_system/small/" /> 
10<#setting url_escaping_charset='ISO-8859-1'> 
11<#assign gArticleId = .vars['reserved-article-id'].data /> 
12<style> 
13.block a{ 
14color:#e22b28; 
15} 
16.entry-body .vsstruct:first-child h2 { 
17    display:none; 
18    /*color: #262626; 
19    padding-top: 15px; 
20    margin-top: 0; 
21    margin-bottom: 1.1em; 
22    text-transform: uppercase; 
23    line-height: 1.1em; 
24    font-size: 1.73em;*/ 
25}    
26.doc-item { 
27    overflow: auto; 
28} 
29</style> 
30   
31<div class="grid__row"> 
32	<div class="grid__col-xxs--12 grid__col-s--12"> 
33		<h2 class="block-title">${.vars['reserved-article-title'].data}</h2> 
34	</div> 
35	<#if isContactEmpty() == "true" >		 
36		<#assign columnwidth = "grid__col-s--12" /> 
37	<#else> 
38		<#assign columnwidth = "grid__col-s--8" /> 
39	</#if>  
40	<div class="grid__col-xxs--12 ${columnwidth}  entry-body">   
41		<div class="vsstruct"> 
42			${description.getData()} 
43		</div> 
44	</div> 
45	<#if isContactEmpty() == "false"> 
46		<div class="grid__col-xxs--12 grid__col-s--4">   
47			<div class="grid__col-xxs--12 grid__col-s--12 services-header">   
48				<div class="grid__col-xxs--12"> 
49					<h3> 
50						<@liferay.language key="vs-contact"/> 
51					</h3> 
52					<@contactInfo/> 
53					<br /> 
54				</div> 
55			</div> 
56		</div> 
57	</#if> 
58</div> 
59	 
60<div> 
61	<#if isDocEmpty() == "false" > 
62		<h3 class="block-title"><@liferay.language key="${docBlockTitle.data}" /></h3> 
63		<@downloads /> 
64		 
65	</#if> 
66</div> 
67     
68<section class="services-footer grid__row">	 
69	<#if isLexEmpty() == "false"> 
70		<div class="grid__col-xxs--12 grid__col-m--5"> 
71			<h3 class="block-title"><@liferay.language key="vs-legal-base"/></h3> 
72			<@lex/> 
73			<#-- <@relatedAssets /> --> 
74		</div> 
75		<div class="grid__col-m--1"></div> 
76	</#if> 
77	<#if isLinkEmpty() == "false"> 
78		<div class="grid__col-xxs--12 grid__col-m--5"> 
79			<h3 class="block-title"><@liferay.language key="vs-link"/></h3> 
80			<@links/> 
81		</div> 
82	</#if> 
83</section> 
84 
85<#--	<small class="muted"><@liferay.language key="vs-last-modified" />: ${getArticleDate("modified")}</small>--> 
86 
87<#-- functions and macros --> 
88  
89<#macro getBackLink> 
90	<#if request.attributes??> 
91		<#assign url = request.attributes.CURRENT_URL /> 
92		<#assign multipleValues = httpUtil.getQueryString(url) /> 
93		<#assign paramMap = httpUtil.getParameterMap(httpUtil.getQueryString(url)) /> 
94		<#list paramMap?keys as key> 
95			<#if key?contains("_redirect")> 
96				<#assign keyFound = key /> 
97			</#if> 
98		</#list> 
99		<#if keyFound??> 
100			<#assign encodedUrlString = httpUtil.getParameter(url, keyFound, false) /> 
101			<#assign decodedUrlString = httpUtil.decodeURL(encodedUrlString) /> 
102			<div class="clearfix"> 
103				<#-- <span class="pull-left muted">${title.getData()} <@displayArticleDate dateType="published"/></span> --> 
104				<#if decodedUrlString??> 
105					<a class="pull-left" href="${decodedUrlString}"><i class="icon-chevron-sign-left"></i> <@liferay.language key="back" /></a> 
106				</#if> 
107				<hr /> 
108			</div> 
109		</#if> 
110	</#if> 
111</#macro> 
112  
113<#macro downloads> 
114	<#list docGroup.getSiblings() as cur_docGroup> 
115        <#if cur_docGroup.data?trim != ""> 
116            <h3 style="font-size: 1.1em; text-transform: uppercase; color: #e22b28; letter-spacing: 0.01em; margin-bottom: 0.6em;" >${cur_docGroup.data}</h3> 
117        </#if> 
118		<#if cur_docGroup.folderId?? > 
119			<#if cur_docGroup.folderId.data?trim != "">	 
120				<#assign filesInFolder = getFileEntries(groupId, cur_docGroup.folderId.data) /> 
121				<div class="grid__row section-docs"> 
122					<#assign allFiles = [] /> 
123					<#list filesInFolder as cur_file> 
124						<#if cur_file.toFileEntryId??> 
125							<#assign entryId = cur_file.toFileEntryId /> 
126							<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
127							<#assign allFiles = allFiles + [DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId))] />	 
128						<#else> 
129							<#assign entryId = cur_file.fileEntryId />  
130							<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
131							<#assign allFiles = allFiles + [DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId))] />	 
132						</#if> 
133					</#list> 
134					<#list allFiles as loop_file> 
135						<#if loop_file.getTitle()?index_of("/") != 0> 
136							<div class="grid__col-xxs--12 grid__col-s--6"> 
137								<a class="doc-item doc-item-small" href="/documents/${loop_file.groupId}/${loop_file.folderId}/${loop_file.title?url}/${loop_file.uuid}?t=.now?long" target="_blank"> 
138									<span class="u-table"> 
139										<span class="u-cell"> 
140											<span class="subtitle">${loop_file.extension}</span> 
141											<span>${loop_file.getTitle()}</span> 
142										</span> 
143									</span> 
144									<i class="icon icon_arrow-right"> 
145										<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
146											<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
147											<use xlink:href="#svg-arrow-right"></use> 
148										</svg> 
149									</i> 
150								</a> 
151							</div> 
152						</#if> 
153					</#list> 
154					<#assign allFiles = [] /> 
155				</div> 
156				<#assign filesInFolder = "" /> 
157			</#if> 
158		</#if> 
159		 
160		 
161		<#if cur_docGroup.annexeDocumentLinkTo??> 
162			<div class="grid__row section-docs"> 
163	 
164                <#list cur_docGroup.annexeDocumentLinkTo.getSiblings() as cur_intDoc> 
165                    <#if cur_intDoc.getData()?trim != "" && cur_intDoc.getData() != "null"> 
166                        <@getDocument docLink=cur_intDoc/> 
167                    </#if> 
168                </#list> 
169                 
170                <#if cur_docGroup.annexeUrlTitle??> 
171        			<#list cur_docGroup.annexeUrlTitle.getSiblings() as cur_extDoc> 
172        				<#if cur_extDoc.data?trim != "" && cur_extDoc.data != "null"> 
173            				<div class="grid__col-xxs--12 grid__col-s--6"> 
174                        		<a class="doc-item doc-item-small" href="${cur_extDoc.annexeUrl.data}" target="_blank"> 
175                        			<span class="u-table"> 
176                        				<span class="u-cell"> 
177            				                <span class="subtitle"><@liferay.language key="link"/></span> 
178        					                <span>${cur_extDoc.data}</span> 
179    					                </span> 
180                        			</span> 
181                        		    <i class="icon icon_arrow-right"> 
182                        				<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
183                        					<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
184                        					<use xlink:href="#svg-arrow-right"></use> 
185                        				</svg> 
186                        			</i> 
187    				    		</a> 
188                            </div> 
189        				</#if> 
190        			</#list>    
191        		</#if>   
192				 
193			</div> 
194		</#if> 
195         
196    </#list> 
197</#macro> 
198 
199<#macro getDocument docLink> 
200	<#assign docJSON = jsonFactoryUtil.createJSONObject(docLink.data) /> 
201    <#assign gid = docJSON.groupId /> 
202    <#assign longGid = getterUtil.getLong(gid) /> 
203    <#assign uuid = docJSON.uuid /> 
204    <#if DLFileEntryLocalService.getFileEntryByUuidAndGroupId(uuid, longGid)?? > 
205        <#assign document = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(uuid, longGid) /> 
206     
207    	    <div class="grid__col-xxs--12 grid__col-s--6"> 
208        		<a class="doc-item doc-item-small" href="${docLink.getData()}"> 
209        			<span class="u-table"> 
210        				<span class="u-cell"> 
211        					<span class="subtitle">${document.extension}</span> 
212        					<span>${document.getTitle()}</span> 
213        				</span> 
214        			</span> 
215        		    <i class="icon icon_arrow-right"> 
216    					<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
217    						<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
218    						<use xlink:href="#svg-arrow-right"></use> 
219    					</svg> 
220    				</i> 
221        		</a> 
222        	</div> 
223	</#if> 
224</#macro> 
225 
226<#macro DocumentFromId entryId> 
227	<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
228	<#if document.getTitle()?index_of("/") != 0> 
229		<div class="grid__col-xxs--12 grid__col-s--6"> 
230    		<a class="doc-item doc-item-small" href="/documents/${document.groupId}/${document.folderId}/${document.title?url}/${document.uuid}?t=.now?long" target="_blank"> 
231    			<span class="u-table"> 
232    				<span class="u-cell"> 
233		                <span class="subtitle"><@liferay.language key="link"/></span> 
234		                <span>${document.getTitle()}</span> 
235	                </span> 
236    			</span> 
237    		    <i class="icon icon_arrow-right"> 
238    				<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
239    					<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
240    					<use xlink:href="#svg-arrow-right"></use> 
241    				</svg> 
242    			</i> 
243    		</a> 
244        </div> 
245	</#if> 
246	<#assign document = "" /> 
247</#macro> 
248 
249 
250<#macro links> 
251	<#list linkGroup.getSiblings() as cur_linkGroup> 
252		<#if cur_linkGroup.data?trim != ""> 
253			<strong>${cur_linkGroup.data}</strong> 
254		</#if> 
255		<ul style="list-style: none; padding-left: 0;"> 
256			<#list cur_linkGroup.linkTitle.getSiblings() as cur_link> 
257				<#if cur_link.data?trim != "" && cur_link.data != "null"> 
258					<li > 
259						<a href="${cur_link.linkUrl.data}" class="link" target="_blank"> 
260							<i class="icon icon_arrow-right-xs"> 
261								<svg viewBox="0 0 27 12" class="svg_arrow-right-xs"> 
262									<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right-xs"></use> 
263									<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#svg-arrow-right-xs"></use> 
264								</svg> 
265							</i> ${cur_link.data} 
266						</a> 
267					</li> 
268				</#if> 
269			</#list> 
270		</ul> 
271	</#list>   
272</#macro> 
273 
274<#macro lex> 
275  <#if yourChoosenLocal == "de"> 
276    <#assign lexLanguage = "de" /> 
277	<#assign lexConfLanguage = "d" /> 
278  <#else> 
279    <#assign lexLanguage = "fr" /> 
280	<#assign lexConfLanguage = "f" /> 
281  </#if> 
282  <#list lexGroup.getSiblings() as cur_lexGroup> 
283    <#if cur_lexGroup.data?trim != ""> 
284    <strong>${cur_lexGroup.data}</strong> 
285    </#if> 
286    <ul> 
287      <#list cur_lexGroup.lexTitle.getSiblings() as cur_lex> 
288      <#if cur_lex.data?trim != "" && cur_lex.data != "null"> 
289        <li> 
290        	<#assign lexLinkUrl ="" /> 
291			<#if cur_lex.lexType.data == "legconftype" > 
292				<#assign lexLinkUrl = "http://www.admin.ch/ch/" + lexConfLanguage + "/rs/" + cur_lex.lexNumbers.getData()?replace(".", "_")  /> 
293				<#if cur_lex.lexNumbers.getData()?contains("a")> 
294					<#assign lexLinkUrl = "http://www.admin.ch/ch/" + lexConfLanguage + "/rs/" + cur_lex.lexNumbers.getData()?split("a")[0]?replace(".", "_")  /> 
295					<#assign lexLinkUrl = lexLinkUrl +  "/a" + cur_lex.lexNumbers.getData()?replace(".", "_")?split("a")[1] + ".html" /> 
296				</#if> 
297			<#elseif cur_lex.lexType.data == "leglisttype" > 
298				<#assign lexnumbers = cur_lex.lexNumbers.getData()?replace(";", "|") /> 
299				<#assign lexLinkUrl = "http://lex.vs.ch/frontend/syst_no/"  + lexnumbers + "?locale=" +  lexLanguage /> 
300			<#elseif cur_lex.lexType.data == "legdetailtype" || cur_lex.lexType.data == "legpdftype" > 
301				<#assign lexLinkUrl = "http://lex.vs.ch/data/"  + cur_lex.lexNumbers.getData()+ "/" + lexLanguage /> 
302				<#if cur_lex.lexNumbers.getData()?contains("a")> 
303					<#assign lexNumber = cur_lex.lexNumbers.getData()?split("a")[0] /> 
304					<#assign lexArticle = cur_lex.lexNumbers.getData()?split("a")[1] /> 
305					<#assign lexLinkUrl = "http://lex.vs.ch/data/"  + lexNumber + "/" + lexLanguage + "/art" + lexArticle /> 
306				</#if> 
307			<#elseif cur_lex.lexType.data == "leglinktype" >  
308				<#assign lexLinkUrl = cur_lex.lexNumbers.getData() /> 
309			</#if> 
310			<a href="${lexLinkUrl}" class="red" target="_blank"> 
311			${cur_lex.data} 
312			</a> 
313        </li> 
314      </#if> 
315      </#list> 
316    </ul> 
317  </#list>   
318</#macro> 
319 
320 
321 
322  
323<#macro contactInfo> 
324  ${contact.getData()} 
325  <#if serviceLocator??> 
326    <#if contact.contactId?? > 
327      <#if contact.contactId.data?trim != ""> 
328        ${getArticleContent(groupId, contact.contactId.getData())} 
329      </#if> 
330    </#if> 
331  </#if> 
332</#macro> 
333       
334<#function getArticleDate dateType> 
335  <#if serviceLocator??> 
336    <#assign article = JournalArticleLocalService.getArticle(groupId, gArticleId) /> 
337    <#if dateType == "published"> 
338      <#assign date = article.displayDate?date /> 
339    <#elseif dateType == "modified"> 
340      <#assign date = article.modifiedDate?date /> 
341    <#elseif dateType == "created"> 
342      <#assign date = article.createDate?date /> 
343    <#else> 
344      <#assign date = "???" /> 
345    </#if> 
346    <#return date> 
347  </#if> 
348</#function> 
349       
350<#function getFileEntries group folderId> 
351	<#if serviceLocator??> 
352		<#return DLFolderLocalService.getFileEntriesAndFileShortcuts(getterUtil.getLong(group), getterUtil.getLong(folderId), QD) /> 
353	</#if> 
354	<#return "" /> 
355</#function>       
356 
357<#function getArticleContent gid aid> 
358	<#attempt> 
359	  <#assign article = JournalArticleLocalService.getArticle(gid?number, aid?upper_case) /> 
360		<#assign articleContent = JournalArticleLocalService.getArticleContent(article, apListTemplateKey, null, locale, model, themeDisplay) /> 
361	    <#if articleContent?? > 
362	      <#return articleContent /> 
363	    </#if> 
364	    <#return "" /> 
365	<#recover> 
366	  <#return "" /> 
367	</#attempt> 
368</#function> 
369 
370 
371 
372<#function isDescriptionEmpty> 
373  <#if description.getData()?trim != "" && description.data?trim != "null"> 
374	<#return "false" /> 
375  </#if> 
376  <#return "true" /> 
377</#function> 
378 
379<#function isDocEmpty> 
380  <#list docGroup.getSiblings() as cur_docGroup> 
381    <#list cur_docGroup.annexeDocumentLinkTo.getSiblings() as cur_intDoc> 
382      <#if cur_intDoc.data?trim != "" && cur_intDoc.data?trim != "null"> 
383        <#return "false" /> 
384      </#if> 
385    </#list> 
386    <#if cur_docGroup.annexeUrlTitle.getSiblings()?has_content> 
387	    <#list cur_docGroup.annexeUrlTitle.getSiblings() as cur_extDoc> 
388	      <#if cur_extDoc.data?trim != "" && cur_extDoc.data?trim != "null"> 
389	        <#return "false" /> 
390	      </#if>	 
391	    </#list> 
392    </#if> 
393    <#if cur_docGroup.folderId?? > 
394      <#list cur_docGroup.folderId.getSiblings() as cur_folder> 
395        <#if cur_folder.data?trim != "" && cur_folder.data?trim != "null"> 
396          <#return "false" /> 
397        </#if>	 
398      </#list> 
399    </#if> 
400  </#list> 
401  <#return "true" /> 
402</#function> 
403 
404<#function isLinkEmpty> 
405  <#list linkGroup.getSiblings() as cur_linkGroup> 
406    <#list cur_linkGroup.linkTitle.getSiblings() as cur_link> 
407      <#if cur_link.data?trim != ""> 
408        <#return "false" /> 
409      </#if> 
410    </#list> 
411  </#list> 
412  <#return "true" /> 
413</#function> 
414 
415<#function isLexEmpty> 
416  <#list lexGroup.getSiblings() as cur_lexGroup> 
417    <#list cur_lexGroup.lexTitle.getSiblings() as cur_lex> 
418      <#if cur_lex.data?trim != ""> 
419        <#return "false" /> 
420      </#if> 
421    </#list> 
422  </#list> 
423  <#return "true" /> 
424</#function> 
425       
426<#function isContactEmpty> 
427  <#if contact.contactId?? > 
428    <#if contact.getData()?trim != "" || contact.contactId.data?trim != "" > 
429      <#return "false" /> 
430    </#if> 
431  <#else> 
432    <#if contact.getData()?trim != "" > 
433      <#return "false" /> 
434    </#if> 
435  </#if> 
436  <#return "true" /> 
437</#function> 
438 
439<#function isRelatedEmpty relatedEntries> 
440  <#if relatedEntries?? > 
441    <#list relatedEntries as cur_entry > 
442      <#if cur_entry?trim != ""> 
443        <#return "false"> 
444      </#if> 
445    </#list> 
446  </#if> 
447  <#return "true" /> 
448</#function> 
449 
450<#macro relatedAssets > 
451  <#assign relatedEntries = getRelatedContent() /> 
452  <#-- <#if relatedEntries?? > --> 
453  <#if isRelatedEmpty(relatedEntries) == "false"> 
454    <div class="widget"> 
455      <h3 class="block-title"><@liferay.language key="vs-en-relation"/></h3> 
456      <ul style="list-style: none;padding-left: 0;"> 
457        <#list relatedEntries as cur_asset_link> 
458          <#assign assetEntry = getAssetEntry(cur_asset_link.entryId2) /> 
459          <#assign lClassName = "com.liferay.journal.model.JournalArticle"/> 
460          <#assign journalArticle = JournalArticleLocalService.getLatestArticle(assetEntry.getClassPK())/> 
461          <li> 
462            <a class="link" href="#"> 
463                ${journalArticle.getTitle(locale)} 
464                <i class="icon icon_arrow-right-xs"> 
465					<svg viewBox="0 0 27 12" class="svg_arrow-right-xs"> 
466						<use xlink:href="/o/vs-theme/images/../assets/svg/sprite.svg#svg-arrow-right-xs"></use> 
467						<use xlink:href="#svg-arrow-right-xs"></use> 
468					</svg> 
469				</i> 
470            </a> 
471          </li> 
472        </#list> 
473      </ul> 
474    </div> 
475  </#if> 
476</#macro> 
477 
478<#function getAssetEntry entryId> 
479  <#assign entry = AssetLocalService.getAssetEntry(entryId) /> 
480  <#return entry /> 
481</#function> 
482   
483<#function getRelatedContent > 
484  <#assign lClassName = "com.liferay.portlet.journal.model.JournalArticle"/> 
485  <#assign lArticle = JournalArticleLocalService.getArticle(groupId, gArticleId)/> 
486  <#assign lPk = lArticle.getResourcePrimKey()/> 
487  <#assign lEntry = AssetLocalService.getEntry(lClassName,lPk)/> 
488  <#assign lLinks = AssetLinkService.getDirectLinks(lEntry.getEntryId())/> 
489  <#return lLinks /> 
490</#function> 
Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing:
==> cur_docGroup.annexeUrlTitle  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" at line 386, column 10]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be 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 cur_docGroup.annexeUrlTitle.getSi...  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" in function "isDocEmpty" at line 386, column 5]
	- Reached through: #if isDocEmpty() == "false"  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" at line 61, column 9]
----
1<#assign JournalArticleLocalService =  serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/> 
2<#assign AssetLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/> 
3<#assign AssetLinkService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")/> 
4<#assign DLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
5<#assign DLFolderLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFolderLocalService") /> 
6<#assign queryDefinition = objectUtil("com.liferay.portal.kernel.dao.orm.QueryDefinition")  /> 
7<#assign QD = queryDefinition /> 
8<#assign yourChoosenLocal = locale?split("_")[0] /> 
9<#assign pathFileicon = "/html/themes/classic/images/file_system/small/" /> 
10<#setting url_escaping_charset='ISO-8859-1'> 
11<#assign gArticleId = .vars['reserved-article-id'].data /> 
12<style> 
13.block a{ 
14color:#e22b28; 
15} 
16.entry-body .vsstruct:first-child h2 { 
17    display:none; 
18    /*color: #262626; 
19    padding-top: 15px; 
20    margin-top: 0; 
21    margin-bottom: 1.1em; 
22    text-transform: uppercase; 
23    line-height: 1.1em; 
24    font-size: 1.73em;*/ 
25}    
26.doc-item { 
27    overflow: auto; 
28} 
29</style> 
30   
31<div class="grid__row"> 
32	<div class="grid__col-xxs--12 grid__col-s--12"> 
33		<h2 class="block-title">${.vars['reserved-article-title'].data}</h2> 
34	</div> 
35	<#if isContactEmpty() == "true" >		 
36		<#assign columnwidth = "grid__col-s--12" /> 
37	<#else> 
38		<#assign columnwidth = "grid__col-s--8" /> 
39	</#if>  
40	<div class="grid__col-xxs--12 ${columnwidth}  entry-body">   
41		<div class="vsstruct"> 
42			${description.getData()} 
43		</div> 
44	</div> 
45	<#if isContactEmpty() == "false"> 
46		<div class="grid__col-xxs--12 grid__col-s--4">   
47			<div class="grid__col-xxs--12 grid__col-s--12 services-header">   
48				<div class="grid__col-xxs--12"> 
49					<h3> 
50						<@liferay.language key="vs-contact"/> 
51					</h3> 
52					<@contactInfo/> 
53					<br /> 
54				</div> 
55			</div> 
56		</div> 
57	</#if> 
58</div> 
59	 
60<div> 
61	<#if isDocEmpty() == "false" > 
62		<h3 class="block-title"><@liferay.language key="${docBlockTitle.data}" /></h3> 
63		<@downloads /> 
64		 
65	</#if> 
66</div> 
67     
68<section class="services-footer grid__row">	 
69	<#if isLexEmpty() == "false"> 
70		<div class="grid__col-xxs--12 grid__col-m--5"> 
71			<h3 class="block-title"><@liferay.language key="vs-legal-base"/></h3> 
72			<@lex/> 
73			<#-- <@relatedAssets /> --> 
74		</div> 
75		<div class="grid__col-m--1"></div> 
76	</#if> 
77	<#if isLinkEmpty() == "false"> 
78		<div class="grid__col-xxs--12 grid__col-m--5"> 
79			<h3 class="block-title"><@liferay.language key="vs-link"/></h3> 
80			<@links/> 
81		</div> 
82	</#if> 
83</section> 
84 
85<#--	<small class="muted"><@liferay.language key="vs-last-modified" />: ${getArticleDate("modified")}</small>--> 
86 
87<#-- functions and macros --> 
88  
89<#macro getBackLink> 
90	<#if request.attributes??> 
91		<#assign url = request.attributes.CURRENT_URL /> 
92		<#assign multipleValues = httpUtil.getQueryString(url) /> 
93		<#assign paramMap = httpUtil.getParameterMap(httpUtil.getQueryString(url)) /> 
94		<#list paramMap?keys as key> 
95			<#if key?contains("_redirect")> 
96				<#assign keyFound = key /> 
97			</#if> 
98		</#list> 
99		<#if keyFound??> 
100			<#assign encodedUrlString = httpUtil.getParameter(url, keyFound, false) /> 
101			<#assign decodedUrlString = httpUtil.decodeURL(encodedUrlString) /> 
102			<div class="clearfix"> 
103				<#-- <span class="pull-left muted">${title.getData()} <@displayArticleDate dateType="published"/></span> --> 
104				<#if decodedUrlString??> 
105					<a class="pull-left" href="${decodedUrlString}"><i class="icon-chevron-sign-left"></i> <@liferay.language key="back" /></a> 
106				</#if> 
107				<hr /> 
108			</div> 
109		</#if> 
110	</#if> 
111</#macro> 
112  
113<#macro downloads> 
114	<#list docGroup.getSiblings() as cur_docGroup> 
115        <#if cur_docGroup.data?trim != ""> 
116            <h3 style="font-size: 1.1em; text-transform: uppercase; color: #e22b28; letter-spacing: 0.01em; margin-bottom: 0.6em;" >${cur_docGroup.data}</h3> 
117        </#if> 
118		<#if cur_docGroup.folderId?? > 
119			<#if cur_docGroup.folderId.data?trim != "">	 
120				<#assign filesInFolder = getFileEntries(groupId, cur_docGroup.folderId.data) /> 
121				<div class="grid__row section-docs"> 
122					<#assign allFiles = [] /> 
123					<#list filesInFolder as cur_file> 
124						<#if cur_file.toFileEntryId??> 
125							<#assign entryId = cur_file.toFileEntryId /> 
126							<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
127							<#assign allFiles = allFiles + [DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId))] />	 
128						<#else> 
129							<#assign entryId = cur_file.fileEntryId />  
130							<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
131							<#assign allFiles = allFiles + [DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId))] />	 
132						</#if> 
133					</#list> 
134					<#list allFiles as loop_file> 
135						<#if loop_file.getTitle()?index_of("/") != 0> 
136							<div class="grid__col-xxs--12 grid__col-s--6"> 
137								<a class="doc-item doc-item-small" href="/documents/${loop_file.groupId}/${loop_file.folderId}/${loop_file.title?url}/${loop_file.uuid}?t=.now?long" target="_blank"> 
138									<span class="u-table"> 
139										<span class="u-cell"> 
140											<span class="subtitle">${loop_file.extension}</span> 
141											<span>${loop_file.getTitle()}</span> 
142										</span> 
143									</span> 
144									<i class="icon icon_arrow-right"> 
145										<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
146											<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
147											<use xlink:href="#svg-arrow-right"></use> 
148										</svg> 
149									</i> 
150								</a> 
151							</div> 
152						</#if> 
153					</#list> 
154					<#assign allFiles = [] /> 
155				</div> 
156				<#assign filesInFolder = "" /> 
157			</#if> 
158		</#if> 
159		 
160		 
161		<#if cur_docGroup.annexeDocumentLinkTo??> 
162			<div class="grid__row section-docs"> 
163	 
164                <#list cur_docGroup.annexeDocumentLinkTo.getSiblings() as cur_intDoc> 
165                    <#if cur_intDoc.getData()?trim != "" && cur_intDoc.getData() != "null"> 
166                        <@getDocument docLink=cur_intDoc/> 
167                    </#if> 
168                </#list> 
169                 
170                <#if cur_docGroup.annexeUrlTitle??> 
171        			<#list cur_docGroup.annexeUrlTitle.getSiblings() as cur_extDoc> 
172        				<#if cur_extDoc.data?trim != "" && cur_extDoc.data != "null"> 
173            				<div class="grid__col-xxs--12 grid__col-s--6"> 
174                        		<a class="doc-item doc-item-small" href="${cur_extDoc.annexeUrl.data}" target="_blank"> 
175                        			<span class="u-table"> 
176                        				<span class="u-cell"> 
177            				                <span class="subtitle"><@liferay.language key="link"/></span> 
178        					                <span>${cur_extDoc.data}</span> 
179    					                </span> 
180                        			</span> 
181                        		    <i class="icon icon_arrow-right"> 
182                        				<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
183                        					<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
184                        					<use xlink:href="#svg-arrow-right"></use> 
185                        				</svg> 
186                        			</i> 
187    				    		</a> 
188                            </div> 
189        				</#if> 
190        			</#list>    
191        		</#if>   
192				 
193			</div> 
194		</#if> 
195         
196    </#list> 
197</#macro> 
198 
199<#macro getDocument docLink> 
200	<#assign docJSON = jsonFactoryUtil.createJSONObject(docLink.data) /> 
201    <#assign gid = docJSON.groupId /> 
202    <#assign longGid = getterUtil.getLong(gid) /> 
203    <#assign uuid = docJSON.uuid /> 
204    <#if DLFileEntryLocalService.getFileEntryByUuidAndGroupId(uuid, longGid)?? > 
205        <#assign document = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(uuid, longGid) /> 
206     
207    	    <div class="grid__col-xxs--12 grid__col-s--6"> 
208        		<a class="doc-item doc-item-small" href="${docLink.getData()}"> 
209        			<span class="u-table"> 
210        				<span class="u-cell"> 
211        					<span class="subtitle">${document.extension}</span> 
212        					<span>${document.getTitle()}</span> 
213        				</span> 
214        			</span> 
215        		    <i class="icon icon_arrow-right"> 
216    					<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
217    						<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
218    						<use xlink:href="#svg-arrow-right"></use> 
219    					</svg> 
220    				</i> 
221        		</a> 
222        	</div> 
223	</#if> 
224</#macro> 
225 
226<#macro DocumentFromId entryId> 
227	<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
228	<#if document.getTitle()?index_of("/") != 0> 
229		<div class="grid__col-xxs--12 grid__col-s--6"> 
230    		<a class="doc-item doc-item-small" href="/documents/${document.groupId}/${document.folderId}/${document.title?url}/${document.uuid}?t=.now?long" target="_blank"> 
231    			<span class="u-table"> 
232    				<span class="u-cell"> 
233		                <span class="subtitle"><@liferay.language key="link"/></span> 
234		                <span>${document.getTitle()}</span> 
235	                </span> 
236    			</span> 
237    		    <i class="icon icon_arrow-right"> 
238    				<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
239    					<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
240    					<use xlink:href="#svg-arrow-right"></use> 
241    				</svg> 
242    			</i> 
243    		</a> 
244        </div> 
245	</#if> 
246	<#assign document = "" /> 
247</#macro> 
248 
249 
250<#macro links> 
251	<#list linkGroup.getSiblings() as cur_linkGroup> 
252		<#if cur_linkGroup.data?trim != ""> 
253			<strong>${cur_linkGroup.data}</strong> 
254		</#if> 
255		<ul style="list-style: none; padding-left: 0;"> 
256			<#list cur_linkGroup.linkTitle.getSiblings() as cur_link> 
257				<#if cur_link.data?trim != "" && cur_link.data != "null"> 
258					<li > 
259						<a href="${cur_link.linkUrl.data}" class="link" target="_blank"> 
260							<i class="icon icon_arrow-right-xs"> 
261								<svg viewBox="0 0 27 12" class="svg_arrow-right-xs"> 
262									<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right-xs"></use> 
263									<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#svg-arrow-right-xs"></use> 
264								</svg> 
265							</i> ${cur_link.data} 
266						</a> 
267					</li> 
268				</#if> 
269			</#list> 
270		</ul> 
271	</#list>   
272</#macro> 
273 
274<#macro lex> 
275  <#if yourChoosenLocal == "de"> 
276    <#assign lexLanguage = "de" /> 
277	<#assign lexConfLanguage = "d" /> 
278  <#else> 
279    <#assign lexLanguage = "fr" /> 
280	<#assign lexConfLanguage = "f" /> 
281  </#if> 
282  <#list lexGroup.getSiblings() as cur_lexGroup> 
283    <#if cur_lexGroup.data?trim != ""> 
284    <strong>${cur_lexGroup.data}</strong> 
285    </#if> 
286    <ul> 
287      <#list cur_lexGroup.lexTitle.getSiblings() as cur_lex> 
288      <#if cur_lex.data?trim != "" && cur_lex.data != "null"> 
289        <li> 
290        	<#assign lexLinkUrl ="" /> 
291			<#if cur_lex.lexType.data == "legconftype" > 
292				<#assign lexLinkUrl = "http://www.admin.ch/ch/" + lexConfLanguage + "/rs/" + cur_lex.lexNumbers.getData()?replace(".", "_")  /> 
293				<#if cur_lex.lexNumbers.getData()?contains("a")> 
294					<#assign lexLinkUrl = "http://www.admin.ch/ch/" + lexConfLanguage + "/rs/" + cur_lex.lexNumbers.getData()?split("a")[0]?replace(".", "_")  /> 
295					<#assign lexLinkUrl = lexLinkUrl +  "/a" + cur_lex.lexNumbers.getData()?replace(".", "_")?split("a")[1] + ".html" /> 
296				</#if> 
297			<#elseif cur_lex.lexType.data == "leglisttype" > 
298				<#assign lexnumbers = cur_lex.lexNumbers.getData()?replace(";", "|") /> 
299				<#assign lexLinkUrl = "http://lex.vs.ch/frontend/syst_no/"  + lexnumbers + "?locale=" +  lexLanguage /> 
300			<#elseif cur_lex.lexType.data == "legdetailtype" || cur_lex.lexType.data == "legpdftype" > 
301				<#assign lexLinkUrl = "http://lex.vs.ch/data/"  + cur_lex.lexNumbers.getData()+ "/" + lexLanguage /> 
302				<#if cur_lex.lexNumbers.getData()?contains("a")> 
303					<#assign lexNumber = cur_lex.lexNumbers.getData()?split("a")[0] /> 
304					<#assign lexArticle = cur_lex.lexNumbers.getData()?split("a")[1] /> 
305					<#assign lexLinkUrl = "http://lex.vs.ch/data/"  + lexNumber + "/" + lexLanguage + "/art" + lexArticle /> 
306				</#if> 
307			<#elseif cur_lex.lexType.data == "leglinktype" >  
308				<#assign lexLinkUrl = cur_lex.lexNumbers.getData() /> 
309			</#if> 
310			<a href="${lexLinkUrl}" class="red" target="_blank"> 
311			${cur_lex.data} 
312			</a> 
313        </li> 
314      </#if> 
315      </#list> 
316    </ul> 
317  </#list>   
318</#macro> 
319 
320 
321 
322  
323<#macro contactInfo> 
324  ${contact.getData()} 
325  <#if serviceLocator??> 
326    <#if contact.contactId?? > 
327      <#if contact.contactId.data?trim != ""> 
328        ${getArticleContent(groupId, contact.contactId.getData())} 
329      </#if> 
330    </#if> 
331  </#if> 
332</#macro> 
333       
334<#function getArticleDate dateType> 
335  <#if serviceLocator??> 
336    <#assign article = JournalArticleLocalService.getArticle(groupId, gArticleId) /> 
337    <#if dateType == "published"> 
338      <#assign date = article.displayDate?date /> 
339    <#elseif dateType == "modified"> 
340      <#assign date = article.modifiedDate?date /> 
341    <#elseif dateType == "created"> 
342      <#assign date = article.createDate?date /> 
343    <#else> 
344      <#assign date = "???" /> 
345    </#if> 
346    <#return date> 
347  </#if> 
348</#function> 
349       
350<#function getFileEntries group folderId> 
351	<#if serviceLocator??> 
352		<#return DLFolderLocalService.getFileEntriesAndFileShortcuts(getterUtil.getLong(group), getterUtil.getLong(folderId), QD) /> 
353	</#if> 
354	<#return "" /> 
355</#function>       
356 
357<#function getArticleContent gid aid> 
358	<#attempt> 
359	  <#assign article = JournalArticleLocalService.getArticle(gid?number, aid?upper_case) /> 
360		<#assign articleContent = JournalArticleLocalService.getArticleContent(article, apListTemplateKey, null, locale, model, themeDisplay) /> 
361	    <#if articleContent?? > 
362	      <#return articleContent /> 
363	    </#if> 
364	    <#return "" /> 
365	<#recover> 
366	  <#return "" /> 
367	</#attempt> 
368</#function> 
369 
370 
371 
372<#function isDescriptionEmpty> 
373  <#if description.getData()?trim != "" && description.data?trim != "null"> 
374	<#return "false" /> 
375  </#if> 
376  <#return "true" /> 
377</#function> 
378 
379<#function isDocEmpty> 
380  <#list docGroup.getSiblings() as cur_docGroup> 
381    <#list cur_docGroup.annexeDocumentLinkTo.getSiblings() as cur_intDoc> 
382      <#if cur_intDoc.data?trim != "" && cur_intDoc.data?trim != "null"> 
383        <#return "false" /> 
384      </#if> 
385    </#list> 
386    <#if cur_docGroup.annexeUrlTitle.getSiblings()?has_content> 
387	    <#list cur_docGroup.annexeUrlTitle.getSiblings() as cur_extDoc> 
388	      <#if cur_extDoc.data?trim != "" && cur_extDoc.data?trim != "null"> 
389	        <#return "false" /> 
390	      </#if>	 
391	    </#list> 
392    </#if> 
393    <#if cur_docGroup.folderId?? > 
394      <#list cur_docGroup.folderId.getSiblings() as cur_folder> 
395        <#if cur_folder.data?trim != "" && cur_folder.data?trim != "null"> 
396          <#return "false" /> 
397        </#if>	 
398      </#list> 
399    </#if> 
400  </#list> 
401  <#return "true" /> 
402</#function> 
403 
404<#function isLinkEmpty> 
405  <#list linkGroup.getSiblings() as cur_linkGroup> 
406    <#list cur_linkGroup.linkTitle.getSiblings() as cur_link> 
407      <#if cur_link.data?trim != ""> 
408        <#return "false" /> 
409      </#if> 
410    </#list> 
411  </#list> 
412  <#return "true" /> 
413</#function> 
414 
415<#function isLexEmpty> 
416  <#list lexGroup.getSiblings() as cur_lexGroup> 
417    <#list cur_lexGroup.lexTitle.getSiblings() as cur_lex> 
418      <#if cur_lex.data?trim != ""> 
419        <#return "false" /> 
420      </#if> 
421    </#list> 
422  </#list> 
423  <#return "true" /> 
424</#function> 
425       
426<#function isContactEmpty> 
427  <#if contact.contactId?? > 
428    <#if contact.getData()?trim != "" || contact.contactId.data?trim != "" > 
429      <#return "false" /> 
430    </#if> 
431  <#else> 
432    <#if contact.getData()?trim != "" > 
433      <#return "false" /> 
434    </#if> 
435  </#if> 
436  <#return "true" /> 
437</#function> 
438 
439<#function isRelatedEmpty relatedEntries> 
440  <#if relatedEntries?? > 
441    <#list relatedEntries as cur_entry > 
442      <#if cur_entry?trim != ""> 
443        <#return "false"> 
444      </#if> 
445    </#list> 
446  </#if> 
447  <#return "true" /> 
448</#function> 
449 
450<#macro relatedAssets > 
451  <#assign relatedEntries = getRelatedContent() /> 
452  <#-- <#if relatedEntries?? > --> 
453  <#if isRelatedEmpty(relatedEntries) == "false"> 
454    <div class="widget"> 
455      <h3 class="block-title"><@liferay.language key="vs-en-relation"/></h3> 
456      <ul style="list-style: none;padding-left: 0;"> 
457        <#list relatedEntries as cur_asset_link> 
458          <#assign assetEntry = getAssetEntry(cur_asset_link.entryId2) /> 
459          <#assign lClassName = "com.liferay.journal.model.JournalArticle"/> 
460          <#assign journalArticle = JournalArticleLocalService.getLatestArticle(assetEntry.getClassPK())/> 
461          <li> 
462            <a class="link" href="#"> 
463                ${journalArticle.getTitle(locale)} 
464                <i class="icon icon_arrow-right-xs"> 
465					<svg viewBox="0 0 27 12" class="svg_arrow-right-xs"> 
466						<use xlink:href="/o/vs-theme/images/../assets/svg/sprite.svg#svg-arrow-right-xs"></use> 
467						<use xlink:href="#svg-arrow-right-xs"></use> 
468					</svg> 
469				</i> 
470            </a> 
471          </li> 
472        </#list> 
473      </ul> 
474    </div> 
475  </#if> 
476</#macro> 
477 
478<#function getAssetEntry entryId> 
479  <#assign entry = AssetLocalService.getAssetEntry(entryId) /> 
480  <#return entry /> 
481</#function> 
482   
483<#function getRelatedContent > 
484  <#assign lClassName = "com.liferay.portlet.journal.model.JournalArticle"/> 
485  <#assign lArticle = JournalArticleLocalService.getArticle(groupId, gArticleId)/> 
486  <#assign lPk = lArticle.getResourcePrimKey()/> 
487  <#assign lEntry = AssetLocalService.getEntry(lClassName,lPk)/> 
488  <#assign lLinks = AssetLinkService.getDirectLinks(lEntry.getEntryId())/> 
489  <#return lLinks /> 
490</#function> 
Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing:
==> cur_docGroup.annexeUrlTitle  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" at line 386, column 10]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be 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 cur_docGroup.annexeUrlTitle.getSi...  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" in function "isDocEmpty" at line 386, column 5]
	- Reached through: #if isDocEmpty() == "false"  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" at line 61, column 9]
----
1<#assign JournalArticleLocalService =  serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/> 
2<#assign AssetLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/> 
3<#assign AssetLinkService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")/> 
4<#assign DLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
5<#assign DLFolderLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFolderLocalService") /> 
6<#assign queryDefinition = objectUtil("com.liferay.portal.kernel.dao.orm.QueryDefinition")  /> 
7<#assign QD = queryDefinition /> 
8<#assign yourChoosenLocal = locale?split("_")[0] /> 
9<#assign pathFileicon = "/html/themes/classic/images/file_system/small/" /> 
10<#setting url_escaping_charset='ISO-8859-1'> 
11<#assign gArticleId = .vars['reserved-article-id'].data /> 
12<style> 
13.block a{ 
14color:#e22b28; 
15} 
16.entry-body .vsstruct:first-child h2 { 
17    display:none; 
18    /*color: #262626; 
19    padding-top: 15px; 
20    margin-top: 0; 
21    margin-bottom: 1.1em; 
22    text-transform: uppercase; 
23    line-height: 1.1em; 
24    font-size: 1.73em;*/ 
25}    
26.doc-item { 
27    overflow: auto; 
28} 
29</style> 
30   
31<div class="grid__row"> 
32	<div class="grid__col-xxs--12 grid__col-s--12"> 
33		<h2 class="block-title">${.vars['reserved-article-title'].data}</h2> 
34	</div> 
35	<#if isContactEmpty() == "true" >		 
36		<#assign columnwidth = "grid__col-s--12" /> 
37	<#else> 
38		<#assign columnwidth = "grid__col-s--8" /> 
39	</#if>  
40	<div class="grid__col-xxs--12 ${columnwidth}  entry-body">   
41		<div class="vsstruct"> 
42			${description.getData()} 
43		</div> 
44	</div> 
45	<#if isContactEmpty() == "false"> 
46		<div class="grid__col-xxs--12 grid__col-s--4">   
47			<div class="grid__col-xxs--12 grid__col-s--12 services-header">   
48				<div class="grid__col-xxs--12"> 
49					<h3> 
50						<@liferay.language key="vs-contact"/> 
51					</h3> 
52					<@contactInfo/> 
53					<br /> 
54				</div> 
55			</div> 
56		</div> 
57	</#if> 
58</div> 
59	 
60<div> 
61	<#if isDocEmpty() == "false" > 
62		<h3 class="block-title"><@liferay.language key="${docBlockTitle.data}" /></h3> 
63		<@downloads /> 
64		 
65	</#if> 
66</div> 
67     
68<section class="services-footer grid__row">	 
69	<#if isLexEmpty() == "false"> 
70		<div class="grid__col-xxs--12 grid__col-m--5"> 
71			<h3 class="block-title"><@liferay.language key="vs-legal-base"/></h3> 
72			<@lex/> 
73			<#-- <@relatedAssets /> --> 
74		</div> 
75		<div class="grid__col-m--1"></div> 
76	</#if> 
77	<#if isLinkEmpty() == "false"> 
78		<div class="grid__col-xxs--12 grid__col-m--5"> 
79			<h3 class="block-title"><@liferay.language key="vs-link"/></h3> 
80			<@links/> 
81		</div> 
82	</#if> 
83</section> 
84 
85<#--	<small class="muted"><@liferay.language key="vs-last-modified" />: ${getArticleDate("modified")}</small>--> 
86 
87<#-- functions and macros --> 
88  
89<#macro getBackLink> 
90	<#if request.attributes??> 
91		<#assign url = request.attributes.CURRENT_URL /> 
92		<#assign multipleValues = httpUtil.getQueryString(url) /> 
93		<#assign paramMap = httpUtil.getParameterMap(httpUtil.getQueryString(url)) /> 
94		<#list paramMap?keys as key> 
95			<#if key?contains("_redirect")> 
96				<#assign keyFound = key /> 
97			</#if> 
98		</#list> 
99		<#if keyFound??> 
100			<#assign encodedUrlString = httpUtil.getParameter(url, keyFound, false) /> 
101			<#assign decodedUrlString = httpUtil.decodeURL(encodedUrlString) /> 
102			<div class="clearfix"> 
103				<#-- <span class="pull-left muted">${title.getData()} <@displayArticleDate dateType="published"/></span> --> 
104				<#if decodedUrlString??> 
105					<a class="pull-left" href="${decodedUrlString}"><i class="icon-chevron-sign-left"></i> <@liferay.language key="back" /></a> 
106				</#if> 
107				<hr /> 
108			</div> 
109		</#if> 
110	</#if> 
111</#macro> 
112  
113<#macro downloads> 
114	<#list docGroup.getSiblings() as cur_docGroup> 
115        <#if cur_docGroup.data?trim != ""> 
116            <h3 style="font-size: 1.1em; text-transform: uppercase; color: #e22b28; letter-spacing: 0.01em; margin-bottom: 0.6em;" >${cur_docGroup.data}</h3> 
117        </#if> 
118		<#if cur_docGroup.folderId?? > 
119			<#if cur_docGroup.folderId.data?trim != "">	 
120				<#assign filesInFolder = getFileEntries(groupId, cur_docGroup.folderId.data) /> 
121				<div class="grid__row section-docs"> 
122					<#assign allFiles = [] /> 
123					<#list filesInFolder as cur_file> 
124						<#if cur_file.toFileEntryId??> 
125							<#assign entryId = cur_file.toFileEntryId /> 
126							<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
127							<#assign allFiles = allFiles + [DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId))] />	 
128						<#else> 
129							<#assign entryId = cur_file.fileEntryId />  
130							<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
131							<#assign allFiles = allFiles + [DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId))] />	 
132						</#if> 
133					</#list> 
134					<#list allFiles as loop_file> 
135						<#if loop_file.getTitle()?index_of("/") != 0> 
136							<div class="grid__col-xxs--12 grid__col-s--6"> 
137								<a class="doc-item doc-item-small" href="/documents/${loop_file.groupId}/${loop_file.folderId}/${loop_file.title?url}/${loop_file.uuid}?t=.now?long" target="_blank"> 
138									<span class="u-table"> 
139										<span class="u-cell"> 
140											<span class="subtitle">${loop_file.extension}</span> 
141											<span>${loop_file.getTitle()}</span> 
142										</span> 
143									</span> 
144									<i class="icon icon_arrow-right"> 
145										<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
146											<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
147											<use xlink:href="#svg-arrow-right"></use> 
148										</svg> 
149									</i> 
150								</a> 
151							</div> 
152						</#if> 
153					</#list> 
154					<#assign allFiles = [] /> 
155				</div> 
156				<#assign filesInFolder = "" /> 
157			</#if> 
158		</#if> 
159		 
160		 
161		<#if cur_docGroup.annexeDocumentLinkTo??> 
162			<div class="grid__row section-docs"> 
163	 
164                <#list cur_docGroup.annexeDocumentLinkTo.getSiblings() as cur_intDoc> 
165                    <#if cur_intDoc.getData()?trim != "" && cur_intDoc.getData() != "null"> 
166                        <@getDocument docLink=cur_intDoc/> 
167                    </#if> 
168                </#list> 
169                 
170                <#if cur_docGroup.annexeUrlTitle??> 
171        			<#list cur_docGroup.annexeUrlTitle.getSiblings() as cur_extDoc> 
172        				<#if cur_extDoc.data?trim != "" && cur_extDoc.data != "null"> 
173            				<div class="grid__col-xxs--12 grid__col-s--6"> 
174                        		<a class="doc-item doc-item-small" href="${cur_extDoc.annexeUrl.data}" target="_blank"> 
175                        			<span class="u-table"> 
176                        				<span class="u-cell"> 
177            				                <span class="subtitle"><@liferay.language key="link"/></span> 
178        					                <span>${cur_extDoc.data}</span> 
179    					                </span> 
180                        			</span> 
181                        		    <i class="icon icon_arrow-right"> 
182                        				<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
183                        					<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
184                        					<use xlink:href="#svg-arrow-right"></use> 
185                        				</svg> 
186                        			</i> 
187    				    		</a> 
188                            </div> 
189        				</#if> 
190        			</#list>    
191        		</#if>   
192				 
193			</div> 
194		</#if> 
195         
196    </#list> 
197</#macro> 
198 
199<#macro getDocument docLink> 
200	<#assign docJSON = jsonFactoryUtil.createJSONObject(docLink.data) /> 
201    <#assign gid = docJSON.groupId /> 
202    <#assign longGid = getterUtil.getLong(gid) /> 
203    <#assign uuid = docJSON.uuid /> 
204    <#if DLFileEntryLocalService.getFileEntryByUuidAndGroupId(uuid, longGid)?? > 
205        <#assign document = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(uuid, longGid) /> 
206     
207    	    <div class="grid__col-xxs--12 grid__col-s--6"> 
208        		<a class="doc-item doc-item-small" href="${docLink.getData()}"> 
209        			<span class="u-table"> 
210        				<span class="u-cell"> 
211        					<span class="subtitle">${document.extension}</span> 
212        					<span>${document.getTitle()}</span> 
213        				</span> 
214        			</span> 
215        		    <i class="icon icon_arrow-right"> 
216    					<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
217    						<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
218    						<use xlink:href="#svg-arrow-right"></use> 
219    					</svg> 
220    				</i> 
221        		</a> 
222        	</div> 
223	</#if> 
224</#macro> 
225 
226<#macro DocumentFromId entryId> 
227	<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
228	<#if document.getTitle()?index_of("/") != 0> 
229		<div class="grid__col-xxs--12 grid__col-s--6"> 
230    		<a class="doc-item doc-item-small" href="/documents/${document.groupId}/${document.folderId}/${document.title?url}/${document.uuid}?t=.now?long" target="_blank"> 
231    			<span class="u-table"> 
232    				<span class="u-cell"> 
233		                <span class="subtitle"><@liferay.language key="link"/></span> 
234		                <span>${document.getTitle()}</span> 
235	                </span> 
236    			</span> 
237    		    <i class="icon icon_arrow-right"> 
238    				<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
239    					<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
240    					<use xlink:href="#svg-arrow-right"></use> 
241    				</svg> 
242    			</i> 
243    		</a> 
244        </div> 
245	</#if> 
246	<#assign document = "" /> 
247</#macro> 
248 
249 
250<#macro links> 
251	<#list linkGroup.getSiblings() as cur_linkGroup> 
252		<#if cur_linkGroup.data?trim != ""> 
253			<strong>${cur_linkGroup.data}</strong> 
254		</#if> 
255		<ul style="list-style: none; padding-left: 0;"> 
256			<#list cur_linkGroup.linkTitle.getSiblings() as cur_link> 
257				<#if cur_link.data?trim != "" && cur_link.data != "null"> 
258					<li > 
259						<a href="${cur_link.linkUrl.data}" class="link" target="_blank"> 
260							<i class="icon icon_arrow-right-xs"> 
261								<svg viewBox="0 0 27 12" class="svg_arrow-right-xs"> 
262									<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right-xs"></use> 
263									<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#svg-arrow-right-xs"></use> 
264								</svg> 
265							</i> ${cur_link.data} 
266						</a> 
267					</li> 
268				</#if> 
269			</#list> 
270		</ul> 
271	</#list>   
272</#macro> 
273 
274<#macro lex> 
275  <#if yourChoosenLocal == "de"> 
276    <#assign lexLanguage = "de" /> 
277	<#assign lexConfLanguage = "d" /> 
278  <#else> 
279    <#assign lexLanguage = "fr" /> 
280	<#assign lexConfLanguage = "f" /> 
281  </#if> 
282  <#list lexGroup.getSiblings() as cur_lexGroup> 
283    <#if cur_lexGroup.data?trim != ""> 
284    <strong>${cur_lexGroup.data}</strong> 
285    </#if> 
286    <ul> 
287      <#list cur_lexGroup.lexTitle.getSiblings() as cur_lex> 
288      <#if cur_lex.data?trim != "" && cur_lex.data != "null"> 
289        <li> 
290        	<#assign lexLinkUrl ="" /> 
291			<#if cur_lex.lexType.data == "legconftype" > 
292				<#assign lexLinkUrl = "http://www.admin.ch/ch/" + lexConfLanguage + "/rs/" + cur_lex.lexNumbers.getData()?replace(".", "_")  /> 
293				<#if cur_lex.lexNumbers.getData()?contains("a")> 
294					<#assign lexLinkUrl = "http://www.admin.ch/ch/" + lexConfLanguage + "/rs/" + cur_lex.lexNumbers.getData()?split("a")[0]?replace(".", "_")  /> 
295					<#assign lexLinkUrl = lexLinkUrl +  "/a" + cur_lex.lexNumbers.getData()?replace(".", "_")?split("a")[1] + ".html" /> 
296				</#if> 
297			<#elseif cur_lex.lexType.data == "leglisttype" > 
298				<#assign lexnumbers = cur_lex.lexNumbers.getData()?replace(";", "|") /> 
299				<#assign lexLinkUrl = "http://lex.vs.ch/frontend/syst_no/"  + lexnumbers + "?locale=" +  lexLanguage /> 
300			<#elseif cur_lex.lexType.data == "legdetailtype" || cur_lex.lexType.data == "legpdftype" > 
301				<#assign lexLinkUrl = "http://lex.vs.ch/data/"  + cur_lex.lexNumbers.getData()+ "/" + lexLanguage /> 
302				<#if cur_lex.lexNumbers.getData()?contains("a")> 
303					<#assign lexNumber = cur_lex.lexNumbers.getData()?split("a")[0] /> 
304					<#assign lexArticle = cur_lex.lexNumbers.getData()?split("a")[1] /> 
305					<#assign lexLinkUrl = "http://lex.vs.ch/data/"  + lexNumber + "/" + lexLanguage + "/art" + lexArticle /> 
306				</#if> 
307			<#elseif cur_lex.lexType.data == "leglinktype" >  
308				<#assign lexLinkUrl = cur_lex.lexNumbers.getData() /> 
309			</#if> 
310			<a href="${lexLinkUrl}" class="red" target="_blank"> 
311			${cur_lex.data} 
312			</a> 
313        </li> 
314      </#if> 
315      </#list> 
316    </ul> 
317  </#list>   
318</#macro> 
319 
320 
321 
322  
323<#macro contactInfo> 
324  ${contact.getData()} 
325  <#if serviceLocator??> 
326    <#if contact.contactId?? > 
327      <#if contact.contactId.data?trim != ""> 
328        ${getArticleContent(groupId, contact.contactId.getData())} 
329      </#if> 
330    </#if> 
331  </#if> 
332</#macro> 
333       
334<#function getArticleDate dateType> 
335  <#if serviceLocator??> 
336    <#assign article = JournalArticleLocalService.getArticle(groupId, gArticleId) /> 
337    <#if dateType == "published"> 
338      <#assign date = article.displayDate?date /> 
339    <#elseif dateType == "modified"> 
340      <#assign date = article.modifiedDate?date /> 
341    <#elseif dateType == "created"> 
342      <#assign date = article.createDate?date /> 
343    <#else> 
344      <#assign date = "???" /> 
345    </#if> 
346    <#return date> 
347  </#if> 
348</#function> 
349       
350<#function getFileEntries group folderId> 
351	<#if serviceLocator??> 
352		<#return DLFolderLocalService.getFileEntriesAndFileShortcuts(getterUtil.getLong(group), getterUtil.getLong(folderId), QD) /> 
353	</#if> 
354	<#return "" /> 
355</#function>       
356 
357<#function getArticleContent gid aid> 
358	<#attempt> 
359	  <#assign article = JournalArticleLocalService.getArticle(gid?number, aid?upper_case) /> 
360		<#assign articleContent = JournalArticleLocalService.getArticleContent(article, apListTemplateKey, null, locale, model, themeDisplay) /> 
361	    <#if articleContent?? > 
362	      <#return articleContent /> 
363	    </#if> 
364	    <#return "" /> 
365	<#recover> 
366	  <#return "" /> 
367	</#attempt> 
368</#function> 
369 
370 
371 
372<#function isDescriptionEmpty> 
373  <#if description.getData()?trim != "" && description.data?trim != "null"> 
374	<#return "false" /> 
375  </#if> 
376  <#return "true" /> 
377</#function> 
378 
379<#function isDocEmpty> 
380  <#list docGroup.getSiblings() as cur_docGroup> 
381    <#list cur_docGroup.annexeDocumentLinkTo.getSiblings() as cur_intDoc> 
382      <#if cur_intDoc.data?trim != "" && cur_intDoc.data?trim != "null"> 
383        <#return "false" /> 
384      </#if> 
385    </#list> 
386    <#if cur_docGroup.annexeUrlTitle.getSiblings()?has_content> 
387	    <#list cur_docGroup.annexeUrlTitle.getSiblings() as cur_extDoc> 
388	      <#if cur_extDoc.data?trim != "" && cur_extDoc.data?trim != "null"> 
389	        <#return "false" /> 
390	      </#if>	 
391	    </#list> 
392    </#if> 
393    <#if cur_docGroup.folderId?? > 
394      <#list cur_docGroup.folderId.getSiblings() as cur_folder> 
395        <#if cur_folder.data?trim != "" && cur_folder.data?trim != "null"> 
396          <#return "false" /> 
397        </#if>	 
398      </#list> 
399    </#if> 
400  </#list> 
401  <#return "true" /> 
402</#function> 
403 
404<#function isLinkEmpty> 
405  <#list linkGroup.getSiblings() as cur_linkGroup> 
406    <#list cur_linkGroup.linkTitle.getSiblings() as cur_link> 
407      <#if cur_link.data?trim != ""> 
408        <#return "false" /> 
409      </#if> 
410    </#list> 
411  </#list> 
412  <#return "true" /> 
413</#function> 
414 
415<#function isLexEmpty> 
416  <#list lexGroup.getSiblings() as cur_lexGroup> 
417    <#list cur_lexGroup.lexTitle.getSiblings() as cur_lex> 
418      <#if cur_lex.data?trim != ""> 
419        <#return "false" /> 
420      </#if> 
421    </#list> 
422  </#list> 
423  <#return "true" /> 
424</#function> 
425       
426<#function isContactEmpty> 
427  <#if contact.contactId?? > 
428    <#if contact.getData()?trim != "" || contact.contactId.data?trim != "" > 
429      <#return "false" /> 
430    </#if> 
431  <#else> 
432    <#if contact.getData()?trim != "" > 
433      <#return "false" /> 
434    </#if> 
435  </#if> 
436  <#return "true" /> 
437</#function> 
438 
439<#function isRelatedEmpty relatedEntries> 
440  <#if relatedEntries?? > 
441    <#list relatedEntries as cur_entry > 
442      <#if cur_entry?trim != ""> 
443        <#return "false"> 
444      </#if> 
445    </#list> 
446  </#if> 
447  <#return "true" /> 
448</#function> 
449 
450<#macro relatedAssets > 
451  <#assign relatedEntries = getRelatedContent() /> 
452  <#-- <#if relatedEntries?? > --> 
453  <#if isRelatedEmpty(relatedEntries) == "false"> 
454    <div class="widget"> 
455      <h3 class="block-title"><@liferay.language key="vs-en-relation"/></h3> 
456      <ul style="list-style: none;padding-left: 0;"> 
457        <#list relatedEntries as cur_asset_link> 
458          <#assign assetEntry = getAssetEntry(cur_asset_link.entryId2) /> 
459          <#assign lClassName = "com.liferay.journal.model.JournalArticle"/> 
460          <#assign journalArticle = JournalArticleLocalService.getLatestArticle(assetEntry.getClassPK())/> 
461          <li> 
462            <a class="link" href="#"> 
463                ${journalArticle.getTitle(locale)} 
464                <i class="icon icon_arrow-right-xs"> 
465					<svg viewBox="0 0 27 12" class="svg_arrow-right-xs"> 
466						<use xlink:href="/o/vs-theme/images/../assets/svg/sprite.svg#svg-arrow-right-xs"></use> 
467						<use xlink:href="#svg-arrow-right-xs"></use> 
468					</svg> 
469				</i> 
470            </a> 
471          </li> 
472        </#list> 
473      </ul> 
474    </div> 
475  </#if> 
476</#macro> 
477 
478<#function getAssetEntry entryId> 
479  <#assign entry = AssetLocalService.getAssetEntry(entryId) /> 
480  <#return entry /> 
481</#function> 
482   
483<#function getRelatedContent > 
484  <#assign lClassName = "com.liferay.portlet.journal.model.JournalArticle"/> 
485  <#assign lArticle = JournalArticleLocalService.getArticle(groupId, gArticleId)/> 
486  <#assign lPk = lArticle.getResourcePrimKey()/> 
487  <#assign lEntry = AssetLocalService.getEntry(lClassName,lPk)/> 
488  <#assign lLinks = AssetLinkService.getDirectLinks(lEntry.getEntryId())/> 
489  <#return lLinks /> 
490</#function> 
Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing:
==> cur_docGroup.annexeUrlTitle  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" at line 386, column 10]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be 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 cur_docGroup.annexeUrlTitle.getSi...  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" in function "isDocEmpty" at line 386, column 5]
	- Reached through: #if isDocEmpty() == "false"  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" at line 61, column 9]
----
1<#assign JournalArticleLocalService =  serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/> 
2<#assign AssetLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/> 
3<#assign AssetLinkService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")/> 
4<#assign DLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
5<#assign DLFolderLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFolderLocalService") /> 
6<#assign queryDefinition = objectUtil("com.liferay.portal.kernel.dao.orm.QueryDefinition")  /> 
7<#assign QD = queryDefinition /> 
8<#assign yourChoosenLocal = locale?split("_")[0] /> 
9<#assign pathFileicon = "/html/themes/classic/images/file_system/small/" /> 
10<#setting url_escaping_charset='ISO-8859-1'> 
11<#assign gArticleId = .vars['reserved-article-id'].data /> 
12<style> 
13.block a{ 
14color:#e22b28; 
15} 
16.entry-body .vsstruct:first-child h2 { 
17    display:none; 
18    /*color: #262626; 
19    padding-top: 15px; 
20    margin-top: 0; 
21    margin-bottom: 1.1em; 
22    text-transform: uppercase; 
23    line-height: 1.1em; 
24    font-size: 1.73em;*/ 
25}    
26.doc-item { 
27    overflow: auto; 
28} 
29</style> 
30   
31<div class="grid__row"> 
32	<div class="grid__col-xxs--12 grid__col-s--12"> 
33		<h2 class="block-title">${.vars['reserved-article-title'].data}</h2> 
34	</div> 
35	<#if isContactEmpty() == "true" >		 
36		<#assign columnwidth = "grid__col-s--12" /> 
37	<#else> 
38		<#assign columnwidth = "grid__col-s--8" /> 
39	</#if>  
40	<div class="grid__col-xxs--12 ${columnwidth}  entry-body">   
41		<div class="vsstruct"> 
42			${description.getData()} 
43		</div> 
44	</div> 
45	<#if isContactEmpty() == "false"> 
46		<div class="grid__col-xxs--12 grid__col-s--4">   
47			<div class="grid__col-xxs--12 grid__col-s--12 services-header">   
48				<div class="grid__col-xxs--12"> 
49					<h3> 
50						<@liferay.language key="vs-contact"/> 
51					</h3> 
52					<@contactInfo/> 
53					<br /> 
54				</div> 
55			</div> 
56		</div> 
57	</#if> 
58</div> 
59	 
60<div> 
61	<#if isDocEmpty() == "false" > 
62		<h3 class="block-title"><@liferay.language key="${docBlockTitle.data}" /></h3> 
63		<@downloads /> 
64		 
65	</#if> 
66</div> 
67     
68<section class="services-footer grid__row">	 
69	<#if isLexEmpty() == "false"> 
70		<div class="grid__col-xxs--12 grid__col-m--5"> 
71			<h3 class="block-title"><@liferay.language key="vs-legal-base"/></h3> 
72			<@lex/> 
73			<#-- <@relatedAssets /> --> 
74		</div> 
75		<div class="grid__col-m--1"></div> 
76	</#if> 
77	<#if isLinkEmpty() == "false"> 
78		<div class="grid__col-xxs--12 grid__col-m--5"> 
79			<h3 class="block-title"><@liferay.language key="vs-link"/></h3> 
80			<@links/> 
81		</div> 
82	</#if> 
83</section> 
84 
85<#--	<small class="muted"><@liferay.language key="vs-last-modified" />: ${getArticleDate("modified")}</small>--> 
86 
87<#-- functions and macros --> 
88  
89<#macro getBackLink> 
90	<#if request.attributes??> 
91		<#assign url = request.attributes.CURRENT_URL /> 
92		<#assign multipleValues = httpUtil.getQueryString(url) /> 
93		<#assign paramMap = httpUtil.getParameterMap(httpUtil.getQueryString(url)) /> 
94		<#list paramMap?keys as key> 
95			<#if key?contains("_redirect")> 
96				<#assign keyFound = key /> 
97			</#if> 
98		</#list> 
99		<#if keyFound??> 
100			<#assign encodedUrlString = httpUtil.getParameter(url, keyFound, false) /> 
101			<#assign decodedUrlString = httpUtil.decodeURL(encodedUrlString) /> 
102			<div class="clearfix"> 
103				<#-- <span class="pull-left muted">${title.getData()} <@displayArticleDate dateType="published"/></span> --> 
104				<#if decodedUrlString??> 
105					<a class="pull-left" href="${decodedUrlString}"><i class="icon-chevron-sign-left"></i> <@liferay.language key="back" /></a> 
106				</#if> 
107				<hr /> 
108			</div> 
109		</#if> 
110	</#if> 
111</#macro> 
112  
113<#macro downloads> 
114	<#list docGroup.getSiblings() as cur_docGroup> 
115        <#if cur_docGroup.data?trim != ""> 
116            <h3 style="font-size: 1.1em; text-transform: uppercase; color: #e22b28; letter-spacing: 0.01em; margin-bottom: 0.6em;" >${cur_docGroup.data}</h3> 
117        </#if> 
118		<#if cur_docGroup.folderId?? > 
119			<#if cur_docGroup.folderId.data?trim != "">	 
120				<#assign filesInFolder = getFileEntries(groupId, cur_docGroup.folderId.data) /> 
121				<div class="grid__row section-docs"> 
122					<#assign allFiles = [] /> 
123					<#list filesInFolder as cur_file> 
124						<#if cur_file.toFileEntryId??> 
125							<#assign entryId = cur_file.toFileEntryId /> 
126							<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
127							<#assign allFiles = allFiles + [DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId))] />	 
128						<#else> 
129							<#assign entryId = cur_file.fileEntryId />  
130							<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
131							<#assign allFiles = allFiles + [DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId))] />	 
132						</#if> 
133					</#list> 
134					<#list allFiles as loop_file> 
135						<#if loop_file.getTitle()?index_of("/") != 0> 
136							<div class="grid__col-xxs--12 grid__col-s--6"> 
137								<a class="doc-item doc-item-small" href="/documents/${loop_file.groupId}/${loop_file.folderId}/${loop_file.title?url}/${loop_file.uuid}?t=.now?long" target="_blank"> 
138									<span class="u-table"> 
139										<span class="u-cell"> 
140											<span class="subtitle">${loop_file.extension}</span> 
141											<span>${loop_file.getTitle()}</span> 
142										</span> 
143									</span> 
144									<i class="icon icon_arrow-right"> 
145										<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
146											<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
147											<use xlink:href="#svg-arrow-right"></use> 
148										</svg> 
149									</i> 
150								</a> 
151							</div> 
152						</#if> 
153					</#list> 
154					<#assign allFiles = [] /> 
155				</div> 
156				<#assign filesInFolder = "" /> 
157			</#if> 
158		</#if> 
159		 
160		 
161		<#if cur_docGroup.annexeDocumentLinkTo??> 
162			<div class="grid__row section-docs"> 
163	 
164                <#list cur_docGroup.annexeDocumentLinkTo.getSiblings() as cur_intDoc> 
165                    <#if cur_intDoc.getData()?trim != "" && cur_intDoc.getData() != "null"> 
166                        <@getDocument docLink=cur_intDoc/> 
167                    </#if> 
168                </#list> 
169                 
170                <#if cur_docGroup.annexeUrlTitle??> 
171        			<#list cur_docGroup.annexeUrlTitle.getSiblings() as cur_extDoc> 
172        				<#if cur_extDoc.data?trim != "" && cur_extDoc.data != "null"> 
173            				<div class="grid__col-xxs--12 grid__col-s--6"> 
174                        		<a class="doc-item doc-item-small" href="${cur_extDoc.annexeUrl.data}" target="_blank"> 
175                        			<span class="u-table"> 
176                        				<span class="u-cell"> 
177            				                <span class="subtitle"><@liferay.language key="link"/></span> 
178        					                <span>${cur_extDoc.data}</span> 
179    					                </span> 
180                        			</span> 
181                        		    <i class="icon icon_arrow-right"> 
182                        				<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
183                        					<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
184                        					<use xlink:href="#svg-arrow-right"></use> 
185                        				</svg> 
186                        			</i> 
187    				    		</a> 
188                            </div> 
189        				</#if> 
190        			</#list>    
191        		</#if>   
192				 
193			</div> 
194		</#if> 
195         
196    </#list> 
197</#macro> 
198 
199<#macro getDocument docLink> 
200	<#assign docJSON = jsonFactoryUtil.createJSONObject(docLink.data) /> 
201    <#assign gid = docJSON.groupId /> 
202    <#assign longGid = getterUtil.getLong(gid) /> 
203    <#assign uuid = docJSON.uuid /> 
204    <#if DLFileEntryLocalService.getFileEntryByUuidAndGroupId(uuid, longGid)?? > 
205        <#assign document = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(uuid, longGid) /> 
206     
207    	    <div class="grid__col-xxs--12 grid__col-s--6"> 
208        		<a class="doc-item doc-item-small" href="${docLink.getData()}"> 
209        			<span class="u-table"> 
210        				<span class="u-cell"> 
211        					<span class="subtitle">${document.extension}</span> 
212        					<span>${document.getTitle()}</span> 
213        				</span> 
214        			</span> 
215        		    <i class="icon icon_arrow-right"> 
216    					<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
217    						<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
218    						<use xlink:href="#svg-arrow-right"></use> 
219    					</svg> 
220    				</i> 
221        		</a> 
222        	</div> 
223	</#if> 
224</#macro> 
225 
226<#macro DocumentFromId entryId> 
227	<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
228	<#if document.getTitle()?index_of("/") != 0> 
229		<div class="grid__col-xxs--12 grid__col-s--6"> 
230    		<a class="doc-item doc-item-small" href="/documents/${document.groupId}/${document.folderId}/${document.title?url}/${document.uuid}?t=.now?long" target="_blank"> 
231    			<span class="u-table"> 
232    				<span class="u-cell"> 
233		                <span class="subtitle"><@liferay.language key="link"/></span> 
234		                <span>${document.getTitle()}</span> 
235	                </span> 
236    			</span> 
237    		    <i class="icon icon_arrow-right"> 
238    				<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
239    					<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
240    					<use xlink:href="#svg-arrow-right"></use> 
241    				</svg> 
242    			</i> 
243    		</a> 
244        </div> 
245	</#if> 
246	<#assign document = "" /> 
247</#macro> 
248 
249 
250<#macro links> 
251	<#list linkGroup.getSiblings() as cur_linkGroup> 
252		<#if cur_linkGroup.data?trim != ""> 
253			<strong>${cur_linkGroup.data}</strong> 
254		</#if> 
255		<ul style="list-style: none; padding-left: 0;"> 
256			<#list cur_linkGroup.linkTitle.getSiblings() as cur_link> 
257				<#if cur_link.data?trim != "" && cur_link.data != "null"> 
258					<li > 
259						<a href="${cur_link.linkUrl.data}" class="link" target="_blank"> 
260							<i class="icon icon_arrow-right-xs"> 
261								<svg viewBox="0 0 27 12" class="svg_arrow-right-xs"> 
262									<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right-xs"></use> 
263									<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#svg-arrow-right-xs"></use> 
264								</svg> 
265							</i> ${cur_link.data} 
266						</a> 
267					</li> 
268				</#if> 
269			</#list> 
270		</ul> 
271	</#list>   
272</#macro> 
273 
274<#macro lex> 
275  <#if yourChoosenLocal == "de"> 
276    <#assign lexLanguage = "de" /> 
277	<#assign lexConfLanguage = "d" /> 
278  <#else> 
279    <#assign lexLanguage = "fr" /> 
280	<#assign lexConfLanguage = "f" /> 
281  </#if> 
282  <#list lexGroup.getSiblings() as cur_lexGroup> 
283    <#if cur_lexGroup.data?trim != ""> 
284    <strong>${cur_lexGroup.data}</strong> 
285    </#if> 
286    <ul> 
287      <#list cur_lexGroup.lexTitle.getSiblings() as cur_lex> 
288      <#if cur_lex.data?trim != "" && cur_lex.data != "null"> 
289        <li> 
290        	<#assign lexLinkUrl ="" /> 
291			<#if cur_lex.lexType.data == "legconftype" > 
292				<#assign lexLinkUrl = "http://www.admin.ch/ch/" + lexConfLanguage + "/rs/" + cur_lex.lexNumbers.getData()?replace(".", "_")  /> 
293				<#if cur_lex.lexNumbers.getData()?contains("a")> 
294					<#assign lexLinkUrl = "http://www.admin.ch/ch/" + lexConfLanguage + "/rs/" + cur_lex.lexNumbers.getData()?split("a")[0]?replace(".", "_")  /> 
295					<#assign lexLinkUrl = lexLinkUrl +  "/a" + cur_lex.lexNumbers.getData()?replace(".", "_")?split("a")[1] + ".html" /> 
296				</#if> 
297			<#elseif cur_lex.lexType.data == "leglisttype" > 
298				<#assign lexnumbers = cur_lex.lexNumbers.getData()?replace(";", "|") /> 
299				<#assign lexLinkUrl = "http://lex.vs.ch/frontend/syst_no/"  + lexnumbers + "?locale=" +  lexLanguage /> 
300			<#elseif cur_lex.lexType.data == "legdetailtype" || cur_lex.lexType.data == "legpdftype" > 
301				<#assign lexLinkUrl = "http://lex.vs.ch/data/"  + cur_lex.lexNumbers.getData()+ "/" + lexLanguage /> 
302				<#if cur_lex.lexNumbers.getData()?contains("a")> 
303					<#assign lexNumber = cur_lex.lexNumbers.getData()?split("a")[0] /> 
304					<#assign lexArticle = cur_lex.lexNumbers.getData()?split("a")[1] /> 
305					<#assign lexLinkUrl = "http://lex.vs.ch/data/"  + lexNumber + "/" + lexLanguage + "/art" + lexArticle /> 
306				</#if> 
307			<#elseif cur_lex.lexType.data == "leglinktype" >  
308				<#assign lexLinkUrl = cur_lex.lexNumbers.getData() /> 
309			</#if> 
310			<a href="${lexLinkUrl}" class="red" target="_blank"> 
311			${cur_lex.data} 
312			</a> 
313        </li> 
314      </#if> 
315      </#list> 
316    </ul> 
317  </#list>   
318</#macro> 
319 
320 
321 
322  
323<#macro contactInfo> 
324  ${contact.getData()} 
325  <#if serviceLocator??> 
326    <#if contact.contactId?? > 
327      <#if contact.contactId.data?trim != ""> 
328        ${getArticleContent(groupId, contact.contactId.getData())} 
329      </#if> 
330    </#if> 
331  </#if> 
332</#macro> 
333       
334<#function getArticleDate dateType> 
335  <#if serviceLocator??> 
336    <#assign article = JournalArticleLocalService.getArticle(groupId, gArticleId) /> 
337    <#if dateType == "published"> 
338      <#assign date = article.displayDate?date /> 
339    <#elseif dateType == "modified"> 
340      <#assign date = article.modifiedDate?date /> 
341    <#elseif dateType == "created"> 
342      <#assign date = article.createDate?date /> 
343    <#else> 
344      <#assign date = "???" /> 
345    </#if> 
346    <#return date> 
347  </#if> 
348</#function> 
349       
350<#function getFileEntries group folderId> 
351	<#if serviceLocator??> 
352		<#return DLFolderLocalService.getFileEntriesAndFileShortcuts(getterUtil.getLong(group), getterUtil.getLong(folderId), QD) /> 
353	</#if> 
354	<#return "" /> 
355</#function>       
356 
357<#function getArticleContent gid aid> 
358	<#attempt> 
359	  <#assign article = JournalArticleLocalService.getArticle(gid?number, aid?upper_case) /> 
360		<#assign articleContent = JournalArticleLocalService.getArticleContent(article, apListTemplateKey, null, locale, model, themeDisplay) /> 
361	    <#if articleContent?? > 
362	      <#return articleContent /> 
363	    </#if> 
364	    <#return "" /> 
365	<#recover> 
366	  <#return "" /> 
367	</#attempt> 
368</#function> 
369 
370 
371 
372<#function isDescriptionEmpty> 
373  <#if description.getData()?trim != "" && description.data?trim != "null"> 
374	<#return "false" /> 
375  </#if> 
376  <#return "true" /> 
377</#function> 
378 
379<#function isDocEmpty> 
380  <#list docGroup.getSiblings() as cur_docGroup> 
381    <#list cur_docGroup.annexeDocumentLinkTo.getSiblings() as cur_intDoc> 
382      <#if cur_intDoc.data?trim != "" && cur_intDoc.data?trim != "null"> 
383        <#return "false" /> 
384      </#if> 
385    </#list> 
386    <#if cur_docGroup.annexeUrlTitle.getSiblings()?has_content> 
387	    <#list cur_docGroup.annexeUrlTitle.getSiblings() as cur_extDoc> 
388	      <#if cur_extDoc.data?trim != "" && cur_extDoc.data?trim != "null"> 
389	        <#return "false" /> 
390	      </#if>	 
391	    </#list> 
392    </#if> 
393    <#if cur_docGroup.folderId?? > 
394      <#list cur_docGroup.folderId.getSiblings() as cur_folder> 
395        <#if cur_folder.data?trim != "" && cur_folder.data?trim != "null"> 
396          <#return "false" /> 
397        </#if>	 
398      </#list> 
399    </#if> 
400  </#list> 
401  <#return "true" /> 
402</#function> 
403 
404<#function isLinkEmpty> 
405  <#list linkGroup.getSiblings() as cur_linkGroup> 
406    <#list cur_linkGroup.linkTitle.getSiblings() as cur_link> 
407      <#if cur_link.data?trim != ""> 
408        <#return "false" /> 
409      </#if> 
410    </#list> 
411  </#list> 
412  <#return "true" /> 
413</#function> 
414 
415<#function isLexEmpty> 
416  <#list lexGroup.getSiblings() as cur_lexGroup> 
417    <#list cur_lexGroup.lexTitle.getSiblings() as cur_lex> 
418      <#if cur_lex.data?trim != ""> 
419        <#return "false" /> 
420      </#if> 
421    </#list> 
422  </#list> 
423  <#return "true" /> 
424</#function> 
425       
426<#function isContactEmpty> 
427  <#if contact.contactId?? > 
428    <#if contact.getData()?trim != "" || contact.contactId.data?trim != "" > 
429      <#return "false" /> 
430    </#if> 
431  <#else> 
432    <#if contact.getData()?trim != "" > 
433      <#return "false" /> 
434    </#if> 
435  </#if> 
436  <#return "true" /> 
437</#function> 
438 
439<#function isRelatedEmpty relatedEntries> 
440  <#if relatedEntries?? > 
441    <#list relatedEntries as cur_entry > 
442      <#if cur_entry?trim != ""> 
443        <#return "false"> 
444      </#if> 
445    </#list> 
446  </#if> 
447  <#return "true" /> 
448</#function> 
449 
450<#macro relatedAssets > 
451  <#assign relatedEntries = getRelatedContent() /> 
452  <#-- <#if relatedEntries?? > --> 
453  <#if isRelatedEmpty(relatedEntries) == "false"> 
454    <div class="widget"> 
455      <h3 class="block-title"><@liferay.language key="vs-en-relation"/></h3> 
456      <ul style="list-style: none;padding-left: 0;"> 
457        <#list relatedEntries as cur_asset_link> 
458          <#assign assetEntry = getAssetEntry(cur_asset_link.entryId2) /> 
459          <#assign lClassName = "com.liferay.journal.model.JournalArticle"/> 
460          <#assign journalArticle = JournalArticleLocalService.getLatestArticle(assetEntry.getClassPK())/> 
461          <li> 
462            <a class="link" href="#"> 
463                ${journalArticle.getTitle(locale)} 
464                <i class="icon icon_arrow-right-xs"> 
465					<svg viewBox="0 0 27 12" class="svg_arrow-right-xs"> 
466						<use xlink:href="/o/vs-theme/images/../assets/svg/sprite.svg#svg-arrow-right-xs"></use> 
467						<use xlink:href="#svg-arrow-right-xs"></use> 
468					</svg> 
469				</i> 
470            </a> 
471          </li> 
472        </#list> 
473      </ul> 
474    </div> 
475  </#if> 
476</#macro> 
477 
478<#function getAssetEntry entryId> 
479  <#assign entry = AssetLocalService.getAssetEntry(entryId) /> 
480  <#return entry /> 
481</#function> 
482   
483<#function getRelatedContent > 
484  <#assign lClassName = "com.liferay.portlet.journal.model.JournalArticle"/> 
485  <#assign lArticle = JournalArticleLocalService.getArticle(groupId, gArticleId)/> 
486  <#assign lPk = lArticle.getResourcePrimKey()/> 
487  <#assign lEntry = AssetLocalService.getEntry(lClassName,lPk)/> 
488  <#assign lLinks = AssetLinkService.getDirectLinks(lEntry.getEntryId())/> 
489  <#return lLinks /> 
490</#function> 
Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing:
==> cur_docGroup.annexeUrlTitle  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" at line 386, column 10]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be 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 cur_docGroup.annexeUrlTitle.getSi...  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" in function "isDocEmpty" at line 386, column 5]
	- Reached through: #if isDocEmpty() == "false"  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" at line 61, column 9]
----
1<#assign JournalArticleLocalService =  serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/> 
2<#assign AssetLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/> 
3<#assign AssetLinkService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")/> 
4<#assign DLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
5<#assign DLFolderLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFolderLocalService") /> 
6<#assign queryDefinition = objectUtil("com.liferay.portal.kernel.dao.orm.QueryDefinition")  /> 
7<#assign QD = queryDefinition /> 
8<#assign yourChoosenLocal = locale?split("_")[0] /> 
9<#assign pathFileicon = "/html/themes/classic/images/file_system/small/" /> 
10<#setting url_escaping_charset='ISO-8859-1'> 
11<#assign gArticleId = .vars['reserved-article-id'].data /> 
12<style> 
13.block a{ 
14color:#e22b28; 
15} 
16.entry-body .vsstruct:first-child h2 { 
17    display:none; 
18    /*color: #262626; 
19    padding-top: 15px; 
20    margin-top: 0; 
21    margin-bottom: 1.1em; 
22    text-transform: uppercase; 
23    line-height: 1.1em; 
24    font-size: 1.73em;*/ 
25}    
26.doc-item { 
27    overflow: auto; 
28} 
29</style> 
30   
31<div class="grid__row"> 
32	<div class="grid__col-xxs--12 grid__col-s--12"> 
33		<h2 class="block-title">${.vars['reserved-article-title'].data}</h2> 
34	</div> 
35	<#if isContactEmpty() == "true" >		 
36		<#assign columnwidth = "grid__col-s--12" /> 
37	<#else> 
38		<#assign columnwidth = "grid__col-s--8" /> 
39	</#if>  
40	<div class="grid__col-xxs--12 ${columnwidth}  entry-body">   
41		<div class="vsstruct"> 
42			${description.getData()} 
43		</div> 
44	</div> 
45	<#if isContactEmpty() == "false"> 
46		<div class="grid__col-xxs--12 grid__col-s--4">   
47			<div class="grid__col-xxs--12 grid__col-s--12 services-header">   
48				<div class="grid__col-xxs--12"> 
49					<h3> 
50						<@liferay.language key="vs-contact"/> 
51					</h3> 
52					<@contactInfo/> 
53					<br /> 
54				</div> 
55			</div> 
56		</div> 
57	</#if> 
58</div> 
59	 
60<div> 
61	<#if isDocEmpty() == "false" > 
62		<h3 class="block-title"><@liferay.language key="${docBlockTitle.data}" /></h3> 
63		<@downloads /> 
64		 
65	</#if> 
66</div> 
67     
68<section class="services-footer grid__row">	 
69	<#if isLexEmpty() == "false"> 
70		<div class="grid__col-xxs--12 grid__col-m--5"> 
71			<h3 class="block-title"><@liferay.language key="vs-legal-base"/></h3> 
72			<@lex/> 
73			<#-- <@relatedAssets /> --> 
74		</div> 
75		<div class="grid__col-m--1"></div> 
76	</#if> 
77	<#if isLinkEmpty() == "false"> 
78		<div class="grid__col-xxs--12 grid__col-m--5"> 
79			<h3 class="block-title"><@liferay.language key="vs-link"/></h3> 
80			<@links/> 
81		</div> 
82	</#if> 
83</section> 
84 
85<#--	<small class="muted"><@liferay.language key="vs-last-modified" />: ${getArticleDate("modified")}</small>--> 
86 
87<#-- functions and macros --> 
88  
89<#macro getBackLink> 
90	<#if request.attributes??> 
91		<#assign url = request.attributes.CURRENT_URL /> 
92		<#assign multipleValues = httpUtil.getQueryString(url) /> 
93		<#assign paramMap = httpUtil.getParameterMap(httpUtil.getQueryString(url)) /> 
94		<#list paramMap?keys as key> 
95			<#if key?contains("_redirect")> 
96				<#assign keyFound = key /> 
97			</#if> 
98		</#list> 
99		<#if keyFound??> 
100			<#assign encodedUrlString = httpUtil.getParameter(url, keyFound, false) /> 
101			<#assign decodedUrlString = httpUtil.decodeURL(encodedUrlString) /> 
102			<div class="clearfix"> 
103				<#-- <span class="pull-left muted">${title.getData()} <@displayArticleDate dateType="published"/></span> --> 
104				<#if decodedUrlString??> 
105					<a class="pull-left" href="${decodedUrlString}"><i class="icon-chevron-sign-left"></i> <@liferay.language key="back" /></a> 
106				</#if> 
107				<hr /> 
108			</div> 
109		</#if> 
110	</#if> 
111</#macro> 
112  
113<#macro downloads> 
114	<#list docGroup.getSiblings() as cur_docGroup> 
115        <#if cur_docGroup.data?trim != ""> 
116            <h3 style="font-size: 1.1em; text-transform: uppercase; color: #e22b28; letter-spacing: 0.01em; margin-bottom: 0.6em;" >${cur_docGroup.data}</h3> 
117        </#if> 
118		<#if cur_docGroup.folderId?? > 
119			<#if cur_docGroup.folderId.data?trim != "">	 
120				<#assign filesInFolder = getFileEntries(groupId, cur_docGroup.folderId.data) /> 
121				<div class="grid__row section-docs"> 
122					<#assign allFiles = [] /> 
123					<#list filesInFolder as cur_file> 
124						<#if cur_file.toFileEntryId??> 
125							<#assign entryId = cur_file.toFileEntryId /> 
126							<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
127							<#assign allFiles = allFiles + [DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId))] />	 
128						<#else> 
129							<#assign entryId = cur_file.fileEntryId />  
130							<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
131							<#assign allFiles = allFiles + [DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId))] />	 
132						</#if> 
133					</#list> 
134					<#list allFiles as loop_file> 
135						<#if loop_file.getTitle()?index_of("/") != 0> 
136							<div class="grid__col-xxs--12 grid__col-s--6"> 
137								<a class="doc-item doc-item-small" href="/documents/${loop_file.groupId}/${loop_file.folderId}/${loop_file.title?url}/${loop_file.uuid}?t=.now?long" target="_blank"> 
138									<span class="u-table"> 
139										<span class="u-cell"> 
140											<span class="subtitle">${loop_file.extension}</span> 
141											<span>${loop_file.getTitle()}</span> 
142										</span> 
143									</span> 
144									<i class="icon icon_arrow-right"> 
145										<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
146											<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
147											<use xlink:href="#svg-arrow-right"></use> 
148										</svg> 
149									</i> 
150								</a> 
151							</div> 
152						</#if> 
153					</#list> 
154					<#assign allFiles = [] /> 
155				</div> 
156				<#assign filesInFolder = "" /> 
157			</#if> 
158		</#if> 
159		 
160		 
161		<#if cur_docGroup.annexeDocumentLinkTo??> 
162			<div class="grid__row section-docs"> 
163	 
164                <#list cur_docGroup.annexeDocumentLinkTo.getSiblings() as cur_intDoc> 
165                    <#if cur_intDoc.getData()?trim != "" && cur_intDoc.getData() != "null"> 
166                        <@getDocument docLink=cur_intDoc/> 
167                    </#if> 
168                </#list> 
169                 
170                <#if cur_docGroup.annexeUrlTitle??> 
171        			<#list cur_docGroup.annexeUrlTitle.getSiblings() as cur_extDoc> 
172        				<#if cur_extDoc.data?trim != "" && cur_extDoc.data != "null"> 
173            				<div class="grid__col-xxs--12 grid__col-s--6"> 
174                        		<a class="doc-item doc-item-small" href="${cur_extDoc.annexeUrl.data}" target="_blank"> 
175                        			<span class="u-table"> 
176                        				<span class="u-cell"> 
177            				                <span class="subtitle"><@liferay.language key="link"/></span> 
178        					                <span>${cur_extDoc.data}</span> 
179    					                </span> 
180                        			</span> 
181                        		    <i class="icon icon_arrow-right"> 
182                        				<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
183                        					<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
184                        					<use xlink:href="#svg-arrow-right"></use> 
185                        				</svg> 
186                        			</i> 
187    				    		</a> 
188                            </div> 
189        				</#if> 
190        			</#list>    
191        		</#if>   
192				 
193			</div> 
194		</#if> 
195         
196    </#list> 
197</#macro> 
198 
199<#macro getDocument docLink> 
200	<#assign docJSON = jsonFactoryUtil.createJSONObject(docLink.data) /> 
201    <#assign gid = docJSON.groupId /> 
202    <#assign longGid = getterUtil.getLong(gid) /> 
203    <#assign uuid = docJSON.uuid /> 
204    <#if DLFileEntryLocalService.getFileEntryByUuidAndGroupId(uuid, longGid)?? > 
205        <#assign document = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(uuid, longGid) /> 
206     
207    	    <div class="grid__col-xxs--12 grid__col-s--6"> 
208        		<a class="doc-item doc-item-small" href="${docLink.getData()}"> 
209        			<span class="u-table"> 
210        				<span class="u-cell"> 
211        					<span class="subtitle">${document.extension}</span> 
212        					<span>${document.getTitle()}</span> 
213        				</span> 
214        			</span> 
215        		    <i class="icon icon_arrow-right"> 
216    					<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
217    						<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
218    						<use xlink:href="#svg-arrow-right"></use> 
219    					</svg> 
220    				</i> 
221        		</a> 
222        	</div> 
223	</#if> 
224</#macro> 
225 
226<#macro DocumentFromId entryId> 
227	<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
228	<#if document.getTitle()?index_of("/") != 0> 
229		<div class="grid__col-xxs--12 grid__col-s--6"> 
230    		<a class="doc-item doc-item-small" href="/documents/${document.groupId}/${document.folderId}/${document.title?url}/${document.uuid}?t=.now?long" target="_blank"> 
231    			<span class="u-table"> 
232    				<span class="u-cell"> 
233		                <span class="subtitle"><@liferay.language key="link"/></span> 
234		                <span>${document.getTitle()}</span> 
235	                </span> 
236    			</span> 
237    		    <i class="icon icon_arrow-right"> 
238    				<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
239    					<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
240    					<use xlink:href="#svg-arrow-right"></use> 
241    				</svg> 
242    			</i> 
243    		</a> 
244        </div> 
245	</#if> 
246	<#assign document = "" /> 
247</#macro> 
248 
249 
250<#macro links> 
251	<#list linkGroup.getSiblings() as cur_linkGroup> 
252		<#if cur_linkGroup.data?trim != ""> 
253			<strong>${cur_linkGroup.data}</strong> 
254		</#if> 
255		<ul style="list-style: none; padding-left: 0;"> 
256			<#list cur_linkGroup.linkTitle.getSiblings() as cur_link> 
257				<#if cur_link.data?trim != "" && cur_link.data != "null"> 
258					<li > 
259						<a href="${cur_link.linkUrl.data}" class="link" target="_blank"> 
260							<i class="icon icon_arrow-right-xs"> 
261								<svg viewBox="0 0 27 12" class="svg_arrow-right-xs"> 
262									<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right-xs"></use> 
263									<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#svg-arrow-right-xs"></use> 
264								</svg> 
265							</i> ${cur_link.data} 
266						</a> 
267					</li> 
268				</#if> 
269			</#list> 
270		</ul> 
271	</#list>   
272</#macro> 
273 
274<#macro lex> 
275  <#if yourChoosenLocal == "de"> 
276    <#assign lexLanguage = "de" /> 
277	<#assign lexConfLanguage = "d" /> 
278  <#else> 
279    <#assign lexLanguage = "fr" /> 
280	<#assign lexConfLanguage = "f" /> 
281  </#if> 
282  <#list lexGroup.getSiblings() as cur_lexGroup> 
283    <#if cur_lexGroup.data?trim != ""> 
284    <strong>${cur_lexGroup.data}</strong> 
285    </#if> 
286    <ul> 
287      <#list cur_lexGroup.lexTitle.getSiblings() as cur_lex> 
288      <#if cur_lex.data?trim != "" && cur_lex.data != "null"> 
289        <li> 
290        	<#assign lexLinkUrl ="" /> 
291			<#if cur_lex.lexType.data == "legconftype" > 
292				<#assign lexLinkUrl = "http://www.admin.ch/ch/" + lexConfLanguage + "/rs/" + cur_lex.lexNumbers.getData()?replace(".", "_")  /> 
293				<#if cur_lex.lexNumbers.getData()?contains("a")> 
294					<#assign lexLinkUrl = "http://www.admin.ch/ch/" + lexConfLanguage + "/rs/" + cur_lex.lexNumbers.getData()?split("a")[0]?replace(".", "_")  /> 
295					<#assign lexLinkUrl = lexLinkUrl +  "/a" + cur_lex.lexNumbers.getData()?replace(".", "_")?split("a")[1] + ".html" /> 
296				</#if> 
297			<#elseif cur_lex.lexType.data == "leglisttype" > 
298				<#assign lexnumbers = cur_lex.lexNumbers.getData()?replace(";", "|") /> 
299				<#assign lexLinkUrl = "http://lex.vs.ch/frontend/syst_no/"  + lexnumbers + "?locale=" +  lexLanguage /> 
300			<#elseif cur_lex.lexType.data == "legdetailtype" || cur_lex.lexType.data == "legpdftype" > 
301				<#assign lexLinkUrl = "http://lex.vs.ch/data/"  + cur_lex.lexNumbers.getData()+ "/" + lexLanguage /> 
302				<#if cur_lex.lexNumbers.getData()?contains("a")> 
303					<#assign lexNumber = cur_lex.lexNumbers.getData()?split("a")[0] /> 
304					<#assign lexArticle = cur_lex.lexNumbers.getData()?split("a")[1] /> 
305					<#assign lexLinkUrl = "http://lex.vs.ch/data/"  + lexNumber + "/" + lexLanguage + "/art" + lexArticle /> 
306				</#if> 
307			<#elseif cur_lex.lexType.data == "leglinktype" >  
308				<#assign lexLinkUrl = cur_lex.lexNumbers.getData() /> 
309			</#if> 
310			<a href="${lexLinkUrl}" class="red" target="_blank"> 
311			${cur_lex.data} 
312			</a> 
313        </li> 
314      </#if> 
315      </#list> 
316    </ul> 
317  </#list>   
318</#macro> 
319 
320 
321 
322  
323<#macro contactInfo> 
324  ${contact.getData()} 
325  <#if serviceLocator??> 
326    <#if contact.contactId?? > 
327      <#if contact.contactId.data?trim != ""> 
328        ${getArticleContent(groupId, contact.contactId.getData())} 
329      </#if> 
330    </#if> 
331  </#if> 
332</#macro> 
333       
334<#function getArticleDate dateType> 
335  <#if serviceLocator??> 
336    <#assign article = JournalArticleLocalService.getArticle(groupId, gArticleId) /> 
337    <#if dateType == "published"> 
338      <#assign date = article.displayDate?date /> 
339    <#elseif dateType == "modified"> 
340      <#assign date = article.modifiedDate?date /> 
341    <#elseif dateType == "created"> 
342      <#assign date = article.createDate?date /> 
343    <#else> 
344      <#assign date = "???" /> 
345    </#if> 
346    <#return date> 
347  </#if> 
348</#function> 
349       
350<#function getFileEntries group folderId> 
351	<#if serviceLocator??> 
352		<#return DLFolderLocalService.getFileEntriesAndFileShortcuts(getterUtil.getLong(group), getterUtil.getLong(folderId), QD) /> 
353	</#if> 
354	<#return "" /> 
355</#function>       
356 
357<#function getArticleContent gid aid> 
358	<#attempt> 
359	  <#assign article = JournalArticleLocalService.getArticle(gid?number, aid?upper_case) /> 
360		<#assign articleContent = JournalArticleLocalService.getArticleContent(article, apListTemplateKey, null, locale, model, themeDisplay) /> 
361	    <#if articleContent?? > 
362	      <#return articleContent /> 
363	    </#if> 
364	    <#return "" /> 
365	<#recover> 
366	  <#return "" /> 
367	</#attempt> 
368</#function> 
369 
370 
371 
372<#function isDescriptionEmpty> 
373  <#if description.getData()?trim != "" && description.data?trim != "null"> 
374	<#return "false" /> 
375  </#if> 
376  <#return "true" /> 
377</#function> 
378 
379<#function isDocEmpty> 
380  <#list docGroup.getSiblings() as cur_docGroup> 
381    <#list cur_docGroup.annexeDocumentLinkTo.getSiblings() as cur_intDoc> 
382      <#if cur_intDoc.data?trim != "" && cur_intDoc.data?trim != "null"> 
383        <#return "false" /> 
384      </#if> 
385    </#list> 
386    <#if cur_docGroup.annexeUrlTitle.getSiblings()?has_content> 
387	    <#list cur_docGroup.annexeUrlTitle.getSiblings() as cur_extDoc> 
388	      <#if cur_extDoc.data?trim != "" && cur_extDoc.data?trim != "null"> 
389	        <#return "false" /> 
390	      </#if>	 
391	    </#list> 
392    </#if> 
393    <#if cur_docGroup.folderId?? > 
394      <#list cur_docGroup.folderId.getSiblings() as cur_folder> 
395        <#if cur_folder.data?trim != "" && cur_folder.data?trim != "null"> 
396          <#return "false" /> 
397        </#if>	 
398      </#list> 
399    </#if> 
400  </#list> 
401  <#return "true" /> 
402</#function> 
403 
404<#function isLinkEmpty> 
405  <#list linkGroup.getSiblings() as cur_linkGroup> 
406    <#list cur_linkGroup.linkTitle.getSiblings() as cur_link> 
407      <#if cur_link.data?trim != ""> 
408        <#return "false" /> 
409      </#if> 
410    </#list> 
411  </#list> 
412  <#return "true" /> 
413</#function> 
414 
415<#function isLexEmpty> 
416  <#list lexGroup.getSiblings() as cur_lexGroup> 
417    <#list cur_lexGroup.lexTitle.getSiblings() as cur_lex> 
418      <#if cur_lex.data?trim != ""> 
419        <#return "false" /> 
420      </#if> 
421    </#list> 
422  </#list> 
423  <#return "true" /> 
424</#function> 
425       
426<#function isContactEmpty> 
427  <#if contact.contactId?? > 
428    <#if contact.getData()?trim != "" || contact.contactId.data?trim != "" > 
429      <#return "false" /> 
430    </#if> 
431  <#else> 
432    <#if contact.getData()?trim != "" > 
433      <#return "false" /> 
434    </#if> 
435  </#if> 
436  <#return "true" /> 
437</#function> 
438 
439<#function isRelatedEmpty relatedEntries> 
440  <#if relatedEntries?? > 
441    <#list relatedEntries as cur_entry > 
442      <#if cur_entry?trim != ""> 
443        <#return "false"> 
444      </#if> 
445    </#list> 
446  </#if> 
447  <#return "true" /> 
448</#function> 
449 
450<#macro relatedAssets > 
451  <#assign relatedEntries = getRelatedContent() /> 
452  <#-- <#if relatedEntries?? > --> 
453  <#if isRelatedEmpty(relatedEntries) == "false"> 
454    <div class="widget"> 
455      <h3 class="block-title"><@liferay.language key="vs-en-relation"/></h3> 
456      <ul style="list-style: none;padding-left: 0;"> 
457        <#list relatedEntries as cur_asset_link> 
458          <#assign assetEntry = getAssetEntry(cur_asset_link.entryId2) /> 
459          <#assign lClassName = "com.liferay.journal.model.JournalArticle"/> 
460          <#assign journalArticle = JournalArticleLocalService.getLatestArticle(assetEntry.getClassPK())/> 
461          <li> 
462            <a class="link" href="#"> 
463                ${journalArticle.getTitle(locale)} 
464                <i class="icon icon_arrow-right-xs"> 
465					<svg viewBox="0 0 27 12" class="svg_arrow-right-xs"> 
466						<use xlink:href="/o/vs-theme/images/../assets/svg/sprite.svg#svg-arrow-right-xs"></use> 
467						<use xlink:href="#svg-arrow-right-xs"></use> 
468					</svg> 
469				</i> 
470            </a> 
471          </li> 
472        </#list> 
473      </ul> 
474    </div> 
475  </#if> 
476</#macro> 
477 
478<#function getAssetEntry entryId> 
479  <#assign entry = AssetLocalService.getAssetEntry(entryId) /> 
480  <#return entry /> 
481</#function> 
482   
483<#function getRelatedContent > 
484  <#assign lClassName = "com.liferay.portlet.journal.model.JournalArticle"/> 
485  <#assign lArticle = JournalArticleLocalService.getArticle(groupId, gArticleId)/> 
486  <#assign lPk = lArticle.getResourcePrimKey()/> 
487  <#assign lEntry = AssetLocalService.getEntry(lClassName,lPk)/> 
488  <#assign lLinks = AssetLinkService.getDirectLinks(lEntry.getEntryId())/> 
489  <#return lLinks /> 
490</#function> 
Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing:
==> cur_docGroup.annexeUrlTitle  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" at line 386, column 10]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be 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 cur_docGroup.annexeUrlTitle.getSi...  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" in function "isDocEmpty" at line 386, column 5]
	- Reached through: #if isDocEmpty() == "false"  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" at line 61, column 9]
----
1<#assign JournalArticleLocalService =  serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/> 
2<#assign AssetLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/> 
3<#assign AssetLinkService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")/> 
4<#assign DLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
5<#assign DLFolderLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFolderLocalService") /> 
6<#assign queryDefinition = objectUtil("com.liferay.portal.kernel.dao.orm.QueryDefinition")  /> 
7<#assign QD = queryDefinition /> 
8<#assign yourChoosenLocal = locale?split("_")[0] /> 
9<#assign pathFileicon = "/html/themes/classic/images/file_system/small/" /> 
10<#setting url_escaping_charset='ISO-8859-1'> 
11<#assign gArticleId = .vars['reserved-article-id'].data /> 
12<style> 
13.block a{ 
14color:#e22b28; 
15} 
16.entry-body .vsstruct:first-child h2 { 
17    display:none; 
18    /*color: #262626; 
19    padding-top: 15px; 
20    margin-top: 0; 
21    margin-bottom: 1.1em; 
22    text-transform: uppercase; 
23    line-height: 1.1em; 
24    font-size: 1.73em;*/ 
25}    
26.doc-item { 
27    overflow: auto; 
28} 
29</style> 
30   
31<div class="grid__row"> 
32	<div class="grid__col-xxs--12 grid__col-s--12"> 
33		<h2 class="block-title">${.vars['reserved-article-title'].data}</h2> 
34	</div> 
35	<#if isContactEmpty() == "true" >		 
36		<#assign columnwidth = "grid__col-s--12" /> 
37	<#else> 
38		<#assign columnwidth = "grid__col-s--8" /> 
39	</#if>  
40	<div class="grid__col-xxs--12 ${columnwidth}  entry-body">   
41		<div class="vsstruct"> 
42			${description.getData()} 
43		</div> 
44	</div> 
45	<#if isContactEmpty() == "false"> 
46		<div class="grid__col-xxs--12 grid__col-s--4">   
47			<div class="grid__col-xxs--12 grid__col-s--12 services-header">   
48				<div class="grid__col-xxs--12"> 
49					<h3> 
50						<@liferay.language key="vs-contact"/> 
51					</h3> 
52					<@contactInfo/> 
53					<br /> 
54				</div> 
55			</div> 
56		</div> 
57	</#if> 
58</div> 
59	 
60<div> 
61	<#if isDocEmpty() == "false" > 
62		<h3 class="block-title"><@liferay.language key="${docBlockTitle.data}" /></h3> 
63		<@downloads /> 
64		 
65	</#if> 
66</div> 
67     
68<section class="services-footer grid__row">	 
69	<#if isLexEmpty() == "false"> 
70		<div class="grid__col-xxs--12 grid__col-m--5"> 
71			<h3 class="block-title"><@liferay.language key="vs-legal-base"/></h3> 
72			<@lex/> 
73			<#-- <@relatedAssets /> --> 
74		</div> 
75		<div class="grid__col-m--1"></div> 
76	</#if> 
77	<#if isLinkEmpty() == "false"> 
78		<div class="grid__col-xxs--12 grid__col-m--5"> 
79			<h3 class="block-title"><@liferay.language key="vs-link"/></h3> 
80			<@links/> 
81		</div> 
82	</#if> 
83</section> 
84 
85<#--	<small class="muted"><@liferay.language key="vs-last-modified" />: ${getArticleDate("modified")}</small>--> 
86 
87<#-- functions and macros --> 
88  
89<#macro getBackLink> 
90	<#if request.attributes??> 
91		<#assign url = request.attributes.CURRENT_URL /> 
92		<#assign multipleValues = httpUtil.getQueryString(url) /> 
93		<#assign paramMap = httpUtil.getParameterMap(httpUtil.getQueryString(url)) /> 
94		<#list paramMap?keys as key> 
95			<#if key?contains("_redirect")> 
96				<#assign keyFound = key /> 
97			</#if> 
98		</#list> 
99		<#if keyFound??> 
100			<#assign encodedUrlString = httpUtil.getParameter(url, keyFound, false) /> 
101			<#assign decodedUrlString = httpUtil.decodeURL(encodedUrlString) /> 
102			<div class="clearfix"> 
103				<#-- <span class="pull-left muted">${title.getData()} <@displayArticleDate dateType="published"/></span> --> 
104				<#if decodedUrlString??> 
105					<a class="pull-left" href="${decodedUrlString}"><i class="icon-chevron-sign-left"></i> <@liferay.language key="back" /></a> 
106				</#if> 
107				<hr /> 
108			</div> 
109		</#if> 
110	</#if> 
111</#macro> 
112  
113<#macro downloads> 
114	<#list docGroup.getSiblings() as cur_docGroup> 
115        <#if cur_docGroup.data?trim != ""> 
116            <h3 style="font-size: 1.1em; text-transform: uppercase; color: #e22b28; letter-spacing: 0.01em; margin-bottom: 0.6em;" >${cur_docGroup.data}</h3> 
117        </#if> 
118		<#if cur_docGroup.folderId?? > 
119			<#if cur_docGroup.folderId.data?trim != "">	 
120				<#assign filesInFolder = getFileEntries(groupId, cur_docGroup.folderId.data) /> 
121				<div class="grid__row section-docs"> 
122					<#assign allFiles = [] /> 
123					<#list filesInFolder as cur_file> 
124						<#if cur_file.toFileEntryId??> 
125							<#assign entryId = cur_file.toFileEntryId /> 
126							<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
127							<#assign allFiles = allFiles + [DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId))] />	 
128						<#else> 
129							<#assign entryId = cur_file.fileEntryId />  
130							<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
131							<#assign allFiles = allFiles + [DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId))] />	 
132						</#if> 
133					</#list> 
134					<#list allFiles as loop_file> 
135						<#if loop_file.getTitle()?index_of("/") != 0> 
136							<div class="grid__col-xxs--12 grid__col-s--6"> 
137								<a class="doc-item doc-item-small" href="/documents/${loop_file.groupId}/${loop_file.folderId}/${loop_file.title?url}/${loop_file.uuid}?t=.now?long" target="_blank"> 
138									<span class="u-table"> 
139										<span class="u-cell"> 
140											<span class="subtitle">${loop_file.extension}</span> 
141											<span>${loop_file.getTitle()}</span> 
142										</span> 
143									</span> 
144									<i class="icon icon_arrow-right"> 
145										<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
146											<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
147											<use xlink:href="#svg-arrow-right"></use> 
148										</svg> 
149									</i> 
150								</a> 
151							</div> 
152						</#if> 
153					</#list> 
154					<#assign allFiles = [] /> 
155				</div> 
156				<#assign filesInFolder = "" /> 
157			</#if> 
158		</#if> 
159		 
160		 
161		<#if cur_docGroup.annexeDocumentLinkTo??> 
162			<div class="grid__row section-docs"> 
163	 
164                <#list cur_docGroup.annexeDocumentLinkTo.getSiblings() as cur_intDoc> 
165                    <#if cur_intDoc.getData()?trim != "" && cur_intDoc.getData() != "null"> 
166                        <@getDocument docLink=cur_intDoc/> 
167                    </#if> 
168                </#list> 
169                 
170                <#if cur_docGroup.annexeUrlTitle??> 
171        			<#list cur_docGroup.annexeUrlTitle.getSiblings() as cur_extDoc> 
172        				<#if cur_extDoc.data?trim != "" && cur_extDoc.data != "null"> 
173            				<div class="grid__col-xxs--12 grid__col-s--6"> 
174                        		<a class="doc-item doc-item-small" href="${cur_extDoc.annexeUrl.data}" target="_blank"> 
175                        			<span class="u-table"> 
176                        				<span class="u-cell"> 
177            				                <span class="subtitle"><@liferay.language key="link"/></span> 
178        					                <span>${cur_extDoc.data}</span> 
179    					                </span> 
180                        			</span> 
181                        		    <i class="icon icon_arrow-right"> 
182                        				<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
183                        					<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
184                        					<use xlink:href="#svg-arrow-right"></use> 
185                        				</svg> 
186                        			</i> 
187    				    		</a> 
188                            </div> 
189        				</#if> 
190        			</#list>    
191        		</#if>   
192				 
193			</div> 
194		</#if> 
195         
196    </#list> 
197</#macro> 
198 
199<#macro getDocument docLink> 
200	<#assign docJSON = jsonFactoryUtil.createJSONObject(docLink.data) /> 
201    <#assign gid = docJSON.groupId /> 
202    <#assign longGid = getterUtil.getLong(gid) /> 
203    <#assign uuid = docJSON.uuid /> 
204    <#if DLFileEntryLocalService.getFileEntryByUuidAndGroupId(uuid, longGid)?? > 
205        <#assign document = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(uuid, longGid) /> 
206     
207    	    <div class="grid__col-xxs--12 grid__col-s--6"> 
208        		<a class="doc-item doc-item-small" href="${docLink.getData()}"> 
209        			<span class="u-table"> 
210        				<span class="u-cell"> 
211        					<span class="subtitle">${document.extension}</span> 
212        					<span>${document.getTitle()}</span> 
213        				</span> 
214        			</span> 
215        		    <i class="icon icon_arrow-right"> 
216    					<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
217    						<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
218    						<use xlink:href="#svg-arrow-right"></use> 
219    					</svg> 
220    				</i> 
221        		</a> 
222        	</div> 
223	</#if> 
224</#macro> 
225 
226<#macro DocumentFromId entryId> 
227	<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
228	<#if document.getTitle()?index_of("/") != 0> 
229		<div class="grid__col-xxs--12 grid__col-s--6"> 
230    		<a class="doc-item doc-item-small" href="/documents/${document.groupId}/${document.folderId}/${document.title?url}/${document.uuid}?t=.now?long" target="_blank"> 
231    			<span class="u-table"> 
232    				<span class="u-cell"> 
233		                <span class="subtitle"><@liferay.language key="link"/></span> 
234		                <span>${document.getTitle()}</span> 
235	                </span> 
236    			</span> 
237    		    <i class="icon icon_arrow-right"> 
238    				<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
239    					<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
240    					<use xlink:href="#svg-arrow-right"></use> 
241    				</svg> 
242    			</i> 
243    		</a> 
244        </div> 
245	</#if> 
246	<#assign document = "" /> 
247</#macro> 
248 
249 
250<#macro links> 
251	<#list linkGroup.getSiblings() as cur_linkGroup> 
252		<#if cur_linkGroup.data?trim != ""> 
253			<strong>${cur_linkGroup.data}</strong> 
254		</#if> 
255		<ul style="list-style: none; padding-left: 0;"> 
256			<#list cur_linkGroup.linkTitle.getSiblings() as cur_link> 
257				<#if cur_link.data?trim != "" && cur_link.data != "null"> 
258					<li > 
259						<a href="${cur_link.linkUrl.data}" class="link" target="_blank"> 
260							<i class="icon icon_arrow-right-xs"> 
261								<svg viewBox="0 0 27 12" class="svg_arrow-right-xs"> 
262									<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right-xs"></use> 
263									<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#svg-arrow-right-xs"></use> 
264								</svg> 
265							</i> ${cur_link.data} 
266						</a> 
267					</li> 
268				</#if> 
269			</#list> 
270		</ul> 
271	</#list>   
272</#macro> 
273 
274<#macro lex> 
275  <#if yourChoosenLocal == "de"> 
276    <#assign lexLanguage = "de" /> 
277	<#assign lexConfLanguage = "d" /> 
278  <#else> 
279    <#assign lexLanguage = "fr" /> 
280	<#assign lexConfLanguage = "f" /> 
281  </#if> 
282  <#list lexGroup.getSiblings() as cur_lexGroup> 
283    <#if cur_lexGroup.data?trim != ""> 
284    <strong>${cur_lexGroup.data}</strong> 
285    </#if> 
286    <ul> 
287      <#list cur_lexGroup.lexTitle.getSiblings() as cur_lex> 
288      <#if cur_lex.data?trim != "" && cur_lex.data != "null"> 
289        <li> 
290        	<#assign lexLinkUrl ="" /> 
291			<#if cur_lex.lexType.data == "legconftype" > 
292				<#assign lexLinkUrl = "http://www.admin.ch/ch/" + lexConfLanguage + "/rs/" + cur_lex.lexNumbers.getData()?replace(".", "_")  /> 
293				<#if cur_lex.lexNumbers.getData()?contains("a")> 
294					<#assign lexLinkUrl = "http://www.admin.ch/ch/" + lexConfLanguage + "/rs/" + cur_lex.lexNumbers.getData()?split("a")[0]?replace(".", "_")  /> 
295					<#assign lexLinkUrl = lexLinkUrl +  "/a" + cur_lex.lexNumbers.getData()?replace(".", "_")?split("a")[1] + ".html" /> 
296				</#if> 
297			<#elseif cur_lex.lexType.data == "leglisttype" > 
298				<#assign lexnumbers = cur_lex.lexNumbers.getData()?replace(";", "|") /> 
299				<#assign lexLinkUrl = "http://lex.vs.ch/frontend/syst_no/"  + lexnumbers + "?locale=" +  lexLanguage /> 
300			<#elseif cur_lex.lexType.data == "legdetailtype" || cur_lex.lexType.data == "legpdftype" > 
301				<#assign lexLinkUrl = "http://lex.vs.ch/data/"  + cur_lex.lexNumbers.getData()+ "/" + lexLanguage /> 
302				<#if cur_lex.lexNumbers.getData()?contains("a")> 
303					<#assign lexNumber = cur_lex.lexNumbers.getData()?split("a")[0] /> 
304					<#assign lexArticle = cur_lex.lexNumbers.getData()?split("a")[1] /> 
305					<#assign lexLinkUrl = "http://lex.vs.ch/data/"  + lexNumber + "/" + lexLanguage + "/art" + lexArticle /> 
306				</#if> 
307			<#elseif cur_lex.lexType.data == "leglinktype" >  
308				<#assign lexLinkUrl = cur_lex.lexNumbers.getData() /> 
309			</#if> 
310			<a href="${lexLinkUrl}" class="red" target="_blank"> 
311			${cur_lex.data} 
312			</a> 
313        </li> 
314      </#if> 
315      </#list> 
316    </ul> 
317  </#list>   
318</#macro> 
319 
320 
321 
322  
323<#macro contactInfo> 
324  ${contact.getData()} 
325  <#if serviceLocator??> 
326    <#if contact.contactId?? > 
327      <#if contact.contactId.data?trim != ""> 
328        ${getArticleContent(groupId, contact.contactId.getData())} 
329      </#if> 
330    </#if> 
331  </#if> 
332</#macro> 
333       
334<#function getArticleDate dateType> 
335  <#if serviceLocator??> 
336    <#assign article = JournalArticleLocalService.getArticle(groupId, gArticleId) /> 
337    <#if dateType == "published"> 
338      <#assign date = article.displayDate?date /> 
339    <#elseif dateType == "modified"> 
340      <#assign date = article.modifiedDate?date /> 
341    <#elseif dateType == "created"> 
342      <#assign date = article.createDate?date /> 
343    <#else> 
344      <#assign date = "???" /> 
345    </#if> 
346    <#return date> 
347  </#if> 
348</#function> 
349       
350<#function getFileEntries group folderId> 
351	<#if serviceLocator??> 
352		<#return DLFolderLocalService.getFileEntriesAndFileShortcuts(getterUtil.getLong(group), getterUtil.getLong(folderId), QD) /> 
353	</#if> 
354	<#return "" /> 
355</#function>       
356 
357<#function getArticleContent gid aid> 
358	<#attempt> 
359	  <#assign article = JournalArticleLocalService.getArticle(gid?number, aid?upper_case) /> 
360		<#assign articleContent = JournalArticleLocalService.getArticleContent(article, apListTemplateKey, null, locale, model, themeDisplay) /> 
361	    <#if articleContent?? > 
362	      <#return articleContent /> 
363	    </#if> 
364	    <#return "" /> 
365	<#recover> 
366	  <#return "" /> 
367	</#attempt> 
368</#function> 
369 
370 
371 
372<#function isDescriptionEmpty> 
373  <#if description.getData()?trim != "" && description.data?trim != "null"> 
374	<#return "false" /> 
375  </#if> 
376  <#return "true" /> 
377</#function> 
378 
379<#function isDocEmpty> 
380  <#list docGroup.getSiblings() as cur_docGroup> 
381    <#list cur_docGroup.annexeDocumentLinkTo.getSiblings() as cur_intDoc> 
382      <#if cur_intDoc.data?trim != "" && cur_intDoc.data?trim != "null"> 
383        <#return "false" /> 
384      </#if> 
385    </#list> 
386    <#if cur_docGroup.annexeUrlTitle.getSiblings()?has_content> 
387	    <#list cur_docGroup.annexeUrlTitle.getSiblings() as cur_extDoc> 
388	      <#if cur_extDoc.data?trim != "" && cur_extDoc.data?trim != "null"> 
389	        <#return "false" /> 
390	      </#if>	 
391	    </#list> 
392    </#if> 
393    <#if cur_docGroup.folderId?? > 
394      <#list cur_docGroup.folderId.getSiblings() as cur_folder> 
395        <#if cur_folder.data?trim != "" && cur_folder.data?trim != "null"> 
396          <#return "false" /> 
397        </#if>	 
398      </#list> 
399    </#if> 
400  </#list> 
401  <#return "true" /> 
402</#function> 
403 
404<#function isLinkEmpty> 
405  <#list linkGroup.getSiblings() as cur_linkGroup> 
406    <#list cur_linkGroup.linkTitle.getSiblings() as cur_link> 
407      <#if cur_link.data?trim != ""> 
408        <#return "false" /> 
409      </#if> 
410    </#list> 
411  </#list> 
412  <#return "true" /> 
413</#function> 
414 
415<#function isLexEmpty> 
416  <#list lexGroup.getSiblings() as cur_lexGroup> 
417    <#list cur_lexGroup.lexTitle.getSiblings() as cur_lex> 
418      <#if cur_lex.data?trim != ""> 
419        <#return "false" /> 
420      </#if> 
421    </#list> 
422  </#list> 
423  <#return "true" /> 
424</#function> 
425       
426<#function isContactEmpty> 
427  <#if contact.contactId?? > 
428    <#if contact.getData()?trim != "" || contact.contactId.data?trim != "" > 
429      <#return "false" /> 
430    </#if> 
431  <#else> 
432    <#if contact.getData()?trim != "" > 
433      <#return "false" /> 
434    </#if> 
435  </#if> 
436  <#return "true" /> 
437</#function> 
438 
439<#function isRelatedEmpty relatedEntries> 
440  <#if relatedEntries?? > 
441    <#list relatedEntries as cur_entry > 
442      <#if cur_entry?trim != ""> 
443        <#return "false"> 
444      </#if> 
445    </#list> 
446  </#if> 
447  <#return "true" /> 
448</#function> 
449 
450<#macro relatedAssets > 
451  <#assign relatedEntries = getRelatedContent() /> 
452  <#-- <#if relatedEntries?? > --> 
453  <#if isRelatedEmpty(relatedEntries) == "false"> 
454    <div class="widget"> 
455      <h3 class="block-title"><@liferay.language key="vs-en-relation"/></h3> 
456      <ul style="list-style: none;padding-left: 0;"> 
457        <#list relatedEntries as cur_asset_link> 
458          <#assign assetEntry = getAssetEntry(cur_asset_link.entryId2) /> 
459          <#assign lClassName = "com.liferay.journal.model.JournalArticle"/> 
460          <#assign journalArticle = JournalArticleLocalService.getLatestArticle(assetEntry.getClassPK())/> 
461          <li> 
462            <a class="link" href="#"> 
463                ${journalArticle.getTitle(locale)} 
464                <i class="icon icon_arrow-right-xs"> 
465					<svg viewBox="0 0 27 12" class="svg_arrow-right-xs"> 
466						<use xlink:href="/o/vs-theme/images/../assets/svg/sprite.svg#svg-arrow-right-xs"></use> 
467						<use xlink:href="#svg-arrow-right-xs"></use> 
468					</svg> 
469				</i> 
470            </a> 
471          </li> 
472        </#list> 
473      </ul> 
474    </div> 
475  </#if> 
476</#macro> 
477 
478<#function getAssetEntry entryId> 
479  <#assign entry = AssetLocalService.getAssetEntry(entryId) /> 
480  <#return entry /> 
481</#function> 
482   
483<#function getRelatedContent > 
484  <#assign lClassName = "com.liferay.portlet.journal.model.JournalArticle"/> 
485  <#assign lArticle = JournalArticleLocalService.getArticle(groupId, gArticleId)/> 
486  <#assign lPk = lArticle.getResourcePrimKey()/> 
487  <#assign lEntry = AssetLocalService.getEntry(lClassName,lPk)/> 
488  <#assign lLinks = AssetLinkService.getDirectLinks(lEntry.getEntryId())/> 
489  <#return lLinks /> 
490</#function> 
Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing:
==> cur_docGroup.annexeUrlTitle  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" at line 386, column 10]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be 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 cur_docGroup.annexeUrlTitle.getSi...  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" in function "isDocEmpty" at line 386, column 5]
	- Reached through: #if isDocEmpty() == "false"  [in template "10155#10193#TEXT-DOCUMENTS-LOI-CONTACT" at line 61, column 9]
----
1<#assign JournalArticleLocalService =  serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/> 
2<#assign AssetLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/> 
3<#assign AssetLinkService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")/> 
4<#assign DLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
5<#assign DLFolderLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFolderLocalService") /> 
6<#assign queryDefinition = objectUtil("com.liferay.portal.kernel.dao.orm.QueryDefinition")  /> 
7<#assign QD = queryDefinition /> 
8<#assign yourChoosenLocal = locale?split("_")[0] /> 
9<#assign pathFileicon = "/html/themes/classic/images/file_system/small/" /> 
10<#setting url_escaping_charset='ISO-8859-1'> 
11<#assign gArticleId = .vars['reserved-article-id'].data /> 
12<style> 
13.block a{ 
14color:#e22b28; 
15} 
16.entry-body .vsstruct:first-child h2 { 
17    display:none; 
18    /*color: #262626; 
19    padding-top: 15px; 
20    margin-top: 0; 
21    margin-bottom: 1.1em; 
22    text-transform: uppercase; 
23    line-height: 1.1em; 
24    font-size: 1.73em;*/ 
25}    
26.doc-item { 
27    overflow: auto; 
28} 
29</style> 
30   
31<div class="grid__row"> 
32	<div class="grid__col-xxs--12 grid__col-s--12"> 
33		<h2 class="block-title">${.vars['reserved-article-title'].data}</h2> 
34	</div> 
35	<#if isContactEmpty() == "true" >		 
36		<#assign columnwidth = "grid__col-s--12" /> 
37	<#else> 
38		<#assign columnwidth = "grid__col-s--8" /> 
39	</#if>  
40	<div class="grid__col-xxs--12 ${columnwidth}  entry-body">   
41		<div class="vsstruct"> 
42			${description.getData()} 
43		</div> 
44	</div> 
45	<#if isContactEmpty() == "false"> 
46		<div class="grid__col-xxs--12 grid__col-s--4">   
47			<div class="grid__col-xxs--12 grid__col-s--12 services-header">   
48				<div class="grid__col-xxs--12"> 
49					<h3> 
50						<@liferay.language key="vs-contact"/> 
51					</h3> 
52					<@contactInfo/> 
53					<br /> 
54				</div> 
55			</div> 
56		</div> 
57	</#if> 
58</div> 
59	 
60<div> 
61	<#if isDocEmpty() == "false" > 
62		<h3 class="block-title"><@liferay.language key="${docBlockTitle.data}" /></h3> 
63		<@downloads /> 
64		 
65	</#if> 
66</div> 
67     
68<section class="services-footer grid__row">	 
69	<#if isLexEmpty() == "false"> 
70		<div class="grid__col-xxs--12 grid__col-m--5"> 
71			<h3 class="block-title"><@liferay.language key="vs-legal-base"/></h3> 
72			<@lex/> 
73			<#-- <@relatedAssets /> --> 
74		</div> 
75		<div class="grid__col-m--1"></div> 
76	</#if> 
77	<#if isLinkEmpty() == "false"> 
78		<div class="grid__col-xxs--12 grid__col-m--5"> 
79			<h3 class="block-title"><@liferay.language key="vs-link"/></h3> 
80			<@links/> 
81		</div> 
82	</#if> 
83</section> 
84 
85<#--	<small class="muted"><@liferay.language key="vs-last-modified" />: ${getArticleDate("modified")}</small>--> 
86 
87<#-- functions and macros --> 
88  
89<#macro getBackLink> 
90	<#if request.attributes??> 
91		<#assign url = request.attributes.CURRENT_URL /> 
92		<#assign multipleValues = httpUtil.getQueryString(url) /> 
93		<#assign paramMap = httpUtil.getParameterMap(httpUtil.getQueryString(url)) /> 
94		<#list paramMap?keys as key> 
95			<#if key?contains("_redirect")> 
96				<#assign keyFound = key /> 
97			</#if> 
98		</#list> 
99		<#if keyFound??> 
100			<#assign encodedUrlString = httpUtil.getParameter(url, keyFound, false) /> 
101			<#assign decodedUrlString = httpUtil.decodeURL(encodedUrlString) /> 
102			<div class="clearfix"> 
103				<#-- <span class="pull-left muted">${title.getData()} <@displayArticleDate dateType="published"/></span> --> 
104				<#if decodedUrlString??> 
105					<a class="pull-left" href="${decodedUrlString}"><i class="icon-chevron-sign-left"></i> <@liferay.language key="back" /></a> 
106				</#if> 
107				<hr /> 
108			</div> 
109		</#if> 
110	</#if> 
111</#macro> 
112  
113<#macro downloads> 
114	<#list docGroup.getSiblings() as cur_docGroup> 
115        <#if cur_docGroup.data?trim != ""> 
116            <h3 style="font-size: 1.1em; text-transform: uppercase; color: #e22b28; letter-spacing: 0.01em; margin-bottom: 0.6em;" >${cur_docGroup.data}</h3> 
117        </#if> 
118		<#if cur_docGroup.folderId?? > 
119			<#if cur_docGroup.folderId.data?trim != "">	 
120				<#assign filesInFolder = getFileEntries(groupId, cur_docGroup.folderId.data) /> 
121				<div class="grid__row section-docs"> 
122					<#assign allFiles = [] /> 
123					<#list filesInFolder as cur_file> 
124						<#if cur_file.toFileEntryId??> 
125							<#assign entryId = cur_file.toFileEntryId /> 
126							<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
127							<#assign allFiles = allFiles + [DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId))] />	 
128						<#else> 
129							<#assign entryId = cur_file.fileEntryId />  
130							<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
131							<#assign allFiles = allFiles + [DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId))] />	 
132						</#if> 
133					</#list> 
134					<#list allFiles as loop_file> 
135						<#if loop_file.getTitle()?index_of("/") != 0> 
136							<div class="grid__col-xxs--12 grid__col-s--6"> 
137								<a class="doc-item doc-item-small" href="/documents/${loop_file.groupId}/${loop_file.folderId}/${loop_file.title?url}/${loop_file.uuid}?t=.now?long" target="_blank"> 
138									<span class="u-table"> 
139										<span class="u-cell"> 
140											<span class="subtitle">${loop_file.extension}</span> 
141											<span>${loop_file.getTitle()}</span> 
142										</span> 
143									</span> 
144									<i class="icon icon_arrow-right"> 
145										<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
146											<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
147											<use xlink:href="#svg-arrow-right"></use> 
148										</svg> 
149									</i> 
150								</a> 
151							</div> 
152						</#if> 
153					</#list> 
154					<#assign allFiles = [] /> 
155				</div> 
156				<#assign filesInFolder = "" /> 
157			</#if> 
158		</#if> 
159		 
160		 
161		<#if cur_docGroup.annexeDocumentLinkTo??> 
162			<div class="grid__row section-docs"> 
163	 
164                <#list cur_docGroup.annexeDocumentLinkTo.getSiblings() as cur_intDoc> 
165                    <#if cur_intDoc.getData()?trim != "" && cur_intDoc.getData() != "null"> 
166                        <@getDocument docLink=cur_intDoc/> 
167                    </#if> 
168                </#list> 
169                 
170                <#if cur_docGroup.annexeUrlTitle??> 
171        			<#list cur_docGroup.annexeUrlTitle.getSiblings() as cur_extDoc> 
172        				<#if cur_extDoc.data?trim != "" && cur_extDoc.data != "null"> 
173            				<div class="grid__col-xxs--12 grid__col-s--6"> 
174                        		<a class="doc-item doc-item-small" href="${cur_extDoc.annexeUrl.data}" target="_blank"> 
175                        			<span class="u-table"> 
176                        				<span class="u-cell"> 
177            				                <span class="subtitle"><@liferay.language key="link"/></span> 
178        					                <span>${cur_extDoc.data}</span> 
179    					                </span> 
180                        			</span> 
181                        		    <i class="icon icon_arrow-right"> 
182                        				<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
183                        					<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
184                        					<use xlink:href="#svg-arrow-right"></use> 
185                        				</svg> 
186                        			</i> 
187    				    		</a> 
188                            </div> 
189        				</#if> 
190        			</#list>    
191        		</#if>   
192				 
193			</div> 
194		</#if> 
195         
196    </#list> 
197</#macro> 
198 
199<#macro getDocument docLink> 
200	<#assign docJSON = jsonFactoryUtil.createJSONObject(docLink.data) /> 
201    <#assign gid = docJSON.groupId /> 
202    <#assign longGid = getterUtil.getLong(gid) /> 
203    <#assign uuid = docJSON.uuid /> 
204    <#if DLFileEntryLocalService.getFileEntryByUuidAndGroupId(uuid, longGid)?? > 
205        <#assign document = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(uuid, longGid) /> 
206     
207    	    <div class="grid__col-xxs--12 grid__col-s--6"> 
208        		<a class="doc-item doc-item-small" href="${docLink.getData()}"> 
209        			<span class="u-table"> 
210        				<span class="u-cell"> 
211        					<span class="subtitle">${document.extension}</span> 
212        					<span>${document.getTitle()}</span> 
213        				</span> 
214        			</span> 
215        		    <i class="icon icon_arrow-right"> 
216    					<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
217    						<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
218    						<use xlink:href="#svg-arrow-right"></use> 
219    					</svg> 
220    				</i> 
221        		</a> 
222        	</div> 
223	</#if> 
224</#macro> 
225 
226<#macro DocumentFromId entryId> 
227	<#assign document = DLFileEntryLocalService.getDLFileEntry(getterUtil.getLong(entryId)) /> 
228	<#if document.getTitle()?index_of("/") != 0> 
229		<div class="grid__col-xxs--12 grid__col-s--6"> 
230    		<a class="doc-item doc-item-small" href="/documents/${document.groupId}/${document.folderId}/${document.title?url}/${document.uuid}?t=.now?long" target="_blank"> 
231    			<span class="u-table"> 
232    				<span class="u-cell"> 
233		                <span class="subtitle"><@liferay.language key="link"/></span> 
234		                <span>${document.getTitle()}</span> 
235	                </span> 
236    			</span> 
237    		    <i class="icon icon_arrow-right"> 
238    				<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
239    					<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
240    					<use xlink:href="#svg-arrow-right"></use> 
241    				</svg> 
242    			</i> 
243    		</a> 
244        </div> 
245	</#if> 
246	<#assign document = "" /> 
247</#macro> 
248 
249 
250<#macro links> 
251	<#list linkGroup.getSiblings() as cur_linkGroup> 
252		<#if cur_linkGroup.data?trim != ""> 
253			<strong>${cur_linkGroup.data}</strong> 
254		</#if> 
255		<ul style="list-style: none; padding-left: 0;"> 
256			<#list cur_linkGroup.linkTitle.getSiblings() as cur_link> 
257				<#if cur_link.data?trim != "" && cur_link.data != "null"> 
258					<li > 
259						<a href="${cur_link.linkUrl.data}" class="link" target="_blank"> 
260							<i class="icon icon_arrow-right-xs"> 
261								<svg viewBox="0 0 27 12" class="svg_arrow-right-xs"> 
262									<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right-xs"></use> 
263									<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#svg-arrow-right-xs"></use> 
264								</svg> 
265							</i> ${cur_link.data} 
266						</a> 
267					</li> 
268				</#if> 
269			</#list> 
270		</ul> 
271	</#list>   
272</#macro> 
273 
274<#macro lex> 
275  <#if yourChoosenLocal == "de"> 
276    <#assign lexLanguage = "de" /> 
277	<#assign lexConfLanguage = "d" /> 
278  <#else> 
279    <#assign lexLanguage = "fr" /> 
280	<#assign lexConfLanguage = "f" /> 
281  </#if> 
282  <#list lexGroup.getSiblings() as cur_lexGroup> 
283    <#if cur_lexGroup.data?trim != ""> 
284    <strong>${cur_lexGroup.data}</strong> 
285    </#if> 
286    <ul> 
287      <#list cur_lexGroup.lexTitle.getSiblings() as cur_lex> 
288      <#if cur_lex.data?trim != "" && cur_lex.data != "null"> 
289        <li> 
290        	<#assign lexLinkUrl ="" /> 
291			<#if cur_lex.lexType.data == "legconftype" > 
292				<#assign lexLinkUrl = "http://www.admin.ch/ch/" + lexConfLanguage + "/rs/" + cur_lex.lexNumbers.getData()?replace(".", "_")  /> 
293				<#if cur_lex.lexNumbers.getData()?contains("a")> 
294					<#assign lexLinkUrl = "http://www.admin.ch/ch/" + lexConfLanguage + "/rs/" + cur_lex.lexNumbers.getData()?split("a")[0]?replace(".", "_")  /> 
295					<#assign lexLinkUrl = lexLinkUrl +  "/a" + cur_lex.lexNumbers.getData()?replace(".", "_")?split("a")[1] + ".html" /> 
296				</#if> 
297			<#elseif cur_lex.lexType.data == "leglisttype" > 
298				<#assign lexnumbers = cur_lex.lexNumbers.getData()?replace(";", "|") /> 
299				<#assign lexLinkUrl = "http://lex.vs.ch/frontend/syst_no/"  + lexnumbers + "?locale=" +  lexLanguage /> 
300			<#elseif cur_lex.lexType.data == "legdetailtype" || cur_lex.lexType.data == "legpdftype" > 
301				<#assign lexLinkUrl = "http://lex.vs.ch/data/"  + cur_lex.lexNumbers.getData()+ "/" + lexLanguage /> 
302				<#if cur_lex.lexNumbers.getData()?contains("a")> 
303					<#assign lexNumber = cur_lex.lexNumbers.getData()?split("a")[0] /> 
304					<#assign lexArticle = cur_lex.lexNumbers.getData()?split("a")[1] /> 
305					<#assign lexLinkUrl = "http://lex.vs.ch/data/"  + lexNumber + "/" + lexLanguage + "/art" + lexArticle /> 
306				</#if> 
307			<#elseif cur_lex.lexType.data == "leglinktype" >  
308				<#assign lexLinkUrl = cur_lex.lexNumbers.getData() /> 
309			</#if> 
310			<a href="${lexLinkUrl}" class="red" target="_blank"> 
311			${cur_lex.data} 
312			</a> 
313        </li> 
314      </#if> 
315      </#list> 
316    </ul> 
317  </#list>   
318</#macro> 
319 
320 
321 
322  
323<#macro contactInfo> 
324  ${contact.getData()} 
325  <#if serviceLocator??> 
326    <#if contact.contactId?? > 
327      <#if contact.contactId.data?trim != ""> 
328        ${getArticleContent(groupId, contact.contactId.getData())} 
329      </#if> 
330    </#if> 
331  </#if> 
332</#macro> 
333       
334<#function getArticleDate dateType> 
335  <#if serviceLocator??> 
336    <#assign article = JournalArticleLocalService.getArticle(groupId, gArticleId) /> 
337    <#if dateType == "published"> 
338      <#assign date = article.displayDate?date /> 
339    <#elseif dateType == "modified"> 
340      <#assign date = article.modifiedDate?date /> 
341    <#elseif dateType == "created"> 
342      <#assign date = article.createDate?date /> 
343    <#else> 
344      <#assign date = "???" /> 
345    </#if> 
346    <#return date> 
347  </#if> 
348</#function> 
349       
350<#function getFileEntries group folderId> 
351	<#if serviceLocator??> 
352		<#return DLFolderLocalService.getFileEntriesAndFileShortcuts(getterUtil.getLong(group), getterUtil.getLong(folderId), QD) /> 
353	</#if> 
354	<#return "" /> 
355</#function>       
356 
357<#function getArticleContent gid aid> 
358	<#attempt> 
359	  <#assign article = JournalArticleLocalService.getArticle(gid?number, aid?upper_case) /> 
360		<#assign articleContent = JournalArticleLocalService.getArticleContent(article, apListTemplateKey, null, locale, model, themeDisplay) /> 
361	    <#if articleContent?? > 
362	      <#return articleContent /> 
363	    </#if> 
364	    <#return "" /> 
365	<#recover> 
366	  <#return "" /> 
367	</#attempt> 
368</#function> 
369 
370 
371 
372<#function isDescriptionEmpty> 
373  <#if description.getData()?trim != "" && description.data?trim != "null"> 
374	<#return "false" /> 
375  </#if> 
376  <#return "true" /> 
377</#function> 
378 
379<#function isDocEmpty> 
380  <#list docGroup.getSiblings() as cur_docGroup> 
381    <#list cur_docGroup.annexeDocumentLinkTo.getSiblings() as cur_intDoc> 
382      <#if cur_intDoc.data?trim != "" && cur_intDoc.data?trim != "null"> 
383        <#return "false" /> 
384      </#if> 
385    </#list> 
386    <#if cur_docGroup.annexeUrlTitle.getSiblings()?has_content> 
387	    <#list cur_docGroup.annexeUrlTitle.getSiblings() as cur_extDoc> 
388	      <#if cur_extDoc.data?trim != "" && cur_extDoc.data?trim != "null"> 
389	        <#return "false" /> 
390	      </#if>	 
391	    </#list> 
392    </#if> 
393    <#if cur_docGroup.folderId?? > 
394      <#list cur_docGroup.folderId.getSiblings() as cur_folder> 
395        <#if cur_folder.data?trim != "" && cur_folder.data?trim != "null"> 
396          <#return "false" /> 
397        </#if>	 
398      </#list> 
399    </#if> 
400  </#list> 
401  <#return "true" /> 
402</#function> 
403 
404<#function isLinkEmpty> 
405  <#list linkGroup.getSiblings() as cur_linkGroup> 
406    <#list cur_linkGroup.linkTitle.getSiblings() as cur_link> 
407      <#if cur_link.data?trim != ""> 
408        <#return "false" /> 
409      </#if> 
410    </#list> 
411  </#list> 
412  <#return "true" /> 
413</#function> 
414 
415<#function isLexEmpty> 
416  <#list lexGroup.getSiblings() as cur_lexGroup> 
417    <#list cur_lexGroup.lexTitle.getSiblings() as cur_lex> 
418      <#if cur_lex.data?trim != ""> 
419        <#return "false" /> 
420      </#if> 
421    </#list> 
422  </#list> 
423  <#return "true" /> 
424</#function> 
425       
426<#function isContactEmpty> 
427  <#if contact.contactId?? > 
428    <#if contact.getData()?trim != "" || contact.contactId.data?trim != "" > 
429      <#return "false" /> 
430    </#if> 
431  <#else> 
432    <#if contact.getData()?trim != "" > 
433      <#return "false" /> 
434    </#if> 
435  </#if> 
436  <#return "true" /> 
437</#function> 
438 
439<#function isRelatedEmpty relatedEntries> 
440  <#if relatedEntries?? > 
441    <#list relatedEntries as cur_entry > 
442      <#if cur_entry?trim != ""> 
443        <#return "false"> 
444      </#if> 
445    </#list> 
446  </#if> 
447  <#return "true" /> 
448</#function> 
449 
450<#macro relatedAssets > 
451  <#assign relatedEntries = getRelatedContent() /> 
452  <#-- <#if relatedEntries?? > --> 
453  <#if isRelatedEmpty(relatedEntries) == "false"> 
454    <div class="widget"> 
455      <h3 class="block-title"><@liferay.language key="vs-en-relation"/></h3> 
456      <ul style="list-style: none;padding-left: 0;"> 
457        <#list relatedEntries as cur_asset_link> 
458          <#assign assetEntry = getAssetEntry(cur_asset_link.entryId2) /> 
459          <#assign lClassName = "com.liferay.journal.model.JournalArticle"/> 
460          <#assign journalArticle = JournalArticleLocalService.getLatestArticle(assetEntry.getClassPK())/> 
461          <li> 
462            <a class="link" href="#"> 
463                ${journalArticle.getTitle(locale)} 
464                <i class="icon icon_arrow-right-xs"> 
465					<svg viewBox="0 0 27 12" class="svg_arrow-right-xs"> 
466						<use xlink:href="/o/vs-theme/images/../assets/svg/sprite.svg#svg-arrow-right-xs"></use> 
467						<use xlink:href="#svg-arrow-right-xs"></use> 
468					</svg> 
469				</i> 
470            </a> 
471          </li> 
472        </#list> 
473      </ul> 
474    </div> 
475  </#if> 
476</#macro> 
477 
478<#function getAssetEntry entryId> 
479  <#assign entry = AssetLocalService.getAssetEntry(entryId) /> 
480  <#return entry /> 
481</#function> 
482   
483<#function getRelatedContent > 
484  <#assign lClassName = "com.liferay.portlet.journal.model.JournalArticle"/> 
485  <#assign lArticle = JournalArticleLocalService.getArticle(groupId, gArticleId)/> 
486  <#assign lPk = lArticle.getResourcePrimKey()/> 
487  <#assign lEntry = AssetLocalService.getEntry(lClassName,lPk)/> 
488  <#assign lLinks = AssetLinkService.getDirectLinks(lEntry.getEntryId())/> 
489  <#return lLinks /> 
490</#function> 
  • Startseite
  • Beschreibung der Kantonalen Dienststelle für die Jugend
  • Bereich Tagesbetreuung
    • Finanzhilfe für die Strukturen
  • Jugi Promo
  • Amt für Kindesschutz
    • Pflegefamilien
      • Erscheinen / Publikation
    • Kommission gegen die Misshandlung und sexuelle Ausbeutung von Kindern
    • Adoption
  • Zentrum für Entwicklung und Therapie des Kindes und Jugendlichen
    • Übers ZET
      • Regionale Zuständigkeit der Mitarbeitenden
      • Geschichte des ZET
      • Organigramm des ZET
      • Jahresberichte des ZET
      • Artikel, Sendungen, Interviews
    • Anmeldung beim ZET - Guichet unique
      • Anmeldung beim ZET - Verstärkte Massnahmen
    • Psychologie
    • Logopädie
      • Wann braucht es Logopädie?
      • Angebot des ZET im Bereich der Logopädie
    • Audiopädagogik
    • Psychomotorik
    • Schulische Mediation
      • Weisungen
      • Kantonale Kommission für schulische Mediation (KKSM)
      • Ausbildungsinstanz
      • Grundausbildung
      • Abgeschlossene Ausbildungen
      • Zertifizierungsfeier
      • Supervision
      • Weiterbildung
      • Jahresberichte
      • 30 Jahre schulische Mediation
      • Artikel, Sendungen, Interviews
  • Amt für heilpädagogische Frühberatung
  • Sonderpädagogik
  • Sektion Platzierungen und vertraglich geregelte Leistungen
    • Sozialpädagogische Institutionen
    • Private Leistungserbringer
    • Stationäre und ambulante Massnahmen
    • Ferienkolonien
      • Charte de qualité
  • Kantonales Jugendobservatorium
    • Aktivitäten
    • Bericht
      • 2019
      • 2018
      • 2016-2017
      • 2015
  • Stark durch Erziehung
    • Downloads - SDE
      • Broschüren - SDE
      • Plakate - SDE
      • Logo - SDE
      • Vorträge und andere Dokumente
      • Flyers - Jugend und Medien
      • Spiele - SDE
    • Calendrier de l'avent 2020 - EDF
  • Praktika und Weiterbildungen
  • Gesetzgebung
  • Emissions radio
  • Canton du valais
  • Arbeitsinstrumente

    • Personenverzeichnis
    • Geoportal
    • Gesetzgebung
    • Intranet
  • Diverses

    • Stellenbörse
    • Login IAM
  • Informationen

    • Amtsblatt
    • vis-à-vis
    • Disclaimer
  • Soziale Netzwerke

  • Login