
Més de 100 anys d’experiència en jubilació
Acumulem més d’un segle d’història ajudant les persones a preparar-se la jubilació i oferint un assessorament personalitzat.
Saps per a què utilitzem les cookies?
VidaCaixa utilitza cookies pròpies i de tercers per a analitzar la teva navegació amb finalitats estadístics, així com per a personalitzar el contingut i la publicitat sobre la base d'un perfil elaborat a partir dels teus hàbits de navegació (p. ex., vídeos o pàgines que has vist).
Per a més informació, consulta la nostra Política de cookies.
Java method "com.liferay.portal.template.ServiceLocator.findService(String)" takes 1 argument, but 2 was given.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign literalTools = serviceLocator... [in template "20155#20195#20714585" at line 3, column 1]
----
1<#assign image_folder=themeDisplay.getPathThemeImages()/>
2<#assign dlFileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")/>
3<#assign literalTools = serviceLocator.findService("com.vidacaixa.services.service", "com.vidacaixa.services.service.LiteralsToolsLocalService")/>
4<#assign scopeGroupId = scopeGroupId/>
5<#assign vidExtensions = ["3gp", "avi", "asf", "wma", "wmv", "flv", "mkv", "mp4", "mpeg", "mxf", "ogg", "mov", "qt", "ts", "webm"]/>
6<#assign respTablet = themeDisplay.getScopeGroup().getExpandoBridge().getAttribute("dimensiones-responsive-tablet")>
7<#assign respMobile = themeDisplay.getScopeGroup().getExpandoBridge().getAttribute("dimensiones-responsive-mobile")>
8
9<#if commercialTitle??>
10
11 <#assign img_bool = false />
12 <#assign vidF_bool = false />
13 <#assign vid_bool = false />
14 <#assign clr_bool = false />
15 <#assign mediaDocumentsBool = "false" />
16 <#assign linkBool = "false" />
17
18 <#if annotation?? && annotation.getData()?has_content>
19 <#assign annotation_data = annotation.getData() />
20 <#else>
21 <#assign annotation_data = "" />
22 </#if>
23 <#if commercialTitle.getData()?has_content>
24 <#assign title_data = commercialTitle.getData() />
25 <#else>
26 <#assign title_data = "" />
27 </#if>
28
29 <#if commercialTitle.getChildren()??>
30 <#if commercialTitle.getChild('commercialDescription')?? & commercialTitle.getChild('commercialDescription').getData()?has_content>
31 <#assign com_description = commercialTitle.getChild('commercialDescription').getData() />
32 </#if>
33
34 <#if commercialTitle.getChild('contentType')??>
35 <#assign contentType = commercialTitle.getChild('contentType').getData() />
36 <#if contentType?trim == "image">
37 <#if commercialTitle.getChild('commercialImage')?? && commercialTitle.getChild('commercialImage').getData()?has_content>
38 <#assign img_bool = true />
39 <#assign image = commercialTitle.getChild('commercialImage') />
40 <#assign image_tablet = image.getChild('commercialImageTablet')!/>
41 <#assign image_mobile = image.getChild('commercialImageMobile')! />
42
43 <#assign img_src = image.getData() />
44 <#assign img_tablet_src = ""/>
45 <#assign img_mobile_src = "" />
46
47 <#if image_tablet?? && image_tablet?has_content>
48 <#assign img_tablet_src = image_tablet.getData() />
49 </#if>
50 <#if image_mobile?? && image_mobile?has_content>
51 <#assign img_mobile_src = image_mobile.getData() />
52 </#if>
53
54 <#if image.getChildren()??>
55 <#if image.getChild('commercialImageDescription')?? && image.getChild('commercialImageDescription').getData()?has_content>
56 <#assign img_description = image.getChild('commercialImageDescription').getData() />
57 <#else>
58 <#assign img_description = "" />
59 </#if>
60 <#if image.getChild('imagePosition')?? && image.getChild('imagePosition').getData()?has_content>
61 <#assign img_position = image.getChild('imagePosition').getData() />
62 <#else>
63 <#assign img_position = "__img-left" />
64 </#if>
65 <#if image.getChild('imageSize')?? && image.getChild('imageSize').getData()?has_content>
66 <#assign img_size = image.getChild('imageSize').getData() />
67 <#else>
68 <#assign img_size = "--M" />
69 </#if>
70 <#else>
71 <#assign img_description = "" />
72 <#assign img_position = "__img-left" />
73 </#if>
74 <#if commercialTitle.getChild('backgroundColor')?? && commercialTitle.getChild('backgroundColor').getData()?has_content>
75 <#assign color = commercialTitle.getChild('backgroundColor').getData() />
76 <#assign clr_bool = true />
77 <#else>
78 <#assign color = "--sky-blue" />
79 </#if>
80 <#else>
81 <#assign img_src = "" />
82 <#assign img_description = "" />
83 <#assign img_position = "__img-left" />
84 </#if>
85 <#elseif contentType?trim == "videoFile">
86 <#if commercialTitle.getChild('commercialVideoFile')?? && commercialTitle.getChild('commercialVideoFile').getData()?has_content>
87 <#assign vidF_bool = true />
88 <#assign videoF = commercialTitle.getChild('commercialVideoFile') />
89 <#assign videoF_src = commercialTitle.getChild('commercialVideoFile').getData() />
90 <#assign lastIndex = videoF_src?last_index_of('/')+1 />
91 <#if (lastIndex >= 0)>
92 <#assign vidF_uuid = videoF_src?substring(lastIndex) />
93 <#assign paramIndex = vidF_uuid?last_index_of('?') />
94 <#if (paramIndex >= 0)>
95 <#assign vidF_uuid = vidF_uuid?substring(0, paramIndex) />
96 </#if>
97 </#if>
98
99 <#attempt>
100 <#assign vidFEntry = dlFileEntryService.getDLFileEntryByUuidAndGroupId(vidF_uuid, scopeGroupId) />
101 <#recover>
102 No se ha encontrado el servicio.
103 </#attempt>
104
105 <#assign ext_splitted = videoF_src?split('/')[4]?split(".") />
106 <#assign vidF_extension = ext_splitted[ext_splitted?size-1] />
107
108 <#assign displayVideo = false />
109 <#list vidExtensions as ext>
110 <#if vidF_extension = ext>
111 <#assign displayVideo = true />
112 <#break>
113 </#if>
114 </#list>
115 <#if videoF.getChildren()??>
116 <#if videoF.getChild('videoPosition')?? && videoF.getChild('videoPosition').getData()?has_content>
117 <#assign videoF_position = videoF.getChild('videoPosition').getData() />
118 <#else>
119 <#assign videoF_position = "__img-left" />
120 </#if>
121 <#else>
122 <#assign videoF_position = "__img-left" />
123 </#if>
124 <#if commercialTitle.getChild('backgroundColor')?? && commercialTitle.getChild('backgroundColor').getData()?has_content>
125 <#assign color = commercialTitle.getChild('backgroundColor').getData() />
126 <#assign clr_bool = true />
127 <#else>
128 <#assign color = "--sky-blue" />
129 </#if>
130 </#if>
131 <#elseif contentType?trim == "video">
132 <#if commercialTitle.getChild('commercialVideo')?? && commercialTitle.getChild('commercialVideo').getData()?has_content>
133 <#assign vid_bool = true />
134 <#assign video = commercialTitle.getChild('commercialVideo') />
135 <#assign video_src = commercialTitle.getChild('commercialVideo').getData() />
136 <#if video.getChildren()??>
137 <#if video.getChild('videoPosition')?? && video.getChild('videoPosition').getData()?has_content>
138 <#assign video_position = video.getChild('videoPosition').getData() />
139 <#else>
140 <#assign video_position = "__img-left" />
141 </#if>
142 <#else>
143 <#assign video_position = "__img-left" />
144 </#if>
145 <#if commercialTitle.getChild('backgroundColor')?? && commercialTitle.getChild('backgroundColor').getData()?has_content>
146 <#assign color = commercialTitle.getChild('backgroundColor').getData() />
147 <#assign clr_bool = true />
148 <#else>
149 <#assign color = "--sky-blue" />
150 </#if>
151 </#if>
152 <#else>
153 <#if commercialTitle.getChild('backgroundColor')?? && commercialTitle.getChild('backgroundColor').getData()?has_content>
154 <#assign color = commercialTitle.getChild('backgroundColor').getData() />
155 <#assign clr_bool = true />
156 <#else>
157 <#assign color = "--sky-blue" />
158 </#if>
159
160
161 </#if>
162 </#if>
163 <#if commercialTitle.getChild('LinkTitle')?? && commercialTitle.getChild('LinkTitle').getChildren()??>
164 <#assign linkBool = "" />
165 <#assign link = commercialTitle.getChild('LinkTitle') />
166 <#if link.getChild('LinkTooltip')?? && link.getChild('LinkTooltip').getData()?has_content>
167 <#assign tooltip = "title='${link.getChild('LinkTooltip').getData()}'"/>
168 <#else>
169 <#assign tooltip = ""/>
170 </#if>
171 <#if link.getChild('LinkType')?? && link.getChild('LinkType').getData()?has_content>
172 <#if link.getChild('LinkType').getData()?trim == "Interno">
173 <#if link.getChild('LinkInterno')?has_content && link.getChild('LinkInterno').getFriendlyUrl()?has_content>
174 <#assign ref="${link.getChild('LinkInterno').getFriendlyUrl()}"/>
175 <#else>
176 <#assign ref = ""/>
177 </#if>
178 <#elseif link.getChild('LinkExterno')?? && link.getChild('LinkExterno').getData()?has_content>
179 <#assign ref="${link.getChild('LinkExterno').getData()}" />
180 <#else>
181 <#assign ref="" />
182 </#if>
183 <#else>
184 <#assign ref="" />
185 </#if>
186 <#if link.getChild('LinkBlank')?? && link.getChild('LinkBlank').getData()?has_content>
187 <#assign blankText = "'_blank'" />
188 <#else>
189 <#assign blankText = "'_self'" />
190 </#if>
191 </#if>
192 <#if commercialTitle.getChild('LinkTitle2')?? && commercialTitle.getChild('LinkTitle2').getChildren()??>
193 <#assign linkBool = "" />
194 <#assign link2 = commercialTitle.getChild('LinkTitle2') />
195 <#if link2.getChild('LinkTooltip2')?? && link2.getChild('LinkTooltip2').getData()?has_content>
196 <#assign tooltip2 = "title='${link2.getChild('LinkTooltip2').getData()}'"/>
197 <#else>
198 <#assign tooltip2 = ""/>
199 </#if>
200 <#if link2.getChild('LinkType2')?? && link2.getChild('LinkType2').getData()?has_content>
201 <#if link2.getChild('LinkType2').getData()?trim == "Interno">
202 <#if link2.getChild('LinkInterno2')?has_content && link2.getChild('LinkInterno2').getFriendlyUrl()?has_content>
203 <#assign ref2="${link2.getChild('LinkInterno2').getFriendlyUrl()}"/>
204 <#else>
205 <#assign ref2 = ""/>
206 </#if>
207 <#elseif link2.getChild('LinkExterno2')?? && link2.getChild('LinkExterno2').getData()?has_content>
208 <#assign ref2="${link2.getChild('LinkExterno2').getData()}" />
209 <#else>
210 <#assign ref2="" />
211 </#if>
212 <#else>
213 <#assign ref2="" />
214 </#if>
215 <#if link2.getChild('LinkBlank2')?? && link2.getChild('LinkBlank2').getData()?has_content>
216 <#assign blankText2 = "'_blank'" />
217 <#else>
218 <#assign blankText2 = "'_self'" />
219 </#if>
220 </#if>
221 <#if img_bool>
222 <section class="cv-module cv-module${img_position}">
223 <div class="cv-module__container-content cv-module__container-content${color}">
224 <article class="cv-module__content cv-module__content${img_size}">
225 <p class="cv-uppercase cv-uppercase-medium cv-uppercase-medium--S">${annotation_data}</p>
226 <div class="cv-separator cv-separator--black cv-separator--margin"></div>
227 <h2 id="${(title_data?replace(" ","","r"))?lower_case}" class="cv-title--semibold cv-title--2XL">${title_data}</h2>
228 <#if com_description?has_content>
229 <div class="cv-module__text cv-paragraph-regular cv-paragraph-regular--S">${com_description}</div>
230 </#if>
231 <#if commercialTitle.getChild('mediaDocuments')?? && commercialTitle.getChild('mediaDocuments').getSiblings()?has_content>
232 <#if commercialTitle.getChild('mediaDocuments').getData()?has_content>
233 <ul class="cv-module__download-container">
234 <#list commercialTitle.getChild('mediaDocuments').getSiblings() as doc>
235 <#assign document_att = doc.getData()/>
236 <#assign lastIndex = doc.getData()?last_index_of('/')+1 />
237 <#if (lastIndex >= 0)>
238 <#assign uuid = doc.getData()?substring(lastIndex) />
239 <#assign paramIndex = uuid?last_index_of('?') />
240 <#if (paramIndex >= 0)>
241 <#assign uuid = uuid?substring(0, paramIndex) />
242 </#if>
243 </#if>
244
245 <#assign fileEntry = dlFileEntryService.getDLFileEntryByUuidAndGroupId(uuid, scopeGroupId) />
246
247 <#assign fileName = doc.getData()?split('/')[4]/>
248
249 <#if (fileEntry.getSize() < 1024)>
250 <#assign size = "(" + fileEntry.getSize()?round + " Bytes" + ")"/>
251 <#elseif (fileEntry.getSize() < 1048576)>
252 <#assign size = "(" + (fileEntry.getSize()/1024)?round + " KB" + ")"/>
253 <#elseif (fileEntry.getSize() < 1073741824)>
254 <#assign size = "(" + ((fileEntry.getSize()/1024)/1024)?round + " MB" + ")"/>
255 <#elseif (fileEntry.getSize() < 1099511627776)>
256 <#assign size = "(" + (((fileEntry.getSize()/1024)/1024)/1024)?round + " GB" + ")"/>
257 <#else>
258 <#assign size = ""/>
259 </#if>
260
261 <#assign mimeType = fileEntry.getMimeType()?split("/")[0]/>
262 <#if (mimeType == "image" || mimeType == "video")>
263 <#assign styleType = "image"/>
264 <#else>
265 <#assign styleType = "document"/>
266 </#if>
267
268
269 <#if document_att?has_content>
270 <#if doc.getChild('imageMediaDocuments')?? && doc.getChild('imageMediaDocuments').getData()?has_content>
271 <#assign doc_attImage = doc.getChild('imageMediaDocuments').getData() />
272 <#else>
273 <#assign doc_attImage = "${image_folder}/pdf.svg" />
274 </#if>
275 <#if doc.getChild('linkText')?? && doc.getChild('linkText').getData()?has_content>
276 <#assign doc_textLink = doc.getChild('linkText').getData() />
277 <#else>
278 <#assign doc_textLink = "" />
279 </#if>
280 </#if>
281 <li>
282 <a href="${document_att}" download class="cv-module__download">
283 ${doc_textLink?upper_case} ${size}
284 <div>
285 <div src="" alt="" class="cv-download__icon-img cv-download__icon-img--${styleType}"></div>
286 <p class="cv-paragraph-regular cv-paragraph-regular--2XS">
287 ${(fileName?substring(fileName?last_index_of('.')+1, fileName?length))?upper_case}
288 </p>
289 </div>
290 </a>
291 </li>
292 </#list>
293 </ul>
294 </#if>
295 <div class="cv-module__text cv-paragraph-regular cv-paragraph-regular--S">
296 <#if link.getData()?has_content>
297 <button onclick="window.open('${ref}', ${blankText})" style="margin-right:20px;" class="cv-button cv-button--secondary cv-paragraph-semibold cv-paragraph-semibold--S" ${tooltip}>${link.getData()}</button>
298 </#if>
299 <#if link2.getData()?has_content>
300 <button onclick="window.open('${ref2}', ${blankText2})" class="cv-button cv-button--primary cv-paragraph-semibold cv-paragraph-semibold--S" ${tooltip2}>${link2.getData()}</button><br><br>
301 </#if>
302 </div>
303 </#if>
304 </article>
305 </div>
306 <div class="cv-module__img-container cv-module__img-container${img_size}">
307 <picture class="w-100">
308 <source media="(max-width: ${respMobile}px)" srcset="${img_mobile_src}">
309 <source media="(max-width: ${respTablet}px)" srcset="${img_tablet_src}">
310 <img class="cv-module__img" src="${img_src}" title="${img_description}" alt="">
311 </picture>
312 </div>
313 </section>
314 <#elseif vidF_bool>
315 <section class="cv-module cv-module${videoF_position}">
316 <div class="cv-module__container-content cv-module__container-content${color}">
317 <article class="cv-module__content">
318 <p class="cv-uppercase cv-uppercase-medium cv-uppercase-medium--S">${annotation_data}</p>
319 <div class="cv-separator cv-separator--black cv-separator--margin"></div>
320 <h2 id="${(title_data?replace(" ","","r"))?lower_case}" class="cv-title--semibold cv-title--2XL">${title_data}</h2>
321 <#if com_description?has_content>
322 <div class="cv-module__text cv-paragraph-regular cv-paragraph-regular--S">${com_description}</div>
323 </#if>
324 <#if commercialTitle.getChild('mediaDocuments')?? && commercialTitle.getChild('mediaDocuments').getSiblings()?has_content>
325 <#if commercialTitle.getChild('mediaDocuments').getData()?has_content>
326 <ul class="cv-module__download-container">
327 <#list commercialTitle.getChild('mediaDocuments').getSiblings() as doc>
328 <#assign document_att = doc.getData()/>
329 <#assign lastIndex = doc.getData()?last_index_of('/')+1 />
330 <#if (lastIndex >= 0)>
331 <#assign uuid = doc.getData()?substring(lastIndex) />
332 <#assign paramIndex = uuid?last_index_of('?') />
333 <#if (paramIndex >= 0)>
334 <#assign uuid = uuid?substring(0, paramIndex) />
335 </#if>
336 </#if>
337
338 <#assign fileEntry = dlFileEntryService.getDLFileEntryByUuidAndGroupId(uuid, scopeGroupId) />
339
340 <#assign fileName = doc.getData()?split('/')[4]/>
341
342 <#if (fileEntry.getSize() < 1024)>
343 <#assign size = "(" + fileEntry.getSize()?round + " Bytes" + ")"/>
344 <#elseif (fileEntry.getSize() < 1048576)>
345 <#assign size = "(" + (fileEntry.getSize()/1024)?round + " KB" + ")"/>
346 <#elseif (fileEntry.getSize() < 1073741824)>
347 <#assign size = "(" + ((fileEntry.getSize()/1024)/1024)?round + " MB" + ")"/>
348 <#elseif (fileEntry.getSize() < 1099511627776)>
349 <#assign size = "(" + (((fileEntry.getSize()/1024)/1024)/1024)?round + " GB" + ")"/>
350 <#else>
351 <#assign size = ""/>
352 </#if>
353
354 <#assign mimeType = fileEntry.getMimeType()?split("/")[0]/>
355 <#if (mimeType == "image" || mimeType == "video")>
356 <#assign styleType = "image"/>
357 <#else>
358 <#assign styleType = "document"/>
359 </#if>
360
361
362 <#if document_att?has_content>
363 <#if doc.getChild('imageMediaDocuments')?? && doc.getChild('imageMediaDocuments').getData()?has_content>
364 <#assign doc_attImage = doc.getChild('imageMediaDocuments').getData() />
365 <#else>
366 <#assign doc_attImage = "${image_folder}/pdf.svg" />
367 </#if>
368 <#if doc.getChild('linkText')?? && doc.getChild('linkText').getData()?has_content>
369 <#assign doc_textLink = doc.getChild('linkText').getData() />
370 <#else>
371 <#assign doc_textLink = "" />
372 </#if>
373 </#if>
374 <li>
375 <a href="${document_att}" download class="cv-module__download">
376 ${doc_textLink?upper_case} ${size}
377 <div href="${document_att}" download >
378 <div src="" alt="" class="cv-download__icon-img cv-download__icon-img--${styleType}"></div>
379 <p class="cv-paragraph-regular cv-paragraph-regular--2XS">
380 ${(fileName?substring(fileName?last_index_of('.')+1, fileName?length))?upper_case}
381 </p>
382 </div>
383 </a>
384 </li>
385 </#list>
386 </ul>
387 </#if>
388 <div class="cv-module__text cv-paragraph-regular cv-paragraph-regular--S">
389 <#if link.getData()?has_content>
390 <button onclick="window.open('${ref}', ${blankText})" style="margin-right:20px;" class="cv-button cv-button--secondary cv-paragraph-semibold cv-paragraph-semibold--S" ${tooltip}>${link.getData()}</button>
391 </#if>
392 <#if link2.getData()?has_content>
393 <button onclick="window.open('${ref2}', ${blankText2})" class="cv-button cv-button--primary cv-paragraph-semibold cv-paragraph-semibold--S" ${tooltip2}>${link2.getData()}</button><br>
394 </#if>
395 </div>
396 </#if>
397 </article>
398 </div>
399 <#assign error_message = literalTools.getLiteral(scopeGroupId, locale, 'vidacaixa.error.reproduccion.video')/>
400 <div class="cv-module__img-container cv-module__img-container--M">
401 <#if displayVideo>
402 <video width="100%" height="100%" controls>
403 <source src="${videoF_src}" type="video/${vidF_extension}">
404 </video>
405 <#else>
406 <p>${error_message}${vidF_extension}</p>
407 </#if>
408 </div>
409 </section>
410 <#elseif vid_bool>
411 <section class="cv-module cv-module${video_position}">
412 <div class="cv-module__container-content cv-module__container-content${color}">
413 <article class="cv-module__content">
414 <p class="cv-uppercase cv-uppercase-medium cv-uppercase-medium--S">${annotation_data}</p>
415 <div class="cv-separator cv-separator--black cv-separator--margin"></div>
416 <h2 id="${(title_data?replace(" ","","r"))?lower_case}" class="cv-title--semibold cv-title--2XL">${title_data}</h2>
417 <#if com_description?has_content>
418 <div class="cv-module__text cv-paragraph-regular cv-paragraph-regular--S">${com_description}</div>
419 </#if>
420 <#if commercialTitle.getChild('mediaDocuments')?? && commercialTitle.getChild('mediaDocuments').getSiblings()?has_content>
421 <#if commercialTitle.getChild('mediaDocuments').getData()?has_content>
422 <ul class="cv-module__download-container">
423 <#list commercialTitle.getChild('mediaDocuments').getSiblings() as doc>
424 <#assign document_att = doc.getData()/>
425 <#assign lastIndex = doc.getData()?last_index_of('/')+1 />
426 <#if (lastIndex >= 0)>
427 <#assign uuid = doc.getData()?substring(lastIndex) />
428 <#assign paramIndex = uuid?last_index_of('?') />
429 <#if (paramIndex >= 0)>
430 <#assign uuid = uuid?substring(0, paramIndex) />
431 </#if>
432 </#if>
433
434 <#assign fileEntry = dlFileEntryService.getDLFileEntryByUuidAndGroupId(uuid, scopeGroupId) />
435
436 <#assign fileName = doc.getData()?split('/')[4]/>
437
438 <#if (fileEntry.getSize() < 1024)>
439 <#assign size = "(" + fileEntry.getSize()?round + " Bytes" + ")"/>
440 <#elseif (fileEntry.getSize() < 1048576)>
441 <#assign size = "(" + (fileEntry.getSize()/1024)?round + " KB" + ")"/>
442 <#elseif (fileEntry.getSize() < 1073741824)>
443 <#assign size = "(" + ((fileEntry.getSize()/1024)/1024)?round + " MB" + ")"/>
444 <#elseif (fileEntry.getSize() < 1099511627776)>
445 <#assign size = "(" + (((fileEntry.getSize()/1024)/1024)/1024)?round + " GB" + ")"/>
446 <#else>
447 <#assign size = ""/>
448 </#if>
449
450 <#assign mimeType = fileEntry.getMimeType()?split("/")[0]/>
451 <#if (mimeType == "image" || mimeType == "video")>
452 <#assign styleType = "image"/>
453 <#else>
454 <#assign styleType = "document"/>
455 </#if>
456
457 <#if document_att?has_content>
458 <#if doc.getChild('imageMediaDocuments')?? && doc.getChild('imageMediaDocuments').getData()?has_content>
459 <#assign doc_attImage = doc.getChild('imageMediaDocuments').getData() />
460 <#else>
461 <#assign doc_attImage = "${image_folder}/pdf.svg" />
462 </#if>
463 <#if doc.getChild('linkText')?? && doc.getChild('linkText').getData()?has_content>
464 <#assign doc_textLink = doc.getChild('linkText').getData() />
465 <#else>
466 <#assign doc_textLink = "" />
467 </#if>
468 </#if>
469 <li>
470 <a href="${document_att}" download class="cv-module__download">
471 ${doc_textLink?upper_case} ${size}
472 <div>
473 <div src="" alt="" class="cv-download__icon-img cv-download__icon-img--${styleType}"></div>
474 <p class="cv-paragraph-regular cv-paragraph-regular--2XS">
475 ${(fileName?substring(fileName?last_index_of('.')+1, fileName?length))?upper_case}
476 </p>
477 </div>
478 </a>
479 </li>
480 </#list>
481 </ul>
482 </#if>
483 <div class="cv-module__text cv-paragraph-regular cv-paragraph-regular--S">
484 <#if link.getData()?has_content>
485 <button onclick="window.open('${ref}', ${blankText})" style="margin-right:20px;" class="cv-button cv-button--secondary cv-paragraph-semibold cv-paragraph-semibold--S" ${tooltip}>${link.getData()}</button>
486 </#if>
487 <#if link2.getData()?has_content>
488 <button onclick="window.open('${ref2}', ${blankText2})" class="cv-button cv-button--primary cv-paragraph-semibold cv-paragraph-semibold--S" ${tooltip2}>${link2.getData()}</button><br><br>
489 </#if>
490 </div>
491
492 </#if>
493 </article>
494 </div>
495 <div class="cv-module__img-container cv-module__img-container--M">
496 <iframe width="100%" height="100%" src="${video_src}" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
497 </div>
498 </section>
499 <#elseif clr_bool>
500 <section class="cv-module">
501 <div class="cv-module__container-content cv-module__container-content${color}">
502 <article class="cv-module__content">
503 <p class="cv-uppercase cv-uppercase-medium cv-uppercase-medium--S">${annotation_data}</p>
504 <div class="cv-separator cv-separator--black cv-separator--margin"></div>
505 <h2 id="${(title_data?replace(" ","","r"))?lower_case}"class="cv-title--semibold cv-title--2XL">${title_data}</h2>
506 <#if com_description?has_content>
507 <div class="cv-module__text cv-paragraph-regular cv-paragraph-regular--S">${com_description}</div>
508 </#if>
509 <#if commercialTitle.getChild('mediaDocuments')?? && commercialTitle.getChild('mediaDocuments').getSiblings()?has_content>
510 <#if commercialTitle.getChild('mediaDocuments').getData()?has_content>
511 <ul class="cv-module__download-container">
512 <#list commercialTitle.getChild('mediaDocuments').getSiblings() as doc>
513 <#assign document_att = doc.getData()/>
514 <#assign lastIndex = doc.getData()?last_index_of('/')+1 />
515 <#if (lastIndex >= 0)>
516 <#assign uuid = doc.getData()?substring(lastIndex) />
517 <#assign paramIndex = uuid?last_index_of('?') />
518 <#if (paramIndex >= 0)>
519 <#assign uuid = uuid?substring(0, paramIndex) />
520 </#if>
521 </#if>
522
523 <#assign fileEntry = dlFileEntryService.getDLFileEntryByUuidAndGroupId(uuid, scopeGroupId) />
524
525 <#assign fileName = doc.getData()?split('/')[4]/>
526
527 <#if (fileEntry.getSize() < 1024)>
528 <#assign size = "(" + fileEntry.getSize()?round + " Bytes" + ")"/>
529 <#elseif (fileEntry.getSize() < 1048576)>
530 <#assign size = "(" + (fileEntry.getSize()/1024)?round + " KB" + ")"/>
531 <#elseif (fileEntry.getSize() < 1073741824)>
532 <#assign size = "(" + ((fileEntry.getSize()/1024)/1024)?round + " MB" + ")"/>
533 <#elseif (fileEntry.getSize() < 1099511627776)>
534 <#assign size = "(" + (((fileEntry.getSize()/1024)/1024)/1024)?round + " GB" + ")"/>
535 <#else>
536 <#assign size = ""/>
537 </#if>
538
539 <#assign mimeType = fileEntry.getMimeType()?split("/")[0]/>
540 <#if (mimeType == "image" || mimeType == "video")>
541 <#assign styleType = "image"/>
542 <#else>
543 <#assign styleType = "document"/>
544 </#if>
545
546 <#if document_att?has_content>
547 <#if doc.getChild('imageMediaDocuments')?? && doc.getChild('imageMediaDocuments').getData()?has_content>
548 <#assign doc_attImage = doc.getChild('imageMediaDocuments').getData() />
549 <#else>
550 <#assign doc_attImage = "${image_folder}/pdf.svg" />
551 </#if>
552 <#if doc.getChild('linkText')?? && doc.getChild('linkText').getData()?has_content>
553 <#assign doc_textLink = doc.getChild('linkText').getData() />
554 <#else>
555 <#assign doc_textLink = "" />
556 </#if>
557 </#if>
558 <li>
559 <a href="${document_att}" download class="cv-module__download">
560 ${doc_textLink?upper_case} ${size}
561 <div>
562 <div src="" alt="" class="cv-download__icon-img cv-download__icon-img--${styleType}"></div>
563 <p class="cv-paragraph-regular cv-paragraph-regular--2XS">
564 ${(fileName?substring(fileName?last_index_of('.')+1, fileName?length))?upper_case}
565 </p>
566 </div>
567 </a>
568 </li>
569 </#list>
570 </ul>
571 </#if>
572 <div class="cv-module__text cv-paragraph-regular cv-paragraph-regular--S">
573 <#if link.getData()?has_content>
574 <button onclick="window.open('${ref}', ${blankText})'" style="margin-right:20px;" class="cv-button cv-button--secondary cv-paragraph-semibold cv-paragraph-semibold--S" ${tooltip}>${link.getData()}</button>
575 </#if>
576 <#if link2.getData()?has_content>
577 <button onclick="window.open('${ref2}', ${blankText2})'" class="cv-button cv-button--primary cv-paragraph-semibold cv-paragraph-semibold--S" ${tooltip2}>${link2.getData()}</button>
578 <br><br>
579 </#if>
580 </div>
581 </#if>
582 </article>
583 </div>
584 </section>
585 </#if>
586 </#if>
587</#if>
588<style>
589 .cv-module__container-content--blue .cv-button--primary{
590 background-color:#ffffff;
591 color:#007bad;
592 }
593 .cv-module__container-content--blue .cv-button--primary:hover{
594 background-color:#007bad;
595 color:#ffffff;
596 }
597 .cv-module__img-container {
598 max-width: inherit;
599 }
600</style>

