Java method "jdk.proxy66.$Proxy598.getArticleContent(long, String, String, com.liferay.portal.kernel.portlet.PortletRequestModel, com.liferay.portal.kernel.theme.ThemeDisplay)" threw an exception when invoked on jdk.proxy66.$Proxy598 object "com.liferay.journal.service.impl.JournalArticleServiceImpl@3ce24e39"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: bannerConsultorContent = journalArtic... [in template "176139#176179#1006591" at line 412, column 5]
----
1<#assign
2 journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleService")
3 assetCategoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryService")
4 currentArticle = journalArticleService.getArticle(groupId, .vars['reserved-article-id'].data)
5 categories = assetCategoryService.getCategories("com.liferay.journal.model.JournalArticle", currentArticle.getResourcePrimKey())
6 categoriesString = ""
7/>
8
9<#list categories as category>
10 <#if category.getVocabularyId() != 178885><#continue></#if>
11 <#if categoriesString != ""><#assign categoriesString += " · "></#if>
12 <#assign categoriesString += category.getTitle(locale)>
13</#list>
14
15<#assign currentURL = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent()>
16
17<@liferay_util["html-top"]>
18 <meta name="twitter:card" content="summary_large_image" />
19 <meta name="twitter:description" content="${summaryNew.getData()?replace('<[^>]+>','','r')}" />
20 <meta name="twitter:image" content="https://catalonia.com${imageFirstNew.getData()}" />
21 <meta name="twitter:title" content="${titleNew.getData()?replace('<[^>]+>','','r')}" />
22</@>
23
24<section id="cabecera" class="cabecera_2">
25 <#if (imageFirstNew.getData())?? && imageFirstNew.getData() != "">
26 <img class="background_image" alt="${imageFirstNew.getAttribute("alt")}" data-fileentryid="${imageFirstNew.getAttribute("fileEntryId")}" src="${imageFirstNew.getData()}" />
27 <#else>
28 <img class="background_image" src="/documents/176177/179111/news-generic.jpg" alt="">
29 </#if>
30 <div class="background_degra"></div>
31 <div class="content_head">
32 <div class="titular">
33 <#if (titleNew.getData())?? && titleNew.getData() != "">
34 <h1 class="medium_title">${titleNew.getData()}</h1>
35 </#if>
36 <div class="add_info">
37 <#if categories?has_content>
38 <p class="category">
39 <span>${categoriesString}</span>
40 </p>
41 </#if>
42 <#if traslatedUrl?? && traslatedUrl.getData() != "" && traslatedUrl.getSiblings()?has_content>
43 <div class="languages">
44 <img src="/documents/176177/179195/idioma.png/f401554d-c635-40ae-c73a-c6cbb47d8d89?t=1737644561098" alt="">
45 <p>Content available in:
46 <#assign isFirstLanguage = true>
47 <#list traslatedUrl.getSiblings() as cur_traslatedUrl>
48 <#if (cur_traslatedUrl.getData())??>
49 <#if !isFirstLanguage> / </#if>
50 <a href="${cur_traslatedUrl.getData()}?id=${currentArticle.getArticleId()}">${cur_traslatedUrl.traslatedLanguage.getData()}</a>
51 <#assign isFirstLanguage = false>
52 </#if>
53 </#list>
54 </div>
55 </#if>
56 </div>
57 </div>
58 <#assign dateNew_Data = getterUtil.getString(dateNew.getData())>
59 <#if validator.isNotNull(dateNew_Data)>
60 <#assign dateNew_DateObj = dateUtil.parseDate("yyyy-MM-dd", dateNew_Data, locale)>
61 <p class="date">${dateUtil.getDate(dateNew_DateObj, "dd MMM yyyy", locale)}</p>
62 </#if>
63 <#if (summaryNew.getData())?? && summaryNew.getData() != "">
64 <div class="summary">
65 ${summaryNew.getData()}
66 </div>
67 </#if>
68 <#if (textLinkNew.urlLinkNew.getData())?? && textLinkNew.urlLinkNew.getData() != "" && (textLinkNew.getData())?? && textLinkNew.getData() != "">
69 <a href="${textLinkNew.urlLinkNew.getData()}" class="btn_red" <#if !textLinkNew.urlLinkNew.getData()?contains('catalonia.com')> target="_blank" title="Open new window"</#if> >${textLinkNew.getData()}</a>
70 </#if>
71 <div class="separator"></div>
72 </div>
73</section>
74
75<#if (videoNew.getData())?? && videoNew.getData() != "">
76 <section class="part_video container-fluid">
77 <div class="video">
78 ${htmlUtil.unescape(videoNew.getData())}
79 </div>
80 <div class="background"></div>
81 </section>
82</#if>
83
84<#if (contentNewOne.getData())?? && contentNewOne.getData() != "" || (titleCita.getData())?? && titleCita.getData() != "" || (contentNewTwo.getData())?? && contentNewTwo.getData() != "">
85 <section class="content_new container">
86 <#if (videoNew.getData())?? && videoNew.getData() != "">
87 <div class="separator"></div>
88 </#if>
89 <div class="content_text">
90 <#if (contentNewOne.getData())?? && contentNewOne.getData() != "">
91 ${contentNewOne.getData()}
92 </#if>
93 <#if (titleCita.getData())?? && titleCita.getData() != "" || (titleCita.descriptionCita.getData())?? && titleCita.descriptionCita.getData() != "">
94 <div class="quote_ca">
95 <div class="text">
96 <#if (titleCita.getData())?? && titleCita.getData() != "">
97 <p class="title">“${titleCita.getData()}” </p>
98 </#if>
99 <#if (titleCita.descriptionCita.getData())?? && titleCita.descriptionCita.getData() != "">
100 <p class="description">${titleCita.descriptionCita.getData()}</p>
101 </#if>
102 </div>
103 <#if (titleCita.imageCita.getData())?? && titleCita.imageCita.getData() != "">
104 <div class="image">
105 <img alt="${titleCita.imageCita.getAttribute("alt")}" data-fileentryid="${titleCita.imageCita.getAttribute("fileEntryId")}" src="${titleCita.imageCita.getData()}" />
106 </div>
107 </#if>
108 <div class="share_rrss">
109 <p class="subtitle">Share quote:</p>
110 <ul class="list_rrss">
111 <li>
112 <a title="Open new window" target="_blank" href='http://twitter.com/share?text="${titleCita.getData()}"%0a${titleCita.descriptionCita.getData()?replace('<[^>]+>','','r')}&url=%0a${currentURL}'>
113 <span class="sr-only">X</span>
114 <i class="fab fa-x-twitter"></i>
115 </a>
116 </li>
117 <li>
118 <a title="Open new window" target="_blank" href='https://www.linkedin.com/sharing/share-offsite/?url=${currentURL}&title="${titleCita.getData()}"%0a${titleCita.descriptionCita.getData()?replace('<[^>]+>','','r')}'>
119 <span class="sr-only">LinkedIn</span>
120 <i class="fab fa-linkedin-in"></i>
121 </a>
122 </li>
123 <li>
124 <a title="Open new window" target="_blank" href='https://www.facebook.com/sharer/sharer.php?u=${currentURL}"e="${titleCita.getData()}"%0a${titleCita.descriptionCita.getData()?replace('<[^>]+>','','r')}'>
125 <span class="sr-only">Facebook</span>
126 <i class="fab fa-facebook"></i>
127 </a>
128 </li>
129 <li>
130 <a title="Open new window" target="_blank" href='https://api.whatsapp.com/send?text="${titleCita.getData()}"%0a${titleCita.descriptionCita.getData()?replace('<[^>]+>','','r')}%0a${currentURL}'>
131 <span class="sr-only">Whatsapp</span>
132 <i class="fab fa-whatsapp-square"></i>
133 </a>
134 </li>
135 </ul>
136 </div>
137 </div>
138 </#if>
139 <#if (contentNewTwo.getData())?? && contentNewTwo.getData() != "">
140 ${contentNewTwo.getData()}
141 </#if>
142 </div>
143 </section>
144</#if>
145
146<div class="clearfix"></div>
147
148<#if titleSectionCards?exists>
149 <#if (titleSectionCards.titleSliderCard.getData())?? && titleSectionCards.titleSliderCard.getData() != "">
150 <section class="type_card_21 container-fluid plans-container--slider">
151 <!-- Titular sección -->
152 <div class="content_type_4">
153 <div class="line_red"></div>
154 <#if (titleSectionCards.getData())?? && titleSectionCards.getData() != "">
155 <div class="titular">
156 <h2 class="big_title">${htmlUtil.unescape(titleSectionCards.getData())}</h2>
157 </div>
158 </#if>
159 </div>
160
161 <!--Carousel-->
162 <div class="carrusel_card_big">
163 <#if (titleSectionCards.titleSliderCard.getSiblings()?size > 1)>
164 <button type="button" class="left-arrow">
165 <span class="fas fa-arrow-circle-left" aria-hidden="true"></span>
166 <span class="sr-only">Previous</span>
167 </button>
168 <button type="button" class="right-arrow">
169 <span class="fas fa-arrow-circle-right" aria-hidden="true"></span>
170 <span class="sr-only">Next</span>
171 </button>
172 </#if>
173
174 <#if titleSectionCards.titleSliderCard.getSiblings()?has_content>
175 <ul class="list_cards">
176 <#list titleSectionCards.titleSliderCard.getSiblings() as cur_titleSectionCards_titleSliderCard>
177 <li class="item">
178 <div class="content_card">
179 <#if (cur_titleSectionCards_titleSliderCard.getChild('imageSliderCard').getData())?? && cur_titleSectionCards_titleSliderCard.getChild('imageSliderCard').getData() != "">
180 <div class="image">
181 <img alt="${cur_titleSectionCards_titleSliderCard.getChild('imageSliderCard').getAttribute("alt")}" src="${cur_titleSectionCards_titleSliderCard.getChild('imageSliderCard').getData()}" data-fileentryid="${cur_titleSectionCards_titleSliderCard.getChild('imageSliderCard').getAttribute("fileEntryId")}" />
182 </div>
183 </#if>
184
185 <div class="content">
186 <#if (cur_titleSectionCards_titleSliderCard.getData())?? && cur_titleSectionCards_titleSliderCard.getData() != "">
187 <h3 class="title">${cur_titleSectionCards_titleSliderCard.getData()}</h3>
188 </#if>
189 <#if (cur_titleSectionCards_titleSliderCard.getChild('contentSliderCard').getData())?? && cur_titleSectionCards_titleSliderCard.getChild('contentSliderCard').getData() != "">
190 <div class="content_text">
191 ${cur_titleSectionCards_titleSliderCard.getChild('contentSliderCard').getData()}
192 </div>
193 </#if>
194 <#if (cur_titleSectionCards_titleSliderCard.getChild('urlLinkSliderCard').getData())?? && cur_titleSectionCards_titleSliderCard.getChild('urlLinkSliderCard').getData() != "" && (cur_titleSectionCards_titleSliderCard.getChild('textLinkSliderCard').getData())?? && cur_titleSectionCards_titleSliderCard.getChild('textLinkSliderCard').getData() != "">
195 <a href="${cur_titleSectionCards_titleSliderCard.getChild('urlLinkSliderCard').getData()}" class="btn_all_blue" <#if !cur_titleSectionCards_titleSliderCard.getChild('urlLinkSliderCard').getData()?contains('catalonia.com')> target="_blank" title="Open new window"</#if> >${cur_titleSectionCards_titleSliderCard.getChild('textLinkSliderCard').getData()}</a>
196 </#if>
197 </div>
198 </div>
199 </li>
200 </#list>
201 </ul>
202 </#if>
203 </div>
204 </section>
205 </#if>
206</#if>
207
208<#if (titleMoreInfo.LinkMoreInfo.getData())?? && titleMoreInfo.LinkMoreInfo.getData() != "">
209 <#if titleMoreInfo.LinkMoreInfo.getSiblings()?has_content>
210 <section class="second_menu_2 container-fluid">
211 <div class="bloque">
212 <div class="image">
213 <img src="/documents/176177/263024/003-informacin.png/da79a9cc-dab5-d58c-c0b2-8b7a423fe13a?t=1668690371158" alt="">
214 </div>
215 <div class="text">
216 <#if (titleMoreInfo.getData())??>
217 <h2 class="title">${titleMoreInfo.getData()}</h2>
218 </#if>
219 <ul class="list_links">
220 <#list titleMoreInfo.LinkMoreInfo.getSiblings() as cur_titleMoreInfo_LinkMoreInfo>
221 <#if (cur_titleMoreInfo_LinkMoreInfo.getData())??>
222 <li class="item">
223 <a href="${cur_titleMoreInfo_LinkMoreInfo.getChild('UrlMoreInfo').getData()}" <#if !cur_titleMoreInfo_LinkMoreInfo.getChild('UrlMoreInfo').getData()?contains('catalonia.com')> target="_blank" title="Open new window"</#if> >
224 <#if (cur_titleMoreInfo_LinkMoreInfo.getChild('iconMoreInfo').getData())?? && cur_titleMoreInfo_LinkMoreInfo.getChild('iconMoreInfo').getData() != "">
225 <img alt="${cur_titleMoreInfo_LinkMoreInfo.getChild('iconMoreInfo').getAttribute("alt")}" data-fileentryid="${cur_titleMoreInfo_LinkMoreInfo.getChild('iconMoreInfo').getAttribute("fileEntryId")}" src="${cur_titleMoreInfo_LinkMoreInfo.getChild('iconMoreInfo').getData()}" />
226 <#else>
227 <i class="fas fa-globe"></i>
228 </#if>
229 ${cur_titleMoreInfo_LinkMoreInfo.getData()}
230 <#if (cur_titleMoreInfo_LinkMoreInfo.getChild('TextAddMoreInfo').getData())?? && cur_titleMoreInfo_LinkMoreInfo.getChild('TextAddMoreInfo').getData() != "">
231 <span>| ${cur_titleMoreInfo_LinkMoreInfo.getChild('TextAddMoreInfo').getData()}</span>
232 </#if>
233 </a>
234 </li>
235 </#if>
236 </#list>
237 </ul>
238 </div>
239 </div>
240 </section>
241 </#if>
242</#if>
243
244<#if (titleGallery.imageGallery.getData())?? && titleGallery.imageGallery.getData() != "">
245 <#if titleGallery.imageGallery.getSiblings()?has_content>
246 <section class="galery_multimedia container">
247 <div class="content_type_4">
248 <div class="line_red"></div>
249 <div class="titular">
250 <h2 class="big_title"><span class="hand">Multimedia</span> <span class="dest_blue">gallery.</span></h2>
251 </div>
252
253 <#if (titleGallery.descriptionGallery.getData())?? && titleGallery.descriptionGallery.getData() != "">
254 <div class="content_text">
255 ${titleGallery.descriptionGallery.getData()}
256 </div>
257 </#if>
258 </div>
259 <div class="bloque_galery">
260
261 <div class="detail">
262 <div class="tab-content" id="myGaleryTabContent">
263 <#list titleGallery.imageGallery.getSiblings() as cur_galleryNews>
264 <div class="tab-pane fade <#if cur_galleryNews?index == 0>show active</#if>" id="item${cur_galleryNews?index}" role="tabpanel" aria-labelledby="item${cur_galleryNews?index}-tab">
265 <#if !cur_galleryNews.getChild('videoGallery').getData()?? || cur_galleryNews.getChild('videoGallery').getData() == "">
266 <#if (cur_galleryNews.getData())?? && cur_galleryNews.getData() != "">
267 <img alt="${cur_galleryNews.getAttribute("alt")}" data-fileentryid="${cur_galleryNews.getAttribute("fileEntryId")}" src="${cur_galleryNews.getData()}" />
268 <a class="btn btn-monospaced btn-secondary" id="downloadIcon" href="${cur_galleryNews.getData()}" download aria-label="download">
269 <@clay["icon"] symbol="download" />
270 </a>
271 </#if>
272 </#if>
273 ${cur_galleryNews.getChild('videoGallery').getData()}
274 </div>
275 </#list>
276 </div>
277 </div>
278
279 <div class="links">
280 <ul class="nav nav-tabs <#if titleGallery.imageGallery.getSiblings()?size gte 5>more</#if>" id="myGaleryTab">
281 <#list titleGallery.imageGallery.getSiblings() as cur_galleryNews>
282 <li class="nav-item">
283 <a class="nav-link <#if cur_galleryNews.getChild('videoGallery').getData()?has_content>video</#if> <#if cur_galleryNews?index == 0>active</#if>" id="item${cur_galleryNews?index}-tab" data-toggle="tab" href="#item${cur_galleryNews?index}" aria-controls="item${cur_galleryNews?index}" aria-selected="true" title="${cur_galleryNews.getAttribute("alt")}">
284 <#if (cur_galleryNews.getData())?? && cur_galleryNews.getData() != "">
285 <img alt="${cur_galleryNews.getAttribute("alt")}" data-fileentryid="${cur_galleryNews.getAttribute("fileEntryId")}" src="${cur_galleryNews.getData()}" />
286 <span class="sr-only">${cur_galleryNews.getAttribute("alt")}</span>
287 </#if>
288 </a>
289 </li>
290 </#list>
291 </ul>
292 </div>
293
294 </div>
295 </section>
296 </#if>
297</#if>
298
299<#if (infoRelated.subtitleRelated.getData())?? && infoRelated.subtitleRelated.getData() != "">
300 <#if infoRelated.subtitleRelated.getSiblings()?has_content>
301 <section class="type_card_5 <#if infoRelated.subtitleRelated.getSiblings()?size == 1>one</#if> container">
302 <div class="content_type_4">
303 <div class="line_red"></div>
304 <div class="titular">
305 <h2 class="big_title"><span class="hand">Discover</span> our <span class="dest_blue">services.</span></h2>
306 </div>
307 <#if (infoRelated.descriptionRelated.getData())?? && infoRelated.descriptionRelated.getData() != "">
308 <div class="content_text">
309 ${infoRelated.descriptionRelated.getData()}
310 </div>
311 </#if>
312 </div>
313 <#if infoRelated.subtitleRelated.getSiblings()?has_content>
314
315 <#if infoRelated.subtitleRelated.getSiblings()?size == 1>
316 <div class="list_item row">
317 <div class="item col-12 col-md-4">
318 <div class="bloque">
319 <#if (infoRelated.subtitleRelated.iconRelated.getData())?? && infoRelated.subtitleRelated.iconRelated.getData() != "">
320 <img class="icon" alt="${infoRelated.subtitleRelated.iconRelated.getAttribute("alt")}" src="${infoRelated.subtitleRelated.iconRelated.getData()}" data-fileentryid="${infoRelated.subtitleRelated.iconRelated.getAttribute("fileEntryId")}" />
321 </#if>
322 <div>
323 <#if (infoRelated.subtitleRelated.getData())?? && infoRelated.subtitleRelated.getData() != "">
324 <#if (infoRelated.getData())?? && infoRelated.getData() != "">
325 <h3 class="small_title">${infoRelated.subtitleRelated.getData()}</h3>
326 <#else>
327 <h2 class="small_title">${infoRelated.subtitleRelated.getData()}</h2>
328 </#if>
329 </#if>
330 <#if (infoRelated.subtitleRelated.subdescriptionRelated.getData())?? && infoRelated.subtitleRelated.subdescriptionRelated.getData() != "">
331 <div class="content_text">
332 ${infoRelated.subtitleRelated.subdescriptionRelated.getData()}
333 </div>
334 </#if>
335 <#if (infoRelated.subtitleRelated.textLinkRelated.getData())?? && infoRelated.subtitleRelated.textLinkRelated.getData() != "" && (infoRelated.subtitleRelated.urlLinkRelated.getData())?? && infoRelated.subtitleRelated.urlLinkRelated.getData() != "">
336 <a href="${infoRelated.subtitleRelated.urlLinkRelated.getData()}" class="btn_blue" <#if !infoRelated.subtitleRelated.urlLinkRelated.getData()?contains('catalonia.com')> target="_blank" title="Open new window"</#if> >${infoRelated.subtitleRelated.textLinkRelated.getData()}</a>
337 </#if>
338 </div>
339 </div>
340 </div>
341 </div>
342
343 <#elseif infoRelated.subtitleRelated.getSiblings()?size gte 6>
344 <ul class="list_item row">
345 <#list infoRelated.subtitleRelated.getSiblings() as cur_infoRelated_subtitleRelated>
346 <li class="item col-12 col-md-6 col-lg-3">
347 <div class="bloque">
348 <#if (cur_infoRelated_subtitleRelated.getChild('iconRelated').getData())?? && cur_infoRelated_subtitleRelated.getChild('iconRelated').getData() != "">
349 <img class="icon" alt="${cur_infoRelated_subtitleRelated.getChild('iconRelated').getAttribute("alt")}" src="${cur_infoRelated_subtitleRelated.getChild('iconRelated').getData()}" data-fileentryid="${cur_infoRelated_subtitleRelated.getChild('iconRelated').getAttribute("fileEntryId")}" />
350 </#if>
351 <div>
352 <#if (cur_infoRelated_subtitleRelated.getData())?? && cur_infoRelated_subtitleRelated.getData() != "">
353 <#if (infoRelated.getData())?? && infoRelated.getData() != "">
354 <h3 class="small_title">${cur_infoRelated_subtitleRelated.getData()}</h3>
355 <#else>
356 <h2 class="small_title">${cur_infoRelated_subtitleRelated.getData()}</h2>
357 </#if>
358 </#if>
359 <#if (cur_infoRelated_subtitleRelated.subdescriptionRelated.getData())?? && cur_infoRelated_subtitleRelated.subdescriptionRelated.getData() != "">
360 <div class="content_text">
361 ${cur_infoRelated_subtitleRelated.subdescriptionRelated.getData()}
362 </div>
363 </#if>
364 <#if (cur_infoRelated_subtitleRelated.textLinkRelated.getData())?? && cur_infoRelated_subtitleRelated.textLinkRelated.getData() != "" && (cur_infoRelated_subtitleRelated.urlLinkRelated.getData())?? && cur_infoRelated_subtitleRelated.urlLinkRelated.getData() != "">
365 <a href="${cur_infoRelated_subtitleRelated.urlLinkRelated.getData()}" class="btn_blue" <#if !cur_infoRelated_subtitleRelated.urlLinkRelated.getData()?contains('catalonia.com')> target="_blank" title="Open new window"</#if> >${cur_infoRelated_subtitleRelated.textLinkRelated.getData()}</a>
366 </#if>
367 </div>
368 </div>
369 </li>
370 </#list>
371 </ul>
372
373 <#else>
374 <ul class="list_item row">
375 <#list infoRelated.subtitleRelated.getSiblings() as cur_infoRelated_subtitleRelated>
376 <li class="item col-12 col-md-4">
377 <div class="bloque">
378 <#if (cur_infoRelated_subtitleRelated.getChild('iconRelated').getData())?? && cur_infoRelated_subtitleRelated.getChild('iconRelated').getData() != "">
379 <img class="icon" alt="${cur_infoRelated_subtitleRelated.getChild('iconRelated').getAttribute("alt")}" src="${cur_infoRelated_subtitleRelated.getChild('iconRelated').getData()}" data-fileentryid="${cur_infoRelated_subtitleRelated.getChild('iconRelated').getAttribute("fileEntryId")}" />
380 </#if>
381 <div>
382 <#if (cur_infoRelated_subtitleRelated.getData())?? && cur_infoRelated_subtitleRelated.getData() != "">
383 <#if (infoRelated.getData())?? && infoRelated.getData() != "">
384 <h3 class="small_title">${cur_infoRelated_subtitleRelated.getData()}</h3>
385 <#else>
386 <h2 class="small_title">${cur_infoRelated_subtitleRelated.getData()}</h2>
387 </#if>
388 </#if>
389 <#if (cur_infoRelated_subtitleRelated.subdescriptionRelated.getData())?? && cur_infoRelated_subtitleRelated.subdescriptionRelated.getData() != "">
390 <div class="content_text">
391 ${cur_infoRelated_subtitleRelated.subdescriptionRelated.getData()}
392 </div>
393 </#if>
394 <#if (cur_infoRelated_subtitleRelated.textLinkRelated.getData())?? && cur_infoRelated_subtitleRelated.textLinkRelated.getData() != "" && (cur_infoRelated_subtitleRelated.urlLinkRelated.getData())?? && cur_infoRelated_subtitleRelated.urlLinkRelated.getData() != "">
395 <a href="${cur_infoRelated_subtitleRelated.urlLinkRelated.getData()}" class="btn_blue" <#if !cur_infoRelated_subtitleRelated.urlLinkRelated.getData()?contains('catalonia.com')> target="_blank" title="Open new window"</#if> >${cur_infoRelated_subtitleRelated.textLinkRelated.getData()}</a>
396 </#if>
397 </div>
398 </div>
399 </li>
400 </#list>
401 </ul>
402 </#if>
403 </#if>
404 </section>
405 </#if>
406</#if>
407
408
409<#if (bannerConsultor.getData())?? && bannerConsultor.getData() != "">
410 <#assign bannerConsultorJSON = jsonFactoryUtil.createJSONObject(bannerConsultor.getData())
411
412 bannerConsultorContent = journalArticleService.getArticleContent(groupId, (bannerConsultorJSON.classPK?number - 2)?c, themeDisplay.getLanguageId(), null, themeDisplay)
413
414 />
415 ${bannerConsultorContent}
416</#if>
417
418
419
420<#if (bannerSector.getData())?? && bannerSector.getData() != "">
421 <#assign bannerSectorJSON = jsonFactoryUtil.createJSONObject(bannerSector.getData())
422
423 bannerSectorContent = journalArticleService.getArticleContent(groupId, (bannerSectorJSON.classPK?number - 2)?c, themeDisplay.getLanguageId(), null, themeDisplay)
424
425 />
426 ${bannerSectorContent}
427</#if>
428
429<script type="text/javascript">
430 document.addEventListener('DOMContentLoaded', function () {
431 const listCards = document.querySelector('.type_card_21 .list_cards');
432 const items = document.querySelectorAll('.type_card_21 .list_cards .item');
433 const leftArrow = document.querySelector('.left-arrow');
434 const rightArrow = document.querySelector('.right-arrow');
435
436 let currentIndex = 0; // Índice del elemento activo
437
438 function updateCarousel() {
439 // Resetear todas las tarjetas
440 items.forEach((item, index) => {
441 item.classList.remove('active', 'side');
442 item.style.transform = ''; // Reiniciar la transformación
443 });
444
445 // Asignar clase 'active' al elemento central
446 const currentItem = items[currentIndex];
447 currentItem.classList.add('active');
448
449 // Asignar clase 'side' al elemento anterior (si existe)
450 if (currentIndex > 0) {
451 const prevItem = items[currentIndex - 1];
452 prevItem.classList.add('side');
453 }
454
455 // Asignar clase 'side' al siguiente elemento (si existe)
456 if (currentIndex < items.length - 1) {
457 const nextItem = items[currentIndex + 1];
458 nextItem.classList.add('side');
459 }
460
461 // Usar requestAnimationFrame para asegurar que los elementos están disponibles y visibles
462 requestAnimationFrame(() => {
463 const offset = -currentItem.offsetLeft + (listCards.clientWidth - currentItem.clientWidth) / 2;
464 listCards.style.transform = 'translateX(' + offset + 'px)';
465 });
466 }
467
468 // Evento para el botón izquierdo
469 leftArrow.addEventListener('click', function () {
470 if (currentIndex > 0) {
471 currentIndex--;
472 updateCarousel();
473 }
474 });
475
476 // Evento para el botón derecho
477 rightArrow.addEventListener('click', function () {
478 if (currentIndex < items.length - 1) {
479 currentIndex++;
480 updateCarousel();
481 }
482 });
483
484 // Configuración inicial
485 updateCarousel();
486 });
487</script>
More News and Success Stories.
-
30 Jul 2026
See more Catalonia and Vietnam enhance investment cooperation during presidential missionCatalonia and Vietnam enhance investment cooperation during presidential mission
-
08 Jul 2026
See more Meet Catalonia’s 10 most disruptive companies of 2026Meet Catalonia’s 10 most disruptive companies of 2026
-
22 May 2026
See more Catalonia and North Carolina connect two leading life sciences ecosystemsCatalonia and North Carolina connect two leading life sciences ecosystems
-
21 May 2026
See more Barcelona ranks among the world’s top three congress cities in the latest ICCA rankingBarcelona ranks among the world’s top three congress cities in the latest ICCA ranking

