Java method "com.sun.proxy.$Proxy646.getArticleContent(long, String, String, com.liferay.portal.kernel.portlet.PortletRequestModel, com.liferay.portal.kernel.theme.ThemeDisplay)" threw an exception when invoked on com.sun.proxy.$Proxy646 object "com.liferay.journal.service.impl.JournalArticleServiceImpl@7a6794"; 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 ${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">${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">${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">${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.
-
08 Jul 2025
Chinese battery manufacturer Kage opens its European headquarters in Barcelona
-
08 Jul 2025
Multinational company Lang Laser inaugurates its first factory outside Germany in Barcelona
-
03 Jul 2025
20 Global CEOs Reveal Why They Chose Catalonia—And What You’re Missing
-
02 Jul 2025
Catalonia’s ICT sector doubles its value to €10 billion, driving growth and innovation across the economy