Les sublimes murs de la mer Cantabrique
Une erreur s'est produite lors du traitement du gabarit.
The following has evaluated to null or missing:
==> getFileEntry(documento4,groupIdAsLong)  [in template "1369164#1369202#1381196" at line 664, column 94]

----
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: #assign fileEntry = getFileEntry(docu...  [in template "1369164#1369202#1381196" at line 664, column 73]
----
1<#-- SERVICIOS --> 
2<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")> 
3 
4<#assign searcher = serviceLocator.findService("net.iytu.bizkaia.turismo.filterservices.service.BizkaiaTurismoFilterService")>  
5 
6<#assign ddmTemplateLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMTemplateLocalService")> 
7 
8<#assign dynamicQueryFactoryUtil = serviceLocator.findService("com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil")> 
9<#assign propertyFactoryUtil = staticUtil["com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil"]> 
10 
11<#assign urlEncoder = staticUtil["java.net.URLEncoder"]> 
12 
13<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
14 
15<#assign fileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") > 
16 
17<#assign textFormatter = staticUtil["com.liferay.portal.kernel.util.TextFormatter"]> 
18 
19<#assign assetCategoryPropertyLocalService  = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryPropertyLocalService")> 
20 
21<#-- servicios related asset subhome --> 
22<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")> 
23 
24<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
25<#assign journalArticleResourceLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService")> 
26 
27 
28<#-- VARIABLES --> 
29<#assign articleId = .vars['reserved-article-id'].data > 
30<#if request?has_content> 
31	<#assign portletNamespace = request['theme-display']['portlet-display']['id'] + '_' > 
32	<#--  <#assign completeCurrentUrl = urlEncoder.encode((request["attributes"]["CURRENT_COMPLETE_URL"])?string?split("?")[0]?string, "UTF-8")>  --> 
33	<#assign completeCurrentUrl = urlEncoder.encode((themeDisplay.getPortalURL()+themeDisplay.getURLCurrent())?string?split("?")[0]?string, "UTF-8")> 
34<#else> 
35    <#assign portletNamespace = articleId + '_'> 
36    <#assign completeCurrentUrl = themeDisplay.getPortalURL()> 
37</#if> 
38 
39<#assign articleTitle = .vars['reserved-article-title'].data > 
40 
41<#assign encodedTitle = urlEncoder.encode(articleTitle, "UTF-8")> 
42 
43<#assign themeDisplay = serviceContext.getThemeDisplay() /> 
44<#assign languageId = themeDisplay.getLanguageId() > 
45<#assign layout = themeDisplay.getLayout() /> 
46 
47<#assign vocabularyCategories = themeDisplay.getThemeSetting("vocabulary-id") > 
48 
49<#-- obtener subhome enlazada como related assets --> 
50<#assign journalArticleClassName = "com.liferay.journal.model.JournalArticle"> 
51 
52<#assign introSubhomeStructureId = themeDisplay.getThemeSetting("structure-introsubhome-id") > 
53 
54<#assign reportajeArticle = journalArticleLocalService.getArticle(groupId, articleId) > 
55<#assign reportajeEntry = assetEntryLocalService.getEntry(journalArticleClassName, reportajeArticle.getResourcePrimKey()) > 
56 
57<#-- recoger título, entradilla y color del contenido subhome relacionado--> 
58<#assign assetEntryQuery = getAssetEntryQuery(reportajeEntry.getClassNameId(), getterUtil.getLong(introSubhomeStructureId), reportajeEntry.getEntryId(), "publishDate", "ASC")> 
59<#assign subhomeEntries = assetEntryLocalService.getEntries(assetEntryQuery)> 
60 
61<#assign colorSubhome ="#00e78d"> 
62<#assign tituloSubhome = ""> 
63<#assign entradillaSubhome =""> 
64 
65<#if 1 == subhomeEntries?size> 
66	<#list subhomeEntries as e> 
67		<#assign journalArticleResource = journalArticleResourceLocalService.fetchJournalArticleResource(getterUtil.getLong(e.getClassPK())) > 
68		<#assign renderer = e.getAssetRenderer()> 
69		<#assign subhomeArticle = renderer.getArticle() > 
70		<#assign document = saxReaderUtil.read(subhomeArticle.getContentByLocale(locale)) > 
71		<#assign rootElement = document.getRootElement() > 
72		<#assign tituloSubhome = saxReaderUtil.createXPath("dynamic-element[@name='titulo']/dynamic-content").selectSingleNode(rootElement).getStringValue() > 
73		<#assign entradillaSubhome = saxReaderUtil.createXPath("dynamic-element[@name='entradilla']/dynamic-content").selectSingleNode(rootElement).getStringValue()  > 
74		<#assign colorSubhome = saxReaderUtil.createXPath("dynamic-element[@name='color']/dynamic-content").selectSingleNode(rootElement).getStringValue() > 
75	</#list> 
76</#if> 
77 
78<#-- recoger eventos relacionados--> 
79<#assign eventStructureId = themeDisplay.getThemeSetting("structure-event-id") > 
80 
81<#assign assetEntryQuery = getAssetEntryQuery(reportajeEntry.getClassNameId(), getterUtil.getLong(eventStructureId), "0", "publishDate", "ASC")> 
82<#assign eventEntries = assetEntryLocalService.getEntries(assetEntryQuery)> 
83 
84<#if searcher?exists> 
85    <#assign eventFinalEntries = searcher.getDestacadoEventoByLocale(eventEntries, locale)> 
86    <!-- eventFinalEntries?size = ${eventFinalEntries?size} --> 
87<#else> 
88    <#assign eventFinalEntries = ""> 
89    <!-- no hay eventFinalEntries --> 
90</#if> 
91 
92<#-- recoger descuentos relacionados--> 
93<#assign descuentoStructureId = themeDisplay.getThemeSetting("structure-descuento-id") > 
94<#assign assetEntryQuery = getAssetEntryQuery(reportajeEntry.getClassNameId(), getterUtil.getLong(descuentoStructureId), reportajeEntry.getEntryId(), "publishDate", "ASC")> 
95<#assign descuentosEntries = assetEntryLocalService.getEntries(assetEntryQuery)> 
96 
97 
98<#if slider.getSiblings()?has_content> 
99    <#assign arraySlider=[]> 
100	<#list slider.imagenSlider.getSiblings() as cur_img> 
101		<#if !validator.equals("",cur_img.data)> 
102		    <#assign arraySlider = arraySlider + [cur_img.getData()]> 
103		</#if> 
104	</#list> 
105	<#if 0 < arraySlider?size> 
106        <section id="HugeSlider" class="huge-slider"> 
107    		<div class="container_fluid"> 
108    		    <div class="row"> 
109    		        <div class="col-xs-12 col-sm-12 col-md-12 slider-container"> 
110    		            <ul class="slider"> 
111    		                <#list arraySlider as cur_slide> 
112				                <li> 
113				                    <div class="imagen_fondo_slider" style="background-image:url('${cur_slide}');"></div> 
114				                </li> 
115    			            </#list> 
116    		            </ul> 
117    		        </div> 
118    		    </div> 
119    		</div> 
120        </section>  
121    	<script> 
122    	$(document).ready(function() { 
123    	 	$("#HugeSlider .slider").lightSlider({ 
124                item: 1, 
125                loop: false, 
126                keyPress: true, 
127                controls:true, 
128                pager: false, 
129                enableDrag: true, 
130                prevHtml: '<span class="sr-only"><@liferay.language key="previous" /></span>', 
131                nextHtml: '<span class="sr-only"><@liferay.language key="next" /></span>',  
132                responsive : [ 
133
134                    breakpoint:993, 
135                    settings: { 
136                        pager: true 
137
138
139                 
140
141            }); 
142    	}); 
143        </script> 
144    </#if> 
145 </#if> 
146<!-- <div class="container-fluid bgcolor" id="turi-contenedor-anclas"> --> 
147<div class="container-fluid bgcolor p-0" id="turi-contenedor-anclas">    	 
148	<div class="container p-0"> 
149			<div class="row"> 
150				<div class="col-md-10 col-md-offset-1 visible-md visible-lg"> 
151					<nav class="anclas"> 
152					<ul class="nav">						 
153						<#if !validator.equals("", rutas.parrafoRutas1.data)> 
154							<li><a href="#rutas"> 
155								<#if rutas.tituloAlternativoRutas?? && !validator.equals("", rutas.tituloAlternativoRutas.data)> 
156									${rutas.tituloAlternativoRutas.getData()} 
157								<#else> 
158									<@liferay.language key="iytu.reportaje.rutas" /> 
159								</#if> 
160							</a></li> 
161						</#if>						 
162						<#if !validator.equals("", comoLlegar.tituloLlegar.data)> 
163							<li><a href="#llegar"><@liferay.language key="iytu.reportaje.como-llegar" /></a></li> 
164						</#if>		 
165						<#if !validator.equals("", dondeComer.textoComer.data)> 
166							<li><a href="#comer"><@liferay.language key="iytu.reportaje.donde-comer" /></a></li> 
167						</#if>		 
168						<#if !validator.equals("", dondeDormir.textoDormir.data)> 
169							<li><a href="#dormir"><@liferay.language key="iytu.reportaje.donde-alojarse" /></a></li> 
170						</#if>									 
171						<li><a href="#sliderEventos"><@liferay.language key="iytu.reportaje.eventos" /></a></li> 
172						<li><a href="#bloqueDescuentos"><@liferay.language key="iytu.reportaje.downloads" /></a></li> 
173						<li><a href="#lugaresInteres"><@liferay.language key="iytu.reportaje.lugares-interes" /></a></li> 
174					</ul> 
175					</nav> 
176				</div> 
177				<div class="col-xs-12 col-sm-12 hidden-md hidden-lg p-0"> 
178	<nav class="anclas"> 
179		<div class="bootstrap-select btn-group"> 
180				<button type="button" class="btn dropdown-toggle btn-default, btn-filtro" data-toggle="dropdown" aria-owns="tab_selector1" aria-expanded="false" id="dropdown_anclas"><@liferay.language key="iytu.reportaje.ir-a" /><span class="bs-caret"><span class="caret"></span></span> 
181                </button> 
182                <div class="dropdown-menu open"> 
183					<ul class="dropdown-menu inner nav" id="tab_selector1" aria-expanded="false"> 
184							<#if !validator.equals("", rutas.parrafoRutas1.data)> 
185								<li><a href="#rutas"> 
186									<#if rutas.tituloAlternativoRutas?? && !validator.equals("", rutas.tituloAlternativoRutas.data)> 
187										${rutas.tituloAlternativoRutas.getData()} 
188									<#else> 
189										<@liferay.language key="iytu.reportaje.rutas" /> 
190									</#if> 
191								</a></li> 
192							</#if>	 
193							<#if !validator.equals("", comoLlegar.tituloLlegar.data)> 
194								<li><a href="#llegar"><@liferay.language key="iytu.reportaje.como-llegar" /></a></li> 
195							</#if> 
196							<#if !validator.equals("", dondeComer.textoComer.data)> 
197								<li><a href="#comer"><@liferay.language key="iytu.reportaje.donde-comer" /></a></li> 
198							</#if> 
199							<#if !validator.equals("", dondeDormir.textoDormir.data)> 
200								<li><a href="#dormir"><@liferay.language key="iytu.reportaje.donde-alojarse" /></a></li> 
201							</#if> 
202                            <li><a href="#sliderEventos"><@liferay.language key="iytu.reportaje.eventos" /></a></li> 
203                            <li><a href="#bloqueDescuentos"><@liferay.language key="iytu.reportaje.downloads" /></a></li> 
204							<li><a href="#lugaresInteres"><@liferay.language key="iytu.reportaje.lugares-interes" /></a></li> 
205					</ul> 
206                </div> 
207        </div> 
208	</nav> 
209</div> 
210			</div> 
211    </div>	 
212</div> 
213		 
214	<div class="container-fluid reportaje"> 
215		<div class="container"> 
216			<div class="row"> 
217 
218				<div class="col-sm-10 col-sm-offset-1 col-md-7 col-md-offset-1"> 
219					<div class="row"> 
220						<div class="col-md-12 reportaje_principal"> 
221					<hr class="cuadrado bgcolor"> 
222					<div class="textorepo"> 
223						<#if contenidoPrincipal.getSiblings()?has_content> 
224							<#list contenidoPrincipal.getSiblings() as contenidoPpal> 
225								<p class="entradilla">${contenidoPpal.textoDestacado.getData()}</p> 
226								 
227								${contenidoPpal.contenidoGeneral.getData()} 
228								<#if (!validator.equals("", contenidoPpal.imagenPrincipal.data) || !validator.equals("", contenidoPpal.videoPrincipal.data) || !validator.equals("", contenidoPpal.linkVideoExterno.data))> 
229									<div>										 
230										<div class="turismo_video embed-responsive embed-responsive-16by9"> 
231											<#if !validator.equals("", contenidoPpal.imagenPrincipal.data)> 
232												<img class="embed-responsive-item" src="${contenidoPpal.imagenPrincipal.getData()}" alt=""> 
233											<#elseif !validator.equals("", contenidoPpal.videoPrincipal.data)> 
234												<video class="embed-responsive-item" controls="" preload="none" src="contenidoPpal.videoPrincipal.getData()"></video> 
235											<#elseif !validator.equals("", contenidoPpal.linkVideoExterno.data)>												 
236												<video class="embed-responsive-item" controls="" preload="none" src="${contenidoPpal.linkVideoExterno.getData()}"></video>											 
237											</#if>									 
238										</div> 
239										<div class="pie_foto"><p>${contenidoPpal.pieFoto.getData()}</p></div> 
240									</div> 
241								</#if> 
242							</#list> 
243						</#if>						 
244						<#if !validator.equals("", rutas.parrafoRutas1.data)> 
245						    <span id="rutas"></span> 
246						    <#if rutas.tituloAlternativoRutas?? && !validator.equals("", rutas.tituloAlternativoRutas.data)> 
247								<h2>${rutas.tituloAlternativoRutas.getData()}</h2> 
248							<#else> 
249								<h2><@liferay.language key="iytu.reportaje.rutas" /></h2> 
250							</#if>							 
251							<p>${rutas.parrafoRutas1.getData()}</p> 
252						</#if> 
253						<#if !validator.equals("", rutas.destacadoRutas.data)> 
254							<p class="miquote">${rutas.destacadoRutas.getData()}</p> 
255						</#if> 
256						<#if !validator.equals("", rutas.parrafoRutas2.data)> 
257							<p>${rutas.parrafoRutas2.getData()}</p> 
258						</#if> 
259						<#if !validator.equals("", rutas.contenidoRutas.data)> 
260							<p>${rutas.contenidoRutas.getData()}</p> 
261						</#if>													 
262					</div>						  
263				</div> 
264			</div>	  
265		 
266 
267<#if !validator.equals("",imagenDestacada.data) > 
268 
269		<div class="row reportaje_foto"> 
270			<div class="col-md-12">                   
271				<p><img src="${imagenDestacada.getData()}" alt=""></p> 
272			</div> 
273		</div> 
274 
275</#if> 
276 
277	<div class="row"> 
278		<div class="col-md-12 reportaje_principal reportaje-separador"> 
279			<#if !validator.equals("", comoLlegar.tituloLlegar.data)>                        
280	            <div class="textorepo" id="llegar"> 
281	                <h2>${comoLlegar.tituloLlegar.getData()}</h2> 
282	                <#if !validator.equals("",comoLlegar.textoLlegar.data)> 
283	                	${comoLlegar.textoLlegar.getData()} 
284									</#if> 
285	                <ul class="lista"> 
286	                	<#if !validator.equals("",comoLlegar.trenLlegar.data)>	                    	 
287	                        <li class="row m-0"> 
288	                        	<div class="col-xs-12 col-sm-2 col-md-2 icono"> 
289	                        		<span class="iytuicon icon-tren" aria-hidden="true"></span> 
290	                        	</div> 
291	                        	<div class="col-xs-12 col-sm-10 col-md-9"> 
292		                            <h3><@liferay.language key="iytu.reportaje.tren" /></h3> 
293		                            <p>${comoLlegar.trenLlegar.getData()}</p> 
294	                        	</div> 
295	                        </li> 
296	                   	</#if> 
297	                   	<#if !validator.equals("",comoLlegar.metroLlegar.data)> 
298	                        <li class="row m-0"> 
299	                        	<div class="col-xs-12 col-sm-2 col-md-2 icono"> 
300	                        		<span class="iytuicon icon-metro" aria-hidden="true"></span> 
301	                        	</div> 
302	                        	<div class="col-xs-12 col-sm-10 col-md-9"> 
303	                            	<h3><@liferay.language key="iytu.reportaje.metro" /></h3> 
304	                            	<p>${comoLlegar.metroLlegar.getData()}</p> 
305	                        	</div> 
306	                        </li> 
307	                    </#if> 
308	                   	<#if !validator.equals("",comoLlegar.tranviaLlegar.data)> 
309	                        <li class="row m-0"> 
310	                        	<div class="col-xs-12 col-sm-2 col-md-2 icono"> 
311	                        		<span class="iytuicon icon-tranvia" aria-hidden="true"></span> 
312	                        	</div> 
313	                        	<div class="col-xs-12 col-sm-10 col-md-9"> 
314	                            <h3><@liferay.language key="iytu.reportaje.tranvia" /></h3> 
315	                            <p>${comoLlegar.tranviaLlegar.getData()}</p> 
316	                        	</div> 
317	                        </li> 
318	                    </#if> 
319	                   	<#if !validator.equals("",comoLlegar.busLlegar.data)> 
320	                        <li class="row m-0"> 
321	                        	<div class="col-xs-12 col-sm-2 col-md-2 icono"> 
322	                        		<span class="iytuicon icon-bus" aria-hidden="true"></span> 
323	                        	</div> 
324	                        	<div class="col-xs-12 col-sm-10 col-md-9"> 
325	                            <h3><@liferay.language key="iytu.reportaje.autobus" /></h3> 
326	                            <p>${comoLlegar.busLlegar.getData()}</p> 
327	                        	</div> 
328	                        </li> 
329	                    </#if> 
330	                   	<#if !validator.equals("",comoLlegar.cocheLlegar.data)> 
331	                        <li class="row m-0"> 
332	                        	<div class="col-xs-12 col-sm-2 col-md-2 icono"> 
333	                        		<span class="iytuicon icon-coche" aria-hidden="true"></span> 
334	                        	</div> 
335	                        	<div class="col-xs-12 col-sm-10 col-md-9"> 
336	                            <h3><@liferay.language key="iytu.reportaje.coche" /></h3> 
337	                            <p>${comoLlegar.cocheLlegar.getData()}</p> 
338	                        	</div> 
339	                        </li> 
340	                    </#if> 
341	                   	<#if !validator.equals("",comoLlegar.biciLlegar.data)> 
342	                        <li class="row m-0"> 
343	                        	<div class="col-xs-12 col-sm-2 col-md-2 icono"> 
344	                        		<span class="iytuicon icon-bici" aria-hidden="true"></span> 
345	                        	</div> 
346	                        	<div class="col-xs-12 col-sm-10 col-md-9"> 
347	                            <h3><@liferay.language key="iytu.reportaje.bicicleta" /></h3> 
348	                            <p>${comoLlegar.biciLlegar.getData()}</p> 
349	                        	</div> 
350	                        </li> 
351	                    </#if> 
352	                </ul> 
353	                <#if !validator.equals("",comoLlegar.latitud.data) && !validator.equals("",comoLlegar.longitud.data)> 
354	            		<div id="mapa"></div> 
355	            		<@mapScript /> 
356	            	</#if> 
357	            </div> 
358	        </#if> 
359	        <#if !stringUtil.equalsIgnoreCase("", dondeComer.textoComer.data)> 
360	        	<#if !stringUtil.equalsIgnoreCase("", dondeComer.imagenComer.data)> 
361		            <div class="textorepo-auxiliar" id="comer"> 
362		            	<div class="textorepo-auxiliar-imagen"> 
363		            		<p><img src="${dondeComer.imagenComer.getData()}"  alt=""/> 
364		            		<span class="categoria"><@liferay.language key="iytu.reportaje.gastronomia" /></span></p> 
365		            		<h2 class="titulo"><@liferay.language key="iytu.reportaje.donde-comer" /></h2> 
366		            	</div> 
367		            	<div class="textorepo-auxiliar-texto"> 
368		            	${dondeComer.textoComer.getData()} 
369		            	</div> 
370		            </div> 
371	            <#else> 
372		            <div class="textorepo-auxiliar" id="comer"> 
373		            	<div class="textorepo-auxiliar-imagen sin-img"> 
374		            		<p><span class="categoria"><@liferay.language key="iytu.reportaje.gastronomia" /></span></p> 
375		            		<h2 class="titulo"><@liferay.language key="iytu.reportaje.donde-comer" /></h2> 
376		            	</div> 
377		            	<div class="textorepo-auxiliar-texto"> 
378		            	${dondeComer.textoComer.getData()} 
379		            	</div> 
380		            </div>            
381	            </#if>   
382	        </#if> 
383	        <#if !stringUtil.equalsIgnoreCase("", dondeDormir.textoDormir.data)> 
384	        	<#if !stringUtil.equalsIgnoreCase("", dondeDormir.imagenDormir.data)> 
385		            <div class="textorepo-auxiliar" id="dormir"> 
386		            	<div class="textorepo-auxiliar-imagen"> 
387		            		<p><img src="${dondeDormir.imagenDormir.getData()}"  alt=""/> 
388		            		<span class="categoria"><@liferay.language key="iytu.reportaje.alojamiento" /></span></p> 
389		            		<h2 class="titulo"><@liferay.language key="iytu.reportaje.donde-dormir" /></h2> 
390		            	</div> 
391		            	<div class="textorepo-auxiliar-texto"> 
392		            		${dondeDormir.textoDormir.getData()} 
393		            	</div> 
394		            </div> 
395	            <#else> 
396		            <div class="textorepo-auxiliar" id="dormir"> 
397		            	<div class="textorepo-auxiliar-imagen sin-img"> 
398		            		<p><span class="categoria"><@liferay.language key="iytu.reportaje.alojamiento" /></span></p> 
399		            		<h2 class="titulo"><@liferay.language key="iytu.reportaje.donde-dormir" /></h2> 
400		            	</div> 
401		            	<div class="textorepo-auxiliar-texto"> 
402		            		${dondeDormir.textoDormir.getData()} 
403		            	</div> 
404		            </div>	             
405	            </#if>    
406	        </#if>           
407		</div>			 
408	</div>			 
409</div> 
410 
411<div class="col-sm-12 col-md-3 col-md-offset-1 reportaje_secundario"> 
412	<div class="reportaje_sidebar"> 
413		<ul class="panel-group" id="accordion" role="tablist" aria-multiselectable="true"> 
414		    <li class="panel panel-default"> 
415		        <div class="panel-heading" role="tab" id="heading1"> 
416		            <h2 class="panel-title"> 
417					<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse1" aria-expanded="false" aria-controls="collapse1" class="collapsed recomendaciones"> 
418					<@liferay.language key="iytu.reportaje.info-practica" /> 
419					<span class="icon-flecha_acordeon"></span> 
420					</a> 
421					</h2> 
422		        </div> 
423		        <div id="collapse1" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading1"> 
424		            <div class="panel-body"> 
425		                ${appendTag(menuDesplegable.infoPractica.textoPractica.getData())} 
426		                <ul> 
427		                    <#if !validator.equals("", menuDesplegable.infoPractica.horarioPractica.data)> 
428			                    <li class="row m-0"> 
429			                    	<div class="col-xs-2 col-sm-1 col-md-1 icono"> 
430			                        	<span class="iytuicon icon-horario" aria-hidden="true"></span> 
431									</div> 
432									<div class="col-xs-9 col-sm-10 col-md-10"> 
433			                        <h3><@liferay.language key="iytu.reportaje.horario" /></h3> 
434			                        ${appendTag(menuDesplegable.infoPractica.horarioPractica.getData())} 
435			                    	</div> 
436			                    </li> 
437		                    </#if> 
438		                    <#if !validator.equals("", menuDesplegable.infoPractica.precioPractica.data)> 
439			                    <li class="row m-0"> 
440			                    	<div class="col-xs-2 col-sm-1 col-md-1 icono"> 
441			                        	<span class="iytuicon icon-entradas" aria-hidden="true"></span> 
442									</div> 
443									<div class="col-xs-9 col-sm-10 col-md-10"> 
444			                        <h3><@liferay.language key="iytu.reportaje.precio" /></h3> 
445			                        ${appendTag(menuDesplegable.infoPractica.precioPractica.getData())} 
446			                    	</div> 
447			                    </li> 
448		                    </#if> 
449		                    <#if !validator.equals("", menuDesplegable.infoPractica.localizacionPractica.data)> 
450			                    <li class="row m-0"> 
451			                    	<div class="col-xs-2 col-sm-1 col-md-1 icono"> 
452			                        	<span class="iytuicon icon-location" aria-hidden="true"></span> 
453									</div> 
454									<div class="col-xs-9 col-sm-10 col-md-10"> 
455			                        <h3><@liferay.language key="iytu.reportaje.localizacion" /></h3> 
456			                        ${appendTag(menuDesplegable.infoPractica.localizacionPractica.getData())} 
457			                    	</div> 
458			                    </li> 
459							</#if> 
460		                </ul> 
461		            </div> 
462		        </div> 
463		    </li> 
464		    <#if !validator.equals("", menuDesplegable.recomendaciones.data)> 
465			    <li class="panel panel-default"> 
466			        <div class="panel-heading" role="tab" id="heading2"> 
467			            <h2 class="panel-title"> 
468							<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse2" aria-expanded="false" aria-controls="collapse2" class="collapsed recomendaciones">	 
469								<@liferay.language key="iytu.reportaje.recomendaciones" />			 
470								<span class="icon-flecha_acordeon"></span>						 
471							</a></h2> 
472			        </div> 
473			        <div id="collapse2" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading2"> 
474			            <div class="panel-body"> 
475			               ${appendTag(menuDesplegable.recomendaciones.getData())} 
476			            </div> 
477			        </div> 
478			    </li> 
479		    </#if> 
480		    <#if menuDesplegable.DesplegablesOpcionales.getSiblings()?has_content> 
481		    	<#assign contador = 3> 
482		    	<#list menuDesplegable.DesplegablesOpcionales.getSiblings() as cur_menu> 
483		    		<#if !validator.equals("",cur_menu.tituloDesplegable.data)> 
484					    <li class="panel panel-default"> 
485					        <div class="panel-heading" role="tab" id="heading${contador}"> 
486					            <h2 class="panel-title"> 
487									<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse${contador}" aria-expanded="false" aria-controls="collapse${contador}" class="collapsed recomendaciones">	 
488										${cur_menu.tituloDesplegable.getData()} 
489										<span class="icon-flecha_acordeon"></span> 
490									</a></h2> 
491					        </div> 
492					        <#if !validator.equals("",cur_menu.textoDesplegable.data)> 
493						        <div id="collapse${contador}" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading${contador}"> 
494						            <div class="panel-body"> 
495						                ${appendTag(cur_menu.textoDesplegable.getData())} 
496						            </div> 
497						        </div> 
498						    </#if> 
499					    </li> 
500				    	<#assign contador = contador + 1> 
501					</#if> 
502				</#list> 
503		    </#if> 
504		    <#if !validator.equals("", menuDesplegable.urlEntradas.data)> 
505			    <li class="panel panel-default"> 
506			        <div class="panel-heading entradas" role="tab" id="heading6"> 
507			            <p class="panel-title"> 
508				        <a href="${menuDesplegable.urlEntradas.getData()}" class="entradas bgcolor" target="_blank" title="<@liferay.language key='opens-new-window'/>">									       
509 
510				            <@liferay.language key="iytu.reportaje.entradas" /> <span class="iytuicon icon-entradas"></span> 
511				        </a> 
512				      </p> 
513			        </div>			         
514 
515 
516			    </li> 
517			</#if> 
518		    <li class="panel panel-default"> 
519		        <div class="panel-heading compartir" role="tab" id="heading7"> 
520		            <h2 class="panel-title"> 
521					<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse7" aria-expanded="false" aria-controls="collapse7" class="compartir">										        
522						<@liferay.language key="iytu.reportaje.compartir" />  
523						<span class="iytuicon icon-share"></span>			    
524					</a> 
525					 </h2> 
526		        </div> 
527		        <div id="collapse7" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading7"> 
528		            <div class="panel-body blanco"> 
529		                <ul class="redes-sociales">					   
530	  						<li class="mt-3"> <a href="https://www.facebook.com/sharer/sharer.php?u=${completeCurrentUrl}" target="_blank" title="<@liferay.language key='opens-new-window' />" > <span class="iytuicon circulo icon-facebook" aria-hidden="true"></span> <span class="sr-only"><@liferay.language key="iytu.reportaje.facebook" /></span> </a> </li> 
531	  						<li class="mt-3"> <a href="https://twitter.com/intent/tweet?url=${completeCurrentUrl}&text=${encodedTitle}" target="_blank" title="<@liferay.language key='opens-new-window' />" data-size="large"><span class="iytuicon circulo icon-twitter" aria-hidden="true"></span> <span class="sr-only"><@liferay.language key="iytu.reportaje.twitter" /></span> </a> </li> 
532	  						<li class="mt-3"> <a href="whatsapp://send?text=${completeCurrentUrl}" target="_blank" title="<@liferay.language key='opens-new-window' />" > <span class="iytuicon icon-whatsaap"></span> <span class="sr-only"><@liferay.language key="iytu.reportaje.whatsapp" /></span> </a> </li>					   
533	  						<li class="mt-3"> <a href="mailto:?Subject=${articleTitle}&Body=${articleTitle} ${completeCurrentUrl}" > <span class="iytuicon circulo icon-mail"></span> <span class="sr-only"><@liferay.language key="iytu.reportaje.email" /></span> </a> </li> 
534						</ul> 
535		            </div> 
536		        </div> 
537		    </li> 
538		</ul> 
539	</div> 
540</div> 
541		</div> 
542	</div> 
543<#-- EVENTOS --> 
544<#--   ******************* DE MOMENTO IGNORAR EL CHECK DE MOSTRAR EVENTOS, PONERLOS SIEMPRE **************** 
545 
546<#if eventos?? && eventos.mostrarEventos?? && stringUtil.equalsIgnoreCase("true", eventos.mostrarEventos.data) && 0 lt eventFinalEntries?size>	 
547--> 
548 <#if 0 lt eventFinalEntries?size> 
549	<section id="sliderEventos" class="slider-eventos">	 
550 
551		<div class="slider-container">		    
552			<ul class="slider"> 
553				<#list eventFinalEntries as curEntry>					 
554					<#assign renderer = curEntry.getAssetRenderer() > 
555    	            <#assign journalArticle = renderer.getArticle() > 
556    	             
557    	            <#-- 
558    	            <#assign templateKey = getTemplateKey("iytu-evento-slider") > 
559    	            --> 
560    	            <#assign templateKey = "1520787" > 
561    	             
562					<#assign journalArticleDisplay = journalContentUtil.getDisplay(journalArticle.getGroupId(), journalArticle.getArticleId(), templateKey, "view", languageId, themeDisplay)> 
563                 
564                <li>${journalArticleDisplay.getContent()}</li> 
565				</#list> 
566			</ul> 
567		</div>		 
568	</section> 
569	 
570     
571 
572	<script> 
573		$(document).ready(function() { 
574			   $("#sliderEventos .slider").lightSlider({ 
575			       item: 1, 
576			       loop: false, 
577			       keyPress: true, 
578			       controls:true, 
579			       pager: false, 
580			       enableDrag: true,      
581			       prevHtml: '<span class="sr-only"><@liferay.language key="previous" /></span>', 
582                   nextHtml: '<span class="sr-only"><@liferay.language key="next" /></span>',  
583			       responsive : [ 
584
585				           breakpoint:993, 
586				           settings: { 
587				               pager: true 
588
589				       }         
590
591			   }); 
592		});       
593	</script> 
594 <#else> 
595 	<div id="sliderEventos"></div> 
596</#if> 
597 
598<#-- DESCUENTOS --> 
599 
600<#if 0 lt descuentosEntries?size>	 
601	<#list descuentosEntries as curEntry>			 
602		<#assign renderer = curEntry.getAssetRenderer() > 
603    	<#assign className = renderer.getClassName() > 
604		<#assign journalArticle = renderer.getArticle() > 
605		<#assign document = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) > 
606        <#assign rootElement = document.getRootElement() > 
607 
608        <#assign documento1 = saxReaderUtil.createXPath("dynamic-element[@name='Documento_1']/dynamic-element[@name='documento1']").selectSingleNode(rootElement).getStringValue()?trim/> 
609        <#assign documento2 = saxReaderUtil.createXPath("dynamic-element[@name='Documento_2']/dynamic-element[@name='documento2']").selectSingleNode(rootElement).getStringValue()?trim/> 
610        <#assign documento3 = saxReaderUtil.createXPath("dynamic-element[@name='Documento_3']/dynamic-element[@name='documento3']").selectSingleNode(rootElement).getStringValue()?trim/> 
611        <#assign documento4 = saxReaderUtil.createXPath("dynamic-element[@name='Documento_4']/dynamic-element[@name='documento4']").selectSingleNode(rootElement).getStringValue()?trim/> 
612 
613        <#assign titulo1 = saxReaderUtil.createXPath("dynamic-element[@name='Documento_1']/dynamic-element[@name='titulo1']").selectSingleNode(rootElement).getStringValue()/> 
614        <#assign titulo2 = saxReaderUtil.createXPath("dynamic-element[@name='Documento_2']/dynamic-element[@name='titulo2']").selectSingleNode(rootElement).getStringValue()/> 
615        <#assign titulo3 = saxReaderUtil.createXPath("dynamic-element[@name='Documento_3']/dynamic-element[@name='titulo3']").selectSingleNode(rootElement).getStringValue()/> 
616        <#assign titulo4 = saxReaderUtil.createXPath("dynamic-element[@name='Documento_4']/dynamic-element[@name='titulo4']").selectSingleNode(rootElement).getStringValue()/> 
617   <#assign groupIdAsLong  =  getterUtil.getLong(groupId)/> 
618 
619		<div id="bloqueDescuentos"> 
620			<div class="container-fluid descuentos">	 
621				<div class="container p-0"> 
622					<div class="row mr-0"> 
623						<div class="col-xs-12 col-xs-offset-0 col-sm-6 col-sm-offset-1 col-md-5 col-md-offset-1 p-0 contenido">											 
624							<p class="categoria"> 
625								<@liferay.language key="iytu.descuentos.descuentos" /> 
626							</p> 
627							<h3><@liferay.language key="iytu.descuentos.dtosBBCard" /></h3>						 
628							<a href="/bilbao-bizkaia-card" class="boton blanco"><@liferay.language key="iytu.descuentos.comprar" /></a>					 
629						</div> 
630						 
631						<div class="col-xs-12 col-md-6 descargas"> 
632							<ul class="row"> 
633								<#if documento1?? && documento1?length != 0> 
634   									<#assign fileEntry = getFileEntry(documento1,groupIdAsLong)/> 
635		                        	<#assign size = textFormatter.formatStorageSize(fileEntry.size, locale) /> 
636									<li class="col-xxs-6 col-xs-6"> 
637										<a href="${documento1}" target="_blank" title="<@liferay.language key='opens-new-window' />"> 
638											<h4 class="colour">${titulo1}</h4> 
639											<p class="archivoDescarga"><span class="iytuicon icon-descargar"></span> <span><@liferay.language key="download" /></span> ${size}</p> 
640										</a> 
641									</li>					 
642								</#if> 
643								<#if documento2?? && documento2?length != 0> 
644									<#assign fileEntry = getFileEntry(documento2,groupIdAsLong) > 
645		                        	<#assign size = textFormatter.formatStorageSize(fileEntry.size, locale) > 
646									<li class="col-xxs-6 col-xs-6"> 
647										<a href="${documento2}" target="_blank" title="<@liferay.language key='opens-new-window' />"> 
648											<h4 class="colour">${titulo2}</h4> 
649											<p class="archivoDescarga"><span class="iytuicon icon-descargar"></span> <span><@liferay.language key="download"/></span> ${size}</p> 
650										</a> 
651									</li> 
652								</#if> 
653								<#if documento3?? && documento3?length != 0> 
654									<#assign fileEntry = getFileEntry(documento3,groupIdAsLong) > 
655		                        	<#assign size = textFormatter.formatStorageSize(fileEntry.size, locale) > 
656									<li class="col-xxs-6 col-xs-6"> 
657										<a href="${documento3}" target="_blank" title="<@liferay.language key='opens-new-window' />"> 
658											<h4 class="colour">${titulo3}</h4> 
659											<p class="archivoDescarga"><span class="iytuicon icon-descargar"></span> <span><@liferay.language key="download" /></span> ${size}</p> 
660										</a> 
661									</li> 
662								</#if> 
663								<#if documento4?? && documento4?length != 0> 
664									<#assign fileEntry = getFileEntry(documento4,groupIdAsLong) > 
665		                        	<#assign size = textFormatter.formatStorageSize(fileEntry.size, locale) > 
666									<li class="col-xxs-6 col-xs-6"> 
667										<a href="${documento4}" target="_blank" title="<@liferay.language key='opens-new-window' />"> 
668											<h4 class="colour">${titulo4}</h4> 
669											<p class="archivoDescarga"><span class="iytuicon icon-descargar"></span> <span><@liferay.language key="download" /></span> ${size}</p> 
670										</a> 
671									</li> 
672								</#if>		 
673							</ul> 
674						</div> 
675					</div> 
676 
677				</div> 
678			</div>	 
679		</div> 
680 
681	</#list> 
682</#if> 
683<span id="lugaresInteres"></span> 
684 
685<script> 
686$( document ).ready(function() { 
687     
688     /*** animación anclas en menú con fondo color ***/ 
689 
690    $('#turi-contenedor-anclas .visible-md a').click(function(e) { 
691        e.preventDefault(); 
692        var $target = $(this.hash); 
693        var destino = this.hash; 
694        $target = $target.length && $target || $(this.hash); 
695        if ($target.length) { 
696            var targetOffset = $target.offset().top; 
697            var topSpace = $('#heading').height() + $('#turi-contenedor-anclas').height(); 
698            targetOffset = targetOffset - topSpace; 
699            $('html,body').animate({scrollTop: targetOffset}, 1500); 
700
701 
702    }); 
703     
704    $('#turi-contenedor-anclas .hidden-md a').click(function(e) { 
705        e.preventDefault(); 
706        var $target = $(this.hash); 
707        var destino = this.hash; 
708        $target = $target.length && $target || $(this.hash); 
709        if ($target.length) { 
710            var targetOffset = $target.offset().top; 
711            var topSpace = $('#heading').height() + $('#turi-contenedor-anclas button').height() + 40; 
712            targetOffset = targetOffset - topSpace; 
713            $('html,body').animate({scrollTop: targetOffset}, 1500); 
714
715 
716    }); 
717 
718    /*** scroll spy para el menú ***/ 
719    $('body').scrollspy({          
720        target: '.anclas', 
721        offset: function() { 
722            var topSpace = $('#heading').height() + $('#turi-contenedor-anclas').height() + 20; 
723            return topSpace; 
724        }() 
725    }) 
726 
727     /****** scroll to fixed de menú de anclas *****/ 
728    if ($(window).width() > 992) { 
729 
730        $('#turi-contenedor-anclas').scrollToFixed({ 
731            marginTop: function() { 
732            var marginTop = $('#heading').height(); 
733             return marginTop; 
734            }, 
735            limit: function() { 
736            var limit = $('#lugaresInteres').offset().top; 
737            return limit; 
738            }, 
739            removeOffsets: true, 
740            preFixed: function() { $(this).removeClass('scroll-to-fixed-fixed-end'); }, 
741            preAbsolute: function() { $(this).addClass('scroll-to-fixed-fixed-end'); } 
742            }); 
743        $('.reportaje_secundario').scrollToFixed({ 
744            marginTop: function() { 
745            var marginTop = $(window).height() - $('.reportaje_secundario').outerHeight(true) - 140; 
746            if (marginTop >= 0) return 140; 
747            return marginTop; 
748            }, 
749            limit: function() { 
750            var limit = $('#sliderEventos').offset().top - $('.reportaje_secundario').height() - 135; 
751            return limit; 
752            }, 
753            removeOffsets: true, 
754            preFixed: function() { $(this).removeClass('scroll-to-fixed-fixed-end'); }, 
755            preAbsolute: function() { $(this).addClass('scroll-to-fixed-fixed-end'); } 
756 
757            }); 
758        $(".reportaje_sidebar .panel-collapse").on("shown.bs.collapse", function () { 
759            var myEl = $(this).closest('.panel');             
760            $('html, body').animate({ 
761               scrollTop: $(myEl).offset().top 
762            }, 0); 
763            $('.reportaje_secundario').trigger('detach.ScrollToFixed'); 
764            $('.reportaje_secundario').scrollToFixed({ 
765            marginTop: function() { 
766            var marginTop = $(window).height() - $('.reportaje_secundario').outerHeight(true) - 140; 
767            if (marginTop >= 0) return 140; 
768            return marginTop; 
769            }, 
770            limit: function() { 
771            var limit = $('#sliderEventos').offset().top - $('.reportaje_secundario').height() - 135; 
772            return limit; 
773            }, 
774            removeOffsets: true, 
775            preFixed: function() { $(this).removeClass('scroll-to-fixed-fixed-end'); }, 
776            preAbsolute: function() { $(this).addClass('scroll-to-fixed-fixed-end'); } 
777 
778            }); 
779 
780        });  
781 
782            
783    }else{ 
784        $('#turi-contenedor-anclas').scrollToFixed({ 
785            marginTop: function() { 
786            var marginTop = $('#heading').height(); 
787             return marginTop; 
788            }, 
789            limit: function() { 
790            var limit = $('#lugaresInteres').offset().top; 
791            return limit; 
792            }, 
793            removeOffsets: true, 
794            preFixed: function() { $(this).removeClass('scroll-to-fixed-fixed-end'); }, 
795            preAbsolute: function() { $(this).addClass('scroll-to-fixed-fixed-end'); } 
796            }); 
797        $('.reportaje_secundario').scrollToFixed({ 
798            marginTop: 192, 
799            limit: function() { 
800            var limit = $('#sliderEventos').offset().top - $('.reportaje_secundario').height() - 135; 
801            return limit; 
802            }, 
803            removeOffsets: true, 
804            preFixed: function() { $(this).removeClass('scroll-to-fixed-fixed-end'); }, 
805            preAbsolute: function() { $(this).addClass('scroll-to-fixed-fixed-end'); } 
806 
807        }); 
808        $(".reportaje_sidebar .panel-collapse").on("shown.bs.collapse", function () { 
809            var myEl = $(this).closest('.panel');             
810            $('html, body').animate({ 
811               scrollTop: $(myEl).offset().top - 192 
812            }, 0); 
813        });  
814
815     
816    $(window).bind('resize',function(){ 
817        clearTimeout(this.timeout); 
818        this.timeout = setTimeout(function () {    
819 
820        var windowWidth = $(window).width(); 
821        if(windowWidth > 992){ 
822			 
823 
824            $('#turi-contenedor-anclas').trigger('detach.ScrollToFixed'); 
825            $('#turi-contenedor-anclas').scrollToFixed({ 
826                marginTop: function() { 
827                var marginTop = $('#heading').height(); 
828                 return marginTop; 
829                }, 
830                limit: function() { 
831                var limit = $('#lugaresInteres').offset().top; 
832                return limit; 
833                }, 
834                removeOffsets: true, 
835                preFixed: function() { $(this).removeClass('scroll-to-fixed-fixed-end'); }, 
836                preAbsolute: function() { $(this).addClass('scroll-to-fixed-fixed-end'); } 
837                }); 
838            $('.reportaje_secundario').trigger('detach.ScrollToFixed'); 
839            $('.reportaje_secundario').scrollToFixed({ 
840            marginTop: function() { 
841            var marginTop = $(window).height() - $('.reportaje_secundario').outerHeight(true) - 140; 
842            if (marginTop >= 0) return 140; 
843            return marginTop; 
844            }, 
845            limit: function() { 
846            var limit = $('#sliderEventos').offset().top - $('.reportaje_secundario').height() - 135; 
847            return limit; 
848            }, 
849            removeOffsets: true, 
850            preFixed: function() { $(this).removeClass('scroll-to-fixed-fixed-end'); }, 
851            preAbsolute: function() { $(this).addClass('scroll-to-fixed-fixed-end'); } 
852 
853            }); 
854        $(".reportaje_sidebar .panel-collapse").on("shown.bs.collapse", function () { 
855            var myEl = $(this).closest('.panel');             
856            $('html, body').animate({ 
857               scrollTop: $(myEl).offset().top 
858            }, 0); 
859            $('.reportaje_secundario').trigger('detach.ScrollToFixed'); 
860            $('.reportaje_secundario').scrollToFixed({ 
861            marginTop: function() { 
862            var marginTop = $(window).height() - $('.reportaje_secundario').outerHeight(true) - 140; 
863            if (marginTop >= 0) return 140; 
864            return marginTop; 
865            }, 
866            limit: function() { 
867            var limit = $('#sliderEventos').offset().top - $('.reportaje_secundario').height() - 135; 
868            return limit; 
869            }, 
870            removeOffsets: true, 
871            preFixed: function() { $(this).removeClass('scroll-to-fixed-fixed-end'); }, 
872            preAbsolute: function() { $(this).addClass('scroll-to-fixed-fixed-end'); } 
873 
874            }); 
875 
876        });  
877 
878 
879              
880 
881             
882 
883        }else{ 
884             
885 
886            $('#turi-contenedor-anclas').trigger('detach.ScrollToFixed'); 
887            $('#turi-contenedor-anclas').scrollToFixed({ 
888                marginTop: function() { 
889                var marginTop = $('#heading').height(); 
890                 return marginTop; 
891                }, 
892                limit: function() { 
893                var limit = $('#lugaresInteres').offset().top; 
894                return limit; 
895                }, 
896                removeOffsets: true, 
897                preFixed: function() { $(this).removeClass('scroll-to-fixed-fixed-end'); }, 
898                preAbsolute: function() { $(this).addClass('scroll-to-fixed-fixed-end'); } 
899            }); 
900            $('.reportaje_secundario').trigger('detach.ScrollToFixed'); 
901            $('.reportaje_secundario').scrollToFixed({ 
902            marginTop: 192, 
903            limit: function() { 
904            var limit = $('#sliderEventos').offset().top - $('.reportaje_secundario').height() - 135; 
905            return limit; 
906            }, 
907            removeOffsets: true, 
908            preFixed: function() { $(this).removeClass('scroll-to-fixed-fixed-end'); }, 
909            preAbsolute: function() { $(this).addClass('scroll-to-fixed-fixed-end'); } 
910 
911        }); 
912        $(".reportaje_sidebar .panel-collapse").on("shown.bs.collapse", function () { 
913            var myEl = $(this).closest('.panel');             
914            $('html, body').animate({ 
915               scrollTop: $(myEl).offset().top - 192 
916            }, 0); 
917        });  
918 
919
920 
921 
922             
923        }, 0); 
924 
925    }); 
926 
927     
928}); 
929</script> 
930<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBMctVq13ErDz69AxaIHMb93TR4DA4qioU&callback=initMap"></script> 
931 
932<#-- MACROS --> 
933<#macro mapScript > 
934  <script> 
935  	function initMap(){  		 
936	     
937	    var latitude = ${comoLlegar.latitud.getData()}; 
938	    var longitude = ${comoLlegar.longitud.getData()}; 
939	    var centroMapa = {lat: latitude, lng: longitude}; 
940        var mapOptions = { 
941            zoom: 12, 
942            center: centroMapa, 
943            disableDoubleClickZoom: false, 
944            draggable: true, 
945            zoomControl:true, 
946            mapTypeControl: false, 
947            rotateControl: false, 
948            scaleControl: true, 
949            scrollwheel: false, 
950            streetViewControl: false           
951        }; 
952	    var map = new google.maps.Map(document.getElementById("mapa"), mapOptions);     
953        var marker = new google.maps.Marker({ 
954            position: centroMapa, 
955            map: map 
956        }); 
957	  }      
958  </script> 
959</#macro> 
960<#-- FUNCIONES --> 
961<#function getAssetEntryQuery classNameId structureId linkedAssetEntryId order orderType> 
962    <#assign assetEntryQuery = objectUtil("com.liferay.asset.kernel.service.persistence.AssetEntryQuery") > 
963	 
964	<#assign classNameIds = [classNameId] > 
965	${assetEntryQuery.setClassNameIds(classNameIds)} 
966 
967	<#if !stringUtil.equalsIgnoreCase("", structureId?string) > 
968		<#assign classTypeIds = [structureId] > 
969		${assetEntryQuery.setClassTypeIds(classTypeIds)} 
970		 
971		<#if !stringUtil.equalsIgnoreCase("", order) > 
972			${assetEntryQuery.setOrderByCol1(order)} 
973			${assetEntryQuery.setOrderByType1(orderType)} 
974		</#if> 
975	</#if> 
976 
977	<#if !stringUtil.equalsIgnoreCase("0", linkedAssetEntryId?string) > 
978		${assetEntryQuery.setLinkedAssetEntryId(linkedAssetEntryId)} 
979	</#if> 
980 
981	<#return assetEntryQuery > 
982</#function> 
983 
984<#function getFileEntry url groupId> 
985     
986	 
987	<#if url?? && url?length != 0> 
988    	<#assign uuid = url?split("/")?last?split("?")?first> 
989    </#if> 
990    <#assign uuidString = getterUtil.getString(uuid)/> 
991	<#return fileEntryService.fetchDLFileEntryByUuidAndGroupId(uuidString, groupId) /> 
992     
993</#function> 
994 
995<#function replaceSpecialCharacters url> 
996    <#return htmlUtil.escapeHREF(url?replace("|","%7C")) /> 
997</#function> 
998 
999 
1000<#function appendTag(element) > 
1001  <#if !(element?starts_with("<p>")||element?starts_with("<ul>")||element?starts_with("<ol>")||element?starts_with("<table>"))> 
1002    <#assign corrected = "<p>" + element > 
1003  <#else> 
1004    <#assign corrected = element > 
1005  </#if>   
1006 
1007  <#if !(element?ends_with("</p>")||element?ends_with("</ul>")||element?ends_with("</ol>")||element?ends_with("</table>"))> 
1008  <#assign corrected = corrected + "</p>">   
1009  </#if>   
1010   
1011  <#return corrected> 
1012</#function> 
1013 
1014<#function getTemplateKey templateName > 
1015    <#assign templateKey = "0" > 
1016     
1017    <#attempt> 
1018        <#assign templateClass = staticUtil["com.liferay.portal.kernel.util.ClassResolverUtil"].resolveByPortalClassLoader("com.liferay.dynamic.data.mapping.model.DDMTemplate") /> 
1019 
1020        <#assign dynamicQuery = staticUtil["com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil"].forClass(templateClass) /> 
1021	     
1022	    <#assign VOID = dynamicQuery.add(propertyFactoryUtil.forName("name").like("%" + templateName + "%")) > 
1023	     
1024	    <#if validator.isNotNull(ddmTemplateLocalService.dynamicQuery(dynamicQuery)) > 
1025	        <#assign template = ddmTemplateLocalService.dynamicQuery(dynamicQuery)?first > 
1026	        <#assign templateKey = template.getTemplateKey() > 
1027	    </#if> 
1028	<#recover> 
1029	</#attempt> 
1030     
1031	<#return templateKey > 
1032</#function>