Oficinas y edificios municipales

Sala polivalente 1

Se ha producido un error al procesar la plantilla.
Multiple compatible overloaded variations were found with the same priority.
The FTL type of the argument values were: Null.
The Java type of the argument values were: Null.
The matching overload was searched among these members:
    com.liferay.journal.model.impl.JournalArticleImpl.getTitle(String),
    com.liferay.journal.model.impl.JournalArticleImpl.getTitle(),
    com.liferay.journal.model.impl.JournalArticleImpl.getTitle(Locale),
    com.liferay.journal.model.impl.JournalArticleImpl.getTitle(String, boolean),
    com.liferay.journal.model.impl.JournalArticleImpl.getTitle(Locale, boolean)

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign servTitulo = servicio.getTitl...  [in template "21222#21260#28733842" at line 71, column 41]
----
1<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
2<#assign dLFileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryService")> 
3<#assign lang = locale?split('_')[0]> 
4<#assign scopeGroupId = getterUtil.getLong(themeDisplay.getScopeGroupId())> 
5 
6<div class="ficha-equipamiento"> 
7    <h1>${.vars['reserved-article-title'].getData()}</h1> 
8    <div class="informacion dos-columnas"> 
9        <div class="columna"> 
10            <div class="foto"><img alt="" src="${imagenPortadaURL.getData()}" /></div> 
11        </div> 
12        <div class="columna"> 
13            <div id="map" style="width: 100%; height: 433px;"></div> 
14        </div> 
15    </div> 
16    <#if informacion.getData() != "">        <hr /> 
17        <div class="info">${informacion.getData()}</div> 
18    </#if>    <div class="uu_gaineko_bordea"> 
19    <ul> 
20	<#-- buscamos las oficinas situadas en el edificio--> 
21	<#assign COD_ESQUEMA_OFICINA = "28866968"> 
22	<#assign oficinas = journalArticleLocalService.getStructureArticles(scopeGroupId, COD_ESQUEMA_OFICINA)>         
23	<#foreach oficina in oficinas>             
24		<#if journalArticleLocalService.isLatestVersion(oficina.groupId, oficina.articleId, oficina.version)> 
25			<#assign document = saxReaderUtil.read(oficina.getContentByLocale(locale.toString()))> 
26			<#assign rootElement = document.getRootElement()> 
27			<#assign dir = saxReaderUtil.createXPath("dynamic-element[@name='dir']").selectSingleNode(rootElement)> 
28			<#assign codOficina = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='dirCodEdificio']").selectSingleNode(dir).getStringValue())> 
29			<#assign ofiIzena = oficina.getTitle(themeDisplay.getLanguageId())>                 
30			<#if codigo.getData() == codOficina>                     
31                <#if direccion?? && direccion.getData()!=""> 
32                <#assign ofiDireccion = direccion.getData()> 
33                <#else> 
34                <#assign ofiDireccion =""> 
35                </#if> 
36 
37				<#assign dirNode = saxReaderUtil.createXPath("dynamic-element[@name='dir']").selectSingleNode(rootElement)> 
38				<#assign ofiRestoDireccion = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='dirResto']").selectSingleNode(dirNode).getStringValue())> 
39				<#assign ofiImagenPortadaURL = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='imagenPortadaURL']").selectSingleNode(rootElement).getStringValue())> 
40				<#if ofiImagenPortadaURL!=""> 
41                    <#assign imagen_map = ofiImagenPortadaURL?eval /> 
42						<#if imagen_map.groupId?? && imagen_map.groupId?has_content && imagen_map.uuid?? && imagen_map.uuid?has_content>  
43							<#assign fileMi = dLFileEntryService.getFileEntryByUuidAndGroupId(imagen_map.uuid?string, getterUtil.getLong(imagen_map.groupId))> 
44							<#assign miRuta="/documents/${imagen_map.groupId}/${fileMi.getFileEntryId()}/${imagen_map.title}/${imagen_map.uuid}"> 
45						</#if>     
46				<#else>                            
47					<#assign miRuta="">             
48				</#if> 
49				 
50				 
51				<#assign ofiUrl = oficina.urlTitle>                     
52				<li> 
53					<a href="${ofiUrl}" alt="${ofiIzena} orria"> 
54					<span class="imagen"><img style ="height: 255px;object-fit: cover;" src="${miRuta}" alt="${ofiIzena} logo" /></span> 
55					</a> 
56					<span class="titulo">${ofiIzena}<br />${ofiRestoDireccion}</span> 
57				</li> 
58			</#if>             
59		</#if>         
60	</#foreach> 
61	<#-- buscamos los servicios asociados al equipamiento--> 
62	<#assign COD_ESQUEMA_SERVICIO = "23884181"> 
63	<#assign servicios = journalArticleLocalService.getStructureArticles(scopeGroupId, COD_ESQUEMA_SERVICIO)>         
64	<#foreach servicio in servicios>             
65		<#if journalArticleLocalService.isLatestVersion(servicio.groupId, servicio.articleId, servicio.version)> 
66			<#assign document = saxReaderUtil.read(servicio.getContentByLocale(locale.toString()))> 
67			<#assign rootElement = document.getRootElement()>                 
68			<#foreach codEquipamiento in saxReaderUtil.createXPath("dynamic-element[@name='codEquipamientos']").selectNodes(rootElement)>                     
69				<#if stringUtil.trim(codEquipamiento.getStringValue()) == codigo.getData()> 
70					<#assign servCodigo = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='codigo']").selectSingleNode(rootElement).getStringValue())> 
71					<#assign servTitulo = servicio.getTitle(languageId)> 
72					<#assign servURL = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='urlExterno']").selectSingleNode(rootElement).getStringValue())>                         
73					<li> 
74					<#if servURL == "">                            
75						<a href="/${lang}/-/${servicio.urlTitle}"> 
76					<#else>                             
77						<a href="${servURL}" target="_blank"> 
78					</#if>                                 
79					<span class="titulo">${servTitulo}</span> 
80					</a> 
81					</li> 
82				</#if>                 
83			</#foreach>             
84		</#if>         
85	</#foreach>     
86	</ul> 
87    </div> 
88</div> 
89 
90<!-- LEAFLET MAPA --> 
91 
92<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" 
93   integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=" 
94   crossorigin=""/> 
95<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" 
96   integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" 
97   crossorigin=""></script> 
98<script type="text/javascript" src="/documents/9774148/28671255/leaflet.markercluster.js"></script> 
99 
100<link rel="stylesheet" href="/documents/9774148/28671255/MarkerCluster.Default.min.css" /> 
101 
102<script type="text/javascript" src="/documents/9774148/28671255/L.Control.Locate.min.js"></script> 
103 
104<link rel="stylesheet" href="/documents/9774148/28671255/L.Control.Locate.css"/> 
105 
106<script type="text/javascript" src="/documents/9774148/28671255/Control.FullScreen.js"></script> 
107 
108<link rel="stylesheet" href="/documents/9774148/28671255/Control.FullScreen.css"/> 
109<script> 
110     
111    // INICIAMOS EL MAPA 
112     
113    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}'; 
114    var URL_ORTOFOTO = 'https://www.geo.euskadi.eus/WMS_ORTOARGAZKIAK'; 
115     
116    // Mapa hasieratzen dugu 
117    var map = L.map('map',  
118            {   scrollWheelZoom: false, 
119                maxZoom: 18, 
120                fullscreenControl: true, 
121                fullscreenControlOptions: { 
122                    position: 'topleft' 
123
124            }); 
125 
126    var scale = L.control.scale({"metric":true, "imperial":false}).addTo(map); 
127    							 
128	var lc = L.control.locate({ 
129		position: 'topleft', 
130		strings: { 
131			title: "Non nago / Donde estoy" 
132
133	}).addTo(map); 
134	 
135    var base = L.tileLayer( URL_KARTOGRAFIA, { attribution: "Eusko Jaurlaritza / Gobierno Vasco" }).addTo(map); 
136    var pnoa = L.tileLayer.wms(URL_ORTOFOTO, { 
137                    layers: "ORTO_EGUNERATUENA_MAS_ACTUALIZADA",//nombre de la capa (ver get capabilities) 
138                    format: 'image/jpeg', 
139                    transparent: true, 
140                    version: '1.3.0',//wms version (ver get capabilities) 
141                    attribution: "Eusko Jaurlaritza / Gobierno Vasco", 
142                    opacity: 1 
143                }); 
144                 
145    var capas_base = {"Base": base, "Satelite": pnoa}; 
146    var layers = L.control.layers(capas_base).addTo(map); 
147     
148    function onMapClick(e) { 
149        console.log("You clicked the map at " + e.latlng.toString()) 
150
151    map.on('click', onMapClick); 
152</script> 
153 
154<script> 
155    // ****************** 
156    //  AÑADIR MARCADOR 
157    var marker = L.marker([${latitud.getData()?replace(',','.')}, ${longitud.getData()?replace(',','.')}]).addTo(map); 
158    map.setView([${latitud.getData()?replace(',','.')}, ${longitud.getData()?replace(',','.')}], 18) 
159    marker.bindPopup("<h5>${.vars['reserved-article-title'].getData()}</h5><p>${direccion.getData()}</p>").openPopup(); 
160     
161</script> 
162<style> 
163   .ficha-equipamiento .foto img{ 
164      display: block; 
165      object-fit: cover; 
166      height: 433px; 
167
168   .ficha-equipamiento .informacion{ 
169      margin-bottom: 15px; 
170
171</style>