An error occurred while processing the template.
The following has evaluated to null or missing: ==> journalTool.getHTMLTitle(request, title, "portlet-title-wrapper", "portlet-title") [in template "34012#34047#2819307" at line 19, column 7] ---- 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: ${journalTool.getHTMLTitle(request, t... [in template "34012#34047#2819307" at line 19, column 5] ----
1<#assign journalTool = utilLocator.findUtil("lportal-ce-hook", "as.asac.template.tools.JournalTool") />
2<#assign dlTool = utilLocator.findUtil("lportal-ce-hook", "as.asac.template.tools.DLTool") />
3<#assign portletTool = utilLocator.findUtil("lportal-ce-hook", "as.asac.template.tools.PortletTool") />
4
5<#assign request = .vars['request']>
6<#assign title=.vars["reserved-article-title"].data />
7<#assign articleId=.vars["reserved-article-id"].data />
8<#assign date=.vars["reserved-article-display-date"].data />
9<#assign smallImageUrl=.vars["reserved-article-small-image-url"].data />
10<#assign description=.vars["reserved-article-description"].data />
11<#assign themeDisplayStr = request['theme-display']!>
12
13<#assign dateFormatted = journalTool.getDateFormat(date, "dd MMMM yyyy", locale, timezone)>
14
15<script src="${themeDisplay.getPathThemeJavaScript()}/needsharebutton/needsharebutton.js"></script>
16
17<div class="template template-detail template-detail-establecimiento">
18
19 ${journalTool.getHTMLTitle(request, title, "portlet-title-wrapper", "portlet-title")}
20
21 <section class="row mt-4">
22 <section class="<#if validator.isNotNull(smallImageUrl)>col-sm-9</#if> col-12">
23 <div class="text-metadata">
24 <span id="share-${articleId}" class="need-share-button-default"
25 data-share-icon-style="box"
26 data-share-networks="Mailto,Twitter,Pinterest,Facebook,Linkedin"
27 data-share-url="${htmlUtil.escape(themeDisplay.getURLCurrent())}"
28 data-share-title="${htmlUtil.escape(title)}"><!--share--></span>
29 <script type="text/javascript">
30 new needShareDropdown(document.getElementById('share-${articleId}'));
31 </script>
32 </div>
33 <#if validator.isNotNull(Descripcion.data)>
34 <div class="text mb-4">${Descripcion.getData()}</div>
35 </#if>
36
37 <section>
38 <dl class="d-flex flex-wrap">
39 <#if validator.isNotNull(DatosEstablecimiento.Servicios.data)>
40 <dt class="w-25 py-2">${languageUtil.get(locale, "services")}</dt>
41 <dd class="w-75 py-2 border-bottom">${DatosEstablecimiento.Servicios.data}</dd>
42 </#if>
43
44 <#if validator.isNotNull(DatosEstablecimiento.Especialidades.data)>
45 <dt class="w-25 py-2">${languageUtil.get(locale, "lalin-specialties")}</dt>
46 <dd class="w-75 py-2 border-bottom">${DatosEstablecimiento.Especialidades.data}</dd>
47 </#if>
48
49 <#if validator.isNotNull(DatosEstablecimiento.MenuDelDia.data)>
50 <dt class="w-25 py-2">${languageUtil.get(locale, "lalin-today-menu")}</dt>
51 <dd class="w-75 py-2 border-bottom">${DatosEstablecimiento.MenuDelDia.data}</dd>
52 </#if>
53
54 <#if validator.isNotNull(DatosEstablecimiento.Plazas.data)>
55 <dt class="w-25 py-2">${languageUtil.get(locale, "lalin-capacity")}</dt>
56 <dd class="w-75 py-2 border-bottom">${DatosEstablecimiento.Plazas.data}</dd>
57 </#if>
58
59 <#if validator.isNotNull(DatosEstablecimiento.DiasCerrado.data)>
60 <dt class="w-25 py-2">${languageUtil.get(locale, "closed")}</dt>
61 <dd class="w-75 py-2 border-bottom">${DatosEstablecimiento.DiasCerrado.data}</dd>
62 </#if>
63
64 <#if validator.isNotNull(DatosEstablecimiento.CasaCompleta.data) && DatosEstablecimiento.CasaCompleta.data != "-" >
65 <dt class="w-25 py-2">${languageUtil.get(locale, "lalin-full-house")}</dt>
66 <dd class="w-75 py-2 border-bottom">${DatosEstablecimiento.CasaCompleta.data}</dd>
67 </#if>
68
69 <#if validator.isNotNull(DatosEstablecimiento.Observaciones.data)>
70 <dt class="w-25 py-2">${languageUtil.get(locale, "lalin-observations")}</dt>
71 <dd class="w-75 py-2 border-bottom">${DatosEstablecimiento.Observaciones.data}</dd>
72 </#if>
73
74 <#if validator.isNotNull(Contacto.Direccion.data)>
75 <dt class="w-25 py-2">${languageUtil.get(locale, "address")}</dt>
76 <dd class="w-75 py-2 border-bottom">${Contacto.Direccion.data}</dd>
77 </#if>
78
79 <#if validator.isNotNull(Contacto.Telefono.data)>
80 <dt class="w-25 py-2">${languageUtil.get(locale, "phone")}</dt>
81 <dd class="w-75 py-2 border-bottom">${Contacto.Telefono.data}</dd>
82 </#if>
83
84 <#if validator.isNotNull(Contacto.Email.data)>
85 <dt class="w-25 py-2">${languageUtil.get(locale, "email")}</dt>
86 <dd class="w-75 py-2 border-bottom"><a href="mailto:${Contacto.Email.data}">${Contacto.Email.data}</a></dd>
87 </#if>
88
89 <#if validator.isNotNull(Contacto.Web.data)>
90 <dt class="w-25 py-2">${languageUtil.get(locale, "website")}</dt>
91 <dd class="w-75 py-2 border-bottom">
92 <#assign web = journalTool.getHTMLLinks(getterUtil.getLong(groupId), locale, Contacto.Web.getSiblings(), null) />
93 <#if validator.isNotNull(web)>${web}</#if>
94 </dd>
95 </#if>
96
97 <#if validator.isNotNull(Contacto.RedesSociales.Facebook.data) || validator.isNotNull(Contacto.RedesSociales.Instagram.data) || validator.isNotNull(Contacto.RedesSociales.Twitter.data)>
98 <dt class="w-25 py-2">${languageUtil.get(locale, "social")}</dt>
99 <dd class="w-75 py-2 border-bottom">
100 <#if validator.isNotNull(Contacto.RedesSociales.Facebook.data)><div><i class="fab fa-facebook"></i> ${Contacto.RedesSociales.Facebook.data}</div></#if>
101 <#if validator.isNotNull(Contacto.RedesSociales.Instagram.data)><div><i class="fab fa-instagram"></i> ${Contacto.RedesSociales.Instagram.data}</div></#if>
102 <#if validator.isNotNull(Contacto.RedesSociales.Twitter.data)><div><i class="fab fa-twitter"></i> ${Contacto.RedesSociales.Twitter.data}</div></#if>
103 </dd>
104 </#if>
105
106 <#if validator.isNotNull(Coordenadas.Longitud.data) && validator.isNotNull(Coordenadas.Latitud.data)>
107 <dt class="w-25 py-2">${languageUtil.get(locale, "lalin-coordinates")}</dt>
108 <dd class="w-75 py-2 border-bottom">${Coordenadas.Latitud.data}, ${Coordenadas.Longitud.data}</dd>
109 </#if>
110 </dl>
111 </section>
112 </section>
113 <#if validator.isNotNull(smallImageUrl)>
114 <section class="<#if validator.isNotNull(smallImageUrl)>col-sm-3</#if> col-12">
115 <a href="${smallImageUrl}" title="Imagen ${title}" class="image-wrapper image-wrapper-cover image-wrapper-style lightbox" style="background-image: url('${dlTool.getThumbnail(smallImageUrl, 3)}');">
116 <img src="${dlTool.getThumbnail(smallImageUrl, 3)}" alt="Imagen ${title}" />
117 </a>
118 </section>
119 </#if>
120 </section>
121
122 <#assign htmlDocuments = journalTool.getHTMLDocuments(Documentos.Documento.getSiblings()) />
123 <#if validator.isNotNull(htmlDocuments)>
124 <section class="documents">
125 <div class="h4">${languageUtil.get(locale, "documents")}</div>
126 ${htmlDocuments}
127 </section>
128 </#if>
129
130 <#assign htmlGallery = journalTool.getHTMLGallery(Galeria.Imagen.getSiblings(), 3, "gallery-thumbs") />
131 <#if validator.isNotNull(htmlGallery)>
132 <section class="image-gallery">
133 <div class="h4">${languageUtil.get(locale, "image-gallery")}</div>
134 ${htmlGallery}
135 </section>
136 </#if>
137
138 <#assign htmlLinks = journalTool.getHTMLLinks(getterUtil.getLong(groupId), locale, Enlaces.Enlace.getSiblings(), Enlaces.EnlaceInterno.getSiblings()) />
139 <#if validator.isNotNull(htmlLinks)>
140 <section class="links">
141 <div class="h4">${languageUtil.get(locale, "links")}</div>
142 ${htmlLinks}
143 </section>
144 </#if>
145
146 <#if validator.isNotNull(Coordenadas.Longitud.data) && validator.isNotNull(Coordenadas.Latitud.data)>
147 <section id="map" style="width: 100%; height: 300px; z-index:1"><!--MAPA--></section>
148 <script src="/o/aytolalin-theme/js/leaflet/leaflet.js"></script>
149 <script type="text/javascript">
150 AUI().ready('aui-base', function(A){
151 var lat = "${Coordenadas.Latitud.data}",
152 lng = "${Coordenadas.Longitud.data}",
153 map = new L.map('map', {});
154 zoom = 16;
155
156 map.setView([lat, lng], zoom);
157 L.marker([lat, lng]).addTo(map);
158 L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
159 attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors.'
160 }).addTo(map);
161 }); //AUI.ready
162 </script>
163 </#if>
164</div>