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.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" <#if element.titleLink?? && element.titleLink.getData()?has_content>title="${element.titleLink.getData()}"</#if> <#if element.typeLink.getData() == "extern"> href="${element.External_Link.getData()}" target="_blank" <#elseif element.typeLink.getData() == "intern" && element.Internal_Link?? && element.Internal_Link.getFriendlyUrl()?has_content> href="${element.Internal_Link.getFriendlyUrl()}" target="_self" <#elseif element.typeLink.getData() == "intern" && element.External_Link?? && element.External_Link.getData()?has_content> href="${element.External_Link.getData()}" target="_self" </#if>>
173 </#if>
174 <div class="hero__media">
175 <#if element.typeLink.getData() == "video">
176 <div class="hero__media-video__container">
177 <span class="hero__media-video__img">
178 </span>
179 </div>
180 </#if>
181 <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>>
182 </div>
183 <div class="hero__content white__banner">
184 <p class="hero__title" >
185 ${element.titleElem.getData()}
186 <#if element.typeLink.getData() == "extern">
187 <span class="window-warning">
188 <img class="window-warning__icon" src="${imagesFolder}/basic/16px/png/icone-obrir-fora-blanc-16x16.png" alt="<@liferay.language key="label.externalLink.alt"/>" title="<@liferay.language key="label.externalLink.title"/>">
189 </span>
190 </#if>
191 </p>
192 <p class="hero__desc-alt" >
193 ${element.descElem.getData()}
194 </p>
195 </div>
196 </a>
197 </div>
198 </div>
199 </#foreach>
200 </#if>
201 </div>
202 </div>
203 </div>
204
205 <div class="dialog">
206 <div id="carrusel-banner-video" class="u-hidden">
207 <div class="dialog__body dialog__body--jotmbe" id="carrusel-banner-video-content">
208 </div>
209 </div>
210 </div>
211 <script type="text/javascript">
212 initSliderCarruselBanner1();
213
214 function initSliderCarruselBanner1() {
215 if($(".js-carousel-banner-al_1").hasClass('slick-initialized')) {
216 $(".js-carousel-banner-al_1").slick("unslick");
217 }
218 $('.js-carousel-banner-al_1 .slick-toggle-play').remove();
219 $('.js-carousel-banner-al_1').slick({
220 slidesToShow: 1,
221 arrows: true,
222 draggable: true,
223 infinite: false,
224 variableWidth: false,
225 autoplaySpeed: 4000,
226 dots: true,
227 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>',
228 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>',
229 responsive: [
230 {
231 breakpoint: 767,
232 settings: {
233 slidesToShow: 1,
234 arrows: false,
235 variableWidth: true,
236 dots: true
237 }
238 }
239 ]
240 }).each(function () {
241 var carousel = $(this),
242 toggleButton,
243 toggleIcon;
244
245 carousel.find('.slick-next__icon').attr({
246 'alt': carousel.data('next-text')
247 });
248
249 carousel.find('.slick-prev__icon').attr({
250 'alt': carousel.data('prev-text')
251 });
252 });
253
254 if ($('.hero-carousel__container .hero').length == 1) {
255 $('.hero-carousel__container .slick-toggle-play').hide();
256 }
257
258 $('.slick-cloned[aria-describedby]').removeAttr('aria-describedby');
259 if($(".js-carousel-banner-al_1 .slick-dots").length > 0) {
260 setDotsPositionBanner1();
261 }
262 }
263
264 function showVideoModalBanner(link) {
265 const start = link.indexOf("v=") + 2;
266 const end = start + 2 + 11;
267
268 TMB.dialog.newModal(langJotmbeClose, "dialog--jotmbe__no-footer dialog--jotmbe__no-icon dialog--jotmbe__with-actions dialog-video-iframe", "carrusel-banner-video", "");
269 $('#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>');
270 }
271 function setDotsPositionBanner1() {
272 $(".js-carousel-banner-al_1 .slick-dots").appendTo($(".js-carousel-banner-al_1").parent());
273 }
274
275 window.addEventListener('resize', function(event){
276 const width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
277 if($(".js-carousel-banner-al_1 .slick-dots").length > 0 && width > 768) {
278 setDotsPositionBanner1();
279 }
280 });
281
282 </script>
283</#if>
284
285
286<#-- BASICA-TITOL-TEXT -->
287
288<#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()))>
289 <div class="full-body__container basica-titol-text">
290 <#foreach elem in basicaTitolText.elementsBasica.getSiblings()>
291 <div class="basica-titol-text-wrapper">
292 <#if elem.titleBasica?? && elem.titleBasica.getData()?has_content><h2 class="">${elem.titleBasica.getData()}</h2></#if>
293 <#if elem.contentBasica?? && elem.contentBasica.getData()?has_content><div class="basica-titol-text-content">${elem.contentBasica.getData()}</div></#if>
294 </div>
295 <#foreach subelem in elem.subelementsBasica.getSiblings()>
296 <div class="basica-titol-text-wrapper">
297 <#if subelem.subelementTitleBasica?? && subelem.subelementTitleBasica.getData()?has_content><h3>${subelem.subelementTitleBasica.getData()}</h3></#if>
298 <#if subelem.subelementContentBasica?? && subelem.subelementContentBasica.getData()?has_content><div class="basica-titol-text-content">${subelem.subelementContentBasica.getData()}</div></#if>
299 </div>
300 </#foreach>
301 </#foreach>
302 </div>
303</#if>
304
305
306<#-- bloc-detall-agenda -->
307
308<#if detallAgenda?? && 0 < detallAgenda.elementsDetallAgenda.getSiblings()?size && (detallAgenda.elementsDetallAgenda.getSiblings()[0].titleDetallAgenda.getData()?has_content || detallAgenda.elementsDetallAgenda.getSiblings()[0].contentDetallAgenda.getData()?has_content) && (!detallAgenda.hideDetallAgenda?? || !getterUtil.getBoolean(detallAgenda.hideDetallAgenda.getData()))>
309 <div class="full-body__container detall-agenda">
310 <#foreach elem in detallAgenda.elementsDetallAgenda.getSiblings()>
311 <div class="detall-agenda-wrapper">
312 <#if elem.titleDetallAgenda?? && elem.titleDetallAgenda.getData()?has_content><h2 class="">${elem.titleDetallAgenda.getData()}</h2></#if>
313 <#if elem.contentDetallAgenda?? && elem.contentDetallAgenda.getData()?has_content><div class="detall-agenda-content">${elem.contentDetallAgenda.getData()}</div></#if>
314 </div>
315 </#foreach>
316 <div class="detall-agenda-buttons-wrapper">
317 <#foreach subelem in detallAgenda.buttonsDetallAgenda.getSiblings()>
318 <a type="button" class="button button--a" <#if subelem.linkTypeDetallAgenda.getData() == "extern" && subelem.External_LinkDetallAgenda?? && subelem.External_LinkDetallAgenda.getData()?has_content> href="${subelem.External_LinkDetallAgenda.getData()}" rel="external" target="_blank" <#elseif subelem.linkTypeDetallAgenda.getData() == "intern" && subelem.Internal_LinkDetallAgenda?? && subelem.Internal_LinkDetallAgenda.getFriendlyUrl()?has_content> href="${subelem.Internal_LinkDetallAgenda.getFriendlyUrl()}" target="_self" <#elseif subelem.linkTypeDetallAgenda.getData() == "intern" && subelem.External_LinkDetallAgenda?? && subelem.External_LinkDetallAgenda.getData()?has_content> href="${subelem.External_LinkDetallAgenda.getData()}" target="_self" </#if>>
319 <span class="button__label">${subelem.linkTextDetallAgenda.getData()}</span>
320 </a>
321 </#foreach>
322 </div>
323 </div>
324</#if>
325
326
327<#-- DT_PP_TITULO_VIDEO -->
328
329<#if stPpVideo?? && stPpVideo.linkFieldSet.link.getData()?has_content && (!stPpVideo.hideStPpVideo?? || !getterUtil.getBoolean(stPpVideo.hideStPpVideo.getData()))>
330 <style>
331 .points-video__video-cover.no_video::after{
332 background: none;
333 }
334 </style>
335 <#assign hasLink = false>
336 <#if stPpVideo.linkHeader?? && stPpVideo.linkHeader.getData()?has_content && stPpVideo.linkHeaderText?? && stPpVideo.linkHeaderText.getData()?has_content>
337 <#assign hasLink = true>
338 </#if>
339 <section class="points-video bg-gray pt-56">
340 <div class="main__container">
341 <div class="full-body">
342 <div class="full-body__container points-video__header-extra-container">
343 <#if stPpVideo.linkFieldSet.linkFieldSetFieldSet.ancoraVideo.getData()?has_content && stPpVideo.linkFieldSet.linkFieldSetFieldSet.ancoraVideo.getData()?trim?has_content>
344 <a name="${stPpVideo.linkFieldSet.linkFieldSetFieldSet.ancoraVideo.getData()}" id="${stPpVideo.linkFieldSet.linkFieldSetFieldSet.ancoraVideo.getData()}">
345 </a>
346 </#if>
347 <#if stPpVideo.titol?? && stPpVideo.titol.getData()?has_content>
348 <div class="points-video__header">
349 <div class="points-video__header-extra" <#if !hasLink>style="justify-content: center; margin-right: 0;"</#if>>
350 <h2 class="points-video__title">
351 ${stPpVideo.titol.getData()}</h2>
352 <#if hasLink>
353 <a class="points-video__subtitle-link" href="${stPpVideo.linkHeader.getData()}">${stPpVideo.linkHeaderText.getData()}</a>
354 </#if>
355 </div>
356 <p class="points-video__description" <#if !hasLink>style="text-align: center; max-width: 100%;"</#if>>
357 ${stPpVideo.descriptiu.getData()}</p>
358 </div>
359 </#if>
360
361 <div class="points-video__video-item cookieconsent-optin-marketing media-unit__content" id="marketingCookies">
362 <#if stPpVideo.linkFieldSet.link.getData()?has_content>
363 <#assign start = stPpVideo.linkFieldSet.link.getData()?index_of("v=") + 2>
364 <#--13 because v= + 11 char for youtube ids
365 -->
366 <#assign end = start + 11>
367 <a href="${stPpVideo.linkFieldSet.link.getData()}" class="points-video__video-stPpVideo.linkFieldSet.link" title="${stPpVideo.linkFieldSet.linkFieldSetFieldSet.descriptiuVideo.getData()}"
368 rel="dialog-video" data-video="${stPpVideo.linkFieldSet.link.getData()?substring(start, end)}">
369 <div class="points-video__video-cover" style="background-image: url(${stPpVideo.linkFieldSet.linkFieldSetFieldSet.imgVideoFieldSet.imgVideo.getData()});">
370 <img src="${stPpVideo.linkFieldSet.linkFieldSetFieldSet.imgVideoFieldSet.imgVideo.getData()}" alt="${stPpVideo.linkFieldSet.linkFieldSetFieldSet.imgVideoFieldSet.imgVideoFieldSetFieldSet.alt.getData()}" class="points-video__video-image">
371 </div>
372 <#if stPpVideo.linkFieldSet.linkFieldSetFieldSet.descriptiuVideo.getData()?has_content>
373 <p class="points-video__caption">
374 ${stPpVideo.linkFieldSet.linkFieldSetFieldSet.descriptiuVideo.getData()}</p>
375 </#if>
376 </a>
377 <#else>
378 <a class="points-video__video-link" title="${stPpVideo.linkFieldSet.linkFieldSetFieldSet.descriptiuVideo.getData()}">
379 <div class="points-video__video-cover no_video" style="background-image: url(${stPpVideo.linkFieldSet.linkFieldSetFieldSet.imgVideoFieldSet.imgVideo.getData()});">
380 <img src="${stPpVideo.linkFieldSet.linkFieldSetFieldSet.imgVideoFieldSet.imgVideo.getData()}" alt="${stPpVideo.linkFieldSet.linkFieldSetFieldSet.imgVideoFieldSet.imgVideoFieldSetFieldSet.alt.getData()}" class="points-video__video-image">
381 </div>
382 <#if stPpVideo.linkFieldSet.linkFieldSetFieldSet.descriptiuVideo.getData()?has_content>
383 <p class="points-video__caption">
384 ${stPpVideo.linkFieldSet.linkFieldSetFieldSet.descriptiuVideo.getData()}</p>
385 </#if>
386 </a>
387
388 </#if>
389 </div>
390 <div class='cookieconsent-optout-marketing media-unit__content'>
391 <@liferay.language key="cookiebot.youtube.no-marketing"/>
392 </div>
393 <#if hasLink>
394 <a class="points-video__subtitle-link-mobile" href="${stPpVideo.linkHeader.getData()}">${stPpVideo.linkHeaderText.getData()}</a>
395 </#if>
396 </div>
397 </div>
398 </div>
399 </section>
400 <section class="video-dialog js__video-dialog u-hidden">
401 <div class="u-hidden" id="fragment-show-video">
402 <div class="video-dialog__panel">
403 <header class="video-dialog__header">
404 <button class="video-dialog__close js__video-dialog-close">
405 Cerrar</button>
406 </header>
407 <div class="video-dialog__content">
408 <div class="video-dialog__inner js__video-dialog-container">
409 <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="">
410 </iframe>
411 </div>
412 </div>
413 </div>
414 </div>
415 <div class="video-dialog__overlay js__video-dialog-close">
416 </div>
417 </section>
418</#if>
419
420
421<#-- TEXT-CARRUSEL-IMATGES-ALT -->
422
423<#if textCarruselImatges2?? && 0 < textCarruselImatges2.elementsFieldSetAlt.getSiblings()?size && textCarruselImatges2.elementsFieldSetAlt.getSiblings()[0].elementsFieldSetFieldSetAlt.imageAlt.getData()?has_content && (!textCarruselImatges2.hideTextCarruselImatgesAlt?? || !getterUtil.getBoolean(textCarruselImatges2.hideTextCarruselImatgesAlt.getData()))>
424 <#assign imagesFolder = themeDisplay.getPathThemeImages()>
425
426 <#assign entriesMapList = []>
427 <#foreach elem in textCarruselImatges2.elementsFieldSetAlt.getSiblings()>
428 <#if elem.elementsFieldSetFieldSetAlt.order?has_content>
429 <#assign currentOrder = elem.elementsFieldSetFieldSetAlt.order.getData()>
430 </#if>
431 <#if !currentOrder?has_content || currentOrder == "null">
432 <#assign currentOrder = "99">
433 </#if>
434 <#assign currEntryMap = {"entry" : elem.elementsFieldSetFieldSetAlt , "order" : currentOrder?number}>
435 <#assign entriesMapList = entriesMapList + [currEntryMap]>
436 </#foreach>
437
438 <#assign sortedEntriesMapList = entriesMapList?sort_by("order")>
439 <#assign sortedEntriesRootElems = []>
440
441 <#foreach currEntryMap in sortedEntriesMapList>
442 <#assign sortedEntriesRootElems = sortedEntriesRootElems + [currEntryMap.entry]>
443 </#foreach>
444
445 <#assign leftContent = "">
446 <#if textCarruselImatges2.titleHeaderAlt?? && textCarruselImatges2.titleHeaderAlt.getData()?has_content && textCarruselImatges2.descHeaderAlt?? && textCarruselImatges2.descHeaderAlt?has_content>
447 <#assign leftContent = "true">
448 </#if>
449
450 <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>">
451 <#if leftContent?has_content>
452 <div class="hero-carousel__container-banner">
453 <h2 class="hero-carousel-banner-alt-title">
454 ${textCarruselImatges2.titleHeaderAlt.getData()}
455 </h2>
456 <p class="hero-carousel-banner-alt-desc">
457 ${textCarruselImatges2.descHeaderAlt.getData()}
458 </p>
459 </div>
460 </#if>
461 <div aria-live="polite" aria-atomic="false" aria-relevant="all" class="slick-list draggable">
462 <div class="hero-carousel__container js-carousel-banner-al_alt is-playing"
463 data-prev-text='<@liferay.language key="label.carousel.prev"/>'
464 data-next-text='<@liferay.language key="label.carousel.next"/>'
465 data-pagination-text='<@liferay.language key="label.carousel.outstanding"/>'
466 data-stop-text='<@liferay.language key="label.carousel.pause"/>'
467 data-play-text='<@liferay.language key="label.carousel.start"/>'>
468 <#if sortedEntriesRootElems?has_content>
469 <#foreach element in sortedEntriesRootElems>
470 <div class="hero hero--super">
471 <div class="hero__container">
472 <#if element.typeLinkAlt.getData() == "video">
473 <a href="#" onclick='showVideoModalBanner(`${element.External_LinkAlt.getData()}`);return false;' class="hero__link" <#if element.titleLinkAlt?? && element.titleLinkAlt.getData()?has_content>title="${element.titleLinkAlt.getData()}"</#if>>
474 <#else>
475 <a class="hero__link" <#if element.titleLinkAlt?? && element.titleLinkAlt.getData()?has_content>title="${element.titleLinkAlt.getData()}"</#if> <#if element.typeLinkAlt.getData() == "extern"> href="${element.External_LinkAlt.getData()}" target="_blank" <#elseif element.typeLinkAlt.getData() == "intern" && element.Internal_Link?? && element.Internal_Link.getFriendlyUrl()?has_content> href="${element.Internal_Link.getFriendlyUrl()}" target="_self" <#elseif element.typeLinkAlt.getData() == "intern" && element.External_LinkAlt?? && element.External_LinkAlt.getData()?has_content> href="${element.External_LinkAlt.getData()}" target="_self" </#if>>
476 </#if>
477 <div class="hero__media">
478 <#if element.typeLinkAlt.getData() == "video">
479 <div class="hero__media-video__container">
480 <span class="hero__media-video__img">
481 </span>
482 </div>
483 </#if>
484 <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>>
485 </div>
486 <div class="hero__content white__banner">
487 <p class="hero__title" >
488 ${element.titleElemAlt.getData()}
489 <#if element.typeLinkAlt.getData() == "extern">
490 <span class="window-warning">
491 <img class="window-warning__icon" src="${imagesFolder}/basic/16px/png/icone-obrir-fora-blanc-16x16.png" alt="<@liferay.language key="label.externalLink.alt"/>" title="<@liferay.language key="label.externalLink.title"/>">
492 </span>
493 </#if>
494 </p>
495 <p class="hero__desc-alt" >
496 ${element.descElemAlt.getData()}
497 </p>
498 </div>
499 </a>
500 </div>
501 </div>
502 </#foreach>
503 </#if>
504 </div>
505 </div>
506 </div>
507
508 <div class="dialog">
509 <div id="carrusel-banner-video" class="u-hidden">
510 <div class="dialog__body dialog__body--jotmbe" id="carrusel-banner-video-content">
511 </div>
512 </div>
513 </div>
514 <script type="text/javascript">
515 initSliderCarruselBanner2();
516
517 function initSliderCarruselBanner2() {
518 if($(".js-carousel-banner-al_alt").hasClass('slick-initialized')) {
519 $(".js-carousel-banner-al_alt").slick("unslick");
520 }
521 $('.js-carousel-banner-al_alt .slick-toggle-play').remove();
522 $('.js-carousel-banner-al_alt').slick({
523 slidesToShow: 1,
524 arrows: true,
525 draggable: true,
526 infinite: false,
527 variableWidth: false,
528 autoplaySpeed: 4000,
529 dots: true,
530 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>',
531 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>',
532 responsive: [
533 {
534 breakpoint: 767,
535 settings: {
536 slidesToShow: 1,
537 arrows: false,
538 variableWidth: true,
539 dots: true
540 }
541 }
542 ]
543 }).each(function () {
544 var carousel = $(this),
545 toggleButton,
546 toggleIcon;
547
548 carousel.find('.slick-next__icon').attr({
549 'alt': carousel.data('next-text')
550 });
551
552 carousel.find('.slick-prev__icon').attr({
553 'alt': carousel.data('prev-text')
554 });
555 });
556
557 if ($('.hero-carousel__container .hero').length == 1) {
558 $('.hero-carousel__container .slick-toggle-play').hide();
559 }
560
561 $('.slick-cloned[aria-describedby]').removeAttr('aria-describedby');
562 if($(".js-carousel-banner-al_alt .slick-dots").length > 0) {
563 setDotsPositionBanner2();
564 }
565 }
566
567 function showVideoModalBanner2(link) {
568 const start = link.indexOf("v=") + 2;
569 const end = start + 2 + 11;
570
571 TMB.dialog.newModal(langJotmbeClose, "dialog--jotmbe__no-footer dialog--jotmbe__no-icon dialog--jotmbe__with-actions dialog-video-iframe", "carrusel-banner-video", "");
572 $('#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>');
573 }
574 function setDotsPositionBanner2() {
575 $(".js-carousel-banner-al_alt .slick-dots").appendTo($(".js-carousel-banner-al_alt").parent());
576 }
577
578 window.addEventListener('resize', function(event){
579 const width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
580 if($(".js-carousel-banner-al_alt .slick-dots").length > 0 && width > 768) {
581 setDotsPositionBanner2();
582 }
583 });
584
585 </script>
586</#if>
587
588
589<#-- CARRUSEL-TRES-CARD -->
590
591<#if referencesFieldSet?? && 0 < referencesFieldSet.getSiblings()?size && referencesFieldSet.getSiblings()[0].referenceId.getData()?has_content && (!hideTresCards?? || !getterUtil.getBoolean(hideTresCards.getData()))>
592 <#assign colorClass = "" />
593 <#assign fullBody = "" />
594 <#if fondoColorCarruselCards?? && fondoColorCarruselCards.getData()??>
595 <#if fondoColorCarruselCards.getData()=="blanc">
596 <#assign colorClass = "hola-bcn-carrusel-standard--white" />
597 <#assign fullBody = "full-body__container" />
598 <#else>
599 <#assign colorClass = "hola-bcn-carrusel-standard--gray" />
600 <#assign fullBody = "full-body__container" />
601 </#if>
602 </#if>
603
604 <section class="hola-bcn-carrusel-standard ${colorClass}">
605 <div class="hola-bcn-carrusel-standard-cont-ext hola-bcn-carrusel-standard-cont-ext-extra hola-bcn-carrusel-standard-cont-ext-flex ${fullBody}">
606 <div class="hola-bcn-carrusel-standard--container">
607 <div class="hola-bcn-carrusel-standard--outer">
608 <div class="hola-bcn-carrusel-standard_new-header">
609 <h2 class="title title--1 hola-bcn-carrusel-standard__title hola-bcn-carrusel-standard__title_new">${titleCarruselCards.getData()}</h2>
610 <p class="hola-bcn-carrusel-standard__intro-text">${subtitleCarruselCards.getData()}</p>
611 </div>
612 <ul id="result-list" class="hola-bcn-carrusel-standard__items js__hola-bcn-standard-slider">
613 <#assign tmbGroupId = 20182>
614 <#assign fundacioGroupId = 79790>
615 <#list referencesFieldSet.getSiblings() as element>
616 <#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
617 <#assign articleId = element.referenceId.getData()>
618 <#assign groupId = getterUtil.getLong(groupId)>
619 <#attempt>
620 <#assign journalArticle = JournalArticleLocalService.getArticle(groupId, articleId) />
621 <#recover>
622 <#if groupId == tmbGroupId>
623 <#assign groupId = fundacioGroupId>
624 <#else>
625 <#assign groupId = tmbGroupId>
626 </#if>
627 <#attempt>
628 <#assign journalArticle = JournalArticleLocalService.getArticle(groupId, articleId)!>
629 <#recover>
630 <#assign journalArticle = "">
631 </#attempt>
632 </#attempt>
633 <#if journalArticle?has_content && journalArticle != "">
634 <#assign document = saxReaderUtil.read(journalArticle.getContent())>
635 <#assign rootElement = document.getRootElement()>
636
637 <#assign resourceprimKey = journalArticle.getResourcePrimKey()>
638 <#assign assetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", resourceprimKey)>
639 <#assign assetRenderer = assetEntry.getAssetRenderer()>
640 <#assign articleURL = assetRenderer.getURLViewInContext(renderRequest, renderResponse, "")>
641 <#assign newwindow = "">
642 <#if !isFundacio>
643 <#if articleURL?contains("/fundacio-tmb")>
644 <#assign link1 = articleURL?split("fundacio-tmb")>
645 <#if (getterUtil.getInteger(link1?size)>0)>
646 <#assign newwindow = "target='_blank'">
647 <#if articleURL?contains("pre3")>
648 <#assign articleURL = "https://pre3-fundacio.tmb.cat/" + locale.getLanguage() + link1[1]>
649 <#else>
650 <#assign articleURL = "https://fundacio.tmb.cat/" + locale.getLanguage() + link1[1]>
651 </#if>
652 <#elseif getterUtil.getInteger(link1?size) == 0>
653 <#assign newwindow = "target='_blank'">
654 <#if articleURL?contains("pre3")>
655 <#assign articleURL = "https://pre3-fundacio.tmb.cat/" + locale.getLanguage()>
656 <#else>
657 <#assign articleURL = "https://fundacio.tmb.cat/" + locale.getLanguage()>
658 </#if>
659 </#if>
660 </#if>
661 <#else>
662 <#if articleURL?contains("/web/tmb")>
663 <#assign link1 = articleURL?split("web/tmb")>
664 <#if (getterUtil.getInteger(link1?size)>0)>
665 <#assign newwindow = "target='_blank'">
666 <#if articleURL?contains("pre3")>
667 <#assign articleURL = "https://pre3.tmb.cat/" + locale.getLanguage() + link1[1]>
668 <#else>
669 <#assign articleURL = "https://www.tmb.cat/" + locale.getLanguage() + link1[1]>
670 </#if>
671 <#elseif getterUtil.getInteger(link1?size) == 0>
672 <#assign newwindow = "target='_blank'">
673 <#if articleURL?contains("pre3")>
674 <#assign articleURL = "https://pre3.tmb.cat/" + locale.getLanguage()>
675 <#else>
676 <#assign articleURL = "https://www.tmb.cat/" + locale.getLanguage()>
677 </#if>
678 </#if>
679 </#if>
680 </#if>
681
682 <#assign title = "">
683 <#assign titleSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='titleGlobal']/dynamic-content[@language-id='" + locale + "']")>
684 <#if titleSel.selectSingleNode(rootElement)?has_content>
685 <#assign title = titleSel.selectSingleNode(rootElement).getStringValue()>
686 </#if>
687
688 <#assign subtitle = "">
689 <#assign subtitleSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='subtitleGlobal']/dynamic-content[@language-id='" + locale + "']")>
690 <#if subtitleSel.selectSingleNode(rootElement)?has_content>
691 <#assign subtitle = subtitleSel.selectSingleNode(rootElement).getStringValue()>
692 </#if>
693
694 <#assign initDateNovetatAgenda = "">
695 <#assign fromInitDateNovetatAgenda = "">
696 <#assign endDateNovetatAgenda = "">
697 <#assign whereNovetatAgenda = "">
698 <#assign novetatAgendaSel = rootElement.selectSingleNode("dynamic-element[@field-reference='blocInfoAgenda']")!"">
699 <#if novetatAgendaSel?has_content>
700 <#assign dateNovetatAgendaSelSel = novetatAgendaSel.selectSingleNode("dynamic-element[@field-reference='whenBlocInfoAgenda']")!"">
701
702 <#if dateNovetatAgendaSelSel?has_content && dateNovetatAgendaSelSel.selectSingleNode("dynamic-element[@field-reference='initDateBlocInfoAgenda']/dynamic-content[@language-id='" + locale + "']")?has_content>
703 <#assign initDateNovetatAgenda = dateNovetatAgendaSelSel.selectSingleNode("dynamic-element[@field-reference='initDateBlocInfoAgenda']/dynamic-content[@language-id='" + locale + "']").getStringValue()>
704 </#if>
705
706 <#if dateNovetatAgendaSelSel?has_content && dateNovetatAgendaSelSel.selectSingleNode("dynamic-element[@field-reference='fromInitDateBlocInfoAgenda']/dynamic-content[@language-id='" + locale + "']")?has_content>
707 <#assign fromInitDateNovetatAgenda = dateNovetatAgendaSelSel.selectSingleNode("dynamic-element[@field-reference='fromInitDateBlocInfoAgenda']/dynamic-content[@language-id='" + locale + "']").getStringValue()>
708 </#if>
709
710 <#if dateNovetatAgendaSelSel?has_content && dateNovetatAgendaSelSel.selectSingleNode("dynamic-element[@field-reference='endDateBlocInfoAgenda']/dynamic-content[@language-id='" + locale + "']")?has_content>
711 <#assign endDateNovetatAgenda = dateNovetatAgendaSelSel.selectSingleNode("dynamic-element[@field-reference='endDateBlocInfoAgenda']/dynamic-content[@language-id='" + locale + "']").getStringValue()>
712 </#if>
713
714 <#assign whereNovetatAgendaSelSel = novetatAgendaSel.selectSingleNode("dynamic-element[@field-reference='whereBlocInfoAgenda']")!"">
715 <#if whereNovetatAgendaSelSel?has_content && whereNovetatAgendaSelSel.selectSingleNode("dynamic-element[@field-reference='textWhereBlocInfoAgenda']/dynamic-content[@language-id='" + locale + "']")?has_content>
716 <#assign whereNovetatAgenda = whereNovetatAgendaSelSel.selectSingleNode("dynamic-element[@field-reference='textWhereBlocInfoAgenda']/dynamic-content[@language-id='" + locale + "']").getStringValue()>
717 </#if>
718 </#if>
719
720 <#assign typeNovetatAgenda = "">
721 <#assign typeNovetatAgendaSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='typeNovetatAgenda']/dynamic-content[@language-id='" + locale + "']")>
722 <#if typeNovetatAgendaSel.selectSingleNode(rootElement)?has_content>
723 <#assign typeNovetatAgenda = typeNovetatAgendaSel.selectSingleNode(rootElement).getStringValue()>
724 </#if>
725
726 <#assign filterNovetatAgenda = "">
727 <#assign filterNovetatAgendaSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='filterNovetatAgenda']/dynamic-content[@language-id='" + locale + "']")>
728 <#if filterNovetatAgendaSel.selectSingleNode(rootElement)?has_content>
729 <#assign filterNovetatAgenda = filterNovetatAgendaSel.selectSingleNode(rootElement).getStringValue()>
730 </#if>
731
732 <#assign imageNovetatAgenda = "">
733 <#assign imageNovetatAgendaSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='imageCardNovetatAgenda']/dynamic-content[@language-id='" + locale + "']")>
734 <#if imageNovetatAgendaSel.selectSingleNode(rootElement)?has_content>
735 <#assign image = imageNovetatAgendaSel.selectSingleNode(rootElement).getStringValue()>
736 <#assign imageUuid = jsonFactoryUtil.createJSONObject(image).uuid!"">
737 <#assign imageNovetatAgenda = themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/" + groupId + "/" + imageUuid>
738 </#if>
739
740 <#assign imageAltNovetatAgenda = "">
741 <#assign imageAltNovetatAgendaSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='altImageCardNovetatAgenda']/dynamic-content[@language-id='" + locale + "']")>
742 <#if imageAltNovetatAgendaSel.selectSingleNode(rootElement)?has_content>
743 <#assign imageAltNovetatAgenda = imageAltNovetatAgendaSel.selectSingleNode(rootElement).getStringValue()>
744 </#if>
745
746 <#assign pubDateNovetatAgenda = "">
747 <#assign pubDateNovetatAgendaSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='pubDateNovetatAgenda']/dynamic-content[@language-id='" + locale + "']")>
748 <#if pubDateNovetatAgendaSel.selectSingleNode(rootElement)?has_content>
749 <#assign pubDateNovetatAgenda = pubDateNovetatAgendaSel.selectSingleNode(rootElement).getStringValue()>
750 </#if>
751
752 <#assign pubTimeNovetatAgenda = "">
753 <#assign pubTimeNovetatAgendaSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='pubTimeNovetatAgenda']/dynamic-content[@language-id='" + locale + "']")>
754 <#if pubTimeNovetatAgendaSel.selectSingleNode(rootElement)?has_content>
755 <#assign pubTimeNovetatAgenda = pubTimeNovetatAgendaSel.selectSingleNode(rootElement).getStringValue()>
756 </#if>
757
758 <#assign despubDateNovetatAgenda = "">
759 <#assign despubDateNovetatAgendaSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='despubDateNovetatAgenda']/dynamic-content[@language-id='" + locale + "']")>
760 <#if despubDateNovetatAgendaSel.selectSingleNode(rootElement)?has_content>
761 <#assign despubDateNovetatAgenda = despubDateNovetatAgendaSel.selectSingleNode(rootElement).getStringValue()>
762 </#if>
763
764 <#assign despubTimeNovetatAgenda = "">
765 <#assign despubTimeNovetatAgendaSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='despubTimeNovetatAgenda']/dynamic-content[@language-id='" + locale + "']")>
766 <#if despubTimeNovetatAgendaSel.selectSingleNode(rootElement)?has_content>
767 <#assign despubTimeNovetatAgenda = despubTimeNovetatAgendaSel.selectSingleNode(rootElement).getStringValue()>
768 </#if>
769
770 <#assign isExpiredNovetatAgenda = "">
771 <#assign isExpiredNovetatAgendaSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='isExpiredNovetatAgenda']/dynamic-content[@language-id='" + locale + "']")>
772 <#if isExpiredNovetatAgendaSel.selectSingleNode(rootElement)?has_content>
773 <#assign isExpiredNovetatAgenda = isExpiredNovetatAgendaSel.selectSingleNode(rootElement).getStringValue()>
774 </#if>
775
776 <#assign isPublishedNA = false>
777 <#if (pubDateNovetatAgenda?has_content)>
778 <#if pubTimeNovetatAgenda?has_content>
779 <#assign timeActDate = pubTimeNovetatAgenda?date["HH:mm"]>
780 <#assign timeActFormat = timeActDate?string["HH:mm"]>
781 <#else>
782 <#assign timeActDate = "">
783 <#assign timeActFormat = "">
784 </#if>
785 <#attempt>
786 <#assign dataAct = pubDateNovetatAgenda?date["yyyy-MM-dd"]>
787
788 <#if timeActFormat?has_content && timeActFormat != "">
789 <#assign dataActMil = miliSeconds(timeActFormat dataAct?long)>
790 <#assign dataAct = dateUtil.newDate(getterUtil.getLong(dataActMil))>
791 </#if>
792 <#assign dataActMil = dataAct?long>
793 <#assign now = .now?long+timeZoneUtil.getTimeZone("Europe/Madrid").getOffset(.now?long)>
794 <#assign isPublishedNA = (dataActMil - now ) < 0 />
795 <#recover>
796 </#attempt>
797 </#if>
798
799 <#assign isDespublishedNA = false>
800 <#if (despubDateNovetatAgenda?has_content)>
801 <#if despubTimeNovetatAgenda?has_content>
802 <#assign timeExpDate = despubTimeNovetatAgenda?date["HH:mm"]>
803 <#assign timeExpFormat = timeExpDate?string["HH:mm"]>
804 <#else>
805 <#assign timeExpDate = "">
806 <#assign timeExpFormat = "">
807 </#if>
808 <#attempt>
809 <#assign dataExp = despubDateNovetatAgenda?date["yyyy-MM-dd"]>
810
811 <#if timeExpFormat?has_content && timeExpFormat != "">
812 <#assign dataExpMil = miliSeconds(timeExpFormat dataExp?long)>
813 <#assign dataExp = dateUtil.newDate(getterUtil.getLong(dataExpMil))>
814 </#if>
815 <#assign dataExpMil = dataExp?long>
816 <#assign now = .now?long+timeZoneUtil.getTimeZone("Europe/Madrid").getOffset(.now?long)>
817 <#assign isDespublishedNA = (dataExpMil - now) < 0 />
818 <#recover>
819 </#attempt>
820 </#if>
821
822 <#assign isExpiredNA = false>
823 <#if journalArticle.expirationDate??>
824 <#assign dataExp = journalArticle.expirationDate?datetime>
825 <#attempt>
826 <#assign dataExpMil = dataExp?long>
827 <#assign now = .now?long+timeZoneUtil.getTimeZone("Europe/Madrid").getOffset(.now?long)>
828 <#assign isExpiredNA = (dataExpMil - now) < 0 />
829 <#recover>
830 </#attempt>
831 </#if>
832
833 <#assign showNovetatAgenda = false>
834 <#if typeNovetatAgenda?has_content && typeNovetatAgenda == "1">
835 <#assign showNovetatAgenda = isPublishedNA && !isExpiredNA && !isDespublishedNA && isExpiredNovetatAgenda != "true">
836 <#else>
837 <#assign showNovetatAgenda = isPublishedNA && !isExpiredNA && isExpiredNovetatAgenda != "true">
838 </#if>
839
840 <#if showNovetatAgenda>
841 <#if title?has_content>
842 <li class="hola-bcn-carrusel-standard_new-li">
843 <a ${newwindow} class="hola-bcn-carrusel-standard_new <#if isDespublishedNA>hola-bcn-carrusel-standard_new-finished</#if>" href="${articleURL}">
844 <div class="hola-bcn-carrusel-standard__card-cover">
845 <div class="hola-bcn-carrusel-standard__card-cover-filter"></div>
846 <img class="hola-bcn-carrusel-standard__image" src="${imageNovetatAgenda}" <#if imageAltNovetatAgenda?has_content>alt="${imageAltNovetatAgenda}"<#else>alt=""</#if>>
847 <div class="hola-bcn-carrusel-standard-finished-text" <#if isDespublishedNA>style="display: block;"</#if>>
848 <span><@liferay.language key='label.bloc.novetatagenda.finished' /></span>
849 </div>
850 <#if filterNovetatAgenda?has_content>
851 <div class="hola-bcn-carrusel-standard-highlight">
852 <span><@liferay.language key='label.bloc.novetatagenda.filter.${filterNovetatAgenda}' /></span>
853 </div>
854 </#if>
855 </div>
856 <div class="hola-bcn-carrusel-standard-container">
857 <div>
858 <h3 class="hola-bcn-carrusel-standard__card-title">
859 ${title}
860 <#if newwindow?? && newwindow?has_content>
861 <span class="icon-external-black" alt="Enllaç extern" title="(Obre una nova finestra)"></span>
862 </#if>
863 </h3>
864 <span class="hola-bcn-carrusel-standard__card-description">
865 ${subtitle}
866 </span>
867 </div>
868 <#if initDateNovetatAgenda?has_content || endDateNovetatAgenda?has_content || (whereNovetatAgenda?has_content)>
869 <div class="hola-bcn-carrusel-standard_bottom-extra">
870 <#if initDateNovetatAgenda?has_content || endDateNovetatAgenda?has_content>
871 <div class="hola-bcn-carrusel-standard-date">
872 <#if fromInitDateNovetatAgenda == "true">
873 <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>
874 <#else>
875 <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>
876 </#if>
877 </div>
878 </#if>
879 <#if whereNovetatAgenda?has_content>
880 <div class="hola-bcn-carrusel-standard-where">
881 <span><b><@liferay.language key='label.bloc.novetatagenda.where' /> <span class="hola-bcn-carrusel-standard-where-inner">${whereNovetatAgenda}</span></b></span>
882 </div>
883 </#if>
884 </div>
885 </#if>
886 </div>
887 </a>
888 </li>
889 </#if>
890 </#if>
891 </#if>
892 </#list>
893 </ul>
894 </div>
895 </div>
896 </div>
897 </section>
898
899 <script type="text/javascript">
900
901 $(document).ready(function() {
902 initSliderBcnStandard();
903 });
904
905 function initSliderBcnStandard() {
906 if($(".js__hola-bcn-standard-slider").hasClass('slick-initialized')) {
907 $(".js__hola-bcn-standard-slider").slick("unslick");
908 }
909
910 $('.js__hola-bcn-standard-slider').slick({
911 slidesToShow: 3,
912 slidesToScroll: 1,
913 arrows: false,
914 dots: false,
915 draggable: false,
916 infinite: false,
917 responsive: [
918 {
919 breakpoint: 767,
920 settings: {
921 variableWidth: true,
922 slidesToShow: 2,
923 slidesToScroll: 1,
924 arrows: false,
925 dots: true,
926 draggable: true,
927 infinite: true
928 }
929 }
930 ]
931 });
932 }
933
934 </script>
935</#if>