Java method "jdk.proxy68.$Proxy604.getArticleContent(long, String, String, com.liferay.portal.kernel.portlet.PortletRequestModel, com.liferay.portal.kernel.theme.ThemeDisplay)" threw an exception when invoked on jdk.proxy68.$Proxy604 object "com.liferay.journal.service.impl.JournalArticleServiceImpl@104c4802"; 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 416, 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 <#if (titleGallery.getData())?? && titleGallery.getData() != "">
250 <div class="titular">
251 <h2 class="big_title">${htmlUtil.unescape(titleGallery.getData())}<span class="dest_blue">.</span></h2>
252 </div>
253 </#if>
254
255 <#if (titleGallery.descriptionGallery.getData())?? && titleGallery.descriptionGallery.getData() != "">
256 <div class="content_text">
257 ${titleGallery.descriptionGallery.getData()}
258 </div>
259 </#if>
260 </div>
261 <div class="bloque_galery">
262
263 <div class="detail">
264 <div class="tab-content" id="myGaleryTabContent">
265 <#list titleGallery.imageGallery.getSiblings() as cur_galleryNews>
266 <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">
267 <#if !cur_galleryNews.getChild('videoGallery').getData()?? || cur_galleryNews.getChild('videoGallery').getData() == "">
268 <#if (cur_galleryNews.getData())?? && cur_galleryNews.getData() != "">
269 <img alt="${cur_galleryNews.getAttribute("alt")}" data-fileentryid="${cur_galleryNews.getAttribute("fileEntryId")}" src="${cur_galleryNews.getData()}" />
270 <a class="btn btn-monospaced btn-secondary" id="downloadIcon" href="${cur_galleryNews.getData()}" download aria-label="download">
271 <@clay["icon"] symbol="download" />
272 </a>
273 </#if>
274 </#if>
275 ${cur_galleryNews.getChild('videoGallery').getData()}
276 </div>
277 </#list>
278 </div>
279 </div>
280
281 <div class="links">
282 <ul class="nav nav-tabs <#if titleGallery.imageGallery.getSiblings()?size gte 5>more</#if>" id="myGaleryTab" role="tablist">
283 <#list titleGallery.imageGallery.getSiblings() as cur_galleryNews>
284 <li class="nav-item">
285 <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}" role="tab" aria-controls="item${cur_galleryNews?index}" aria-selected="true" title="${cur_galleryNews.getAttribute("alt")}">
286 <#if (cur_galleryNews.getData())?? && cur_galleryNews.getData() != "">
287 <img alt="${cur_galleryNews.getAttribute("alt")}" data-fileentryid="${cur_galleryNews.getAttribute("fileEntryId")}" src="${cur_galleryNews.getData()}" />
288 <span class="sr-only">${cur_galleryNews.getAttribute("alt")}</span>
289 </#if>
290 </a>
291 </li>
292 </#list>
293 </ul>
294 </div>
295
296 </div>
297 </section>
298 </#if>
299</#if>
300
301<#if (infoRelated.subtitleRelated.getData())?? && infoRelated.subtitleRelated.getData() != "">
302 <#if infoRelated.subtitleRelated.getSiblings()?has_content>
303 <section class="type_card_5 <#if infoRelated.subtitleRelated.getSiblings()?size == 1>one</#if> container">
304 <div class="content_type_4">
305 <div class="line_red"></div>
306 <#if (infoRelated.getData())?? && infoRelated.getData() != "">
307 <div class="titular">
308 <h2 class="big_title">${htmlUtil.unescape(infoRelated.getData())}<span class="dest_blue">.</span></h2>
309 </div>
310 </#if>
311 <#if (infoRelated.descriptionRelated.getData())?? && infoRelated.descriptionRelated.getData() != "">
312 <div class="content_text">
313 ${infoRelated.descriptionRelated.getData()}
314 </div>
315 </#if>
316 </div>
317 <#if infoRelated.subtitleRelated.getSiblings()?has_content>
318
319 <#if infoRelated.subtitleRelated.getSiblings()?size == 1>
320 <div class="list_item row">
321 <div class="item col-12 col-md-4">
322 <div class="bloque">
323 <#if (infoRelated.subtitleRelated.iconRelated.getData())?? && infoRelated.subtitleRelated.iconRelated.getData() != "">
324 <img class="icon" alt="${infoRelated.subtitleRelated.iconRelated.getAttribute("alt")}" src="${infoRelated.subtitleRelated.iconRelated.getData()}" data-fileentryid="${infoRelated.subtitleRelated.iconRelated.getAttribute("fileEntryId")}" />
325 </#if>
326 <div>
327 <#if (infoRelated.subtitleRelated.getData())?? && infoRelated.subtitleRelated.getData() != "">
328 <#if (infoRelated.getData())?? && infoRelated.getData() != "">
329 <h3 class="small_title">${infoRelated.subtitleRelated.getData()}</h3>
330 <#else>
331 <h2 class="small_title">${infoRelated.subtitleRelated.getData()}</h2>
332 </#if>
333 </#if>
334 <#if (infoRelated.subtitleRelated.subdescriptionRelated.getData())?? && infoRelated.subtitleRelated.subdescriptionRelated.getData() != "">
335 <div class="content_text">
336 ${infoRelated.subtitleRelated.subdescriptionRelated.getData()}
337 </div>
338 </#if>
339 <#if (infoRelated.subtitleRelated.textLinkRelated.getData())?? && infoRelated.subtitleRelated.textLinkRelated.getData() != "" && (infoRelated.subtitleRelated.urlLinkRelated.getData())?? && infoRelated.subtitleRelated.urlLinkRelated.getData() != "">
340 <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>
341 </#if>
342 </div>
343 </div>
344 </div>
345 </div>
346
347 <#elseif infoRelated.subtitleRelated.getSiblings()?size gte 6>
348 <ul class="list_item row">
349 <#list infoRelated.subtitleRelated.getSiblings() as cur_infoRelated_subtitleRelated>
350 <li class="item col-12 col-md-6 col-lg-3">
351 <div class="bloque">
352 <#if (cur_infoRelated_subtitleRelated.getChild('iconRelated').getData())?? && cur_infoRelated_subtitleRelated.getChild('iconRelated').getData() != "">
353 <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")}" />
354 </#if>
355 <div>
356 <#if (cur_infoRelated_subtitleRelated.getData())?? && cur_infoRelated_subtitleRelated.getData() != "">
357 <#if (infoRelated.getData())?? && infoRelated.getData() != "">
358 <h3 class="small_title">${cur_infoRelated_subtitleRelated.getData()}</h3>
359 <#else>
360 <h2 class="small_title">${cur_infoRelated_subtitleRelated.getData()}</h2>
361 </#if>
362 </#if>
363 <#if (cur_infoRelated_subtitleRelated.subdescriptionRelated.getData())?? && cur_infoRelated_subtitleRelated.subdescriptionRelated.getData() != "">
364 <div class="content_text">
365 ${cur_infoRelated_subtitleRelated.subdescriptionRelated.getData()}
366 </div>
367 </#if>
368 <#if (cur_infoRelated_subtitleRelated.textLinkRelated.getData())?? && cur_infoRelated_subtitleRelated.textLinkRelated.getData() != "" && (cur_infoRelated_subtitleRelated.urlLinkRelated.getData())?? && cur_infoRelated_subtitleRelated.urlLinkRelated.getData() != "">
369 <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>
370 </#if>
371 </div>
372 </div>
373 </li>
374 </#list>
375 </ul>
376
377 <#else>
378 <ul class="list_item row">
379 <#list infoRelated.subtitleRelated.getSiblings() as cur_infoRelated_subtitleRelated>
380 <li class="item col-12 col-md-4">
381 <div class="bloque">
382 <#if (cur_infoRelated_subtitleRelated.getChild('iconRelated').getData())?? && cur_infoRelated_subtitleRelated.getChild('iconRelated').getData() != "">
383 <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")}" />
384 </#if>
385 <div>
386 <#if (cur_infoRelated_subtitleRelated.getData())?? && cur_infoRelated_subtitleRelated.getData() != "">
387 <#if (infoRelated.getData())?? && infoRelated.getData() != "">
388 <h3 class="small_title">${cur_infoRelated_subtitleRelated.getData()}</h3>
389 <#else>
390 <h2 class="small_title">${cur_infoRelated_subtitleRelated.getData()}</h2>
391 </#if>
392 </#if>
393 <#if (cur_infoRelated_subtitleRelated.subdescriptionRelated.getData())?? && cur_infoRelated_subtitleRelated.subdescriptionRelated.getData() != "">
394 <div class="content_text">
395 ${cur_infoRelated_subtitleRelated.subdescriptionRelated.getData()}
396 </div>
397 </#if>
398 <#if (cur_infoRelated_subtitleRelated.textLinkRelated.getData())?? && cur_infoRelated_subtitleRelated.textLinkRelated.getData() != "" && (cur_infoRelated_subtitleRelated.urlLinkRelated.getData())?? && cur_infoRelated_subtitleRelated.urlLinkRelated.getData() != "">
399 <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>
400 </#if>
401 </div>
402 </div>
403 </li>
404 </#list>
405 </ul>
406 </#if>
407 </#if>
408 </section>
409 </#if>
410</#if>
411
412
413<#if (bannerConsultor.getData())?? && bannerConsultor.getData() != "">
414 <#assign bannerConsultorJSON = jsonFactoryUtil.createJSONObject(bannerConsultor.getData())
415
416 bannerConsultorContent = journalArticleService.getArticleContent(groupId, (bannerConsultorJSON.classPK?number - 2)?c, themeDisplay.getLanguageId(), null, themeDisplay)
417
418 />
419 ${bannerConsultorContent}
420</#if>
421
422
423
424<#if (bannerSector.getData())?? && bannerSector.getData() != "">
425 <#assign bannerSectorJSON = jsonFactoryUtil.createJSONObject(bannerSector.getData())
426
427 bannerSectorContent = journalArticleService.getArticleContent(groupId, (bannerSectorJSON.classPK?number - 2)?c, themeDisplay.getLanguageId(), null, themeDisplay)
428
429 />
430 ${bannerSectorContent}
431</#if>
432
433<script type="text/javascript">
434 document.addEventListener('DOMContentLoaded', function () {
435 const listCards = document.querySelector('.type_card_21 .list_cards');
436 const items = document.querySelectorAll('.type_card_21 .list_cards .item');
437 const leftArrow = document.querySelector('.left-arrow');
438 const rightArrow = document.querySelector('.right-arrow');
439
440 let currentIndex = 0; // Índice del elemento activo
441
442 function updateCarousel() {
443 // Resetear todas las tarjetas
444 items.forEach((item, index) => {
445 item.classList.remove('active', 'side');
446 item.style.transform = ''; // Reiniciar la transformación
447 });
448
449 // Asignar clase 'active' al elemento central
450 const currentItem = items[currentIndex];
451 currentItem.classList.add('active');
452
453 // Asignar clase 'side' al elemento anterior (si existe)
454 if (currentIndex > 0) {
455 const prevItem = items[currentIndex - 1];
456 prevItem.classList.add('side');
457 }
458
459 // Asignar clase 'side' al siguiente elemento (si existe)
460 if (currentIndex < items.length - 1) {
461 const nextItem = items[currentIndex + 1];
462 nextItem.classList.add('side');
463 }
464
465 // Usar requestAnimationFrame para asegurar que los elementos están disponibles y visibles
466 requestAnimationFrame(() => {
467 const offset = -currentItem.offsetLeft + (listCards.clientWidth - currentItem.clientWidth) / 2;
468 listCards.style.transform = 'translateX(' + offset + 'px)';
469 });
470 }
471
472 // Evento para el botón izquierdo
473 leftArrow.addEventListener('click', function () {
474 if (currentIndex > 0) {
475 currentIndex--;
476 updateCarousel();
477 }
478 });
479
480 // Evento para el botón derecho
481 rightArrow.addEventListener('click', function () {
482 if (currentIndex < items.length - 1) {
483 currentIndex++;
484 updateCarousel();
485 }
486 });
487
488 // Configuración inicial
489 updateCarousel();
490 });
491</script>
Related News and Success stories.
-
11 Nov 2025
See more Catalonia launches €1 billion AI Strategy to drive innovation, competitiveness, and responsible growth by 2030Catalonia launches €1 billion AI Strategy to drive innovation, competitiveness, and responsible growth by 2030
-
10 Nov 2025
See more Chinese group Zhejian Aixiner Stockings to resume nylon yarn production at the former Nylstar factoryChinese group Zhejian Aixiner Stockings to resume nylon yarn production at the former Nylstar factory
-
04 Nov 2025
See more AstraZeneca invests €1.3 billion in its Barcelona headquarters, a global hub for biomedical researchAstraZeneca invests €1.3 billion in its Barcelona headquarters, a global hub for biomedical research
-
27 Oct 2025
See more Catalonia strengthens business ties with China in Industry 4.0 technologiesCatalonia strengthens business ties with China in Industry 4.0 technologies

