Se ha producido un error al procesar la plantilla.
Range start index 0 is out of bounds, because the sliced string has only 0 character(s). (Note that indices are 0-based).
The blamed expression:
==> 0..underline  [in template "18771710#18771743#347743556" at line 44, column 77]

----
FTL stack trace ("~" means nesting-related):
	- Failed at: ${.vars["reserved-article-title"].dat...  [in template "18771710#18771743#347743556" at line 44, column 38]
----
1<link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" 
2   integrity="sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A==" 
3   crossorigin=""/> 
4<script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js" 
5   integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA==" 
6   crossorigin=""></script> 
7<#assign dataInicial_Data = getterUtil.getString(dataInicial.getData())> 
8<#if validator.isNotNull(dataInicial_Data)> 
9	<#assign dataInicial_DateObj = dateUtil.parseDate("yyyy-MM-dd", dataInicial_Data, locale)> 
10    <#assign dataInicial = dateUtil.getDate(dataInicial_DateObj, "dd/MM/yyyy", locale)> 
11</#if> 
12 
13<#assign dataFinal_Data = getterUtil.getString(dataFinal.getData())> 
14<#if validator.isNotNull(dataFinal_Data)> 
15	<#assign dataFinal_DateObj = dateUtil.parseDate("yyyy-MM-dd", dataFinal_Data, locale)> 
16    <#assign dataFinal = dateUtil.getDate(dataFinal_DateObj, "dd/MM/yyyy", locale)> 
17</#if> 
18 
19<#if dataInicial == dataFinal > 
20    <#assign sData =  dataInicial> 
21<#else> 
22    <#assign sData =  dataInicial + " - " + dataFinal> 
23</#if> 
24 
25<#assign urlImatge = ""> 
26<#assign descImatge = ""> 
27<#assign entryIdImatge = ""> 
28<#if imatge.getData()?? && imatge.getData() != ""> 
29    <#assign urlImatge = imatge.getData()> 
30    <#assign descImatge = imatge.getAttribute("alt")> 
31    <#assign entryIdImatge = "data-fileentryid='" + imatge.getAttribute("fileEntryId") + "'"> 
32<#else> 
33    <#if imatge.urlExterna?? && imatge.urlExterna.getData() != ""> 
34        <#assign urlImatge = imatge.urlExterna.getData()> 
35    </#if> 
36    <#if imatge.descImatgeExterna?? && imatge.descImatgeExterna.getData() != ""> 
37        <#assign descImatge = imatge.descImatgeExterna.getData()> 
38    </#if> 
39</#if> 
40 
41 
42<h2 class="title my-4"> 
43	<#assign underline = (.vars['reserved-article-title'].data?length/3)?int>	 
44    <span class="text-big-underline">${.vars['reserved-article-title'].data[0..underline]}</span>${.vars['reserved-article-title'].data[underline+1..]} 
45</h2> 
46 
47<div class="row"> 
48    <#if urlImatge != ""> 
49        <div class="col-lg-5 col-12"> 
50    	    <img src="${urlImatge}" alt="${descImatge}" ${entryIdImatge} class="img-fluid"  /> 
51    	</div>		 
52        <div class="col-lg-7 col-12"> 
53    <#else> 
54         <div class="col-12"> 
55    </#if>  
56            <div class="shadow border p-3 mb-4 text-left"> 
57                ${descripcio.getData()} 
58            </div> 
59    </div> 
60</div> 
61                 
62<div class="row"> 
63    <div class="col text-left"> 
64        <p class="mb-1 mt-3">${mesInfo.getData()} </p> 
65     
66        <h4 class="mt-4">${languageUtil.get(locale, "turisme.agenda.quan")}</h4> 
67        <p class="mb-1"><b>${sData}</b></p> 
68        <#if horari?? && horari.getData()?has_content> 
69            <p class="mb-1">${horari.getData()}</p> 
70        </#if> 
71     
72        <h4 class="mt-4">${languageUtil.get(locale, "turisme.agenda.on")}</h4>   
73        <#if nomLloc.getData()?has_content > 
74            <p class="mb-1">${nomLloc.getData()}</p> 
75        </#if> 
76        <#if carrer.getData()?has_content > 
77            <p class="mb-1"> ${carrer.getData()} </p> 
78        </#if>  
79        <p class="mb-1"><b>${municipi.getData()}</b></p> 
80        
81       
82        <h4 class="mt-4">${languageUtil.get(locale, "turisme.agenda.mesInfo")}</h4>               
83        <#if organitzador.getData()?has_content > 
84            <p class="mb-1">${organitzador.getData()}</p> 
85        </#if> 
86        <#if telefon.getData()?has_content > 
87            <p class="mb-1">Tel. ${telefon.getData() }</p> 
88        </#if> 
89        <#if entrada.getData()?has_content > 
90            <p class="mb-1">${entrada.getData() }</p> 
91        </#if> 
92        <#if web.getData()?has_content > 
93            <p class="mb-1"><a href="${web.getData()}" target="_blank">Web</a></p> 
94        </#if> 
95        <#list recursos.arxiu.getSiblings() as cur_arxiu> 
96            <#assign urlDoc = ""> 
97            <#if cur_arxiu.getData()?? && cur_arxiu.getData() != ""> 
98                <#assign urlDoc = cur_arxiu.getData()> 
99            <#else> 
100                <#if cur_arxiu.urlExterna2?? && cur_arxiu.urlExterna2.getData() != ""> 
101                    <#assign urlDoc = cur_arxiu.urlExterna2.getData()> 
102                </#if> 
103            </#if> 
104            <#if urlDoc != ""> 
105                <p class="mb-1"><a href="${urlDoc}" target="_blank"> 
106                    <#if cur_arxiu.titolAdjunt?? && cur_arxiu.titolAdjunt.getData()?has_content> 
107                	    ${cur_arxiu.titolAdjunt.getData()} 
108                	<#else> 
109                		${languageUtil.format(locale, "download-x", "Arxiu adjunt", false)} 
110                	</#if> 
111                </a></p> 
112            </#if> 
113        </#list> 
114    </div> 
115</div> 
116 
117<#assign adjunts = false> 
118<#if recursos.arxiu?? && recursos.arxiu.getSiblings()?has_content > 
119    <#list recursos.arxiu.getSiblings() as cur_arxiu> 
120        <#if cur_arxiu.getData()?has_content > 
121            <#assign adjunts = true> 
122            <#break> 
123        </#if> 
124    </#list> 
125</#if> 
126 
127<#if adjunts > 
128<div class="row"> 
129        <div class="col"> 
130        </div> 
131</div> 
132</#if> 
133 
134<#assign base_url_cercalia = "https://cercalia.diba.cat/turdibades/basica.php" > 
135<#assign paginaMapa = "/web/mapa/inici" > 
136<#assign params = "&id=${.vars['reserved-article-title'].data}&name=${.vars['reserved-article-title'].data}&text=${nomLloc.getData()}&link=${web.getData()}&longitude=${longitud.getData()}&latitude=${latitud.getData()}" > 
137<#assign url_detall = "${base_url_cercalia}?lang=${locale.getLanguage()}${params}" > 
138<#assign url_complet = "${paginaMapa}?params=${staticUtil['com.liferay.portal.kernel.util.HttpComponentsUtil'].decodeURL(params)}" > 
139 
140<div class="row"> 
141    <h4 class="col mt-4 text-left">${languageUtil.get(locale, "detail.mapa")}</h4> 
142</div> 
143<div class="row"> 
144    <div class="col-12"> 
145        <#assign journalArticleId = .vars["reserved-article-id"].data> 
146		<div id="mapa_${journalArticleId}" class="embed-responsive embed-responsive-16by9"></div>   
147        <#assign indicacions= languageUtil.get(locale,"agenda.indicacions") > 
148        <script> 
149			jQuery(document).ready(function() { 
150			// Llista de cartografies. 
151			var tiles = L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", { 
152						  maxZoom: 18, 
153						  attribution: "&copy; Diputació de Barcelona" 
154						}), 
155			googleStreets = L.tileLayer("https://{s}.google.com/vt/lyrs=m&x={x}&y={y}&z={z}&hl=ca", { 
156						  maxZoom: 20, 
157						  subdomains: ["mt0", "mt1", "mt2", "mt3"], 
158						  attribution: "&copy; Diputació de Barcelona" 
159						}); 
160			// Punt central del mapa. 
161			var latlng = L.latLng(${latitud.getData()},${longitud.getData()}); 
162			 
163			var map_google = L.map("mapa_${journalArticleId}", {center: latlng, zoom: 15, layers: [googleStreets]}); 
164			<#assign marcador="<a href='${web.getData()}' target='_blank'>${.vars['reserved-article-title'].data}</a><br/>${nomLloc.getData()}<br/><a href='https://www.google.es/maps/place/${latitud.getData()},${longitud.getData()}'  target='_blank'>${indicacions}</a> " > 
165			L.marker([${latitud.getData()},${longitud.getData()}]).addTo(map_google).bindPopup("${marcador}"); 
166			}); 
167            </script> 
168    </div> 
169</div> 

¿Quieres estar informado de toda la agenda del fin de semana?

Suscríbete
Boletín semanal

Vols publicar a l'agenda de BCN+?

ACCEDEIX AL FORMULARI
Agenda