Acumulem més d’un segle d’història ajudant les persones a preparar-se la jubilació i oferint un assessorament personalitzat.

VidaCaixa és l’entitat asseguradora més gran del país i ocupa el primer lloc en els rànquings de vida i pensions.

Som l’entitat privada que més prestacions abona: prop de 5.500 milions d’euros cada any.
Com a entitat financera, som conscients del paper rellevant que tenim en la societat com a impulsors del canvi, de manera que tenim un compromís explícit amb la inversió responsable.
Estratègia d'inversió combinada que té en compte l'horitzó temporal triat.
Permet aportar al pla fins a 5.750 €* i accedir a més reduccions fiscals en l’IRPF.
S’adapta a les necessitats dels autònoms (un pla per a cada horitzó temporal).
Possibilitat de triar entre única, periòdica, trimestral, semestral...
* Segons la legislació vigent el 2024, l’import màxim per reduir és la quantitat més petita entre l’aportació feta al pla de pensions i el 30 % de la suma dels rendiments nets del treball i d’activitats econòmiques rebuts durant l’exercici. Si es compleixen els requisits que exigeix la normativa fiscal, el percentatge de reducció fiscal anirà en funció de les circumstàncies econòmiques i personals. Els tipus impositius varien en funció de l’escala autonòmica. Consulta el tipus impositiu màxim que té establert la teva comunitat.
Java method "com.liferay.portal.template.ServiceLocator.findService(String)" takes 1 argument, but 2 was given.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign literalTools = serviceLocator... [in template "20155#20195#20715903" at line 4, column 1]
----
1<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") />
2
3
4<#assign literalTools = serviceLocator.findService("com.vidacaixa.services.service", "com.vidacaixa.services.service.LiteralsToolsLocalService") />
5
6
7<#assign preferenceTools = serviceLocator.findService("com.vidacaixa.services.service", "com.vidacaixa.services.service.VidaCaixaPreferenceLocalService") />
8
9
10<#assign scopeGroupId = themeDisplay.getScopeGroupId() />
11
12
13<#assign locale = themeDisplay.getLocale() />
14
15<#assign image_folder = themeDisplay.getPathThemeImages() />
16
17
18<#assign siteURL = "" />
19
20
21<#assign includeUrlPath = layout.getGroup().getExpandoBridge().getAttribute("incluir-path-url") />
22<#if includeUrlPath>
23 <#assign siteURL = "/web" + layout.getGroup().friendlyURL />
24</#if>
25
26<#assign faqsLayout = layoutLocalService.getLayout(75073) />
27<#assign faqsFriendlyURL = faqsLayout.getFriendlyURL(locale) />
28
29<#if entries?has_content>
30 <br>
31 <section id="#ancla" class="cv-accordion-menu">
32 <div class="cv-accordion-menu__content ">
33 <ul>
34 <#list entries as entry>
35 <#assign renderer = entry.getAssetRenderer() />
36 <#assign className = renderer.getClassName() />
37 <#if className == "com.liferay.journal.model.JournalArticle">
38 <#assign journalArticle = renderer.getArticle() />
39 <#assign document = saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())) />
40 <#assign rootElement = document.getRootElement() />
41 <li class="cv-accordion-menu__option">
42 <div class="cv-accordion-menu__option-text cv-accordion-menu__option--close">
43 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='question']") >
44 <#assign fields = xPathSelector.selectNodes(rootElement) >
45 <#list fields as field>
46 <#assign question = field.getStringValue() >
47 </#list>
48 <#if question?has_content && question?trim != "" >
49 <h3 class="cv-paragraph-semibold cv-paragraph-semibold--M">${question}</h3>
50 </#if>
51 <img src="https://precld.aportamas.vidacaixa.es/o/vidacaixa-corporativo-new-theme/images/menu-close.svg">
52 </div>
53 <ul class="cv-accordion-menu__option-child">
54 <li class="cv-paragraph-regular cv-paragraph-regular--S">
55 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='answer']")>
56 <#assign fields = xPathSelector.selectNodes(rootElement) >
57 <#list fields as field>
58 <#assign answer = field.getStringValue() >
59 </#list>
60 <#if answer?has_content && answer?trim != "" >
61 ${answer}
62 </#if>
63 <li>
64 </ul>
65 </li>
66 </#if>
67 </#list>
68 </ul>
69 </div>
70 <#if preferenceTools.findByKey(scopeGroupId, 'URL_RELATED_FAQS')??>
71 <#if preferenceTools.findByKey(scopeGroupId, 'URL_RELATED_FAQS').getValue()?has_content >
72 <#assign url = preferenceTools.findByKey(scopeGroupId, 'URL_RELATED_FAQS').getValue() />
73 <#else>
74 <#assign url = "" />
75 </#if>
76 <#else>
77 <#assign url = "" />
78 </#if>
79 <#if literalTools.getLiteral(scopeGroupId, locale, 'vidacaixa.preguntas.frecuentes.relacionadas.texto.boton')??>
80 <#assign button_text = literalTools.getLiteral(scopeGroupId, locale, 'vidacaixa.preguntas.frecuentes.relacionadas.texto.boton') />
81 <#else>
82 <#assign button_text = "" />
83 </#if>
84<!--
85 <a class="cv-accordion-menu__button cv-button cv-button--secondary" href="${url}">${button_text}</a>
86
87 -->
88 </section>
89</#if>
90</br></br></br>
Java method "com.liferay.portal.template.ServiceLocator.findService(String)" takes 1 argument, but 2 was given.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign literalTools = serviceLocator... [in template "20155#20195#20715986" at line 2, column 1]
----
1<#assign image_folder=themeDisplay.getPathThemeImages()/>
2<#assign literalTools = serviceLocator.findService("com.vidacaixa.services.service", "com.vidacaixa.services.service.LiteralsToolsLocalService") />
3<#assign scopeGroupId = themeDisplay.getScopeGroupId() />
4<#assign locale = themeDisplay.getLocale() />
5<#assign respTablet = themeDisplay.getScopeGroup().getExpandoBridge().getAttribute("dimensiones-responsive-tablet")>
6<#assign respMobile = themeDisplay.getScopeGroup().getExpandoBridge().getAttribute("dimensiones-responsive-mobile")>
7
8<br>
9<section class="cv-main cv-product">
10 <p class="cv-data__type cv-uppercase cv-uppercase-bold cv-uppercase-bold-xs">
11 <#if anotation.getData()?has_content>
12 ${anotation.getData()}
13 </#if>
14 </p>
15 <#if (anotation.getData()?has_content) || (generalTitle.getData()?has_content)>
16 <div class="cv-separator cv-separator--blue"></div>
17 </#if>
18 <#if (generalTitle.getData()?has_content)>
19 <h2 class="cv-data__title cv-title--semibold cv-title--M">${generalTitle.getData()}</h2>
20 </#if>
21 <#if generalDescription.getData()?has_content>
22 <#assign descr = generalDescription.getData() />
23 <p style="text-align: center;">${descr}</p>
24 </#if>
25 <#if (productTitle.getSiblings()?has_content)>
26 <div class="cv-product__cards">
27 <#list productTitle.getSiblings() as curelem>
28 <#if curelem.getChild('productWidth')?? && curelem.getChild('productWidth').getData()?has_content >
29 <#assign cur_width = curelem.getChild('productWidth').getData() />
30 <#else>
31 <#assign cur_width = "" />
32 </#if>
33 <article class="cv-product__card cv-product__card--${cur_width}" style="box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.1);border-radius: 8px;">
34 <#if curelem.getChild('productTooltip')?? && curelem.getChild('productTooltip').getData()?has_content>
35 <#assign tooltip = "title='${curelem.getChild('productTooltip').getData()}'"/>
36 <#else>
37 <#assign tooltip = ""/>
38 </#if>
39 <#if curelem.getChild('productLinkBlank')?? && curelem.getChild('productLinkBlank').getData()?has_content>
40 <#if curelem.getChild('productLinkBlank').getData()?trim == "SI">
41 <#assign blankText = "target='_blank'" />
42 <#else>
43 <#assign blankText = "" />
44 </#if>
45 <#else>
46 <#assign blankText = "" />
47 </#if>
48 <#if curelem.getChild('productLinkType')?? && curelem.getChild('productLinkType').getData()?has_content>
49 <#if curelem.getChild('productLinkType').getData()?trim == "Interno">
50 <#if curelem.getChild('productLinkInterno')?has_content && curelem.getChild('productLinkInterno').getFriendlyUrl()?has_content>
51 <#assign ref="${curelem.getChild('productLinkInterno').getFriendlyUrl()}"/>
52 <#assign type = "a" />
53 <#else>
54 <#assign ref = ""/>
55 <#assign type = "a" />
56 </#if>
57 <#elseif curelem.getChild('productLinkExterno')?? && curelem.getChild('productLinkExterno').getData()?has_content>
58 <#assign ref="${curelem.getChild('productLinkExterno').getData()}" />
59 <#assign type = "a" />
60 <#elseif curelem.getChild('productLinkType').getData()?trim == "None">
61 <#assign ref="" />
62 <#assign type = "div" />
63 <#else>
64 <#assign ref="" />
65 <#assign type = "div" />
66 </#if>
67 <#else>
68 <#assign ref = "" />
69 <#assign type = "div" />
70 </#if>
71 <${type} ${tooltip} href="${ref}" style="color: black;display: block;height: 100%;text-decoration: none;" ${blankText}>
72 <#if curelem.getChild('productImage')?? && curelem.getChild('productImage').getData()?has_content>
73 <#assign src = "${curelem.getChild('productImage').getData()}" />
74
75 <#assign image_tablet = curelem.getChild('productImage').getChild('productImageTablet')! />
76 <#assign image_mobile = curelem.getChild('productImage').getChild('productImageMobile')! />
77
78 <#assign img_tablet_src = ""/>
79 <#assign img_mobile_src = "" />
80
81 <#if image_tablet?? && image_tablet?has_content>
82 <#assign img_tablet_src = image_tablet.getData() />
83 </#if>
84 <#if image_mobile?? && image_mobile?has_content>
85 <#assign img_mobile_src = image_mobile.getData() />
86 </#if>
87
88 <#if curelem.getChild('productImage').getChildren()?? && curelem.getChild('productImage').getChild('imageDescription').getData()?has_content>
89 <#assign alt = "${curelem.getChild('productImage').getChild('imageDescription').getData()}" />
90 <#else>
91 <#assign alt = "" />
92 </#if>
93
94 <picture class="w-100">
95 <source media="(max-width: ${respMobile}px)" srcset="${img_mobile_src}">
96 <source media="(max-width: ${respTablet}px)" srcset="${img_tablet_src}">
97 <img src="${src}" class="cv-product__img" alt="${alt}">
98 </picture>
99
100 </#if>
101 <div class="cv-product__content">
102 <#if curelem.getChild('section').getData()?has_content && curelem.getChild('section').getData()??>
103 <p class="cv-data__type cv-uppercase cv-uppercase-regular cv-uppercase-regular--XS">${curelem.getChild('section').getData()}</p>
104 </#if>
105 <#if curelem.getData()?has_content>
106 <h3 class="cv-title--semibold cv-title--XL">${curelem.getData()}</h3>
107 </#if>
108 <#if curelem.getChild('productSummary').getSiblings()?has_content>
109 <ul class="cv-product__list">
110 <#list curelem.getChild('productSummary').getSiblings() as checkelem>
111 <#if checkelem.getData()?has_content>
112 <li style="list-style-type: none;">
113 <#if check?? && check.getData()?has_content>
114 <#if check.getData()?trim == "No">
115 <img src="https://precld.aportamas.vidacaixa.es/o/vidacaixa-corporativo-new-theme/images/Checkmark.svg" class="cv-product__check" alt="">
116 </#if>
117 <#else>
118 <img src="https://precld.aportamas.vidacaixa.es/o/vidacaixa-corporativo-new-theme/images/Checkmark.svg" class="cv-product__check" alt="">
119 </#if>
120 <p class="cv-paragraph-regular cv-paragraph-regular--S">${checkelem.getData()}</p>
121 </li>
122 </#if>
123 </#list>
124 </ul>
125 </#if>
126 <#if curelem.getChild('visibleButton')?? && curelem.getChild('visibleButton').getData()?has_content>
127 <#if curelem.getChild('visibleButton').getData()?trim == "Visible">
128 <#if literalTools.getLiteral(scopeGroupId, locale, 'vidacaixa.mas.informacion')??>
129 <#assign button_text = literalTools.getLiteral(scopeGroupId, locale, 'vidacaixa.mas.informacion') />
130 <#else>
131 <#assign button_text = "" />
132 </#if>
133 <button class="cv-product__button cv-button cv-button--primary cv-paragraph-semibold cv-paragraph-semibold--S" style="align-self:auto!important;margin-left:20px;">${button_text}</button>
134 </#if>
135 </#if>
136 </div>
137 </${type}>
138 </article>
139 </#list>
140 </div>
141 </#if>
142</section>
143
144<style>
145.cv-product__cards {
146 justify-content: left;
147}
148</style>