BIS: Suche und Detail

Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing:
==> einrichtung.anschrift  [in template "20591#20629#131725" at line 1122, column 71]

----
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 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: ${einrichtung.anschrift.strasse}  [in template "20591#20629#131725" in macro "addAddress" at line 1122, column 69]
	- Reached through: @addAddress einrichtung  [in template "20591#20629#131725" in macro "addContactBox" at line 1101, column 25]
	- Reached through: @addContactBox einrichtung, einrichtung  [in template "20591#20629#131725" at line 146, column 13]
----
1<#assign 
2aui = PortletJspTagLibs["/META-INF/liferay-aui.tld"] 
3liferay_portlet = PortletJspTagLibs["/META-INF/liferay-portlet-ext.tld"] 
4liferay_security = PortletJspTagLibs["/META-INF/liferay-security.tld"] 
5liferay_theme = PortletJspTagLibs["/META-INF/liferay-theme.tld"] 
6liferay_ui = PortletJspTagLibs["/META-INF/liferay-ui.tld"] 
7liferay_util = PortletJspTagLibs["/META-INF/liferay-util.tld"] 
8portlet = PortletJspTagLibs["/META-INF/liferay-portlet.tld"] 
9/> 
10 
11<@liferay_theme["defineObjects"]/> 
12<@portlet["defineObjects"]/> 
13 
14 
15<#if vr?? && vr?has_content> 
16    <#assign utils = vr.utils2017/> 
17 
18    <#if vr.bis2017.ausgewaehlteDienstleistung??> 
19        <#assign dienstleistung = vr.bis2017.ausgewaehlteDienstleistung> 
20    </#if> 
21    <#if vr.bis2017.ausgewaehlteEinrichtung??> 
22        <#assign einrichtung = vr.bis2017.ausgewaehlteEinrichtung> 
23    </#if> 
24    <#if vr.bis2017.ausgewaehlterMitarbeiter??> 
25        <#assign mitarbeiter = vr.bis2017.ausgewaehlterMitarbeiter> 
26    </#if> 
27 
28    <#assign suchergebnisDienstleistung = vr.bis2017.suchergebnisDienstleistung/> 
29    <#assign suchergebnisEinrichtung = vr.bis2017.suchergebnisEinrichtung/> 
30    <#assign suchergebnisMitarbeiter = vr.bis2017.suchergebnisMitarbeiter/> 
31 
32    <#assign mitarbeiterShow = "vr-bis-detail-mitarbeiter-show"/> 
33    <#assign einrichtungShow = "vr-bis-detail-einrichtung-show"/> 
34    <#assign dienstleistungShow = "vr-bis-detail-dienstleistung-show"/> 
35 
36    <#assign current_url_WithHtml = themeDisplay.getPortalURL()/> 
37    <#assign current_uri_WithHtml = themeDisplay.getURLCurrent()/> 
38 
39    <#assign login_url1_WithHtml = 'href="/home?p_p_id=com_liferay_login_web_portlet_LoginPortlet&p_p_lifecycle=0&_com_liferay_login_web_portlet_LoginPortlet_redirect='/> 
40    <#assign login_url2_WithHtml = '#login" rel="nofollow" data-redirect="true"'/> 
41    <#assign login_url_WithHtml = login_url1_WithHtml+ current_url_WithHtml+current_uri_WithHtml+ login_url2_WithHtml/> 
42    <#assign vsmGebietID = getterUtil.getString(themeDisplay.getThemeSetting("vsm-gebiet-id"))/> 
43    <#assign showContactEmployeesDescription =getterUtil.getBoolean(themeDisplay.getThemeSetting("show-contact-employees-description-in-dl"))/> 
44    <#assign plid = themeDisplay.getPlid()/> 
45 
46    <#assign createAccountURL = portletURLFactory.create(renderRequest,"com_liferay_login_web_portlet_LoginPortlet", plid, "RENDER_PHASE") /> 
47 
48    ${createAccountURL.setParameter("mvcRenderCommandName", "/login/create_account")} 
49    ${createAccountURL.setParameter("p_p_state", "maximized")} 
50    ${createAccountURL.setParameter("p_p_mode", "view")} 
51 
52    <#assign showEmployees = getterUtil.getBoolean(themeDisplay.getThemeSetting("show-employees"))/> 
53    <#assign 
54    iconStyling = getServiceIconStyling()[0] 
55    iconClass = getServiceIconStyling()[1] 
56    iconWrapperClass = getServiceIconStyling()[2] 
57    lockIcon = '<i aria-hidden="true" class="'+iconWrapperClass+' bi bi-person-lock"></i>' 
58    moneyIcon = '<i aria-hidden="true" class="'+iconWrapperClass+' bi bi-credit-card"></i>' 
59    iconArray = iconArray(lockIcon,moneyIcon,createPersoIcon('persoLogo')) 
60 
61    dlNeedsLogin = 'Diese Dienstleistung erfordert eine Anmeldung' 
62    dlNeedsEidLogin = 'Anmeldung mit elektronischen Personalausweis erforderlich' 
63    dlHasCosts = 'Diese Dienstleitung ist kostenpflichtig' 
64    dlAndHasCosts = 'und ist kostenpflichtig' 
65    loginInfo = "Anmeldung erforderlich" 
66    paymentInfo = "Kostenpflichtig" 
67    eidInfo = "Anmeldung mit elektronischen Personalausweis erforderlich" 
68    loginInfoTextArray = infoTextArray(dlNeedsLogin,dlHasCosts, dlAndHasCosts,dlNeedsEidLogin) 
69    iconLegendTextArray = iconLegendTextArray(loginInfo,paymentInfo,eidInfo) 
70 
71    showDLPersoLogo = false 
72    showDLMoneyIcon = false 
73    showDLLockIcon = false 
74 
75    beforeLinkTitle = "" 
76    linkCss = "" 
77    linkClass = "btn btn-primary" 
78    /> 
79 
80 
81    <#if einrichtung?? && einrichtung?has_content> 
82<div> 
83    <div class="row mb-5"> 
84        <h2 class="pageheader"><span class="icon-door"></span>${einrichtung.name}</h2> 
85    </div> 
86 
87    <div class="row"> 
88        <div class="col-8 nopadleft"> 
89            <div class="fsM cGray lh35 mb-5"> 
90                ${einrichtung.beschreibung} 
91            </div> 
92            <div id="detailList" class="fsM cGray lh35 mb-5 mt-5"> 
93                <@addVerkehrsanbindung einrichtung/> 
94                <@addBarrierefreieErreichbarkeit einrichtung/> 
95            </div> 
96            <@addServicesList einrichtung/> 
97            <#if einrichtung.mitarbeiterList?has_content> 
98                <h2 class="fsXL mb-2 mt-5"><span style="font-weight: bold">Mitarbeiterinnen und Mitarbeiter</span></h2> 
99                <#list einrichtung.mitarbeiterList as ma> 
100                    <div class="card white mb-4 nobutton padleft"> 
101                        <div class="card-body"> 
102                            <h2 class="card-title cBlue fsM mb-1"> 
103                                <#if showEmployees> 
104                                    <span class="icon-user" style="margin-left: -30px; margin-right: 10px;"></span><a class="cWhite" tabindex="0" href="${utils.getMitarbeiterUrl(ma.id)}" ><span id="mitarbeiter_a">${ma.getName()}</span></a> 
105                                <#else> 
106                                    <span class="icon-user" style="margin-left: -30px; margin-right: 10px;"></span><span id="mitarbeiter_a">${ma.getName()}</span> 
107                                </#if> 
108                            </h2> 
109                            <p class="card-text cGray fsSM"> ${ma.position} </p> 
110 
111                            <#assign i = 0> 
112                            <#if ma.telefonnummer?has_content> 
113                                ${createPhoneLink5(ma,'','cBlue','font-size: 15px !important; margin-right: 5px;',true)} 
114                                <#assign i = i+1> 
115                            </#if> 
116                            <#if ma.mobil?has_content> 
117                                <#if i gte 1> 
118                                    <span class="cardtabletextspan">|</span> 
119                                </#if> 
120                                ${createMobilLink(ma,'','cBlue','font-size: 15px !important; margin-right: 5px;',true)} 
121                                <#assign i = i+1> 
122                            </#if> 
123                            <#if ma.email?has_content> 
124                                <#if i gte 1> 
125                                    <span class="cardtabletextspan">|</span> 
126                                </#if> 
127                                <div class="cardtabletext"> 
128                                    ${createEmail(ma,'','cWhite','font-size: 15px !important; margin-right: 5px;',true)} 
129                                </div> 
130                                <#assign i = i+1> 
131                            </#if> 
132                            <#if ma.raum?has_content> 
133                                <#if i gte 1> 
134                                    <span class="cardtabletextspan">|</span> 
135                                </#if> 
136                                <div class="cardtabletext"> 
137                                    <span class="icon-mapmarker" style="font-size: 13px !important; margin-right: 5px;"></span> ${ma.raum} 
138                                </div> 
139                            </#if> 
140                        </div> 
141                    </div> 
142                </#list> 
143            </#if> 
144        </div> 
145        <div class="col-4"> 
146            <@addContactBox einrichtung einrichtung/> 
147            <@addServiceHours einrichtung/> 
148            <@addInternetAdressen einrichtung/> 
149        </div> 
150    </div> 
151</div> 
152</#if> 
153 
154<#------------------------------Dienstleistung-----------------------------------> 
155 
156    <#if dienstleistung?? && dienstleistung?has_content> 
157    <#assign textmodul = dienstleistung.textmodul /> 
158    <div class=""> 
159    <div class="row mb-5"> 
160        <h2 class="pageheader w-100"><span class="icon-clipboard"></span>${dienstleistung.name}</h2> 
161        <span class="tags" aria-label="Tags:"> 
162            <#list dienstleistung.tags as t> 
163            <span class="tag">${t.name}</span> 
164            </#list> 
165        </span> 
166    </div> 
167    <div class="row"> 
168        <div class="col-8 nopadleft"> 
169            <div class="fsM cGray lh35 mb-5"> 
170 
171                <#if existsAndHasContent1(textmodul.kurztext.inhalt!'')> 
172                    <p> 
173                        ${textmodul.kurztext.inhalt} 
174                    </p> 
175                </#if> 
176                <#if existsAndHasContent1(textmodul.volltext.inhalt!'')> 
177                    <p> 
178                        ${textmodul.volltext.inhalt} 
179                    </p> 
180                </#if> 
181            </div> 
182 
183 
184            <#if existsAndSizeGTZero(dienstleistung.extensions) || existsAndSizeGTZero(dienstleistung.formulare) || (dienstleistung.kontaktformularUrl?? && dienstleistung.kontaktformularUrl?has_content) || existsAndSizeGTZero(dienstleistung.textmodul.formulare.weiterfuehrenderLink)> 
185                <div id="OnlinediensteWrapper" class="fsM cGray lh35 mb-5 mt-5"> 
186                    <a href="#Onlinedienste" class="btn btn-primary" data-toggle="collapse" aria-expanded="true"> 
187                        ${addChevronIcon()} 
188                        <h2>Onlinedienstleistungen</h2> 
189                    </a> 
190                    <div id="Onlinedienste" class="collapse show" data-toggle="collapse"> 
191                        <@onlineServices "onlineservices", "onlineservicesIcons", dienstleistung, linkCss, linkClass, beforeLinkTitle, iconArray, loginInfoTextArray /> 
192                        <@iconLegendList "onlineservicesIcons", "onlineservices", "black", iconArray, iconLegendTextArray, showDLLockIcon, showDLMoneyIcon, showDLPersoLogo /> 
193                    </div> 
194                </div> 
195            </#if> 
196 
197 
198 
199            <div id="detailList" class="fsM cGray lh35 mb-5 mt-5"> 
200                <@textmodulCollapse textmodul.weiterfuehrendeInformationen,'WeiterfuehrendeInformationen','Weiterführende Informationen'/> 
201                <@textmodulCollapse textmodul.voraussetzungen,'Voraussetzungen','Voraussetzungen'/> 
202                <@textmodulCollapse textmodul.bearbeitungsdauer,'Bearbeitungsdauer','Bearbeitungsdauer'/> 
203                <@textmodulCollapse textmodul.verfahrensablauf,'Verfahrensablauf','Verfahrensablauf'/> 
204                <@textmodulCollapse textmodul.erforderlicheUnterlagen,'ErforderlicheUnterlagen','Erforderliche Unterlagen'/> 
205                <@textmodulCollapse textmodul.fristen,'fristen','Fristen'/> 
206                <@textmodulCollapse textmodul.rechtsgrundlagen,'Rechtsgrundlagen','Rechtsgrundlagen'/> 
207                <@textmodulCollapse textmodul.rechtsbehelf,'Rechtsbehelf','Rechtsbehelf'/> 
208                <@textmodulCollapse textmodul.hinweiseBesonderheiten,'HinweiseUndBesonderheiten','Hinweise und Besonderheiten'/> 
209                <@textmodulCollapse textmodul.zusatzAnWenWenden,'anWenWe','An Wen Wenden'/> 
210                <@textmodulCollapse textmodul.zusatzFreigegebenDurch,'FreigegebenDurch','Freigegeben durch'/> 
211                <@textmodulCollapse textmodul.zusatzFreigegebenAm,'FreigegebenAm','Freigegeben am'/> 
212                <@textmodulCollapse textmodul.zusatzUrheber,'Urheber','Urheber'/> 
213                <@textmodulCollapse textmodul.zusatzZustaendigeStelle,'ZustaendigeStelle','Zuständige Stelle'/> 
214 
215                <#if dienstleistung.amtFachbereich?has_content> 
216                    <a href="#amtFachbereich" class="btn btn-primary" data-toggle="collapse">${addChevronIcon()}<h2>Amt/Fachbereich</h2></a> 
217                    <div id="amtFachbereich" class="collapse"> 
218                        ${dienstleistung.amtFachbereich} 
219                    </div> 
220                </#if> 
221 
222                <#if dienstleistung.kostenmodul.beschreibung?has_content || dienstleistung.kostenmodul.kosten?has_content> 
223                    <a href="#Kosten" class="btn btn-primary" data-toggle="collapse">${addChevronIcon()}<h2>Kosten</h2></a> 
224                    <div id="Kosten" class="collapse"> 
225                        <@kostenliste3 /> 
226                    </div> 
227                </#if> 
228 
229                <#if dienstleistung.zahlungsweisen?size gt 0> 
230 
231                    <a href="#Zahlungsweisen" class="btn btn-primary" data-toggle="collapse"><h2>Zahlungsweisen</h2></a> 
232                    <div id="Zahlungsweisen" class="collapse"> 
233                        <ul> 
234                            <#list dienstleistung.zahlungsweisen as zw> 
235                                <li> 
236                                    <p>${zw.name}</p> 
237                                    <#if zw.beschreibung?? && zw.beschreibung?has_content> 
238                                        <p>${zw.beschreibung}</p> 
239                                    </#if> 
240                                </li> 
241                            </#list> 
242                        </ul> 
243                    </div> 
244                </#if> 
245            </div> 
246        </div> 
247        <div class="col-4"> 
248            <@addZustaendigeStelle dienstleistung/> 
249            <@addEmployeeList dienstleistung /> 
250 
251            <#if dienstleistung.dokumentList?has_content> 
252                <h2 class="fsXL mb-2"> 
253                    <span style="font-weight: bold">Dokumente</span> 
254                </h2> 
255                <div id="documents" class="card white mb-4 nobutton padleft"> 
256                    <div class="card-body"> 
257                        <ul> 
258                            <#list dienstleistung.dokumentList as document> 
259                                         <#assign url = renderResponse.createResourceURL()/> 
260                                        ${url.setResourceID("vr-bis-detail-document-download")} 
261                                        ${url.setParameter("id", "${document.id}")} 
262                                <li><a href="${url}" title="Download ${document.name}" target="_blank" download>${document.name}</a></li> 
263                            </#list> 
264                        </ul> 
265                    </div> 
266                </div> 
267            </#if> 
268 
269            <#if dienstleistung.verwandteDienstleistungen?has_content> 
270                <h2 class="fsXL mb-2"> 
271                    <span style="font-weight: bold">Verwandte Dienstleistungen</span> 
272                </h2> 
273                <div id="verwandteDienstleistungen" class="card white mb-4 nobutton padleft"> 
274                    <div class="card-body"> 
275                        <ul> 
276                            <#list dienstleistung.verwandteDienstleistungen as dl> 
277                                <li> 
278                                    <a href="${utils.createRenderUrl(renderResponse,dienstleistungShow,dl.id)}">${dl.name}</a> 
279                                </li> 
280                            </#list> 
281                        </ul> 
282                    </div> 
283                </div> 
284            </#if> 
285             
286            <#if (dienstleistung.textmodul.volltext.weiterfuehrenderLink?has_content || 
287            dienstleistung.textmodul.kurztext.weiterfuehrenderLink?has_content || 
288            dienstleistung.textmodul.rechtsgrundlagen.weiterfuehrenderLink?has_content || 
289            dienstleistung.textmodul.erforderlicheUnterlagen.weiterfuehrenderLink?has_content || 
290            dienstleistung.textmodul.voraussetzungen.weiterfuehrenderLink?has_content || 
291            dienstleistung.textmodul.verfahrensablauf.weiterfuehrenderLink?has_content || 
292            dienstleistung.textmodul.weiterfuehrendeInformationen.weiterfuehrenderLink?has_content || 
293            dienstleistung.textmodul.hinweiseBesonderheiten.weiterfuehrenderLink?has_content || 
294            dienstleistung.textmodul.rechtsbehelf.weiterfuehrenderLink?has_content || 
295            dienstleistung.textmodul.bearbeitungsdauer.weiterfuehrenderLink?has_content || 
296            dienstleistung.textmodul.fristen.weiterfuehrenderLink?has_content)> 
297            <h2 class="fsXL mb-2"> 
298                     <span style="font-weight: bold">Internetadressen</span> 
299                </h2> 
300                <div id="links" class="card white mb-4 nobutton padleft"> 
301                    <div class="card-body"> 
302                        <ul> 
303                            ${linklooper(dienstleistung.textmodul.volltext)} 
304                            ${linklooper(dienstleistung.textmodul.kurztext)} 
305                            ${linklooper(dienstleistung.textmodul.rechtsgrundlagen)} 
306                            ${linklooper(dienstleistung.textmodul.erforderlicheUnterlagen)} 
307                            ${linklooper(dienstleistung.textmodul.voraussetzungen)} 
308                            ${linklooper(dienstleistung.textmodul.verfahrensablauf)} 
309                            ${linklooper(dienstleistung.textmodul.weiterfuehrendeInformationen)} 
310                            ${linklooper(dienstleistung.textmodul.hinweiseBesonderheiten)} 
311                            ${linklooper(dienstleistung.textmodul.rechtsbehelf)} 
312                            ${linklooper(dienstleistung.textmodul.bearbeitungsdauer)} 
313                            ${linklooper(dienstleistung.textmodul.fristen)} 
314                        </ul> 
315                    </div> 
316                </div> 
317            </#if> 
318        </div> 
319    </div> 
320    </div> 
321    <#if vsmGebietID != ''> 
322        <!-- Portalverbund.NRW --> 
323        <div vocab="https://vsm.nrw/rdfa/v1.0/" typeof="Zustaendigkeit" style="display:none;" aria-hidden="true"> 
324            <div property="leistung" typeof="Leistung"> 
325                <#if dienstleistung.leiKaEintraege?size gt 0> 
326                    <#list dienstleistung.leiKaEintraege as idName> 
327                        <span property="schluessel" content="${idName.name}"> <!-- LeiKa-Schlüssel --> </span> 
328                    </#list> 
329                </#if> 
330                <#if dienstleistung.name?has_content><span property="leistungsbezeichnung">${dienstleistung.name}</span></#if> 
331                <#if dienstleistung.beschreibung?has_content> <span property="volltext">${dienstleistung.beschreibung}</span></#if> 
332                <#if dienstleistung.unterlagen?has_content><span property="erforderlicheUnterlagen">${dienstleistung.unterlagen}</span></#if> 
333                <#if dienstleistung.weitereInfos?has_content><span property="weiterfuehrendeInformationen">${dienstleistung.weitereInfos}</span></#if> 
334                <#if dienstleistung.kostenmodul.beschreibung?has_content || dienstleistung.kostenmodul.kosten?has_content><span property="kosten"><@kostenliste3 /></span> </#if> 
335                <#if dienstleistung.synonyme?has_content><span property="begriffeImKontext">${dienstleistung.synonyme}</span> </#if> 
336                <span property="urlOnlineDienst">${currentURL}</span> <!-- Variable muss im ADT-Header noch vorher deklariert werden --> 
337            </div> 
338            <#list dienstleistung.einrichtung.einrichtungList as einrichtung> 
339                <div property="organisationseinheit" typeof="Organisationseinheit"> 
340                    <#if einrichtung.name?has_content><span property="name">${einrichtung.name}</span></#if> 
341                    <#if einrichtung.anschrift?has_content> 
342                        <div property="anschrift" typeof="Anschrift"> 
343                            <span property="typ" class="hidden">001</span> 
344                            <span property="strasse">${einrichtung.anschrift.strasse}</span> <span property="hausnummer">${einrichtung.anschrift.hausnummer}</span> 
345                            <span property="postleitzahl">${einrichtung.anschrift.postleitzahl}</span> <span property="ort">${einrichtung.anschrift.ort}</span> 
346                        </div> 
347                    </#if> 
348                    <#if einrichtung.telefonnummer?has_content> 
349                        <div property="kommunikation" typeof="Kommunikation"> 
350                            <span property="kanal" content="telefon">Telefon</span> 
351                            <span property="kennung">${einrichtung.telefonnummer}</span> 
352                        </div> 
353                    </#if> 
354                    <#if einrichtung.faxnummer?has_content> 
355                        <div property="kommunikation" typeof="Kommunikation"> 
356                            <span property="kanal" content="fax">Fax</span> 
357                            <span property="kennung">${einrichtung.faxnummer}</span> 
358                        </div> 
359                    </#if> 
360 
361                    <#list dienstleistung.mitarbeiterList as mitarbeiter>                     
362                        <div property="kontaktperson" typeof="Kontaktperson"> 
363                            <#if mitarbeiter.anrede?has_content><p property="anrede">${mitarbeiter.anrede}</p> </#if> 
364                            <#if mitarbeiter.titel?has_content><p property="titel">${mitarbeiter.titel}</p> </#if> 
365                            <#if $mitarbeiter.vorname?has_content><p property="vorname">${mitarbeiter.vorname}</p> </#if> 
366                            <#if mitarbeiter.familienname?has_content><p property="familienname">${mitarbeiter.familienname}</p></#if> 
367                            <#if mitarbeiter.position?has_content><p property="position">${mitarbeiter.position}</p> </#if> 
368                            <#if mitarbeiter.raum?has_content><p property="raum">${mitarbeiter.raum}</p> </#if> 
369 
370                            <#if mitarbeiter.telefonnummer?has_content> 
371                                <div property="kommunikation" typeof="Kommunikation"> 
372                                    <span property="kanal" content="telefon"></span> 
373                                    <span property="kennung">${mitarbeiter.telefonnummer}</span> 
374                                </div> 
375                            </#if> 
376                            <#if mitarbeiter.email?has_content> 
377                                <div property="kommunikation" typeof="Kommunikation"> 
378                                    <span property="kanal" content="email"></span> 
379                                    <span property="kennung">${mitarbeiter.email}</span> 
380                                </div> 
381                            </#if> 
382                        </div> 
383                    </#list> 
384 
385                    <span property="rolle" content="03"></span> 
386                    <span property="gebietID" content="${vsmGebietID}"></span> 
387                </div> 
388            </#list> 
389        </div> 
390        <!-- Portalverbund.NRW --> 
391    </#if> 
392 
393</#if> 
394 
395<#------------------------------Mitarbeiter-----------------------------------> 
396 
397    <#if mitarbeiter?? && showEmployees> 
398    <div> 
399        <div class="row mb-5"> 
400            <h2 class="pageheader w-100"><span class="icon-user"></span>${mitarbeiter.getName()}</h2> 
401            <#if mitarbeiter.position?has_content> 
402                <span class="position" aria-label="Position ">${mitarbeiter.position}</span> 
403            </#if> 
404        </div> 
405 
406        <div class="row"> 
407            <div class="col-8 nopadleft"> 
408                <#if mitarbeiter.beschreibung?has_content> 
409                    <div class="fsM cGray lh35 mb-5"> 
410                        ${mitarbeiter.beschreibung} 
411                    </div> 
412                </#if> 
413                <@addServicesList mitarbeiter/> 
414                <#if mitarbeiter.einrichtungList?size gt 0> 
415                    <h2 class="fsXL mb-2 mt-5"> <span style="font-weight: bold">Einrichtungen </span></h2> 
416                    <div class="mb-5"> 
417                        <ul class="detaillist einrichtungen fsM"> 
418                            <#list mitarbeiter.einrichtungList as er> 
419                                <li><a tabindex="0" href="${utils.getEinrichtungUrl(er.id)}" class="cBlue">${er.name}</a></li> 
420                            </#list> 
421                        </ul> 
422                    </div> 
423                </#if> 
424            </div> 
425            <div class="col-4"> 
426                <@addPortrait mitarbeiter/> 
427                <#if mitarbeiter.einrichtungList?size gt 0> 
428                    <#assign firstFacility = mitarbeiter.einrichtungList[0]/> 
429                <#else> 
430                    <#assign firstFacility = ''/> 
431                </#if> 
432                <@addContactBox firstFacility mitarbeiter/> 
433                <@addServiceHours mitarbeiter/> 
434            </div> 
435        </div> 
436    </div> 
437 
438 
439</#if> 
440 
441    <#if (!einrichtung?? || !mitarbeiter?? || !dienstleistung??)> 
442    <script> 
443        jQuery(document).ready(function () { 
444            jQuery('.search-area').parent().parent().remove() 
445        }); 
446    </script> 
447</#if> 
448</#if> 
449 
450<#macro addServiceHours base_variable> 
451    <#local serviceZeitenEmpty = true/> 
452    <#if base_variable.servicezeitenStrukturiert?? && base_variable.servicezeitenStrukturiert.tage??> 
453        <#list base_variable.servicezeitenStrukturiert.tage?values as value> 
454            <#list value.paare?values as paare> 
455                <#if paare?? && paare?has_content && paare != '-'> 
456                    <#local serviceZeitenEmpty = false /> 
457                    <#break> 
458                </#if> 
459            </#list> 
460            <#if serviceZeitenEmpty == false> 
461                <#break> 
462            </#if> 
463        </#list> 
464    </#if> 
465    <#if serviceZeitenEmpty == false || base_variable.servicezeitenFreitext?has_content> 
466        <div class="card blue darkbluegradient nobutton"> 
467            <div class="card-body"> 
468                <h2 class="card-title fsML mb-4"> 
469                    <span>Servicezeiten</span> 
470                </h2> 
471                <div class="card-text fsS"> 
472                    <#if serviceZeitenEmpty == false> 
473                        <@createTimeTable16 base_variable /> 
474                    </#if> 
475                    <#if base_variable.servicezeitenFreitext?has_content> 
476                        <p class="mt-2"> 
477                            ${base_variable.servicezeitenFreitext} 
478                        </p> 
479                    </#if> 
480                </div> 
481            </div> 
482        </div> 
483    </#if> 
484</#macro> 
485 
486 
487<#function linklooper linkList> 
488    <#assign 
489    value = "" 
490    class = "" 
491    target = "" 
492    /> 
493    <#if linkList?has_content> 
494        <#list linkList.weiterfuehrenderLink as link> 
495            <#if link.neuesFenster> 
496                target='_blank' 
497            </#if> 
498            <#assign 
499            value = value + "<li> 
500                <a href='${link.uri}' title='${link.titel}' class='${class}' ${target}>${link.titel}</a> 
501            </li>"/> 
502        </#list> 
503    </#if> 
504    <#return value> 
505</#function> 
506 
507<#macro kostenliste3> 
508    <#if dienstleistung.kostenmodul.beschreibung?has_content || dienstleistung.kostenmodul.kosten?has_content> 
509        <#if dienstleistung.kostenmodul.kosten?has_content> 
510            <table class="table table-hover"> 
511                <thead> 
512                <tr> 
513                    <th class="p-2">Name</th> 
514                    <th class="p-2">Kosten</th> 
515                    <th class="p-2">Beschreibung</th> 
516                </tr> 
517                </thead> 
518                <tbody> 
519                    <#list dienstleistung.kostenmodul.kosten as kosten> 
520                        <tr> 
521                            <td class="p-2">${kosten.name}</td> 
522                            <td class="p-2"> 
523                            
524                                <#if (kosten.isKostenfrei())> 
525                                    kostenfrei 
526                                <#elseif (kosten.isKostenVariabel())> 
527                                    zwischen ${utils.formatCurrency(kosten.von)} und ${utils.formatCurrency(kosten.bis)} EUR 
528                                <#else> 
529                                    ${utils.formatCurrency(kosten.von)} EUR 
530                                </#if> 
531                            </td> 
532                            <td class="p-2"> 
533                            <#if kosten.beschreibung??> 
534                                ${kosten.beschreibung} 
535                            </#if> 
536                        </tr> 
537                    </#list> 
538                </tbody> 
539            </table> 
540        </#if> 
541        ${dienstleistung.kostenmodul.beschreibung} 
542    </#if> 
543</#macro> 
544 
545<#macro createTimeTable16 baseVariable> 
546    <#assign serviceZeitenEmpty = baseVariable.servicezeitenFreitext?has_content /> 
547    <#if baseVariable.servicezeitenStrukturiert?has_content && baseVariable.servicezeitenStrukturiert.tage??> 
548        <#list baseVariable.servicezeitenStrukturiert.tage?values as value> 
549            <#list value.paare?values as paare> 
550                <#if paare?? && paare?has_content> 
551                    <#assign serviceZeitenEmpty = false /> 
552                    <#break> 
553                </#if> 
554            </#list> 
555            <#if !serviceZeitenEmpty> 
556                <#break> 
557            </#if> 
558        </#list> 
559    </#if> 
560 
561 
562    <#if !serviceZeitenEmpty> 
563        <table id="serviceTimeTable" class="" style="width:100%;table-layout: fixed;font-size: 0.75rem;"> 
564            <thead class=""> 
565            <tr> 
566                <th style="width: calc(20%)" class="">Tag</th> 
567                <th style="width: calc(80% / 2)" class="">Zeitraum 1</th> 
568                <th style="width: calc(80% / 2)" class="">Zeitraum 2</th> 
569            </tr> 
570            </thead> 
571            <tbody> 
572 
573            <#assign tagKeys = baseVariable.servicezeitenStrukturiert.tage?keys> 
574            <#assign tagNames = baseVariable.servicezeitenStrukturiert.tage?values> 
575 
576            <#list tagKeys as tagName> 
577                <#assign index = tagKeys?seq_index_of(tagName)> 
578                <#assign tagZeiten = tagNames[index]> 
579                <#assign emptyTag = true /> 
580                <#list tagZeiten.paare?values as tagZeitenPaar> 
581                    <#if tagZeitenPaar?? && tagZeitenPaar?has_content && tagZeitenPaar != '-' > 
582                        <#assign emptyTag = false /> 
583                        <#break> 
584                    </#if> 
585                </#list> 
586                <#if emptyTag> 
587                <#else> 
588                    <#if tagName??> 
589                        <#assign 
590                        tagNameFormated = tagName?substring(0, 1)?upper_case 
591                        tagNameFormated = tagNameFormated + tagName?substring(1)?lower_case 
592                        /> 
593                        <tr> 
594                            <td>${tagNameFormated}</td> 
595                            <#assign ersterEintraginSpalte = true /> 
596 
597                            <#assign keys =  tagZeiten.paare?keys> 
598                            <#assign values = tagZeiten.paare?values> 
599 
600                            <#list keys as key> 
601                                <#assign index = keys?seq_index_of(key)> 
602                                <#assign value = values[index]> 
603                                <#if key == "VORMITTAGS"> 
604                                    <#if value.getVon()?? && value.getVon()?has_content && value.getBis()?? && value.getBis()?has_content> 
605                                        <td class=""> 
606                                            ${value.getVon()} bis ${value.getBis()} Uhr 
607                                        </td> 
608                                    <#else> 
609                                        <td class=""></td> 
610                                    </#if> 
611                                </#if> 
612                                <#if key == "NACHMITTAGS"> 
613                                    <#if value.getVon()?? && value.getVon()?has_content && value.getBis()?? && value.getBis()?has_content> 
614                                        <td class=""> 
615                                            ${value.getVon()} bis ${value.getBis()} Uhr 
616                                        </td> 
617                                    <#else> 
618                                        <td class=""></td> 
619                                    </#if> 
620                                </#if> 
621                            </#list> 
622                        </tr> 
623                    </#if> 
624                </#if> 
625            </#list> 
626            </tbody> 
627        </table> 
628    </#if> 
629</#macro> 
630 
631<#function createNumberHref3 baseObject prefix> 
632    <#local 
633        phonenumber = baseObject?replace('-','')?replace(' ','')?replace('+49','') 
634        /> 
635    <#if phonenumber?index_of('0') == 0> 
636        <#local 
637            index = phonenumber?index_of('0') 
638            index = index + 1 
639            combinatedPhonenumber = prefix + ":+49" + phonenumber?substring(index) 
640        /> 
641    <#else> 
642        <#local 
643            combinatedPhonenumber = prefix + ":+49" + phonenumber 
644        /> 
645    </#if> 
646 
647    <#return combinatedPhonenumber> 
648</#function> 
649 
650<#function createPhoneHref3 baseObject> 
651    <#return createNumberHref3(baseObject.telefonnummer,'tel')> 
652</#function> 
653<#function createFaxHref3 baseObject> 
654    <#return createNumberHref3(baseObject.faxnummer,'fax')> 
655</#function> 
656<#function createMailHref5 baseObject> 
657    <#return 'mailto:'+ baseObject.email> 
658</#function> 
659<#function createMobilHref3 baseObject> 
660    <#return createNumberHref3(baseObject.mobil,'tel')> 
661</#function> 
662 
663<#function createPhoneLink5 baseObject,styleLink, linkClass, styleIcon, hideParagraph> 
664    <#return createContactList5(createPhoneHref3(baseObject), "icon-phone", "${baseObject.telefonnummer} anrufen.", baseObject.telefonnummer, styleLink, styleIcon, linkClass, hideParagraph)> 
665</#function> 
666 
667<#function createFaxLink5 baseObject,styleLink, linkClass,styleIcon, hideParagraph> 
668    <#return createContactList5(createFaxHref3(baseObject), "icon-fax", "Fax an ${baseObject.faxnummer} senden.", baseObject.faxnummer, styleLink, styleIcon, linkClass, hideParagraph)> 
669</#function> 
670 
671<#function createMobilLink baseObject,styleLink, linkClass, styleIcon, hideParagraph> 
672    <#return createMobileContact(createMobilHref3(baseObject), "${baseObject.mobil} anrufen.", baseObject.mobil, styleLink, linkClass, hideParagraph)> 
673</#function> 
674 
675<#function createEmail baseObject,styleLink, linkClass, styleIcon, hideParagraph> 
676    <#return createContactList5(createMailHref5(baseObject), "icon-mail", "E-Mail an ${baseObject.email} senden.", baseObject.email, styleLink, styleIcon, linkClass, hideParagraph)> 
677</#function> 
678 
679<#function createContactList5 href, icon, title, content, stylelink, styleIcon, linkClass, hideParagraph> 
680    <#local string = ''> 
681    <#if !hideParagraph> 
682        <#local string += '<p>'> 
683    </#if> 
684        <#local string +=' 
685        <a tabindex="0" href="${href}" class="${linkClass}" title="${title}" style="${styleLink!}"> 
686            <span aria-hidden="true" style="display: contents;"> 
687                <span class="${icon}" style="${styleIcon}"></span> 
688                ${content} 
689            </span> 
690        </a> 
691        '> 
692    <#if !hideParagraph> 
693        <#local string += '<p>'> 
694    </#if> 
695    <#return string> 
696</#function> 
697 
698<#function createMobileContact href, title, content, stylelink, linkClass, hideParagraph> 
699    <#local string = ''> 
700    <#if !hideParagraph> 
701        <#local string += '<p>'> 
702    </#if> 
703    <#local string +=' 
704        <a tabindex="0" href="${href}" class=" ${linkClass}" title="${title}" style="${styleLink!}"> 
705            <span aria-hidden="true" style="display: contents;"> 
706                <svg aria-hidden="true" class="mr-1 lexicon-icon mobile-portrait" focusable="false"><use href="/o/persica-theme/images/clay/icons.svg#mobile-portrait"></use></svg> 
707                ${content} 
708            </span> 
709        </a> 
710        '> 
711    <#if !hideParagraph> 
712        <#local string += '<p>'> 
713    </#if> 
714    <#return string> 
715</#function> 
716 
717 
718<#function existsAndHasContent1 element> 
719    <#if element?? && element?has_content> 
720        <#return true /> 
721    <#else> 
722        <#return false /> 
723    </#if> 
724</#function> 
725 
726<#macro textmodulCollapse modul id title> 
727    <#if existsAndHasContent1(modul.inhalt!'')> 
728        <a href="#${id}" class="btn btn-primary" data-toggle="collapse">${addChevronIcon()}<h2>${title}</h2></a> 
729        <div id="${id}" class="collapse"> 
730            ${modul.inhalt} 
731        </div> 
732    </#if> 
733</#macro> 
734 
735<#macro addCollapse id title content> 
736    <#if content?? && content?has_content> 
737        <a href="#${id}" class="btn btn-primary" data-toggle="collapse">${addChevronIcon()}<h2>${title}</h2></a> 
738        <div id="${id}" class="collapse"> 
739            ${content} 
740        </div> 
741    </#if> 
742</#macro> 
743 
744<#function existsAndSizeGTZero element> 
745    <#if element?? && element?size gt 0> 
746        <#return true /> 
747    <#else> 
748        <#return false /> 
749    </#if> 
750</#function> 
751 
752 
753 
754 
755 
756        <#macro onlineServices linkToIconsid, iconListDestination, dienstleistung, linkCss, linkclass,beforeLinkTitle, iconArray, infoTextArray> 
757            <#local 
758                lockIcon  = iconArray[0] 
759                iconBefore = beforeLinkTitle 
760            /> 
761            <#if existsAndSizeGTZero(dienstleistung.extensions) || existsAndSizeGTZero(dienstleistung.formulare) || (dienstleistung.kontaktformularUrl?? && dienstleistung.kontaktformularUrl?has_content) || existsAndSizeGTZero(dienstleistung.textmodul.formulare.weiterfuehrenderLink)> 
762                <#local 
763                    current_url_WithHtml = themeDisplay.getPortalURL() 
764                    current_uri_WithHtml = themeDisplay.getURLCurrent() 
765                    login_url1_WithHtml = 'href="/home?p_p_id=com_liferay_login_web_portlet_LoginPortlet&p_p_lifecycle=0&_com_liferay_login_web_portlet_LoginPortlet_redirect=' 
766                    login_url2_WithHtml = '#login" rel="nofollow" data-redirect="true"' 
767                    login_url_WithHtml = login_url1_WithHtml+current_url_WithHtml+current_uri_WithHtml+login_url2_WithHtml 
768                /> 
769 
770                <#if showDLLockIcon || showDLMoneyIcon || showDLPersoLogo> 
771                    <a class="sr-only sr-only-focusable" href="#${iconListDestination}" id="${linkToIconsid}">Sprung zur Icon Legende.</a> 
772                </#if> 
773 
774                <ul style="list-style: none !important;padding-left: 0 !important;display: flex;flex-wrap: wrap;gap: 5px;"> 
775                    <#local 
776                    css = linkCss 
777                    dlElementClass = linkClass 
778                    /> 
779                    <#if existsAndSizeGTZero(dienstleistung.extensions)> 
780                        <#local 
781                        userAuthLevel = utils.getAuthLevel(renderRequest) 
782                        idCounter = 1 
783                        /> 
784                        <#list dienstleistung.extensions as formular> 
785                            <#local minAuthLevel = formular.minAuthLevel /> 
786                            <li class="mb-2 w-75"> 
787                                <p class="mb-0"> 
788                                    <#if userAuthLevel gte minAuthLevel> 
789                                        <@extension_entry formular, css, dlElementClass, iconBefore, true, '' ,infoTextArray iconArray /> 
790                                    <#else> 
791                                        <#if minAuthLevel == 1> 
792                                            <@extension_entry formular, css, dlElementClass, iconBefore, true, 'login' ,infoTextArray iconArray /> 
793                                        <#elseif minAuthLevel == 2> 
794                                            <@extension_entry formular, css, dlElementClass, iconBefore, true, 'login' ,infoTextArray iconArray /> 
795                                        <#elseif minAuthLevel == 3> 
796                                            <@extension_entry formular, css, dlElementClass, iconBefore, true, 'eid' ,infoTextArray iconArray /> 
797                                        </#if> 
798                                    </#if> 
799                                </p> 
800                            </li> 
801                        <#else> 
802                            <#assign idCounter = idCounter + 1/> 
803                        </#list> 
804                    </#if> 
805                    <#if !utils.angemeldet && !dienstleistung.nutzbarAlsGast> 
806                        <#if existsAndSizeGTZero(dienstleistung.formulare)> 
807                            <#assign showDLLockIcon = true/> 
808                            <#list dienstleistung.formulare as formular> 
809                                <li class="mb-2 w-75"> 
810                                    <p class="mb-0"> 
811                                        <#assign title = formular.titel/> 
812                                        <#assign description = "${title}. ${infoTextArray[0]}"/> 
813                                        <#assign target = "blank"/> 
814                                        <#assign icon =iconArray[0]/> 
815                                        <#assign href = ''/> 
816                                        <#assign aditionalAttributs = "${createLoginURL4(formular.uri)}"/> 
817                                        <@createDLnewLink18 css, dlElementClass, iconBefore, icon, title, target, description, href, aditionalAttributs/> 
818                                    </p> 
819                                </li> 
820                            </#list> 
821                        </#if> 
822                        <#if (dienstleistung.kontaktformularUrl?? && dienstleistung.kontaktformularUrl?has_content)> 
823                            <#assign showDLLockIcon = true/> 
824                            <li class="mb-2 w-75"> 
825                                <p class="mb-0"> 
826                                    <#assign title = 'Zum Kontaktformular'/> 
827                                    <#assign description = "${title}. ${infoTextArray[0]}"/> 
828                                    <#assign target = ''/> 
829                                    <#assign icon = iconArray[0]/> 
830                                    <#assign href = ''/> 
831                                    <#assign aditionalAttributs = "${createLoginURL4(dienstleistung.kontaktformularUrl)}"/> 
832                                    <@createDLnewLink18 css, dlElementClass, iconBefore, icon, title, target, description, href, aditionalAttributs/> 
833 
834                                </p> 
835                            </li> 
836                        </#if> 
837                    <#else> 
838                        <#if existsAndSizeGTZero(dienstleistung.formulare)> 
839                            <#list dienstleistung.formulare as formular> 
840                                <li class="mb-2 w-75 formulare"> 
841                                    <p class="mb-0"> 
842                                        <#assign title = formular.titel/> 
843                                        <#assign description = "${title}."/> 
844                                        <#assign target = 'blank'/> 
845                                        <#assign icon =''/> 
846                                        <#assign href = formular.uri/> 
847                                        <@createDLnewLink18 css, dlElementClass, iconBefore, icon, title, target, description, href/> 
848                                    </p> 
849                                </li> 
850                            </#list> 
851                        </#if> 
852                        <#if (dienstleistung.kontaktformularUrl?? && dienstleistung.kontaktformularUrl?has_content)> 
853                            <li class="mb-2 w-75"> 
854                                <p class="mb-0"> 
855                                    <#assign title = 'Zum Kontaktformular'/> 
856                                    <#assign description = title/> 
857                                    <#assign target = ''/> 
858                                    <#assign icon = ''/> 
859                                    <#assign href = dienstleistung.kontaktformularUrl/> 
860                                    <@createDLnewLink18 css, dlElementClass, iconBefore, icon, title, target, description, href/> 
861                                </p> 
862                            </li> 
863                        </#if> 
864                    </#if> 
865                    <#if existsAndSizeGTZero(dienstleistung.textmodul.formulare)> 
866                        <#list dienstleistung.textmodul.formulare.weiterfuehrenderLink as formular> 
867 
868                                <li class="mb-2 w-75 textmodul-formulare"> 
869                                    <p class="mb-0"> 
870                                        <#if formular.titel != "" && formular.titel??> 
871                                            <#assign title = formular.titel/> 
872                                        <#else> 
873                                            <#assign title = formular.uri/> 
874                                        </#if> 
875                                        <#assign description = title/> 
876                                        <#if formular.neuesFenster> 
877                                            <#assign target = 'blank'/> 
878                                        <#else> 
879                                            <#assign target = 'self'/> 
880                                        </#if> 
881                                        <#assign icon =''/> 
882                                        <#assign href = formular.uri/> 
883                                        <@createDLnewLink18 css, dlElementClass, iconBefore, icon, title, target, description, href/> 
884                                    </p> 
885                                </li> 
886 
887                        </#list> 
888                    </#if> 
889                </ul> 
890            </#if> 
891        </#macro> 
892 
893 
894        <#macro createDLnewLink18 css, linkClass, bevoreLinkTitle, icon, title, target, description, hrefParam, aditionalAttributsParams=''> 
895            <#local 
896                target = "" 
897                href = "" 
898                aditionalAttributs = "" 
899                attributs = '' 
900            /> 
901            <#local description = "title='${description}'" /> 
902            <#if target == "blank"> 
903                <#local target = "_blank"/> 
904            <#elseif target == "self"> 
905                <#local target = "_self"/> 
906            <#else> 
907                <#local target = "_blank"/> 
908            </#if> 
909 
910            <#if hrefParam?has_content && hrefParam != ''> 
911                <#local href= "href='${hrefParam}'" /> 
912            <#else> 
913                <#local href = '' /> 
914            </#if> 
915 
916            <#if aditionalAttributsParams?? && aditionalAttributsParams?has_content> 
917                <#local attributs = aditionalAttributsParams /> 
918            <#else> 
919                <#local attributs = '' /> 
920            </#if> 
921 
922            <a class='${linkClass}' 
923               style='${css}' 
924               target='${target}' 
925                    ${href} 
926                    ${description} 
927                    ${attributs}> 
928                ${bevoreLinkTitle} 
929                <span class="icons">${icon}</span> 
930                <span class="title">${title}</span> 
931                <span class="icon-right" style="font-size: 12px; margin-left: 10px;"></span> 
932            </a> 
933        </#macro> 
934 
935        <#function createLoginURL4 destination> 
936            <#return 'href="/home?p_p_id=com_liferay_login_web_portlet_LoginPortlet&p_p_lifecycle=0&_com_liferay_login_web_portlet_LoginPortlet_redirect='+destination+'#login" rel="nofollow" data-redirect="true"' /> 
937        </#function> 
938 
939 
940 
941        <#macro extension_entry formular,css, class, iconBefore, newTab, loginType,infoTextArray=[],iconArray=[]> 
942            <#local 
943            description = "${formular.titel}." 
944            icon = '' 
945            href = '' 
946            aditionalAttributs = '' 
947            /> 
948            <#if newTab> 
949                <#local target = "blank"/> 
950            <#else> 
951                <#local target = 'self'/> 
952            </#if> 
953            <#if loginType != ''> 
954                <#if loginType = "login"> 
955                    <#assign showDLLockIcon = true /> 
956                    <#local 
957                    icon = iconArray[0] 
958                    description = description+' '+infoTextArray[0] 
959                    aditionalAttributs = "${createLoginURL4(formular.uri)}" 
960                    /> 
961                <#elseif loginType = "eid"> 
962                    <#assign showDLPersoLogo = true /> 
963                    <#local 
964                        icon = iconArray[2] 
965                        eIDLoginInfoURL =  getterUtil.getString(themeDisplay.getThemeSetting("eid-login-info-url")) 
966                        serviceName = dienstleistung.name 
967                        nameForDescrptionSite = serviceName?replace('\\&','')?replace(' ','&ensp;')?replace('\\?','')?replace('\\#','')?replace('\\*','')?replace('\\+','')?replace('\\','')?replace('\\/','') 
968                        href = "${eIDLoginInfoURL}?dlname=${nameForDescrptionSite}&dlurl=${themeDisplay.getURLCurrent()}" 
969                    /> 
970                </#if> 
971            <#else> 
972                <#local 
973                    href = formular.uri 
974                /> 
975            </#if> 
976            <#if formular.paymentSupported> 
977                <#assign showDLMoneyIcon = true /> 
978                <#local icon = icon + iconArray[1] /> 
979                <#if description?index_of(infoTextArray[0]) == -1> 
980                    <#local description = description+' '+infoTextArray[1]/> 
981                <#else> 
982                    <#local description = description+' '+infoTextArray[2]/> 
983                </#if> 
984 
985            </#if> 
986            <@createDLnewLink18 css, class, iconBefore, icon, formular.titel, target, description, href, aditionalAttributs/> 
987        </#macro> 
988 
989 
990 
991 
992        <#function iconArray lock,payment,eid> 
993            <#return [lock,payment,eid]/> 
994        </#function> 
995 
996        <#function infoTextArray login, hasPayment, andHasPayment, eid> 
997            <#return [ login, hasPayment, andHasPayment, eid]/> 
998        </#function> 
999 
1000        <#function iconLegendTextArray loginInfo, paymentInfo, eidInfo> 
1001            <#return [loginInfo,paymentInfo, eidInfo]/> 
1002        </#function> 
1003 
1004        <#function getServiceIconStyling> 
1005            <#local 
1006            iconStyling = "" 
1007            iconClass = "dlInfoIcons" 
1008            iconWrapperClass = "dlInfoIconsWrapper" 
1009            /> 
1010            <#return [iconStyling, iconClass, iconWrapperClass] /> 
1011        </#function> 
1012 
1013        <#function createPersoIcon class> 
1014            <#local 
1015            iconStyling = getServiceIconStyling()[0] 
1016            iconClass = getServiceIconStyling()[1] 
1017            iconWrapperClass =  getServiceIconStyling()[2] 
1018            /> 
1019            <#return '<i aria-hidden="true" class="'+class+' '+iconWrapperClass+'"><img aria-hidden="true"  style="'+iconStyling+' background: white !important;border-radius: 0.2rem;" class="persoIcon '+class+' '+iconClass+'" src ="/o/persica-theme/images/perso.svg" alt=""/></i>' /> 
1020        </#function> 
1021 
1022 
1023        <#macro iconLegendList elementId, destination, fontColor, iconArray, iconLegendTextArray, showDLLockIcon, showDLMoneyIcon, showDLPersoLogo> 
1024            <#if showDLLockIcon || showDLMoneyIcon || showDLPersoLogo> 
1025                <div class="" style="font-size: 0.7rem" id="${elementId}"> 
1026                    <h3 class="mb-0 mt-3" style="color:${fontColor}; font-weight: 700 !important;font-size: small !important;">Icon Legende</h3> 
1027                    <ul style="font-size: 0.7rem; list-style: none !important; padding-left: 0 !important;" aria-label="Icon Legende"> 
1028                        ${iconLegendListEntry(showDLPersoLogo,createPersoIcon('persoLogoTable'), iconLegendTextArray[2])} 
1029                        ${iconLegendListEntry(showDLLockIcon,iconArray[0], iconLegendTextArray[0])} 
1030                        ${iconLegendListEntry(showDLMoneyIcon,iconArray[1], iconLegendTextArray[1])} 
1031                    </ul> 
1032                </div> 
1033            </#if> 
1034        </#macro> 
1035 
1036        <#function iconLegendListEntry show icon content> 
1037        <#local value = '' /> 
1038        <#if show> 
1039            <#local value = "<li class=''> 
1040            <div class='row'> 
1041                <div class='col-2' style='min-height: 35px;display: flex;justify-content: center;align-items: center;'> 
1042                    <p class='mb-0'>${icon} 
1043                </div> 
1044                <div class='col-10' style='min-height: 35px;display: flex;justify-content:left ;align-items: center;'> 
1045                    <p class='mb-0'>${content} 
1046                </div> 
1047            </div> 
1048        </li>" 
1049            /> 
1050        </#if> 
1051        <#return value> 
1052</#function> 
1053 
1054 
1055<#function addChevronIcon> 
1056    <#return '<span class="chevronIcon" aria-hidden="true"><i aria-hidden="true" class="bi bi-chevron-right"></i><i aria-hidden="true" class="bi bi-chevron-down"></i></span>'/> 
1057</#function> 
1058 
1059<#macro addBarrierefreieErreichbarkeit einrichtung> 
1060    <#if einrichtung.barrierefreieErreichbarkeit?? && einrichtung.barrierefreieErreichbarkeit?has_content> 
1061        <@addCollapse 'barrierefreieErreichbarkeit','Barrierefreie Erreichbarkeit',einrichtung.barrierefreieErreichbarkeit/> 
1062   </#if> 
1063</#macro> 
1064<#macro addVerkehrsanbindung einrichtung> 
1065    <#if einrichtung.anschrift?? && einrichtung.anschrift.verkehrsanbindung?? && einrichtung.anschrift.verkehrsanbindung?has_content> 
1066        <@addCollapse 'verkehrsanbindung','Verkehrsanbindung',einrichtung.anschrift.verkehrsanbindung/> 
1067    </#if> 
1068</#macro> 
1069 
1070 
1071 
1072 
1073<#macro addInternetAdressen einrichtung> 
1074    <#if einrichtung.internetadressen?? && einrichtung.internetadressen?has_content> 
1075        <h2 class="fsXL mb-2"> 
1076            <span style="font-weight: bold">Internetadressen</span> 
1077        </h2> 
1078        <div id="verwandteDienstleistungen" class="card white mb-4 nobutton padleft"> 
1079            <div class="card-body"> 
1080                <ul> 
1081                    <#list einrichtung.internetadressen as link> 
1082                        <li> 
1083                             <a href="${link.uri}" title="${link.titel}"<#if link.neuesFenster> target="_blank" </#if>> 
1084                                ${link.titel} 
1085                            </a> 
1086                        </li> 
1087                    </#list> 
1088                </ul> 
1089            </div> 
1090        </div> 
1091    </#if> 
1092</#macro> 
1093 
1094<#macro addContactBox einrichtung baseVariable> 
1095    <#if einrichtung?? || baseVariable> 
1096        <div class="card no-arrows blue darkbluegradient nobutton"> 
1097            <div class="card-body"> 
1098                <h2 class="card-title fsML mb-4"><span>Kontakt</span></h2> 
1099                <div class="card-text marginspans fsS"> 
1100                    <#if einrichtung?? && einrichtung != ''> 
1101                        <@addAddress einrichtung> 
1102                             <#if (baseVariable.raum?? && baseVariable.raum?has_content)> 
1103                                 <li> 
1104                                     <p aria-label="Raum"><span class="icon-mapmarker mr-2"></span>${baseVariable.raum}</p> 
1105                                 </li> 
1106                                </#if> 
1107                        </@addAddress> 
1108                    </#if> 
1109 
1110                    <#if baseVariable??> 
1111                        <@addContact baseVariable/> 
1112                    </#if> 
1113                </div> 
1114            </div> 
1115        </div> 
1116    </#if> 
1117</#macro> 
1118 
1119<#macro addAddress einrichtung> 
1120    <ul class="addressList " aria-label="Adresse"> 
1121        <li class="name"><a class="text-bold" href="${utils.createRenderUrl(renderResponse,einrichtungShow, einrichtung.id)}"><span class="text-bold" aria-label="Name der Einrichtung">${einrichtung.name}</span></a></li> 
1122        <li class="street"><span aria-label="Straße und Hausnummer">${einrichtung.anschrift.strasse} ${einrichtung.anschrift.hausnummer}</span></li> 
1123        <li class="plz"><span aria-label="Postfach PLZ und Ort">${einrichtung.anschrift.postleitzahl} ${einrichtung.anschrift.ort}</span></li> 
1124        <#if einrichtung.anschrift.postfach?? && einrichtung.anschrift.postfach?has_content || 
1125             einrichtung.anschrift.postfachPostleitzahl?? && einrichtung.anschrift.postfachPostleitzahl?has_content || 
1126             einrichtung.anschrift.postfachOrt?? && einrichtung.anschrift.postfachOrt?has_content> 
1127            <li class="postbox"> 
1128                <#if einrichtung.anschrift.postfach?? && einrichtung.anschrift.postfach?has_content> 
1129                    <span class="postboxNumber"><span class="text-bold">Postfach: </span>${einrichtung.anschrift.postfach}</span> 
1130                </#if> 
1131                <#if  einrichtung.anschrift.postfachPostleitzahl?? && einrichtung.anschrift.postfachPostleitzahl?has_content || 
1132                      einrichtung.anschrift.postfachOrt?? && einrichtung.anschrift.postfachOrt?has_content> 
1133                    <span class="postboxNumber" aria-label="Postfach PLZ und Ort">${einrichtung.anschrift.postfachPostleitzahl} ${einrichtung.anschrift.postfachOrt}</span> 
1134                </#if> 
1135            </li> 
1136        </#if> 
1137        <#if einrichtung.anschrift.zusatz?? && einrichtung.anschrift.zusatz?has_content> 
1138 
1139            <li class="addition"><p><span class="text-bold">Adresszusatz:</span><br>${einrichtung.anschrift.zusatz}</p></li> 
1140        </#if> 
1141        <#nested /> 
1142    </ul> 
1143</#macro> 
1144 
1145<#macro addContact baseVariable> 
1146    <#if (baseVariable.telefonnummer?? && baseVariable.telefonnummer?has_content) || 
1147    (baseVariable.mobil?? && baseVariable.mobil?has_content) || 
1148    (baseVariable.faxnummer?? && baseVariable.faxnummer?has_content) || 
1149    (baseVariable.email?? && baseVariable.email?has_content)> 
1150        <ul class="contactList" aria-label="Kontakt möglichkeiten"> 
1151        <#if baseVariable.telefonnummer?? && baseVariable.telefonnummer?has_content> 
1152            <li class="phone">${createPhoneLink5(baseVariable,'','cBlue','',false)}</li> 
1153        </#if> 
1154        <#if baseVariable.mobil?? && baseVariable.mobil?has_content> 
1155            <li class="mobil">${createMobilLink(baseVariable,'','cBlue','',false)}</li> 
1156        </#if> 
1157        <#if baseVariable.faxnummer?? && baseVariable.faxnummer?has_content> 
1158            <li class="fax">${createFaxLink5(baseVariable,'','cBlue','',false)}</li> 
1159        </#if> 
1160        <#if baseVariable.email?? && baseVariable.email?has_content> 
1161            <li class="email">${createEmail(baseVariable,'','cWhite','',false)}</li> 
1162        </#if> 
1163        </ul> 
1164    </#if> 
1165</#macro> 
1166 
1167<#macro addPortrait mitarbeiter> 
1168    <#if mitarbeiter.portrait?has_content> 
1169        <div class="card blue darkbluegradient nobutton"> 
1170            <div class="card-body"> 
1171                <h2 class="card-title fsML mb-4"><span>Mitarbeitenden Portrait</span></h2> 
1172                <div class="card-text marginspans fsS"> 
1173                    <div class="w-100" 
1174                         style="text-align:center;"> 
1175                        <img src="${mitarbeiter.portrait}" 
1176                             alt="Mitarbeitenden Portrait" 
1177                             style="width: 100%; 
1178                                         height: 100%; 
1179                                         max-width:200px"/> 
1180                    </div> 
1181                </div> 
1182            </div> 
1183        </div> 
1184    </#if> 
1185</#macro> 
1186 
1187<#macro addServicesList baseVariable> 
1188    <#if baseVariable.dienstleistungList?size gt 0> 
1189        <h2 class="fsXL mb-2 mt-5"><span style="font-weight: bold">Dienstleistungen</span></h2> 
1190        <div class="mb-5"> 
1191            <ul class="detaillist dienstleistungen fsM"> 
1192                <#list baseVariable.dienstleistungList as dl> 
1193                    <li> 
1194                        <a tabindex="0" href="${utils.getDienstleistungUrl(dl.id)}" class="cBlue w-100 d-block">${dl.name}</a> 
1195                        <span class="tags" aria-label="Tags:"> 
1196                            <#list dl.tags as t> 
1197                                <span class="tag">${t.name}</span> 
1198                            </#list> 
1199                        </span> 
1200                    </li> 
1201                </#list> 
1202            </ul> 
1203        </div> 
1204    </#if> 
1205</#macro> 
1206 
1207<#macro addZustaendigeStelle dienstleistung> 
1208    <#if dienstleistung.einrichtungList?size gt 0> 
1209        <#assign ersteEinr = dienstleistung.einrichtungList[0]> 
1210        <div class="card blue darkbluegradient nobutton no-arrows"> 
1211            <div class="card-body"> 
1212                <div class="card-text"> 
1213                <div class="responsibleOffice"> 
1214                    <h2 class="card-title fsML mb-4"> <span>Zuständige Stelle</span></h2> 
1215                    <@addAddress ersteEinr /> 
1216                    <@addContact ersteEinr/> 
1217                </div> 
1218                </div> 
1219            </div> 
1220        </div> 
1221    </#if> 
1222</#macro> 
1223 
1224<#macro addEmployeeList dienstleistung> 
1225    <#if dienstleistung.mitarbeiterList?size gt 0> 
1226        <h2 class="fsXL mb-2"> 
1227            <span style="font-weight: bold">Ansprechpartner</span> 
1228        </h2> 
1229        <#assign i = 0> 
1230        <#list dienstleistung.mitarbeiterList as dm> 
1231            <#if (i < 20)> 
1232                <div class="card white mb-4 nobutton padleft no-arrows"> 
1233                    <div class="card-body"> 
1234                        <h2 class="card-title cBlue fsM mb-2"> 
1235                            <span class="icon-user" style="margin-left: -24px; margin-top: 2px;"></span> 
1236                            <#if showEmployees> 
1237                                <a class="cWhite" tabindex="0" href="${utils.getMitarbeiterUrl(dm.id)}"><span style="font-weight: bold" id="ansprechpartner_${i}">${dm.getVorname()} ${dm.getFamilienname()}</span></a> 
1238                            <#else> 
1239                                <span id="ansprechpartner_${i}">${dm.getName()}</span> 
1240                            </#if> 
1241                        </h2> 
1242                        <p class="card-text marginspans fsS cGray cardtabletext"> 
1243                            <#if (dm.beschreibung?has_content && showContactEmployeesDescription)> 
1244                                ${dm.beschreibung} 
1245                            </#if> 
1246 
1247                            <#--<#if (dm.einrichtungList?has_content)> 
1248                                ${dm.einrichtungList.get(0).name} 
1249                            </#if> 
1250                            <#if dm.telefonnummer?has_content> 
1251                                ${createPhoneLink5(dm,'','cBlue','font-size: 15px !important; margin-right: 5px;',false)} 
1252                            </#if> 
1253                            <#if dm.mobil?has_content> 
1254                                ${createMobilLink(dm,'','cBlue','font-size: 15px !important; margin-right: 5px;',false)} 
1255                            </#if> 
1256                            <#if dm.email?has_content> 
1257                                ${createEmail(dm,'','cWhite','font-size: 15px !important; margin-right: 5px;',false)} 
1258                            </#if>--> 
1259                            <#if (dm.einrichtungList?? && dm.einrichtungList?has_content) && 
1260                                 (dm.einrichtungList[0]?? && dm.einrichtungList[0]?has_content)> 
1261                                <@addAddress ersteEinr /> 
1262                            </#if> 
1263                            <@addContact dm/> 
1264                        </p> 
1265                    </div> 
1266                </div> 
1267                <#assign i = i+1> 
1268            </#if> 
1269        </#list> 
1270    </#if> 
1271</#macro>