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