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.
-
04 Sep 2026
See more Barcelona ranks first in Europe and third worldwide for AI foreign investment projectsBarcelona ranks first in Europe and third worldwide for AI foreign investment projects
-
28 Jul 2026
See more ABB Robotics to establish new technology and operations hub in CataloniaABB Robotics to establish new technology and operations hub in Catalonia
-
22 Jul 2026
See more Taiwanese company TCI invests €20 million in Barcelona to establish its first European production and R&D centerTaiwanese company TCI invests €20 million in Barcelona to establish its first European production and R&D center
-
17 Jul 2026
See more German multinational Fischer chooses Catalonia for its first automated warehouse outside GermanyGerman multinational Fischer chooses Catalonia for its first automated warehouse outside Germany

