Asset Publisher
An error occurred while processing the template.
The following has evaluated to null or missing: ==> lat [in template "21222#21260#28866983" at line 37, column 31] ---- 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: #assign equLatitud = lat.getData() [in template "21222#21260#28866983" at line 37, column 9] ----
1<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
2<#assign lang = locale?split('_')[0]>
3<#assign scopeGroupId = getterUtil.getLong(themeDisplay.getScopeGroupId())>
4<#-- CONSTANTES-->
5<#assign lblServicioTramiteProyecto = "Zerbitzu, tramite eta proiektuak">
6<#assign lblGaiak = "Gaiak">
7<#if locale == "es_ES">
8 <#assign lblServicioTramiteProyecto = "Servicios, trámites y proyectos">
9 <#assign lblGaiak = "Temas">
10</#if>
11
12<#if dir.getChild("dirCodEdificio").getData() != "">
13 <#-- buscamos el edificio en el que se situa la oficina-->
14 <#assign COD_ESQUEMA_EQUIPACION = "28733825">
15 <#assign equipaciones = journalArticleLocalService.getStructureArticles(scopeGroupId, COD_ESQUEMA_EQUIPACION)>
16 <#foreach equipacion in equipaciones>
17 <#if journalArticleLocalService.isLatestVersion(equipacion.groupId, equipacion.articleId, equipacion.version)>
18 <#assign document = saxReaderUtil.read(equipacion.getContentByLocale(locale.toString()))>
19 <#assign rootElement = document.getRootElement()>
20 <#assign codEqui = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='codigo']").selectSingleNode(rootElement).getStringValue())>
21 <#if dir.getChild("dirCodEdificio").getData() == codEqui>
22 <#assign equIzena = equipacion.getTitle(locale)>
23 <#assign equUrl = equipacion.urlTitle>
24 <#assign equDireccion = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='direccion']").selectSingleNode(rootElement).getStringValue())>
25 <#assign equImagenPortadaURL = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='imagenPortadaURL']").selectSingleNode(rootElement).getStringValue())>
26 <#assign equLatitud = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='latitud']").selectSingleNode(rootElement).getStringValue())>
27 <#assign equLongitud = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='longitud']").selectSingleNode(rootElement).getStringValue())>
28 <#break>
29 </#if>
30 </#if>
31 </#foreach>
32 <#assign codEqui = "">
33<#else>
34 <#assign equIzena = "">
35 <#assign equDireccion = "">
36 <#assign equImagenPortadaURL = "">
37 <#assign equLatitud = lat.getData()>
38 <#assign equLongitud = lon.getData()>
39 <#assign equUrl = "">
40</#if>
41<!-- Oficina -->
42<div class="ficha-oficina">
43 <h1>
44 ${.vars['reserved-article-title'].getData()}
45 </h1>
46 <div class="dos-columnas">
47 <div class="columna">
48 <div class="datos infoBanner">
49 <#if subNombre.getData() != "">
50 <p class="subtitulo">${subNombre.getData()}</p>
51 </#if>
52 <p class="dato direccion">
53 <#if equIzena != "">
54 <span class="nombre">${equIzena}</span><br/>
55 </#if>
56 ${dir.getChild("dirDire1").getData()}<br />
57 ${dir.getChild("dirResto").getData()}
58 </p>
59 <#if agenda.getChild("agTelefono").getData() != "">
60 <p class="dato telefonoa"><a href="tel:${agenda.getChild("agTelefono").getData()}">${agenda.getChild("agTelefono").getData()}</a></p>
61 </#if>
62 <#if agenda.getChild("agEmail").getData() != "">
63 <p class="dato email"><a href="mailto:${agenda.getChild("agEmail").getData()}">${agenda.getChild("agEmail").getData()}</a></p>
64 </#if>
65 <#if hor.getChild("horHorario").getData() != "">
66 <p class="dato ordutegia">
67 <strong>${hor.getChild("horLiteral").getData()}</strong><br /><br />
68 ${hor.getChild("horHorario").getData()}
69 </p>
70 </#if>
71 <#-- INI REDES SOCIALES-->
72 <#if siguenos.redNombre.getData() != "">
73 <div class="redes">
74 <#foreach cur_red in siguenos.redNombre.getSiblings()> <span class="${cur_red.getChild("redTipo").getData()}">
75 <a href="${cur_red.getChild("redUrl").getData()}" rel="external" target="_blank" title="${cur_red.getChild("redTipo").getData()} ${cur_red.getData()}">
76 <#if cur_red.getChild("redTipo").getData() == "facebook"> <img alt="facebook" src="/documents/9774148/21632780/Facebook/3a10cd66-f046-d6ba-1a5a-2ac6912a5fb6" />
77 <#elseif cur_red.getChild("redTipo").getData() == "twitter"> <img alt="Twitter" src="/documents/9774148/21632780/twitter/04abb2f4-3718-23e7-0017-fc934090bf9a" />
78 <#elseif cur_red.getChild("redTipo").getData() == "instagram"> <img alt="Instagram" src="/documents/9774148/21632780/instagram/0ff74667-2d2b-a02d-a825-de2d73725fea" />
79 <#elseif cur_red.getChild("redTipo").getData() == "youtube"> <img alt="Youtube" src="/documents/9774148/21632780/youtube/404d2b0b-3ff6-06cf-3153-71b6b6fc8474" />
80 <#elseif cur_red.getChild("redTipo").getData() == "blog"> <img alt="Blog" src="/documents/9774148/21632780/blog/a8d497dc-bbb9-294b-04fb-5b0ffc826ac9" />
81 </#if> <!--i class="icon-${cur_red.getChild("redTipo").getData()}"> </i-->
82 <span class="hide-text">${cur_red.getChild("redTipo").getData()} ${cur_red.getData()}</span>
83 </a>
84 </span>
85 </#foreach>
86 </div>
87 </#if>
88 <#-- FIN REDES SOCIALES-->
89 </div>
90
91 <#assign auxStringFormateado = "">
92
93 <#-- buscamos los servicios asociados a la oficina-->
94 <#assign COD_ESQUEMA_SERVICIO = "23884181">
95 <#assign servicios = journalArticleLocalService.getStructureArticles(scopeGroupId, COD_ESQUEMA_SERVICIO)>
96 <#foreach servicio in servicios>
97 <#if journalArticleLocalService.hasArticle(servicio.groupId, servicio.articleId)>
98 <#if journalArticleLocalService.isLatestVersion(servicio.groupId, servicio.articleId, servicio.version)>
99 <#assign document = saxReaderUtil.read(servicio.getContentByLocale(locale.toString()))>
100 <#assign rootElement = document.getRootElement()>
101 <#foreach oficina in saxReaderUtil.createXPath("dynamic-element[@name='codOficinas']").selectNodes(rootElement)>
102 <#if stringUtil.trim(oficina.getStringValue()) == codigo.getData()>
103 <#assign servCodigo = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='codigo']").selectSingleNode(rootElement).getStringValue())>
104 <#assign servTitulo = servicio.getTitle(locale)>
105 <#assign servURL = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='urlExterno']").selectSingleNode(rootElement).getStringValue())>
106 <#if servTitulo != "">
107 <#if servURL == "">
108 <#assign auxStringFormateado = auxStringFormateado + "<li class='uuServicio'><a href='/" + lang + "/-/" + servicio.urlTitle + "'>" + servTitulo + "</a></li>">
109 <#else>
110 <#assign auxStringFormateado = auxStringFormateado + "<li class='uuServicio'><a href='" + servURL + "' target='_blank'>" + servTitulo + "</a></li>">
111 </#if>
112 </#if>
113 </#if>
114 </#foreach>
115 <#assign codServicio = "">
116 <#assign servURL = "">
117 </#if>
118 </#if>
119 </#foreach>
120 <#-- buscamos los trámites asociados al servicio-->
121 <#assign COD_ESQUEMA_TRAMITE = "21801873">
122 <#assign tramites = journalArticleLocalService.getStructureArticles(scopeGroupId, COD_ESQUEMA_TRAMITE)>
123 <#foreach tramite in tramites>
124 <#if journalArticleLocalService.isLatestVersion(tramite.groupId, tramite.articleId, tramite.version)>
125 <#assign document = saxReaderUtil.read(tramite.getContentByLocale(locale.toString()))>
126 <#assign rootElement = document.getRootElement()>
127 <#assign codServicio = "">
128 <#if saxReaderUtil.createXPath("dynamic-element[@name='codServicio']").selectSingleNode(rootElement)??>
129 <#assign codServicio = saxReaderUtil.createXPath("dynamic-element[@name='codServicio']").selectSingleNode(rootElement)>
130 </#if>
131
132 </#if>
133 </#foreach>
134
135 <#if auxStringFormateado != ""> <h2>${lblServicioTramiteProyecto}</h2>
136 <ul>
137 ${auxStringFormateado}
138 </ul>
139 </#if>
140 <#-- buscamos los temas asociados al servicio-->
141 <#assign COD_ESQUEMA_TEMA = "27592875">
142 <#assign temas = journalArticleLocalService.getStructureArticles(scopeGroupId, COD_ESQUEMA_TEMA)>
143 <#assign auxStringFormateado = "">
144 <#foreach tema in temas>
145 <#if journalArticleLocalService.isLatestVersion(tema.groupId, tema.articleId, tema.version)>
146 <#assign document = saxReaderUtil.read(tema.getContentByLocale(locale.toString()))>
147 <#assign rootElement = document.getRootElement()>
148 <#assign codOficina = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='codOficina']").selectSingleNode(rootElement).getStringValue())>
149 <#if codigo?? && codigo.getData()!="">
150 <#assign codTema = codigo.getData()>
151 <#else>
152 <#assign codTema ="">
153 </#if>
154 <#if codigo.getData() == codOficina>
155 <#assign temaURL = tema.urlTitle>
156 <#assign temaNombre = tema.getTitle(locale)>
157 <#assign auxStringFormateado = auxStringFormateado + "<li class='uuTema'><a href='/" + lang + "/-/" + temaURL + "' title='+ info" + temaNombre + "'>" + temaNombre + "</a></li>">
158 <#else>
159 <#if codTemas?? && codTemas.getSiblings()?has_content>
160 <#foreach cur_codTemas in codTemas.getSiblings()>
161 <#if cur_codTemas.getData() == codTema>
162 <#assign temaURL = tema.urlTitle>
163 <#assign temaNombre = tema.getTitle(languageId)>
164 <#assign auxStringFormateado = auxStringFormateado + "<li class='uuTema'><a href='/" + lang + "/-/" + temaURL + "' title='+ info" + temaNombre + "'>" + temaNombre + "</a></li>">
165 </#if>
166 </#foreach>
167 </#if>
168
169 </#if>
170 <#assign codOficina = "">
171 </#if>
172 </#foreach>
173 <#if auxStringFormateado != "">
174 <h2>${lblGaiak}</h2>
175 <ul>
176 ${auxStringFormateado}
177 </ul>
178 </#if>
179 </div>
180 <div class="columna">
181 <div class="foto">
182 <#if izena?? && izena.getData()!="">
183 <img alt="${izena.getData()}" src="${imagenPortadaURL.getData()}" />
184 <#else>
185 <img alt="" src="${imagenPortadaURL.getData()}" />
186 </#if>
187 </div>
188
189 <div id="map" style="width: 100%; height: 433px"></div>
190
191 </div>
192 </div>
193 <#if informacion.getData() != ""> <hr />
194 <div class="bloque-servicios contenido">${informacion.getData()}</div>
195 </#if>
196 <#if urlExterno.getData() != ""> <hr />
197 <div class="bloque-servicios contenido"><a taget="_blank" href="${urlExterno.getData()}">${urlExterno.getData()}</a></div>
198 </#if>
199</div>
200
201
202
203
204
205<!-- LEAFLET MAPA -->
206<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"
207 integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY="
208 crossorigin=""/>
209<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"
210 integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo="
211 crossorigin=""></script>
212<script type="text/javascript" src="/documents/9774148/28671255/leaflet.markercluster.js"></script>
213
214<link rel="stylesheet" href="/documents/9774148/28671255/MarkerCluster.Default.min.css" />
215
216<script type="text/javascript" src="/documents/9774148/28671255/L.Control.Locate.min.js"></script>
217
218<link rel="stylesheet" href="/documents/9774148/28671255/L.Control.Locate.css"/>
219
220<script type="text/javascript" src="/documents/9774148/28671255/Control.FullScreen.js"></script>
221
222<link rel="stylesheet" href="/documents/9774148/28671255/Control.FullScreen.css"/>
223
224<script>
225
226 // INICIAMOS EL MAPA
227
228 var URL_KARTOGRAFIA = 'https://www.geo.euskadi.eus/geoeuskadi/rest/services/U11/WMTS_KARTO/MapServer/WMTS?layer=U11_WMTS_KARTO&style=default&tilematrixset=default028mm&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fpng&TileMatrix={z}&TileCol={x}&TileRow={y}';
229 var URL_ORTOFOTO = 'https://www.geo.euskadi.eus/WMS_ORTOARGAZKIAK';
230
231 // Mapa hasieratzen dugu
232 var map = L.map('map',
233 { scrollWheelZoom: false,
234 maxZoom: 18,
235 fullscreenControl: true,
236 fullscreenControlOptions: {
237 position: 'topleft'
238 }
239 });
240
241 var scale = L.control.scale({"metric":true, "imperial":false}).addTo(map);
242
243 var lc = L.control.locate({
244 position: 'topleft',
245 strings: {
246 title: "Non nago / Donde estoy"
247 }
248 }).addTo(map);
249
250 var base = L.tileLayer( URL_KARTOGRAFIA, { attribution: "Eusko Jaurlaritza / Gobierno Vasco" }).addTo(map);
251 var pnoa = L.tileLayer.wms(URL_ORTOFOTO, {
252 layers: "ORTO_EGUNERATUENA_MAS_ACTUALIZADA",//nombre de la capa (ver get capabilities)
253 format: 'image/jpeg',
254 transparent: true,
255 version: '1.3.0',//wms version (ver get capabilities)
256 attribution: "Eusko Jaurlaritza / Gobierno Vasco",
257 opacity: 1
258 });
259
260 var capas_base = {"Base": base, "Satelite": pnoa};
261 var layers = L.control.layers(capas_base).addTo(map);
262
263 function onMapClick(e) {
264 console.log("You clicked the map at " + e.latlng.toString())
265 }
266 map.on('click', onMapClick);
267</script>
268
269<script>
270 // ******************
271 // AÑADIR MARCADOR
272 var marker = L.marker([${equLatitud}, ${equLongitud}]).addTo(map);
273 map.setView([${equLatitud}, ${equLongitud}], 18);
274 <#if equUrl != "">
275 marker.bindPopup("<h5>${.vars['reserved-article-title'].getData()}</h5><p>${equIzena}<br/>${dir.getChild("dirDire1").getData()}<br />${dir.getChild("dirResto").getData()}<br /><a href='/${lang}/-/${equUrl}' title='Non nago'>+ info</a></p>").openPopup();
276 <#else>
277 marker.bindPopup("<h5>${.vars['reserved-article-title'].getData()}</h5>${dir.getChild("dirDire1").getData()}<br />${dir.getChild("dirResto").getData()}</p>").openPopup();
278 </#if>
279</script>