Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> title  [in template "20155#20195#1501272" at line 634, column 202]

----
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: ${title}  [in template "20155#20195#1501272" at line 634, column 200]
----
1<#assign imagesFolder = themeDisplay.getPathThemeImages()> 
2<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")> 
3<#assign currentURL = request.getRequestURL() /> 
4<#assign isFundacio = false> 
5<#if currentURL?contains("fundacio")> 
6	<#assign isFundacio = true> 
7</#if> 
8 
9<#function miliSeconds dateString firstDate> 
10	<#assign params = dateString?split(":")> 
11	 
12	<#if params?size == 2> 
13		<#assign param1 = params[0]> 
14		<#assign param2 = params[1]> 
15		<#assign param1 = getterUtil.getLong(param1)*3600000> 
16		<#assign param2 = getterUtil.getLong(param2)*60000> 
17		<#assign finalMilSec = param1 + param2> 
18		<#assign finalMilSecLong = getterUtil.getLong(finalMilSec)> 
19		<#assign resultLong = firstDate + finalMilSecLong> 
20		 
21		<#return resultLong> 
22	</#if> 
23</#function> 
24 
25<#--  header-image  --> 
26 
27<#if upperImage?? && upperImage.getData()?has_content> 
28	<div class="header-image"> 
29		<img src="${upperImage.getData()}" <#if upperImageAlt?? && upperImageAlt.getData()?has_content>alt="${upperImageAlt.getData()}"</#if>> 
30	</div> 
31</#if> 
32 
33 
34<#--  breadcrumbs  
35 
36<div class="full-body__container breadcrumbs" style="float: unset; margin-right: auto; padding-bottom: 22px; padding-top: 22px;"> 
37	<p class="breadcrumbs__title"><@liferay.language key='header.breadcrumbs.text' />:</p> 
38	<#if liferay_portlet?has_content><@liferay.breadcrumbs /></#if> 
39</div>  --> 
40 
41 
42<#-- TITOL I SUBTITOL  --> 
43 
44<#if titleGlobal?? && titleGlobal.getData()?has_content || subtitleGlobal?? && subtitleGlobal.getData()?has_content> 
45	<div class="full-body__container basicav2-titol-subtitol"> 
46		<#if titleGlobal?? && titleGlobal.getData()?has_content><h1>${titleGlobal.getData()}</h1></#if> 
47		<#if subtitleGlobal?? && subtitleGlobal.getData()?has_content><p>${subtitleGlobal.getData()}</p></#if> 
48	</div> 
49</#if> 
50 
51 
52<#--  bloc-info-agenda  --> 
53 
54<#if blocInfoAgenda?? && ((blocInfoAgenda.whenBlocInfoAgenda.initDateBlocInfoAgenda?? && blocInfoAgenda.whenBlocInfoAgenda.initDateBlocInfoAgenda.getData()?has_content) || (blocInfoAgenda.whereBlocInfoAgenda.textWhereBlocInfoAgenda?? && blocInfoAgenda.whereBlocInfoAgenda.textWhereBlocInfoAgenda.getData()?has_content) || (blocInfoAgenda.accesBlocInfoAgenda.textAccesBlocInfoAgenda?? && blocInfoAgenda.accesBlocInfoAgenda.textAccesBlocInfoAgenda.getData()?has_content)) && (!blocInfoAgenda.hideBlocInfoAgenda?? || !getterUtil.getBoolean(blocInfoAgenda.hideBlocInfoAgenda.getData()))> 
55	<div class="full-body__container bloc-info-agenda"> 
56		<div class="bloc-info-agenda-elements"> 
57			<#if blocInfoAgenda.whenBlocInfoAgenda.initDateBlocInfoAgenda?? && blocInfoAgenda.whenBlocInfoAgenda.initDateBlocInfoAgenda.getData()?has_content> 
58				<div class="bloc-info-agenda-element"> 
59					<#if blocInfoAgenda.whenBlocInfoAgenda.imageWhenBlocInfoAgenda?? && blocInfoAgenda.whenBlocInfoAgenda.imageWhenBlocInfoAgenda.getData()?has_content> 
60						<img class="bloc-info-agenda-img" src="${blocInfoAgenda.whenBlocInfoAgenda.imageWhenBlocInfoAgenda.getData()}"> 
61					<#else> 
62						<img class="bloc-info-agenda-img" src="${imagesFolder}/basic/24px/svg/calendar.svg"> 
63					</#if> 
64					<#if blocInfoAgenda.whenBlocInfoAgenda.fromInitDateBlocInfoAgenda?? && blocInfoAgenda.whenBlocInfoAgenda.fromInitDateBlocInfoAgenda.getData()?has_content && getterUtil.getBoolean(blocInfoAgenda.whenBlocInfoAgenda.fromInitDateBlocInfoAgenda.getData())> 
65						<div class="bloc-info-agenda-text"><p><@liferay.language key="label.bloc.novetatagenda.when"/> <b><@liferay.language key='label.bloc.novetatagenda.from' /> ${blocInfoAgenda.whenBlocInfoAgenda.initDateBlocInfoAgenda.getData()?date["yyyy-MM-dd"]?string("dd.MM.yyyy")}</b></p></div> 
66					<#else> 
67						<div class="bloc-info-agenda-text"><p><@liferay.language key="label.bloc.novetatagenda.when"/> <b>${blocInfoAgenda.whenBlocInfoAgenda.initDateBlocInfoAgenda.getData()?date["yyyy-MM-dd"]?string("dd.MM.yyyy")}<#if blocInfoAgenda.whenBlocInfoAgenda.endDateBlocInfoAgenda?? && blocInfoAgenda.whenBlocInfoAgenda.endDateBlocInfoAgenda.getData()?has_content> <@liferay.language key="label.bloc.novetatagenda.to"/> ${blocInfoAgenda.whenBlocInfoAgenda.endDateBlocInfoAgenda.getData()?date["yyyy-MM-dd"]?string("dd.MM.yyyy")}</#if></b></p></div> 
68					</#if> 
69				</div> 
70				<hr> 
71			</#if> 
72			<#if blocInfoAgenda.whereBlocInfoAgenda.textWhereBlocInfoAgenda?? && blocInfoAgenda.whereBlocInfoAgenda.textWhereBlocInfoAgenda.getData()?has_content> 
73				<div class="bloc-info-agenda-element"> 
74					<#if blocInfoAgenda.whereBlocInfoAgenda.imageWhereBlocInfoAgenda?? && blocInfoAgenda.whereBlocInfoAgenda.imageWhereBlocInfoAgenda.getData()?has_content> 
75						<img class="bloc-info-agenda-img" src="${blocInfoAgenda.whereBlocInfoAgenda.imageWhereBlocInfoAgenda.getData()}"> 
76					<#else> 
77						<img class="bloc-info-agenda-img" src="${imagesFolder}/basic/24px/svg/location_on.svg"> 
78					</#if> 
79					<div class="bloc-info-agenda-text"><p><@liferay.language key="label.bloc.novetatagenda.where"/> <b>${blocInfoAgenda.whereBlocInfoAgenda.textWhereBlocInfoAgenda.getData()}</b></p></div> 
80				</div> 
81				<hr> 
82			</#if> 
83			<#if blocInfoAgenda.accesBlocInfoAgenda.textAccesBlocInfoAgenda?? && blocInfoAgenda.accesBlocInfoAgenda.textAccesBlocInfoAgenda.getData()?has_content> 
84				<div class="bloc-info-agenda-element"> 
85					<#if blocInfoAgenda.accesBlocInfoAgenda.imageAccesBlocInfoAgenda?? && blocInfoAgenda.accesBlocInfoAgenda.imageAccesBlocInfoAgenda.getData()?has_content> 
86						<img class="bloc-info-agenda-img" src="${blocInfoAgenda.accesBlocInfoAgenda.imageAccesBlocInfoAgenda.getData()}"> 
87					<#else> 
88						<img class="bloc-info-agenda-img" src="${imagesFolder}/basic/24px/svg/ticket.svg"> 
89					</#if> 
90					<div class="bloc-info-agenda-text"><p><@liferay.language key="label.bloc.novetatagenda.acces"/> <b>${blocInfoAgenda.accesBlocInfoAgenda.textAccesBlocInfoAgenda.getData()}</b></p></div> 
91				</div> 
92			</#if> 
93		</div> 
94		<#if blocInfoAgenda.textBottomBlocInfoAgenda?? && blocInfoAgenda.textBottomBlocInfoAgenda.getData()?has_content> 
95			<div class="bloc-info-agenda-bottom"> 
96				<span>${blocInfoAgenda.textBottomBlocInfoAgenda.getData()}</span> 
97			</div> 
98		</#if> 
99	</div> 
100</#if> 
101 
102<#--  text-center  --> 
103 
104<#if textCenter?? && textCenter.getData()?has_content> 
105	<div class="full-body__container text-center-basic"> 
106		${textCenter.getData()} 
107	</div> 
108</#if> 
109 
110 
111<#--  image-center  --> 
112 
113<#if imageCenter?? && imageCenter.getData()?has_content> 
114	<div class="full-body__container image-center-basic"> 
115		<img src="${imageCenter.getData()}"> 
116	</div> 
117</#if> 
118 
119 
120<#--  TEXT-CARRUSEL-IMATGES  --> 
121 
122<#if textCarruselImatges1?? && 0 < textCarruselImatges1.elementsFieldSet.getSiblings()?size && textCarruselImatges1.elementsFieldSet.getSiblings()[0].elementsFieldSetFieldSet.image?? && textCarruselImatges1.elementsFieldSet.getSiblings()[0].elementsFieldSetFieldSet.image.getData()?has_content && (!textCarruselImatges1.hideTextCarruselImatges?? || !getterUtil.getBoolean(textCarruselImatges1.hideTextCarruselImatges.getData()))> 
123	<#assign entriesMapList = []> 
124	<#foreach elem in textCarruselImatges1.elementsFieldSet.getSiblings()> 
125		<#if elem.elementsFieldSetFieldSet.order?has_content> 
126			<#assign currentOrder = elem.elementsFieldSetFieldSet.order.getData()> 
127		</#if> 
128		<#if !currentOrder?has_content || currentOrder == "null"> 
129			<#assign currentOrder = "99"> 
130		</#if> 
131		<#assign currEntryMap = {"entry" : elem.elementsFieldSetFieldSet , "order" : currentOrder?number}> 
132		<#assign entriesMapList = entriesMapList + [currEntryMap]> 
133	</#foreach> 
134 
135	<#assign sortedEntriesMapList = entriesMapList?sort_by("order")> 
136	<#assign sortedEntriesRootElems = []> 
137 
138	<#foreach currEntryMap in sortedEntriesMapList> 
139		<#assign sortedEntriesRootElems = sortedEntriesRootElems + [currEntryMap.entry]> 
140	</#foreach> 
141 
142	<#assign leftContent = ""> 
143	<#if textCarruselImatges1.titleHeader?? && textCarruselImatges1.titleHeader.getData()?has_content && textCarruselImatges1.descHeader?? && textCarruselImatges1.descHeader?has_content> 
144		<#assign leftContent = "true"> 
145	</#if> 
146 
147	<div class="full-body__container hero-carousel-new hero-carousel hero-carousel--super hero-carousel-banner-alt <#if !leftContent?has_content>hero-carousel-banner-solo</#if>"> 
148		<#if leftContent?has_content> 
149			<div class="hero-carousel__container-banner"> 
150				<h2 class="hero-carousel-banner-alt-title"> 
151					${textCarruselImatges1.titleHeader.getData()} 
152				</h2> 
153				<p class="hero-carousel-banner-alt-desc"> 
154					${textCarruselImatges1.descHeader.getData()} 
155				</p> 
156			</div> 
157		</#if> 
158		<div aria-live="polite" aria-atomic="false" aria-relevant="all" class="slick-list draggable"> 
159			<div class="hero-carousel__container js-carousel-banner-al_1 is-playing" 
160				data-prev-text='<@liferay.language key="label.carousel.prev"/>' 
161				data-next-text='<@liferay.language key="label.carousel.next"/>' 
162				data-pagination-text='<@liferay.language key="label.carousel.outstanding"/>' 
163				data-stop-text='<@liferay.language key="label.carousel.pause"/>' 
164				data-play-text='<@liferay.language key="label.carousel.start"/>'> 
165				<#if sortedEntriesRootElems?has_content>				 
166					<#foreach element in sortedEntriesRootElems> 
167						<div class="hero hero--super"> 
168							<div class="hero__container"> 
169								<#if element.typeLink.getData() == "video"> 
170								<a href="#" onclick='showVideoModalBanner(`${element.External_Link.getData()}`);return false;' class="hero__link" <#if element.titleLink?? && element.titleLink.getData()?has_content>title="${element.titleLink.getData()}"</#if>> 
171								<#else> 
172								<a class="hero__link"  
173									<#if element.typeLink.getData() == "extern">  
174										href="${element.External_Link.getData()}" target="_blank" title="<@liferay.language key="label.externalLink.title"/>"  
175									<#elseif element.typeLink.getData() == "intern" && element.Internal_Link?? && element.Internal_Link.getFriendlyUrl()?has_content>  
176										href="${element.Internal_Link.getFriendlyUrl()}" target="_self"  
177										<#if element.titleLink?? && element.titleLink.getData()?has_content>title="${element.titleLink.getData()}"</#if>  
178									<#elseif element.typeLink.getData() == "intern" && element.External_Link?? && element.External_Link.getData()?has_content>  
179										href="${element.External_Link.getData()}" target="_self"  
180										<#if element.titleLink?? && element.titleLink.getData()?has_content>title="${element.titleLink.getData()}"</#if>  
181									</#if> 
182
183								</#if> 
184									<div class="hero__media <#if (!element.titleElem?? || !element.titleElem.getData()?has_content) && (!element.descElem?? || !element.descElem.getData()?has_content)>hero__media-no-fade</#if>"> 
185										<#if element.typeLink.getData() == "video"> 
186											<div class="hero__media-video__container"> 
187												<span class="hero__media-video__img"> 
188												</span> 
189											</div> 
190										</#if> 
191										<img class="hero__image hero__image-new lazyload" data-src="${element.image.getData()}" <#if element.altImage?? && element.altImage.getData()?has_content>alt="${element.altImage.getData()}"</#if>> 
192									</div> 
193									<div class="hero__content white__banner"> 
194										<p class="hero__title" > 
195											${element.titleElem.getData()} 
196										</p> 
197										<p class="hero__desc-alt" > 
198											${element.descElem.getData()} 
199										</p> 
200									</div> 
201								</a> 
202							</div> 
203						</div> 
204					</#foreach> 
205				</#if> 
206			</div> 
207		</div> 
208	</div> 
209 
210	<div class="dialog"> 
211		<div id="carrusel-banner-video" class="u-hidden"> 
212			<div class="dialog__body dialog__body--jotmbe" id="carrusel-banner-video-content"> 
213			</div> 
214		</div> 
215	</div> 
216	<script type="text/javascript"> 
217		initSliderCarruselBanner1(); 
218 
219		function initSliderCarruselBanner1() { 
220			if($(".js-carousel-banner-al_1").hasClass('slick-initialized')) { 
221				$(".js-carousel-banner-al_1").slick("unslick"); 
222
223			$('.js-carousel-banner-al_1 .slick-toggle-play').remove(); 
224			$('.js-carousel-banner-al_1').slick({ 
225				slidesToShow: 1, 
226				arrows: true, 
227				draggable: true, 
228				infinite: false, 
229				variableWidth: false, 
230				autoplaySpeed: 4000, 
231				dots: true, 
232				nextArrow: '<button type="button" class="slick-next"><img class="slick-next__icon slick-next__icon-normal" src="${imagesFolder}/basic/18px/svg/arrow-next-black.svg" alt=\'<@liferay.language key="label.next"/>\'/><img class="slick-next__icon slick-next__icon-disabled" src="${imagesFolder}/basic/18px/svg/arrow-next-gray.svg" alt=\'<@liferay.language key="label.next"/>\'/></button>', 
233				prevArrow: '<button type="button" class="slick-prev"><img class="slick-prev__icon slick-prev__icon-normal" src="${imagesFolder}/basic/18px/svg/arrow-prev-black.svg" alt=\'<@liferay.language key="label.prev"/>\'/><img class="slick-prev__icon slick-prev__icon-disabled" src="${imagesFolder}/basic/18px/svg/arrow-prev-gray.svg" alt=\'<@liferay.language key="label.prev"/>\'/></button>', 
234				responsive: [ 
235
236						breakpoint: 767, 
237						settings: { 
238							slidesToShow: 1, 
239							arrows: false, 
240							variableWidth: true, 
241							dots: true 
242
243
244
245			}).each(function () { 
246				var carousel = $(this), 
247				toggleButton, 
248				toggleIcon; 
249 
250				carousel.find('.slick-next__icon').attr({ 
251					'alt': carousel.data('next-text') 
252				}); 
253 
254				carousel.find('.slick-prev__icon').attr({ 
255					'alt': carousel.data('prev-text') 
256				}); 
257			}); 
258 
259			if ($('.hero-carousel__container .hero').length == 1) { 
260				$('.hero-carousel__container .slick-toggle-play').hide(); 
261
262 
263			$('.slick-cloned[aria-describedby]').removeAttr('aria-describedby'); 
264			if($(".js-carousel-banner-al_1 .slick-dots").length > 0) { 
265				setDotsPositionBanner1(); 
266
267
268 
269		function showVideoModalBanner(link) { 
270			const start = link.indexOf("v=") + 2; 
271			const end = start + 2 + 11; 
272 
273			TMB.dialog.newModal(langJotmbeClose, "dialog--jotmbe__no-footer dialog--jotmbe__no-icon dialog--jotmbe__with-actions dialog-video-iframe", "carrusel-banner-video", "", "Modal-"); 
274			$('#carrusel-banner-video-content').html('<iframe class="home-carrusel-video-iframe" src="https://www.youtube.com/embed/'+link.substring(start, end)+'" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>'); 
275
276		function setDotsPositionBanner1() { 
277			$(".js-carousel-banner-al_1 .slick-dots").appendTo($(".js-carousel-banner-al_1").parent()); 
278
279 
280		window.addEventListener('resize', function(event){ 
281			const width  = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; 
282			if($(".js-carousel-banner-al_1 .slick-dots").length > 0 && width > 768) { 
283				setDotsPositionBanner1(); 
284
285		});    
286 
287	</script> 
288</#if> 
289 
290 
291<#--  BASICA-TITOL-TEXT  --> 
292 
293<#if basicaTitolText?? && 0 < basicaTitolText.elementsBasica.getSiblings()?size && (basicaTitolText.elementsBasica.getSiblings()[0].titleBasica.getData()?has_content || basicaTitolText.elementsBasica.getSiblings()[0].contentBasica.getData()?has_content) && (!basicaTitolText.hideBasicaTitolText?? || !getterUtil.getBoolean(basicaTitolText.hideBasicaTitolText.getData()))> 
294	<div class="full-body__container basica-titol-text"> 
295		<#foreach elem in basicaTitolText.elementsBasica.getSiblings()> 
296			<div class="basica-titol-text-wrapper"> 
297				<#if elem.titleBasica?? && elem.titleBasica.getData()?has_content><h2 class="">${elem.titleBasica.getData()}</h2></#if> 
298				<#if elem.contentBasica?? && elem.contentBasica.getData()?has_content><div class="basica-titol-text-content">${elem.contentBasica.getData()}</div></#if> 
299			</div> 
300			<#foreach subelem in elem.subelementsBasica.getSiblings()> 
301				<div class="basica-titol-text-wrapper"> 
302					<#if subelem.subelementTitleBasica?? && subelem.subelementTitleBasica.getData()?has_content><h3>${subelem.subelementTitleBasica.getData()}</h3></#if> 
303					<#if subelem.subelementContentBasica?? && subelem.subelementContentBasica.getData()?has_content><div class="basica-titol-text-content">${subelem.subelementContentBasica.getData()}</div></#if> 
304				</div> 
305			</#foreach> 
306		</#foreach> 
307	</div> 
308</#if> 
309 
310 
311<#--  bloc-detall-agenda  --> 
312 
313<#if detallAgenda?? && (!detallAgenda.hideDetallAgenda?? || !getterUtil.getBoolean(detallAgenda.hideDetallAgenda.getData()))> 
314    <#assign hasElementDetallAgenda = false> 
315    <#if detallAgenda.elementsDetallAgenda??  
316          && detallAgenda.elementsDetallAgenda.getSiblings()??  
317          && (detallAgenda.elementsDetallAgenda.getSiblings()?size > 0)> 
318        <#assign firstSibling = detallAgenda.elementsDetallAgenda.getSiblings()[0]> 
319        <#if (firstSibling.titleDetallAgenda?? && firstSibling.titleDetallAgenda.getData()?has_content)  
320              || (firstSibling.contentDetallAgenda?? && firstSibling.contentDetallAgenda.getData()?has_content)> 
321            <#assign hasElementDetallAgenda = true> 
322        </#if> 
323    </#if> 
324     
325    <div class="full-body__container detall-agenda" <#if !hasElementDetallAgenda>style="margin-top:0;"</#if>> 
326		<#if detallAgenda.elementsDetallAgenda.getSiblings()??> 
327			<#assign siblings = detallAgenda.elementsDetallAgenda.getSiblings()> 
328			<#if siblings?size gt 0> 
329				<#foreach elem in siblings> 
330					<div class="detall-agenda-wrapper"> 
331						<#if elem.titleDetallAgenda?? && elem.titleDetallAgenda.getData()?has_content> 
332							<h2 class="">${elem.titleDetallAgenda.getData()}</h2> 
333						</#if> 
334						<#if elem.contentDetallAgenda?? && elem.contentDetallAgenda.getData()?has_content> 
335							<div class="detall-agenda-content">${elem.contentDetallAgenda.getData()}</div> 
336						</#if> 
337					</div> 
338				</#foreach> 
339			</#if> 
340		</#if> 
341 
342         
343        <#if detallAgenda.buttonsDetallAgenda??  
344              && detallAgenda.buttonsDetallAgenda.getSiblings()??  
345              && (detallAgenda.buttonsDetallAgenda.getSiblings()?size > 0) 
346              && detallAgenda.buttonsDetallAgenda.getSiblings()[0].linkTextDetallAgenda??  
347              && detallAgenda.buttonsDetallAgenda.getSiblings()[0].linkTextDetallAgenda.getData()?has_content> 
348            <div class="detall-agenda-buttons-wrapper"> 
349                <#foreach subelem in detallAgenda.buttonsDetallAgenda.getSiblings()> 
350                    <a title="<#if subelem.accessibleTitleButtons?? && subelem.accessibleTitleButtons.getData()?has_content>${subelem.accessibleTitleButtons.getData()}</#if>"  
351                       type="button"  
352                       class="button button--a"  
353                       <#if subelem.linkTypeDetallAgenda.getData() == "extern"  
354                             && subelem.External_LinkDetallAgenda??  
355                             && subelem.External_LinkDetallAgenda.getData()?has_content>  
356                           href="${subelem.External_LinkDetallAgenda.getData()}"  
357                           rel="external"  
358                           target="_blank"  
359                       <#elseif subelem.linkTypeDetallAgenda.getData() == "intern"  
360                             && subelem.Internal_LinkDetallAgenda??  
361                             && subelem.Internal_LinkDetallAgenda.getFriendlyUrl()?has_content>  
362                           href="${subelem.Internal_LinkDetallAgenda.getFriendlyUrl()}"  
363                           target="_self"   
364                       <#elseif subelem.linkTypeDetallAgenda.getData() == "intern"  
365                             && subelem.External_LinkDetallAgenda??  
366                             && subelem.External_LinkDetallAgenda.getData()?has_content>  
367                           href="${subelem.External_LinkDetallAgenda.getData()}"  
368                           target="_self"  
369                       </#if>> 
370                        <span class="button__label">${subelem.linkTextDetallAgenda.getData()}</span> 
371                    </a> 
372                </#foreach> 
373            </div> 
374        </#if> 
375    </div> 
376</#if> 
377 
378 
379 
380 
381<#--  DT_PP_TITULO_VIDEO  --> 
382 
383<#if stPpVideo?? && stPpVideo.linkFieldSet.link.getData()?has_content && (!stPpVideo.hideStPpVideo?? || !getterUtil.getBoolean(stPpVideo.hideStPpVideo.getData()))> 
384	<style> 
385		.points-video__video-cover.no_video::after{ 
386			background: none; 
387
388	</style> 
389	<#assign hasLink = false> 
390	<#if stPpVideo.linkHeader?? && stPpVideo.linkHeader.getData()?has_content && stPpVideo.linkHeaderText?? && stPpVideo.linkHeaderText.getData()?has_content> 
391		<#assign hasLink = true> 
392	</#if> 
393	<section class="points-video bg-gray pt-56"> 
394		<div class="main__container"> 
395			<div class="full-body"> 
396				<div class="full-body__container points-video__header-extra-container"> 
397					<#if stPpVideo.linkFieldSet.linkFieldSetFieldSet.ancoraVideo.getData()?has_content && stPpVideo.linkFieldSet.linkFieldSetFieldSet.ancoraVideo.getData()?trim?has_content> 
398						<a name="${stPpVideo.linkFieldSet.linkFieldSetFieldSet.ancoraVideo.getData()}" id="${stPpVideo.linkFieldSet.linkFieldSetFieldSet.ancoraVideo.getData()}"> 
399						</a> 
400					</#if> 
401					<#if stPpVideo.titol?? && stPpVideo.titol.getData()?has_content> 
402						<div class="points-video__header"> 
403							<div class="points-video__header-extra" <#if !hasLink>style="justify-content: center; margin-right: 0;"</#if>> 
404								<h2 class="points-video__title"> 
405								${stPpVideo.titol.getData()}</h2> 
406								<#if hasLink> 
407									<a class="points-video__subtitle-link" href="${stPpVideo.linkHeader.getData()}">${stPpVideo.linkHeaderText.getData()}</a> 
408								</#if> 
409							</div> 
410							<p class="points-video__description" <#if !hasLink>style="text-align: center; max-width: 100%;"</#if>> 
411							${stPpVideo.descriptiu.getData()}</p> 
412						</div> 
413					</#if> 
414					 
415					<div class="points-video__video-item cookieconsent-optin-marketing media-unit__content" id="marketingCookies"> 
416						<#if stPpVideo.linkFieldSet.link.getData()?has_content> 
417							<#assign start = stPpVideo.linkFieldSet.link.getData()?index_of("v=") + 2> 
418							<#--13 because v= + 11 char for youtube ids 
419							--> 
420							<#assign end = start + 11> 
421							<a href="${stPpVideo.linkFieldSet.link.getData()}" class="points-video__video-stPpVideo.linkFieldSet.link" title="${stPpVideo.linkFieldSet.linkFieldSetFieldSet.descriptiuVideo.getData()}" 
422								rel="dialog-video" data-video="${stPpVideo.linkFieldSet.link.getData()?substring(start, end)}"> 
423								<div class="points-video__video-cover" style="background-image: url(${stPpVideo.linkFieldSet.linkFieldSetFieldSet.imgVideoFieldSet.imgVideo.getData()});"> 
424									<img src="${stPpVideo.linkFieldSet.linkFieldSetFieldSet.imgVideoFieldSet.imgVideo.getData()}" alt="${stPpVideo.linkFieldSet.linkFieldSetFieldSet.imgVideoFieldSet.imgVideoFieldSetFieldSet.alt.getData()}" class="points-video__video-image"> 
425								</div> 
426								<#if stPpVideo.linkFieldSet.linkFieldSetFieldSet.descriptiuVideo.getData()?has_content> 
427									<p class="points-video__caption"> 
428									${stPpVideo.linkFieldSet.linkFieldSetFieldSet.descriptiuVideo.getData()}</p> 
429								</#if> 
430							</a> 
431						<#else> 
432							<a class="points-video__video-link" title="${stPpVideo.linkFieldSet.linkFieldSetFieldSet.descriptiuVideo.getData()}"> 
433								<div class="points-video__video-cover no_video" style="background-image: url(${stPpVideo.linkFieldSet.linkFieldSetFieldSet.imgVideoFieldSet.imgVideo.getData()});"> 
434									<img src="${stPpVideo.linkFieldSet.linkFieldSetFieldSet.imgVideoFieldSet.imgVideo.getData()}" alt="${stPpVideo.linkFieldSet.linkFieldSetFieldSet.imgVideoFieldSet.imgVideoFieldSetFieldSet.alt.getData()}" class="points-video__video-image"> 
435								</div> 
436								<#if stPpVideo.linkFieldSet.linkFieldSetFieldSet.descriptiuVideo.getData()?has_content> 
437									<p class="points-video__caption"> 
438									${stPpVideo.linkFieldSet.linkFieldSetFieldSet.descriptiuVideo.getData()}</p> 
439								</#if> 
440							</a> 
441							 
442						</#if> 
443					</div> 
444					<div class='cookieconsent-optout-marketing media-unit__content'> 
445						<@liferay.language key="cookiebot.youtube.no-marketing"/> 
446					</div> 
447					<#if hasLink> 
448						<a class="points-video__subtitle-link-mobile" href="${stPpVideo.linkHeader.getData()}">${stPpVideo.linkHeaderText.getData()}</a> 
449					</#if> 
450				</div> 
451			</div> 
452		</div> 
453	</section> 
454	<section class="video-dialog js__video-dialog u-hidden <#if stPpVideo.linkFieldSet.link?? && stPpVideo.linkFieldSet.link.getData()?has_content>${stPpVideo.linkFieldSet.link.getData()?substring(start, end)}</#if>"> 
455		<div class="u-hidden" id="fragment-show-video"> 
456			<div class="video-dialog__panel"> 
457				<header class="video-dialog__header"> 
458					<button class="video-dialog__close js__video-dialog-close"> 
459					Cerrar</button> 
460				</header> 
461				<div class="video-dialog__content"> 
462					<div class="video-dialog__inner js__video-dialog-container"> 
463						<iframe data-cookieconsent="marketing" data-cookieblock-src="https://www.youtube.com/embed/${stPpVideo.linkFieldSet.link.getData()?substring(start, end)}" frameborder="0" class="video-dialog__media" allow="encrypted-media" allowfullscreen=""> 
464						</iframe> 
465					</div> 
466				</div> 
467			</div> 
468		</div> 
469		<div class="video-dialog__overlay js__video-dialog-close"> 
470		</div> 
471	</section> 
472</#if> 
473 
474 
475<#--  TEXT-CARRUSEL-IMATGES-ALT  --> 
476 
477<#if textCarruselImatges2?? && 0 < textCarruselImatges2.elementsFieldSetAlt.getSiblings()?size && textCarruselImatges2.elementsFieldSetAlt.getSiblings()[0].elementsFieldSetFieldSetAlt.imageAlt?? && textCarruselImatges2.elementsFieldSetAlt.getSiblings()[0].elementsFieldSetFieldSetAlt.imageAlt.getData()?has_content && (!textCarruselImatges2.hideTextCarruselImatgesAlt?? || !getterUtil.getBoolean(textCarruselImatges2.hideTextCarruselImatgesAlt.getData()))> 
478	<#assign imagesFolder = themeDisplay.getPathThemeImages()> 
479 
480	<#assign entriesMapList = []> 
481	<#foreach elem in textCarruselImatges2.elementsFieldSetAlt.getSiblings()> 
482		<#if elem.elementsFieldSetFieldSetAlt.order?has_content> 
483			<#assign currentOrder = elem.elementsFieldSetFieldSetAlt.order.getData()> 
484		</#if> 
485		<#if !currentOrder?has_content || currentOrder == "null"> 
486			<#assign currentOrder = "99"> 
487		</#if> 
488		<#assign currEntryMap = {"entry" : elem.elementsFieldSetFieldSetAlt , "order" : currentOrder?number}> 
489		<#assign entriesMapList = entriesMapList + [currEntryMap]> 
490	</#foreach> 
491 
492	<#assign sortedEntriesMapList = entriesMapList?sort_by("order")> 
493	<#assign sortedEntriesRootElems = []> 
494 
495	<#foreach currEntryMap in sortedEntriesMapList> 
496		<#assign sortedEntriesRootElems = sortedEntriesRootElems + [currEntryMap.entry]> 
497	</#foreach> 
498 
499	<#assign leftContent = ""> 
500	<#if textCarruselImatges2.titleHeaderAlt?? && textCarruselImatges2.titleHeaderAlt.getData()?has_content && textCarruselImatges2.descHeaderAlt?? && textCarruselImatges2.descHeaderAlt?has_content> 
501		<#assign leftContent = "true"> 
502	</#if> 
503 
504	<div class="full-body__container hero-carousel-new hero-carousel hero-carousel--super hero-carousel-banner-alt <#if !leftContent?has_content>hero-carousel-banner-solo</#if>"> 
505		<#if leftContent?has_content> 
506			<div class="hero-carousel__container-banner"> 
507				<h2 class="hero-carousel-banner-alt-title"> 
508					${textCarruselImatges2.titleHeaderAlt.getData()} 
509				</h2> 
510				<p class="hero-carousel-banner-alt-desc"> 
511					${textCarruselImatges2.descHeaderAlt.getData()} 
512				</p> 
513			</div> 
514		</#if> 
515		<div aria-live="polite" aria-atomic="false" aria-relevant="all" class="slick-list draggable"> 
516			<div class="hero-carousel__container js-carousel-banner-al_alt is-playing" 
517				data-prev-text='<@liferay.language key="label.carousel.prev"/>' 
518				data-next-text='<@liferay.language key="label.carousel.next"/>' 
519				data-pagination-text='<@liferay.language key="label.carousel.outstanding"/>' 
520				data-stop-text='<@liferay.language key="label.carousel.pause"/>' 
521				data-play-text='<@liferay.language key="label.carousel.start"/>'> 
522				<#if sortedEntriesRootElems?has_content>				 
523					<#foreach element in sortedEntriesRootElems> 
524						<div class="hero hero--super"> 
525							<div class="hero__container"> 
526								<#if element.typeLinkAlt.getData() == "video"> 
527									<a href="#" onclick='showVideoModalBanner(`${element.External_LinkAlt.getData()}`);return false;' class="hero__link"  
528										<#if element.titleLinkAlt?? && element.titleLinkAlt.getData()?has_content> 
529											title="${element.titleLinkAlt.getData()}" 
530										</#if> 
531
532								<#else> 
533									<a class="hero__link"  
534										<#if element.typeLinkAlt.getData() == "extern">  
535											href="${element.External_LinkAlt.getData()}" target="_blank" title="<@liferay.language key="label.externalLink.title"/>"  
536										<#elseif element.typeLinkAlt.getData() == "intern" && element.Internal_LinkAlt?? && element.Internal_LinkAlt.getFriendlyUrl()?has_content>  
537											href="${element.Internal_LinkAlt.getFriendlyUrl()}" target="_self"  
538											<#if element.titleLinkAlt?? && element.titleLinkAlt.getData()?has_content>title="${element.titleLinkAlt.getData()}"</#if>  
539										<#elseif element.typeLinkAlt.getData() == "intern" && element.External_LinkAlt?? && element.External_LinkAlt.getData()?has_content>  
540											href="${element.External_LinkAlt.getData()}" target="_self"  
541											<#if element.titleLinkAlt?? && element.titleLinkAlt.getData()?has_content>title="${element.titleLinkAlt.getData()}"</#if>  
542										</#if> 
543
544								</#if> 
545									<div class="hero__media <#if (!element.titleElemAlt?? || !element.titleElemAlt.getData()?has_content) && (!element.descElemAlt?? || !element.descElemAlt.getData()?has_content)>hero__media-no-fade</#if>"> 
546										<#if element.typeLinkAlt.getData() == "video"> 
547											<div class="hero__media-video__container"> 
548												<span class="hero__media-video__img"> 
549												</span> 
550											</div> 
551										</#if> 
552										<img class="hero__image hero__image-new lazyload" data-src="${element.imageAlt.getData()}" <#if element.altImage?? && element.altImage.getData()?has_content>alt="${element.altImage.getData()}"</#if>> 
553									</div> 
554									<div class="hero__content white__banner"> 
555										<p class="hero__title" > 
556											${element.titleElemAlt.getData()} 
557										</p> 
558										<p class="hero__desc-alt" > 
559											${element.descElemAlt.getData()} 
560										</p> 
561									</div> 
562								</a> 
563							</div> 
564						</div> 
565					</#foreach> 
566				</#if> 
567			</div> 
568		</div> 
569	</div> 
570 
571	<div class="dialog"> 
572		<div id="carrusel-banner-video" class="u-hidden"> 
573			<div class="dialog__body dialog__body--jotmbe" id="carrusel-banner-video-content"> 
574			</div> 
575		</div> 
576	</div> 
577	<script type="text/javascript"> 
578		initSliderCarruselBanner2(); 
579 
580		function initSliderCarruselBanner2() { 
581			if($(".js-carousel-banner-al_alt").hasClass('slick-initialized')) { 
582				$(".js-carousel-banner-al_alt").slick("unslick"); 
583
584			$('.js-carousel-banner-al_alt .slick-toggle-play').remove(); 
585			$('.js-carousel-banner-al_alt').slick({ 
586				slidesToShow: 1, 
587				arrows: true, 
588				draggable: true, 
589				infinite: false, 
590				variableWidth: false, 
591				autoplaySpeed: 4000, 
592				dots: true, 
593				nextArrow: '<button type="button" class="slick-next"><img class="slick-next__icon slick-next__icon-normal" src="${imagesFolder}/basic/18px/svg/arrow-next-black.svg" alt=\'<@liferay.language key="label.next"/>\'/><img class="slick-next__icon slick-next__icon-disabled" src="${imagesFolder}/basic/18px/svg/arrow-next-gray.svg" alt=\'<@liferay.language key="label.next"/>\'/></button>', 
594				prevArrow: '<button type="button" class="slick-prev"><img class="slick-prev__icon slick-prev__icon-normal" src="${imagesFolder}/basic/18px/svg/arrow-prev-black.svg" alt=\'<@liferay.language key="label.prev"/>\'/><img class="slick-prev__icon slick-prev__icon-disabled" src="${imagesFolder}/basic/18px/svg/arrow-prev-gray.svg" alt=\'<@liferay.language key="label.prev"/>\'/></button>', 
595				responsive: [ 
596
597						breakpoint: 767, 
598						settings: { 
599							slidesToShow: 1, 
600							arrows: false, 
601							variableWidth: true, 
602							dots: true 
603
604
605
606			}).each(function () { 
607				var carousel = $(this), 
608				toggleButton, 
609				toggleIcon; 
610 
611				carousel.find('.slick-next__icon').attr({ 
612					'alt': carousel.data('next-text') 
613				}); 
614 
615				carousel.find('.slick-prev__icon').attr({ 
616					'alt': carousel.data('prev-text') 
617				}); 
618			}); 
619 
620			if ($('.hero-carousel__container .hero').length == 1) { 
621				$('.hero-carousel__container .slick-toggle-play').hide(); 
622
623 
624			$('.slick-cloned[aria-describedby]').removeAttr('aria-describedby'); 
625			if($(".js-carousel-banner-al_alt .slick-dots").length > 0) { 
626				setDotsPositionBanner2(); 
627
628
629 
630		function showVideoModalBanner2(link) { 
631			const start = link.indexOf("v=") + 2; 
632			const end = start + 2 + 11; 
633 
634			TMB.dialog.newModal(langJotmbeClose, "dialog--jotmbe__no-footer dialog--jotmbe__no-icon dialog--jotmbe__with-actions dialog-video-iframe", "carrusel-banner-video", "", "Modal-${title}"); 
635			$('#carrusel-banner-video-content').html('<iframe class="home-carrusel-video-iframe" src="https://www.youtube.com/embed/'+link.substring(start, end)+'" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>'); 
636
637		function setDotsPositionBanner2() { 
638			$(".js-carousel-banner-al_alt .slick-dots").appendTo($(".js-carousel-banner-al_alt").parent()); 
639
640 
641		window.addEventListener('resize', function(event){ 
642			const width  = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; 
643			if($(".js-carousel-banner-al_alt .slick-dots").length > 0 && width > 768) { 
644				setDotsPositionBanner2(); 
645
646		});    
647 
648	</script> 
649</#if> 
650 
651 
652<#--  CARRUSEL-TRES-CARD  --> 
653 
654<#if referencesFieldSet?? && 0 < referencesFieldSet.getSiblings()?size && referencesFieldSet.getSiblings()[0].referenceId.getData()?has_content && (!hideTresCards?? || !getterUtil.getBoolean(hideTresCards.getData()))> 
655	<#assign colorClass = "" /> 
656	<#assign fullBody = "" /> 
657	<#if fondoColorCarruselCards?? && fondoColorCarruselCards.getData()??> 
658		<#if fondoColorCarruselCards.getData()=="blanc"> 
659			<#assign colorClass = "hola-bcn-carrusel-standard--white" /> 
660			<#assign fullBody = "full-body__container" /> 
661		<#else> 
662			<#assign colorClass = "hola-bcn-carrusel-standard--gray" /> 
663			<#assign fullBody = "full-body__container" /> 
664		</#if> 
665	</#if> 
666 
667	<section class="hola-bcn-carrusel-standard ${colorClass}"> 
668		<div class="hola-bcn-carrusel-standard-cont-ext hola-bcn-carrusel-standard-cont-ext-extra hola-bcn-carrusel-standard-cont-ext-flex ${fullBody}"> 
669			<div class="hola-bcn-carrusel-standard--container"> 
670				<div class="hola-bcn-carrusel-standard--outer"> 
671						<div class="hola-bcn-carrusel-standard_new-header"> 
672							<h2 class="title title--1 hola-bcn-carrusel-standard__title hola-bcn-carrusel-standard__title_new"> 
673							<#if titleCarruselCards?? && titleCarruselCards.getData()?has_content> 
674                ${titleCarruselCards.getData()} 
675              <#else> 
676                <@liferay.language key="title.carrusel.cards.default" /> 
677              </#if> 
678							</h2> 
679							<p class="hola-bcn-carrusel-standard__intro-text">${subtitleCarruselCards.getData()}</p> 
680						</div> 
681					<ul id="result-list" class="hola-bcn-carrusel-standard__items js__hola-bcn-standard-slider"> 
682						<#assign tmbGroupId = 20182> 
683						<#assign fundacioGroupId = 79790> 
684						<#list referencesFieldSet.getSiblings() as element> 
685							<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
686							<#assign articleId = element.referenceId.getData()> 
687							<#assign groupId = getterUtil.getLong(groupId)> 
688							<#attempt> 
689								<#assign journalArticle = JournalArticleLocalService.getArticle(groupId, articleId) /> 
690							<#recover> 
691								<#if groupId == tmbGroupId> 
692									<#assign groupId = fundacioGroupId> 
693								<#else> 
694									<#assign groupId = tmbGroupId> 
695								</#if> 
696								<#attempt> 
697									<#assign journalArticle = JournalArticleLocalService.getArticle(groupId, articleId)!> 
698								<#recover> 
699									<#assign journalArticle = ""> 
700								</#attempt> 
701							</#attempt> 
702							<#if journalArticle?has_content && journalArticle != ""> 
703								<#assign document = saxReaderUtil.read(journalArticle.getContent())> 
704								<#assign rootElement = document.getRootElement()> 
705 
706								<#assign resourceprimKey = journalArticle.getResourcePrimKey()> 
707								<#assign assetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", resourceprimKey)> 
708								<#assign assetRenderer = assetEntry.getAssetRenderer()> 
709								<#assign articleURL = assetRenderer.getURLViewInContext(renderRequest, renderResponse, "")> 
710								<#assign articleFriendlyURL = assetRenderer.getUrlTitle()> 
711								<#assign newwindow = ""> 
712								<#if !articleURL?has_content> 
713									<#assign newwindow = "target='_blank'"> 
714									<#if !isFundacio> 
715										<#if currentURL?contains("pre3")> 
716											<#assign articleURL = "https://pre3-fundacio.tmb.cat/" + locale.getLanguage() + "/w/" + articleFriendlyURL> 
717										<#else> 
718											<#assign articleURL = "https://fundacio.tmb.cat/" + locale.getLanguage() + "/w/" + articleFriendlyURL> 
719										</#if> 
720									<#else> 
721										<#if currentURL?contains("pre3")> 
722											<#assign articleURL = "https://pre3.tmb.cat/" + locale.getLanguage() + "/w/" + articleFriendlyURL> 
723										<#else> 
724											<#assign articleURL = "https://www.tmb.cat/" + locale.getLanguage() + "/w/" + articleFriendlyURL> 
725										</#if> 
726									</#if> 
727								</#if> 
728 
729								<#assign title = ""> 
730								<#assign titleSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='titleGlobal']/dynamic-content[@language-id='" + locale + "']")> 
731								<#if titleSel.selectSingleNode(rootElement)?has_content> 
732									<#assign title = titleSel.selectSingleNode(rootElement).getStringValue()> 
733								</#if> 
734								 
735								<#assign subtitle = ""> 
736								<#assign subtitleSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='subtitleGlobal']/dynamic-content[@language-id='" + locale + "']")> 
737								<#if subtitleSel.selectSingleNode(rootElement)?has_content> 
738									<#assign subtitle = subtitleSel.selectSingleNode(rootElement).getStringValue()> 
739								</#if> 
740 
741								<#assign initDateNovetatAgenda = ""> 
742								<#assign fromInitDateNovetatAgenda = ""> 
743								<#assign endDateNovetatAgenda = ""> 
744								<#assign whereNovetatAgenda = ""> 
745								<#assign novetatAgendaSel = rootElement.selectSingleNode("dynamic-element[@field-reference='blocInfoAgenda']")!""> 
746								<#if novetatAgendaSel?has_content> 
747									<#assign dateNovetatAgendaSelSel = novetatAgendaSel.selectSingleNode("dynamic-element[@field-reference='whenBlocInfoAgenda']")!""> 
748 
749									<#if dateNovetatAgendaSelSel?has_content && dateNovetatAgendaSelSel.selectSingleNode("dynamic-element[@field-reference='initDateBlocInfoAgenda']/dynamic-content[@language-id='" + locale + "']")?has_content> 
750										<#assign initDateNovetatAgenda = dateNovetatAgendaSelSel.selectSingleNode("dynamic-element[@field-reference='initDateBlocInfoAgenda']/dynamic-content[@language-id='" + locale + "']").getStringValue()> 
751									</#if> 
752 
753									<#if dateNovetatAgendaSelSel?has_content && dateNovetatAgendaSelSel.selectSingleNode("dynamic-element[@field-reference='fromInitDateBlocInfoAgenda']/dynamic-content[@language-id='" + locale + "']")?has_content> 
754										<#assign fromInitDateNovetatAgenda = dateNovetatAgendaSelSel.selectSingleNode("dynamic-element[@field-reference='fromInitDateBlocInfoAgenda']/dynamic-content[@language-id='" + locale + "']").getStringValue()> 
755									</#if> 
756 
757									<#if dateNovetatAgendaSelSel?has_content && dateNovetatAgendaSelSel.selectSingleNode("dynamic-element[@field-reference='endDateBlocInfoAgenda']/dynamic-content[@language-id='" + locale + "']")?has_content> 
758										<#assign endDateNovetatAgenda = dateNovetatAgendaSelSel.selectSingleNode("dynamic-element[@field-reference='endDateBlocInfoAgenda']/dynamic-content[@language-id='" + locale + "']").getStringValue()> 
759									</#if> 
760 
761									<#assign whereNovetatAgendaSelSel = novetatAgendaSel.selectSingleNode("dynamic-element[@field-reference='whereBlocInfoAgenda']")!""> 
762									<#if whereNovetatAgendaSelSel?has_content && whereNovetatAgendaSelSel.selectSingleNode("dynamic-element[@field-reference='textWhereBlocInfoAgenda']/dynamic-content[@language-id='" + locale + "']")?has_content> 
763										<#assign whereNovetatAgenda = whereNovetatAgendaSelSel.selectSingleNode("dynamic-element[@field-reference='textWhereBlocInfoAgenda']/dynamic-content[@language-id='" + locale + "']").getStringValue()> 
764									</#if> 
765								</#if> 
766 
767								<#assign typeNovetatAgenda = ""> 
768								<#assign typeNovetatAgendaSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='typeNovetatAgenda']/dynamic-content[@language-id='" + locale + "']")> 
769								<#if typeNovetatAgendaSel.selectSingleNode(rootElement)?has_content> 
770									<#assign typeNovetatAgenda = typeNovetatAgendaSel.selectSingleNode(rootElement).getStringValue()> 
771								</#if> 
772 
773								<#assign filterNovetatAgenda = ""> 
774								<#assign filterNovetatAgendaSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='filterNovetatAgenda']/dynamic-content[@language-id='" + locale + "']")> 
775								<#if filterNovetatAgendaSel.selectSingleNode(rootElement)?has_content> 
776									<#assign filterNovetatAgenda = filterNovetatAgendaSel.selectSingleNode(rootElement).getStringValue()> 
777								</#if> 
778								 
779								<#assign imageNovetatAgenda = ""> 
780								<#assign imageNovetatAgendaSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='imageCardNovetatAgenda']/dynamic-content[@language-id='" + locale + "']")> 
781								<#if imageNovetatAgendaSel.selectSingleNode(rootElement)?has_content> 
782									<#assign image = imageNovetatAgendaSel.selectSingleNode(rootElement).getStringValue()> 
783									<#assign imageUuid = jsonFactoryUtil.createJSONObject(image).uuid!""> 
784									<#assign imageNovetatAgenda = themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/" + groupId + "/" + imageUuid> 
785								</#if> 
786 
787								<#assign imageAltNovetatAgenda = ""> 
788								<#assign imageAltNovetatAgendaSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='altImageCardNovetatAgenda']/dynamic-content[@language-id='" + locale + "']")> 
789								<#if imageAltNovetatAgendaSel.selectSingleNode(rootElement)?has_content> 
790									<#assign imageAltNovetatAgenda = imageAltNovetatAgendaSel.selectSingleNode(rootElement).getStringValue()> 
791								</#if> 
792 
793								<#assign pubDateNovetatAgenda = ""> 
794								<#assign pubDateNovetatAgendaSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='pubDateNovetatAgenda']/dynamic-content[@language-id='" + locale + "']")> 
795								<#if pubDateNovetatAgendaSel.selectSingleNode(rootElement)?has_content> 
796									<#assign pubDateNovetatAgenda = pubDateNovetatAgendaSel.selectSingleNode(rootElement).getStringValue()> 
797								</#if> 
798 
799								<#assign pubTimeNovetatAgenda = ""> 
800								<#assign pubTimeNovetatAgendaSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='pubTimeNovetatAgenda']/dynamic-content[@language-id='" + locale + "']")> 
801								<#if pubTimeNovetatAgendaSel.selectSingleNode(rootElement)?has_content> 
802									<#assign pubTimeNovetatAgenda = pubTimeNovetatAgendaSel.selectSingleNode(rootElement).getStringValue()> 
803								</#if> 
804 
805								<#assign despubDateNovetatAgenda = ""> 
806								<#assign despubDateNovetatAgendaSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='despubDateNovetatAgenda']/dynamic-content[@language-id='" + locale + "']")> 
807								<#if despubDateNovetatAgendaSel.selectSingleNode(rootElement)?has_content> 
808									<#assign despubDateNovetatAgenda = despubDateNovetatAgendaSel.selectSingleNode(rootElement).getStringValue()> 
809								</#if> 
810 
811								<#assign despubTimeNovetatAgenda = ""> 
812								<#assign despubTimeNovetatAgendaSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='despubTimeNovetatAgenda']/dynamic-content[@language-id='" + locale + "']")> 
813								<#if despubTimeNovetatAgendaSel.selectSingleNode(rootElement)?has_content> 
814									<#assign despubTimeNovetatAgenda = despubTimeNovetatAgendaSel.selectSingleNode(rootElement).getStringValue()> 
815								</#if> 
816 
817								<#assign isExpiredNovetatAgenda = ""> 
818								<#assign isExpiredNovetatAgendaSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='isExpiredNovetatAgenda']/dynamic-content[@language-id='" + locale + "']")> 
819								<#if isExpiredNovetatAgendaSel.selectSingleNode(rootElement)?has_content> 
820									<#assign isExpiredNovetatAgenda = isExpiredNovetatAgendaSel.selectSingleNode(rootElement).getStringValue()> 
821								</#if> 
822 
823								<#assign isPublishedNA = false> 
824								<#if (pubDateNovetatAgenda?has_content)> 
825									<#if pubTimeNovetatAgenda?has_content> 
826										<#assign timeActDate = pubTimeNovetatAgenda?date["HH:mm"]> 
827										<#assign timeActFormat = timeActDate?string["HH:mm"]> 
828									<#else> 
829										<#assign timeActDate = ""> 
830										<#assign timeActFormat = ""> 
831									</#if> 
832									<#attempt>	 
833										<#assign dataAct = pubDateNovetatAgenda?date["yyyy-MM-dd"]> 
834										 
835										<#if timeActFormat?has_content && timeActFormat != ""> 
836											<#assign dataActMil = miliSeconds(timeActFormat dataAct?long)> 
837											<#assign dataAct = dateUtil.newDate(getterUtil.getLong(dataActMil))> 
838										</#if> 
839										<#assign dataActMil = dataAct?long> 
840										<#assign now = .now?long+timeZoneUtil.getTimeZone("Europe/Madrid").getOffset(.now?long)> 
841										<#assign isPublishedNA = (dataActMil - now ) < 0 /> 
842									<#recover> 
843									</#attempt> 
844								</#if> 
845 
846								<#assign isDespublishedNA = false> 
847								<#if (despubDateNovetatAgenda?has_content)> 
848									<#if despubTimeNovetatAgenda?has_content> 
849										<#assign timeExpDate = despubTimeNovetatAgenda?date["HH:mm"]> 
850										<#assign timeExpFormat = timeExpDate?string["HH:mm"]> 
851									<#else> 
852										<#assign timeExpDate = ""> 
853										<#assign timeExpFormat = ""> 
854									</#if> 
855									<#attempt> 
856										<#assign dataExp = despubDateNovetatAgenda?date["yyyy-MM-dd"]> 
857										 
858										<#if timeExpFormat?has_content && timeExpFormat != ""> 
859											<#assign dataExpMil = miliSeconds(timeExpFormat dataExp?long)> 
860											<#assign dataExp = dateUtil.newDate(getterUtil.getLong(dataExpMil))> 
861										</#if> 
862										<#assign dataExpMil = dataExp?long> 
863										<#assign now = .now?long+timeZoneUtil.getTimeZone("Europe/Madrid").getOffset(.now?long)> 
864										<#assign isDespublishedNA = (dataExpMil - now) < 0 /> 
865									<#recover> 
866									</#attempt> 
867								</#if> 
868 
869								<#assign isExpiredNA = false> 
870								<#if journalArticle.expirationDate??> 
871									<#assign dataExp = journalArticle.expirationDate?datetime> 
872									<#attempt> 
873										<#assign dataExpMil = dataExp?long> 
874										<#assign now = .now?long+timeZoneUtil.getTimeZone("Europe/Madrid").getOffset(.now?long)> 
875										<#assign isExpiredNA = (dataExpMil - now) < 0 /> 
876									<#recover> 
877									</#attempt> 
878								</#if> 
879 
880								<#assign showNovetatAgenda = false> 
881								<#if typeNovetatAgenda?has_content && typeNovetatAgenda == "1"> 
882									<#assign showNovetatAgenda = isPublishedNA && !isExpiredNA && !isDespublishedNA && isExpiredNovetatAgenda != "true"> 
883								<#else> 
884									<#assign showNovetatAgenda = isPublishedNA && !isExpiredNA && isExpiredNovetatAgenda != "true"> 
885								</#if> 
886 
887								<#if showNovetatAgenda> 
888									<#if title?has_content> 
889										<li class="hola-bcn-carrusel-standard_new-li"> 
890											<a ${newwindow} class="hola-bcn-carrusel-standard_new <#if isDespublishedNA>hola-bcn-carrusel-standard_new-finished</#if>" href="${articleURL}"> 
891												<div class="hola-bcn-carrusel-standard__card-cover"> 
892													<div class="hola-bcn-carrusel-standard__card-cover-filter"></div> 
893													<img class="hola-bcn-carrusel-standard__image" src="${imageNovetatAgenda}" <#if imageAltNovetatAgenda?has_content>alt="${imageAltNovetatAgenda}"<#else>alt=""</#if>> 
894													<div class="hola-bcn-carrusel-standard-finished-text" <#if isDespublishedNA>style="display: block;"</#if>> 
895														<span><@liferay.language key='label.bloc.novetatagenda.finished' /></span> 
896													</div> 
897													<#if filterNovetatAgenda?has_content> 
898														<div class="hola-bcn-carrusel-standard-highlight"> 
899															<span><@liferay.language key='label.bloc.novetatagenda.filter.${filterNovetatAgenda}' /></span> 
900														</div> 
901													</#if> 
902												</div> 
903												<div class="hola-bcn-carrusel-standard-container"> 
904													<div> 
905														<h3 class="hola-bcn-carrusel-standard__card-title"> 
906															${title} 
907															<#if newwindow?? && newwindow?has_content> 
908																<span class="icon-external-black" alt="Enllaç extern" title="(Obre una nova finestra)"></span> 
909															</#if> 
910														</h3> 
911														<span class="hola-bcn-carrusel-standard__card-description"> 
912															${subtitle} 
913														</span> 
914													</div> 
915													<#if initDateNovetatAgenda?has_content || endDateNovetatAgenda?has_content || (whereNovetatAgenda?has_content)> 
916														<div class="hola-bcn-carrusel-standard_bottom-extra"> 
917															<#if initDateNovetatAgenda?has_content || endDateNovetatAgenda?has_content> 
918																<div class="hola-bcn-carrusel-standard-date"> 
919																	<#if fromInitDateNovetatAgenda == "true"> 
920																		<span><b><@liferay.language key='label.bloc.novetatagenda.when' /></b> <@liferay.language key='label.bloc.novetatagenda.from' /> ${initDateNovetatAgenda?date["yyyy-MM-dd"]?string("dd/MM/yyyy")}</span> 
921																	<#else> 
922																		<#if initDateNovetatAgenda?has_content && !endDateNovetatAgenda?has_content> 
923																			<span><b><@liferay.language key='label.bloc.novetatagenda.when' /></b> ${initDateNovetatAgenda?date["yyyy-MM-dd"]?string("dd/MM/yyyy")}</span> 
924																		<#else> 
925																			<span><b><@liferay.language key='label.bloc.novetatagenda.when' /></b> <@liferay.language key='label.bloc.novetatagenda.from' /> ${initDateNovetatAgenda?date["yyyy-MM-dd"]?string("dd/MM/yyyy")}<#if endDateNovetatAgenda?has_content> <@liferay.language key='label.bloc.novetatagenda.to' /> ${endDateNovetatAgenda?date["yyyy-MM-dd"]?string("dd/MM/yyyy")}</#if></span> 
926																		</#if> 
927																	</#if> 
928																</div> 
929															</#if> 
930															<#if whereNovetatAgenda?has_content> 
931																<div class="hola-bcn-carrusel-standard-where"> 
932																	<span><b><@liferay.language key='label.bloc.novetatagenda.where' /> <span class="hola-bcn-carrusel-standard-where-inner">${whereNovetatAgenda}</span></b></span> 
933																</div> 
934															</#if> 
935														</div> 
936													</#if> 
937												</div> 
938											</a> 
939										</li> 
940									</#if> 
941								</#if> 
942							</#if> 
943						</#list> 
944					</ul> 
945				</div> 
946			</div> 
947		</div> 
948	</section> 
949 
950	<script type="text/javascript"> 
951 
952		$(document).ready(function() { 
953			initSliderBcnStandard(); 
954		}); 
955 
956		function initSliderBcnStandard() { 
957			if($(".js__hola-bcn-standard-slider").hasClass('slick-initialized')) { 
958				$(".js__hola-bcn-standard-slider").slick("unslick"); 
959
960 
961			$('.js__hola-bcn-standard-slider').slick({ 
962				slidesToShow: 3, 
963				slidesToScroll: 1, 
964				arrows: false, 
965				dots: false, 
966				draggable: false, 
967				infinite: false, 
968				responsive: [ 
969
970						breakpoint: 767, 
971						settings: { 
972							variableWidth: true, 
973							slidesToShow: 1, 
974							slidesToScroll: 1, 
975							arrows: false, 
976							dots: true, 
977							draggable: true, 
978							infinite: true 
979
980
981
982			}); 
983
984 
985	</script> 
986</#if>