Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> fieldName.getValue().getString(locale) [in template "20095#20121#146278" at line 252, column 154]
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign otrosFormatos = fieldName.get... [in template "20095#20121#146278" at line 252, column 129]
----
1<script type="application/ld+json">
2 [
3 {
4 "@context": "https://schema.org/",
5 "@type": "ProductGroup",
6 "name": "${.vars["reserved-article-title"].data}",
7 "description": "${descripcionLarga.getData()}",
8 "url": "${.vars["reserved-article-url-title"].data}",
9 "brand": {
10 "@type": "Brand",
11 "name": "Aposán"
12 },
13 "audience": {
14 "@type": "PeopleAudience",
15 "suggestedGender": "unisex",
16 "suggestedAge": {
17 "@type": "QuantitativeValue",
18 "minValue": 13,
19 "unitCode": "ANN"
20 }
21 },
22 "productGroupID": "${.vars["reserved-article-id"].data}"
23 }
24 ]
25</script>
26
27<style>
28body.cs-farline .category-icon-container {
29 background-color: #F6F9FE;
30 }
31body.cs-aposan .category-icon-container {
32 background-color: #FEF6F9;
33 }
34.category-icon-container {
35 padding: 12px;
36 border-radius: 50%;
37 margin-right: 1rem;
38 }
39 .category-icon-container img {
40 width: 25px;
41 height: 25px;
42 }
43
44 .product {
45 position: relative;
46 }
47
48 .product .product__activos ul li::before {
49 content: none !important;
50 }
51
52 .product .product__activos ul li::before {
53 display: none;
54 } v
55
56@media only screen and (max-width: 1200px) {
57 .product .product__activos ul {
58 flex-direction: column;
59 }
60}
61
62@media only screen and (max-width: 768px) {
63.share-button.pdp.mobile {
64 display: block;
65 position: absolute;
66 top: 20px;
67 right: 20px;
68 }
69 .share-button.pdp {
70 display: none;
71 }
72 .cards-adt .cards-adt__items-container {
73 flex-wrap: nowrap;
74 }
75 .product h1 {
76 font-size: 32px;
77 line-height: 36px;
78 }
79 .product .product__sku {
80 font-size: 12px;
81 }
82 .product-info .product-info__description {
83 padding-left: 0;
84 }
85 .product-info .product-info__text h2 {
86 line-height: 48px;
87 }
88 .legal-advice .legal-advice-item span {
89 text-align: left;
90 }
91}
92</style>
93
94<#assign
95 journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")
96 productJournalArticle = journalArticleLocalService.getLatestArticle(groupId, .vars["reserved-article-id"].data)
97 ddmProductStructure = productJournalArticle.getDDMStructure()
98 className = "com.liferay.journal.model.JournalArticle"
99 categoryEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")
100 vocabularyEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")
101 vocabularies = vocabularyEntryLocalService.getGroupVocabularies(groupId)
102 categories = categoryEntryLocalService.getCategories(className, productJournalArticle.resourcePrimKey)
103 assetCategoryPropService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService")
104 classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService")
105/>
106
107<#assign id = .vars["reserved-article-id"].data />
108
109
110<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
111<#assign article = JournalArticleLocalService.getArticle(groupId, id) />
112<#assign articleResourcePrimKey = article.getResourcePrimKey() />
113
114<script>
115 // Obtener la IP del usuario usando una API externa
116 $.getJSON('https://api64.ipify.org?format=json', function(data) {
117 const userIp = data.ip;
118
119 // Crear una lista vacía para las categorías
120 const categoryList = [];
121 console.log("Voy a entrar");
122
123 <#list vocabularies as vocabulary>
124 <#if vocabulary.name == "farlinecategoria">
125 <#list categories?reverse as category>
126 <#if category.vocabularyId == vocabulary.vocabularyId>
127 categoryList.push("${category.name}");
128 <#break>
129 </#if>
130 </#list>
131 </#if>
132 </#list>
133
134 // Llamada AJAX para enviar las categorías y la IP del usuario
135 $.ajax({
136 url: '/o/recomendado/getCategorias',
137 type: 'GET',
138 data: {
139 ip: userIp, // Ahora usamos la IP obtenida por la API externa
140 categories: categoryList
141 },
142 traditional: true,
143 success: function(response) {
144 console.log('Categorías obtenidas de la caché o la base de datos:', response);
145 },
146 error: function(error) {
147 console.error('Error al obtener las categorías:', error);
148 }
149 });
150 });
151</script>
152
153<#-- Categorias ocultas para GTM -->
154<#list vocabularies as vocabulary>
155 <#if vocabulary.name == "farlinecategoria">
156 <#list categories as category>
157 <#if category.vocabularyId == vocabulary.vocabularyId>
158 <#if category.parentCategoryId == 0>
159 <div id="productCategory" style="display: none">
160 ${category.name}
161 </div>
162 </#if>
163 </#if>
164 </#list>
165 </#if>
166</#list>
167
168<section>
169 <div class="product">
170 <button class="share-button pdp mobile" style="background-image: url(/documents/d/guest/share)"></button>
171 <div class="product__image col-md-6">
172 <#if imagenesSeccionPrincipalDetalle.getSiblings()?has_content>
173
174 <#if imagenesSeccionPrincipalDetalle.getSiblings()[0].getData()?? && imagenesSeccionPrincipalDetalle.getSiblings()[0].getData() != "">
175 <div class="product__main-image-container">
176 <img class="product__main-image" alt="${imagenesSeccionPrincipalDetalle.getSiblings()[0].getAttribute("alt")}" src="${imagenesSeccionPrincipalDetalle.getSiblings()[0].getData()}" loading="lazy"/>
177 </div>
178 <#else>
179 <div class="product__main-image-container">
180 <img class="product__main-image" alt="producto-farline" src="/documents/d/aposan/placeholder-aposan" loading="lazy"/>
181 </div>
182 </#if>
183
184 <#if imagenesSeccionPrincipalDetalle.getSiblings()?size gt 1>
185 <div class="product__image-selector">
186 <#list imagenesSeccionPrincipalDetalle.getSiblings() as cur_imagenProducto>
187 <#if (cur_imagenProducto.getData())?? && cur_imagenProducto.getData() != "">
188 <#if cur_imagenProducto?index = 0 >
189 <img class="active" alt="${cur_imagenProducto.getAttribute("alt")}" data-fileentryid="${cur_imagenProducto.getAttribute("fileEntryId")}" src="${cur_imagenProducto.getData()}" loading="lazy"/>
190 <#else>
191 <img alt="${cur_imagenProducto.getAttribute("alt")}" data-fileentryid="${cur_imagenProducto.getAttribute("fileEntryId")}" src="${cur_imagenProducto.getData()}" loading="lazy"/>
192 </#if>
193 </#if>
194 </#list>
195 </div>
196 </#if>
197 </#if>
198 </div>
199 <div class="product__details col-md-6">
200
201 <div class="product__details-aux">
202 <!-- Codigo nacional -->
203 <#if (codigoNacional.getData())??>
204 <p class="product__sku">CN: ${codigoNacional.getData()}</p>
205 </#if>
206
207 <!-- Boton compartir -->
208 <button class="share-button pdp" style="background-image: url(/documents/d/guest/share)"></button>
209 </div>
210
211 <!-- Titulo -->
212 <h1 class="product__title"> ${.vars["reserved-article-title"].data} </h1>
213
214 <!-- Formato -->
215 <#if (formato.getData())??>
216 <p class="product__format">${formato.getData()}</p>
217 </#if>
218
219 <!-- Rating -->
220
221 <!-- Descripcion -->
222 <#if (descripcionCorta.getData())??>
223 <div class="product__description">${descripcionCorta.getData()}</div>
224 </#if>
225
226 <!-- Todos los formatos -->
227 <#if variantes.getSiblings()?has_content>
228 <div class="product__formats">
229 <#list variantes.getSiblings() as cur_variantes>
230 <#if cur_variantes.getData()?? && cur_variantes.getData() != "">
231 <p class="product__formats--title"><b><@liferay.language key="cofares.product.format.title"/></b></p>
232 <#break>
233 </#if>
234 </#list>
235 <#-- Recolectamos las variantes en una lista temporal -->
236 <#assign productosOrdenados = [] />
237
238 <#list variantes.getSiblings() as cur_variantes>
239 <#assign webContentData = jsonFactoryUtil.createJSONObject(cur_variantes.getData()) />
240 <#if webContentData.classPK?has_content && webContentData.classPK != "">
241 <#assign
242 contentClassPK = webContentData.classPK?number
243 journalArticle = journalArticleLocalService.getLatestArticle(contentClassPK)
244 ddmStructure = journalArticle.getDDMStructure()
245 ddmForm = ddmStructure.getDDMForm()
246 ddmFieldLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMFieldLocalService")
247 ddmFormValues = ddmFieldLocalService.getDDMFormValues(ddmForm, journalArticle.getId())
248 ddmFormFieldValues = ddmFormValues.getDDMFormFieldValues()
249 />
250 <#list ddmFormFieldValues as fieldName>
251 <#if fieldName.getFieldReference() == 'formato'>
252 <#assign otrosFormatos = fieldName.getValue().getString(locale) />
253 </#if>
254 </#list>
255
256 <#-- Añadimos el formato y la URL a la lista de productos -->
257 <#assign producto = {"formato": otrosFormatos, "url": cur_variantes.getFriendlyUrl(), "classPK": contentClassPK} />
258 <#assign productosOrdenados = productosOrdenados + [producto] />
259 </#if>
260 </#list>
261
262 <#-- Ordenamos la lista alfabéticamente por el formato -->
263 <#assign productosOrdenados = productosOrdenados?sort_by("formato") />
264
265 <#-- Iteramos sobre la lista ya ordenada para mostrar los enlaces -->
266 <#list productosOrdenados as producto>
267 <#if producto.classPK = articleResourcePrimKey >
268 <div class="selected product__format-option d-inline-block">${producto.formato}</div>
269 <#else>
270 <a href="${producto.url}" class="product__format-option d-inline-block">${producto.formato}</a>
271 </#if>
272 </#list>
273
274 </div>
275 </#if>
276
277 <!-- Boton Encuentralo -->
278 <#assign
279 urlHome = themeDisplay.getURLHome()
280 <#-- contentURL = urlHome + "/en-tu-farmacia" -->
281 contentURL = "/farmacias"
282 />
283 <a href="${contentURL}" data-senna-off="true" class="product__find-pharmacy text-center gtm-product__find-pharmacy">Encuéntralo en tu farmacia </a>
284
285 <!-- Beneficios -->
286 <#assign
287 attachmentFileEntryServiceUtil = serviceLocator.findService("com.liferay.commerce.product.service.CPAttachmentFileEntryService")
288 classNameAssetCategory = "com.liferay.asset.kernel.model.AssetCategory"
289 dlUtil = staticUtil["com.liferay.document.library.kernel.util.DLUtil"]
290 classNameAssetCategoryId = classNameLocalService.getClassNameId(classNameAssetCategory)
291 />
292
293 <#list vocabularies as vocabulary>
294 <#if vocabulary.name == "beneficios">
295 <div class="product__activos">
296 <ul>
297 <#list categories as category>
298 <#if category.vocabularyId = vocabulary.vocabularyId>
299 <#assign categoryIcon = "">
300 <#assign categoryIconVisibility = "invisible">
301 <#assign categoryPropiedades = attachmentFileEntryServiceUtil.getCPAttachmentFileEntries(classNameAssetCategoryId, category.categoryId, 0, 0, -1, -1) />
302 <#list categoryPropiedades as categoryPropiedad>
303 <#assign fileEntry = categoryPropiedad.fetchFileEntry() />
304 <#assign categoryIcon = dlUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), themeDisplay, "") />
305 <#if categoryIcon != "">
306 <#assign categoryIconVisibility = "visible">
307 </#if>
308 </#list>
309 <li>
310 <div class="category-icon-container">
311 <img class="${categoryIconVisibility}" style="max-width: 500px;" src="${categoryIcon}" loading=”lazy”/>
312 </div>
313 ${category.name}
314 </li>
315 </#if>
316 </#list>
317 </ul>
318 </div>
319 </#if>
320 </#list>
321
322 </div>
323 </div>
324
325 <!-- Consejo legal -->
326 <#--
327 <#list categories as category>
328 <#if category.name = "Afecciones de invierno">
329 <div class="legal-advice">
330 <div class="legal-advice-item">
331 <svg xmlns="http://www.w3.org/2000/svg" width="28" height="24" viewBox="0 0 28 24" fill="none">
332 <path d="M11.9526 14.7343C12.0617 13.5055 12.9929 12.7305 13.5999 11.7786C13.7355 11.5635 13.7355 11.5635 14.0478 11.1656C14.3248 9.82483 15.368 9.76883 16.423 9.6333C18.698 9.34155 20.9671 8.99677 23.2362 8.66671C23.3835 8.64608 23.5191 8.55471 23.6605 8.4958L23.6045 8.23646L15.0292 9.4653C15.0056 8.0479 14.4398 7.70605 13.1432 8.25414C11.9526 8.75805 11.3014 9.73052 10.877 10.9063L10.6236 10.9152L9.29453 2.02152C11.8112 1.63549 14.148 1.27299 16.4878 0.922333C18.5035 0.618833 20.525 0.347708 22.5378 0.0294577C23.0328 -0.0501048 23.2479 0.00883245 23.3599 0.574614C24.5033 6.42418 25.6821 12.2678 26.849 18.1143C27.073 19.2341 27.2881 20.3569 27.5209 21.5475L12.7247 23.6545L11.9732 19.0927C11.8288 18.2116 11.7434 17.3187 11.5253 16.4552C11.4372 16.1563 11.4303 15.8392 11.5054 15.5367C11.5805 15.2342 11.7349 14.9573 11.9526 14.7343C12.2208 14.811 12.0057 15.1115 12.2561 15.0761C15.9338 14.5575 20.1243 13.8649 23.7961 13.3168C24.0289 13.2815 24.2528 13.1724 24.4827 13.0988L24.4296 12.8866C24.2145 12.8954 23.9994 12.8896 23.7872 12.919C21.7981 13.2078 19.809 13.4907 17.8227 13.7972C15.866 14.0977 13.9094 14.422 11.9526 14.7343ZM25.3167 17.8226L25.2489 17.4395C21.1439 18.1203 17.0036 18.5711 12.9074 19.2872L12.9605 19.6202L25.3167 17.8226ZM22.803 4.00183L22.7499 3.6394L10.3702 5.42518L10.4232 5.79058L22.803 4.00183Z" fill="white"/>
333 <path d="M8.66387 2.23077C8.75231 2.48127 8.93793 2.74352 8.9114 2.98221C8.80237 3.99002 8.58724 4.98605 8.49296 5.99393C8.43109 6.64808 8.45465 7.31999 8.55484 7.96833C8.57546 8.09799 9.11771 8.14808 9.56265 8.27477L10.2139 11.979C11.1569 11.7285 11.5017 11.0949 11.8082 10.4142C11.9907 9.96286 12.284 9.5648 12.661 9.2568C13.038 8.9488 13.4866 8.7408 13.9653 8.65199C14.0773 8.62843 14.204 8.66374 14.5458 8.68733C14.1244 9.5478 13.8444 10.3612 13.3701 11.039C12.5243 12.2471 11.655 13.4171 11.1245 14.8256C10.7237 15.8954 9.73949 16.4759 8.79062 17.0594C8.23128 17.4015 7.72243 17.8201 7.27887 18.303C6.89581 18.7273 6.49503 18.9866 5.95281 18.854C5.13821 18.6626 4.33615 18.4216 3.55112 18.1321C2.99121 17.917 2.92343 17.3895 3.33596 16.7824C4.69449 14.7815 5.23671 12.4918 5.72003 10.1755C5.77009 9.93977 5.84378 9.60677 6.01174 9.51833C6.63649 9.1883 6.63649 8.61955 6.77203 8.04493C7.15512 6.44183 7.60599 4.85346 8.04215 3.26511C8.13349 2.93211 8.27496 2.61386 8.39581 2.28968C8.48418 2.26611 8.57253 2.24846 8.66387 2.23077Z" fill="white"/>
334 <path d="M2.55506 18.1203C3.27115 19.0603 4.51178 19.1723 5.6699 19.5023C7.22878 19.9502 7.70618 18.4562 8.64328 17.8403C9.22384 18.2587 9.31221 18.6713 8.86728 19.1664C8.73171 19.3167 8.63446 19.5052 8.4989 19.6556C7.72978 20.5013 7.23174 21.4207 7.14334 22.623C7.06084 23.7104 6.68071 23.9137 5.59034 23.9049C4.41453 23.8961 3.24168 23.8961 2.06884 23.8401C1.69106 23.8104 1.32365 23.702 0.990275 23.5218C0.565932 23.3038 0.365556 22.9384 0.598338 22.4374C0.854713 21.8833 1.08753 21.3205 1.33799 20.7665C1.73878 19.8795 2.15134 18.9955 2.55506 18.1203Z" fill="white"/>
335 </svg>
336 <span><@liferay.language key="cofares.product.disclaimer1"/></span>
337 </div>
338 <div class="legal-advice-item">
339 <svg xmlns="http://www.w3.org/2000/svg" width="22" height="23" viewBox="0 0 22 23" fill="none">
340 <path d="M10.9523 22.581H3.57533C3.34299 22.581 3.10774 22.5926 2.87829 22.5694C0.804576 22.3574 -0.0347542 21.0417 0.848187 19.1423C2.58084 15.419 4.37401 11.7242 6.22696 8.05939C7.0576 6.57818 6.96758 5.96827 7.02277 4.50742C7.01985 3.19758 7.27544 2.32335 6.5842 1.28943C6.25018 0.78695 6.77589 0.0347497 7.41774 0.0260336C9.79929 -0.00300968 12.1808 -0.0146207 14.5595 0.0347499C15.3785 0.052182 15.6747 0.984463 15.1984 1.66986C14.9851 1.99285 14.849 2.36049 14.8005 2.74446C14.4839 5.19279 15.1752 7.38265 16.3369 9.54057C17.8907 12.4275 19.2354 15.4218 20.6527 18.3813C20.8815 18.8726 21.0643 19.384 21.1987 19.909C21.5356 21.1608 20.9054 22.1889 19.6362 22.4619C19.2354 22.549 18.8172 22.5751 18.4048 22.5781C15.9216 22.5868 13.4355 22.581 10.9523 22.581ZM10.9668 22.1947V22.2237C11.536 22.2237 12.1053 22.2295 12.6745 22.2237C14.9254 22.2005 17.1762 22.215 19.4242 22.1279C20.4988 22.0872 21.1029 21.2566 20.8909 20.1936C20.7361 19.4647 20.4923 18.7575 20.1648 18.088C18.7794 15.1721 17.4609 12.2184 15.9129 9.39249C14.7221 7.22006 14.1935 4.99826 14.4636 2.57026C14.5013 2.23043 14.7453 1.91677 14.8586 1.57987C14.9516 1.30397 15.0996 0.984494 15.0299 0.73761C14.9719 0.534276 14.635 0.272948 14.4171 0.270022C12.1394 0.23371 9.86116 0.230846 7.58328 0.261306C6.93272 0.270022 6.66843 0.949629 6.9734 1.52467C7.16217 1.88481 7.32195 2.30305 7.34225 2.70384C7.39451 3.71167 7.39159 4.72237 7.34517 5.73013C7.33196 6.21577 7.22444 6.69417 7.02859 7.13872C5.89008 9.54349 4.70805 11.9279 3.5376 14.3182C2.76502 15.8953 1.90536 17.4345 1.22865 19.0493C0.496741 20.7978 0.946929 22.1628 3.04384 22.186C5.68678 22.218 8.32676 22.1947 10.9668 22.1947Z" fill="white"/>
341 <path d="M3.85412 15.1198C5.00711 12.7499 6.08753 10.438 7.25216 8.16977C7.75172 7.19684 8.03054 6.22966 7.96371 5.13184C7.90565 4.15308 7.98114 3.16564 7.93466 2.18395C7.92016 1.85287 7.78366 1.5276 7.66459 1.15872C7.65664 1.13541 7.65449 1.11049 7.65818 1.0861C7.66188 1.06174 7.6714 1.03861 7.68593 1.01871C7.70044 0.998754 7.71956 0.982615 7.74165 0.971651C7.76367 0.960625 7.78806 0.95505 7.8127 0.95545H13.9844C14.1644 0.95545 14.2719 1.16744 14.1529 1.30394C13.8537 1.64377 13.9118 2.07647 13.8508 2.48889C13.4006 5.58492 14.5391 8.25108 15.9593 10.8737C16.6941 12.23 17.3127 13.6502 18.0243 15.1198L3.85412 15.1198ZM11.3821 1.92546C11.3821 2.64862 11.3211 3.44732 11.3676 4.03109C11.5128 5.83177 11.7045 7.31587 12.7646 8.75932C13.9873 10.4235 15.0212 12.2242 16.1394 13.9668C15.1665 11.684 14.0948 9.45923 13.0579 7.2171C12.8693 6.80002 12.7637 6.35018 12.7472 5.89275C12.7065 4.58291 12.7327 3.27014 12.7327 1.92546H11.3821Z" fill="white"/>
342 </svg>
343 <span><@liferay.language key="cofares.product.disclaimer2"/></span>
344 </div>
345 <div class="legal-advice-item">
346 <svg xmlns="http://www.w3.org/2000/svg" width="17" height="26" viewBox="0 0 17 26" fill="none">
347 <path d="M6.95176 0.600912C6.19983 0.974441 6.01397 1.54457 6.41191 2.24416C6.48319 2.14359 7.04607 1.34167 7.04062 0.956303C7.04062 0.954815 7.04071 0.953327 7.0409 0.951851L6.95176 0.600912Z" fill="white"/>
348 <path fill-rule="evenodd" clip-rule="evenodd" d="M6.44838 2.30598C6.47413 2.3481 6.50194 2.39067 6.53183 2.43368L6.68853 2.50016L6.85857 2.48867C6.86882 2.43871 6.88923 2.38178 6.92987 2.32731L6.90408 2.3271C7.12356 2.01474 7.48768 2.05144 7.93284 2.0963L7.97573 2.10061C8.01028 2.10429 8.02978 2.1158 8.03813 2.13254H8.71921C8.94479 1.95351 9.26536 1.98534 9.64268 2.0228L9.69508 2.02799C9.76935 2.03569 9.77604 2.07862 9.75185 2.13254H9.81715L9.8433 2.14126L9.84389 2.14185C9.85045 2.14834 9.89496 2.19244 9.93794 2.28062C9.96416 2.33441 9.98981 2.40461 10.0059 2.49268C10.0072 2.49905 10.014 2.55931 10.0053 2.64357C10.0631 2.61313 10.0519 2.50922 10.0421 2.41899C10.034 2.3433 10.0268 2.27723 10.0623 2.27222L10.0669 2.27191C10.0953 2.19698 10.1185 2.12405 10.1363 2.05315C9.68191 1.7133 9.37433 1.01708 9.31182 0.872038C9.0143 0.915464 8.71059 0.864677 8.44341 0.726821C8.25696 0.869297 8.04096 0.968253 7.81136 1.01652C7.58169 1.06475 7.34417 1.06105 7.11614 1.00564C7.07838 1.4529 6.49462 2.26615 6.4685 2.30095L6.44838 2.30598Z" fill="white"/>
349 <path d="M10.1536 1.97681C10.2647 1.42547 10.0408 1.00106 9.4657 0.703596C9.40183 0.671641 9.35253 0.611748 9.30288 0.551425C9.27577 0.518492 9.24856 0.485426 9.21881 0.456713C8.57989 -0.141585 7.80151 -0.150302 7.15095 0.42767C7.13253 0.445109 7.11541 0.464815 7.09829 0.484519C7.07202 0.514766 7.04574 0.54501 7.01479 0.56705C7.01714 0.570485 7.01902 0.574391 7.02024 0.578685L7.08206 0.822074C7.14593 0.667083 7.30613 0.404795 7.6824 0.267956C7.70273 0.25924 7.72309 0.270851 7.72888 0.288283C7.73467 0.305715 7.72595 0.328937 7.70855 0.334758C7.58856 0.375967 7.47814 0.440891 7.38381 0.525742C7.28953 0.610562 7.21327 0.713553 7.15962 0.828495C7.33678 0.694889 7.73759 0.494512 8.44335 0.639698C8.45367 0.641168 8.46175 0.647131 8.46682 0.655311C8.53448 0.692446 8.88451 0.864236 9.32632 0.793655C9.34373 0.79076 9.35823 0.799476 9.36695 0.816877C9.36977 0.825281 9.6858 1.60595 10.1536 1.97681Z" fill="white"/>
350 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.86716 3.00235C9.86138 3.00969 9.85537 3.01697 9.84912 3.02417C9.72134 3.17231 9.52382 3.25073 9.26533 3.25941L9.26303 3.25957C9.24503 3.26096 9.12882 3.26992 8.99878 3.21553C8.98662 3.29187 8.95638 3.34814 8.90808 3.38436C8.85002 3.42791 8.78029 3.42791 8.74835 3.42498C8.67576 3.49182 8.59735 3.52662 8.5189 3.52662H8.49857C8.42025 3.51803 8.34778 3.48079 8.29524 3.42209C8.1965 3.41916 8.12098 3.38723 8.07454 3.32914C8.03694 3.2814 8.02526 3.22576 8.02301 3.18121C7.93289 3.2388 7.81871 3.26813 7.68251 3.26813L7.59535 3.26523C7.59535 3.26523 7.0261 3.33201 6.86055 2.65243L6.58071 2.53276C6.54503 2.67015 6.52756 2.79934 6.53244 2.92286C6.53334 2.92371 6.53426 2.92456 6.53519 2.9254C6.58745 2.9748 6.66008 2.98059 6.6862 2.97188C6.70655 2.96895 6.72688 2.97767 6.73267 2.9951C6.73551 3.00434 6.73467 3.01429 6.73036 3.02297C6.72599 3.0316 6.71853 3.03828 6.70945 3.04158L6.66011 3.0445C6.61814 3.04392 6.57719 3.0336 6.54038 3.01471C6.56897 3.22627 6.66925 3.42237 6.86344 3.61656C7.00986 3.76298 7.02102 3.79406 7.0584 3.89823C7.06742 3.92335 7.07796 3.95272 7.09229 3.98899L7.09287 3.98839L7.09269 3.99C7.10373 4.0179 7.11701 4.04986 7.13355 4.08707C7.1384 4.09776 7.128 4.10325 7.11082 4.10896C7.2621 4.28607 7.86397 4.96257 8.23141 5.03099L8.24884 5.03971C8.26335 5.05421 8.60605 5.36208 8.9691 5.03971C9.21077 4.82178 9.39173 4.54613 9.49577 4.23969C9.51004 4.15335 9.51754 4.06936 9.52478 3.98843C9.54236 3.79161 9.55833 3.61291 9.66611 3.46266L9.83455 3.10545C9.84695 3.06283 9.85766 3.02973 9.86716 3.00235ZM7.55761 4.08713C7.55468 4.10746 7.57211 4.12489 7.59244 4.12489C7.60987 4.12489 7.62731 4.10749 7.62731 4.08716C7.62731 4.08423 7.64474 3.72121 7.89741 3.65151C7.91777 3.64858 7.92935 3.62826 7.92356 3.6079C7.92063 3.58757 7.90031 3.57599 7.87995 3.58178C7.57793 3.66602 7.55761 4.0697 7.55761 4.08713ZM9.03007 3.97388C8.34174 4.17429 7.88866 3.97388 7.88866 3.97388C8.13844 4.31368 8.51311 4.23817 8.51311 4.23817C8.96619 4.19169 9.03007 3.97388 9.03007 3.97388ZM9.21015 4.08137L9.28274 4.09295C9.29842 4.00302 9.29263 3.91068 9.26586 3.8234C9.2391 3.73605 9.19216 3.65631 9.12881 3.59056L9.07947 3.64282C9.13402 3.7006 9.17427 3.77039 9.19694 3.84656C9.21967 3.92269 9.22416 4.00314 9.21015 4.08137Z" fill="white"/>
351 <path d="M9.51861 4.39535C9.40799 4.66239 9.2374 4.90204 9.01845 5.0949C8.87615 5.21397 8.73965 5.25755 8.61769 5.25755C8.40903 5.25755 8.24827 5.13382 8.20717 5.10219L8.20526 5.10072C7.82519 5.01929 7.25422 4.39036 7.07349 4.18014C7.06358 4.32498 7.06623 4.48995 7.07747 4.66407C7.13833 4.75802 7.7511 5.66835 8.08909 5.75422H8.69025C8.78862 5.69059 9.69304 5.08572 9.80124 4.56444C9.77233 4.43953 9.74101 4.34199 9.71355 4.26952C9.68999 4.28851 9.6595 4.30644 9.62649 4.32585C9.59159 4.34637 9.55388 4.36855 9.51861 4.39535Z" fill="white"/>
352 <path d="M9.79937 4.28978C9.81664 4.3067 9.8333 4.32353 9.84962 4.34C9.91511 4.40613 9.97505 4.46665 10.0466 4.50529L10.1973 4.58485C10.2631 4.61957 10.3289 4.6543 10.3947 4.689C10.6 4.90343 10.7728 5.14869 10.9063 5.4173C11.066 5.76585 11.0718 6.02432 11.0718 6.06207C11.0079 6.26827 10.5287 6.65745 10.5229 6.66037L10.4619 6.70977L10.9353 6.81138L10.7901 7.35741C10.2227 8.50064 9.93242 10.1707 9.78325 11.5035C9.78264 11.5058 9.78231 11.5082 9.78231 11.5106L9.78233 11.5117L9.77067 11.6181L9.94163 6.34834C10.0531 5.90662 9.99502 5.30653 9.93772 4.9252C9.90365 4.63604 9.84829 4.42855 9.79937 4.28978Z" fill="white"/>
353 <path fill-rule="evenodd" clip-rule="evenodd" d="M10.5784 4.78576C11.1395 5.081 11.7026 5.37307 12.2742 5.64669C12.9015 5.94584 13.1194 6.46862 13.1803 7.10761C13.2273 7.60124 13.276 8.09459 13.3248 8.58783C13.4297 9.64995 13.5345 10.7119 13.6218 11.7748C13.6536 12.1589 13.6459 12.5458 13.6379 12.9475C13.6342 13.132 13.6305 13.3197 13.6305 13.5116L12.2087 13.5112C12.1883 12.7989 12.1053 11.8454 12.1028 11.8301C11.9384 11.175 11.9483 9.73626 11.9489 9.65532L11.9489 9.65186C11.9489 9.6315 11.9344 9.61407 11.914 9.61407C11.8966 9.61407 11.8792 9.62861 11.8792 9.64894L11.8792 9.65173C11.8788 9.72557 11.8711 11.179 12.036 11.8388C12.0386 11.8515 12.1216 12.8033 12.1419 13.5112L9.70948 13.5105L9.71548 13.3433C9.73145 12.9738 9.76811 12.3178 9.85266 11.5454H10.2005C10.2209 11.5454 10.2354 11.528 10.2354 11.5106C10.2354 11.4932 10.2209 11.4757 10.2005 11.4757H9.86039C9.94423 10.7286 10.0729 9.87911 10.2702 9.07736L10.2702 9.07965C10.2706 9.08951 10.2717 9.13404 10.2734 9.20349C10.2825 9.5844 10.3097 10.7143 10.3515 10.982L10.3533 10.9855C10.3731 11.0261 10.559 11.406 11.0776 11.406L11.1066 11.406L11.1077 11.4058C11.1376 11.401 11.5699 11.3306 11.6671 10.9616V9.04479C11.6671 9.02735 11.6526 9.00992 11.6323 9.00992L11.5162 9.01272V8.75728C11.5162 8.73985 11.5017 8.72242 11.4814 8.72242H10.8278V8.69044C10.8278 8.67301 10.8133 8.65558 10.793 8.65558H10.5635V8.08523C10.6527 7.83431 10.7512 7.5965 10.8598 7.3778L11.0253 6.75046L10.6245 6.66622C10.761 6.55295 11.0892 6.25962 11.1415 6.07664V6.06793L11.1415 6.06685C11.1417 6.04464 11.1436 5.76938 10.9701 5.38832C10.892 5.21665 10.7695 5.00742 10.5784 4.78576ZM11.9169 8.11836H11.914C11.8937 8.11543 11.8792 8.098 11.8821 8.07767C11.9605 7.28768 12.5675 6.22765 12.5733 6.21893C12.5849 6.2015 12.6052 6.19571 12.6227 6.20442C12.6401 6.216 12.6459 6.23633 12.6372 6.25376L12.6332 6.26093C12.5805 6.35508 12.0269 7.34425 11.9546 8.08349C11.9534 8.09276 11.9489 8.10129 11.942 8.10767C11.9351 8.11404 11.9263 8.11774 11.9169 8.11836Z" fill="white"/>
354 <path d="M9.63675 13.5105L9.64286 13.3403L9.86477 6.47223L9.53833 6.95953C9.53248 6.96825 9.5209 6.97404 9.50926 6.97693C9.50365 6.97708 9.49804 6.97582 9.49296 6.97327C9.48791 6.97077 9.48351 6.96701 9.48021 6.96242L8.73383 5.90525C8.73099 6.11386 8.7227 6.56329 8.70098 6.78606L8.70188 6.78817C8.8674 7.32841 9.43376 12.4835 9.45698 12.7014V12.713C9.37639 13.0461 9.06021 13.359 8.88657 13.5103L9.63675 13.5105Z" fill="white"/>
355 <path d="M8.7704 13.5103L8.74361 13.5103C8.51818 13.2321 8.23989 12.8253 8.14407 12.6853L8.11523 12.6433C8.08349 12.3211 8.10131 11.1319 8.11204 10.6161H8.65246C8.67282 10.6161 8.68732 10.5986 8.68732 10.5812C8.68732 10.5638 8.67282 10.5464 8.65246 10.5464H8.11353C8.11583 10.4427 8.11759 10.3792 8.11812 10.375C8.12102 9.70396 8.22098 7.19976 8.2368 6.8376H8.64029C8.81424 7.52034 9.36133 12.4873 9.38445 12.6985C9.29271 13.0571 8.90293 13.4024 8.7704 13.5103Z" fill="white"/>
356 <path d="M8.65018 13.5102L7.98745 13.51V9.81735L7.9871 9.81396C7.9736 9.68578 7.77797 7.8278 7.53171 6.94946C7.7856 6.67117 7.97459 6.19973 8.06291 5.95758L8.16458 6.80563C8.16458 6.80913 8.16528 6.81252 8.16654 6.81569C8.15501 7.06469 8.0511 9.68887 8.04556 10.3779C8.04506 10.3908 8.04354 10.4543 8.04157 10.5526C8.03208 10.5592 8.02515 10.5702 8.02515 10.5812C8.02515 10.5923 8.03099 10.6033 8.04045 10.6099C8.03058 11.1262 8.0131 12.3409 8.04556 12.6607L8.05135 12.6781C8.24115 12.9625 8.44086 13.24 8.65018 13.5102Z" fill="white"/>
357 <path fill-rule="evenodd" clip-rule="evenodd" d="M7.9148 13.51V11.8068C7.6389 10.4708 6.06185 7.20345 6.04442 7.17151L6.04155 7.1628C6.01248 7.02343 6.37261 6.72715 6.57594 6.57035H6.2913V5.19952C6.2913 5.06166 6.38181 4.87986 6.49908 4.7022C6.21579 4.87736 5.88666 4.95273 5.55649 5.01356C4.36282 5.23427 3.95911 6.03005 3.86905 7.13662C3.83504 7.55779 3.76218 7.97627 3.68927 8.39506C3.63146 8.7271 3.57362 9.05933 3.53507 9.39325C3.42766 10.3397 3.33581 11.289 3.24273 12.251C3.20242 12.6676 3.16188 13.0865 3.11975 13.5087L7.9148 13.51ZM5.49693 7.35486C5.50259 7.3585 5.50918 7.36041 5.5159 7.36035L5.5304 7.35742C5.54784 7.3487 5.55652 7.32545 5.54784 7.30802C5.46659 7.12986 4.97878 5.87379 4.87986 5.61906L4.86241 5.57417C4.85662 5.55673 4.83626 5.54802 4.81593 5.55381C4.79847 5.55966 4.78689 5.58288 4.7956 5.60028C4.81886 5.66419 5.39098 7.13958 5.48393 7.33999C5.48673 7.34609 5.49123 7.35126 5.49693 7.35486ZM5.29816 13.2852C5.30683 13.291 5.31555 13.2968 5.32707 13.2968C5.33 13.2968 5.33298 13.2968 5.33585 13.2909C5.35035 13.2851 5.35907 13.2764 5.362 13.2619C5.59318 12.1115 5.78613 9.58833 5.81213 9.24832L5.81508 9.21037C5.81794 9.19294 5.80344 9.17554 5.78311 9.17261C5.76278 9.16682 5.74535 9.18422 5.74242 9.20458L5.65819 9.88998C5.43805 9.63314 5.45381 9.16771 5.45487 9.13649L5.45492 9.13488C5.45492 9.11456 5.44041 9.09712 5.42005 9.09712C5.40265 9.09712 5.38229 9.11163 5.38229 9.13196L5.38219 9.13729C5.38073 9.20014 5.36834 9.73533 5.66111 9.99744L5.67855 10.0062C5.603 10.9036 5.46363 12.3412 5.30677 13.1689C5.16735 12.9627 4.76659 12.2482 4.62717 10.7903C4.62424 10.7699 4.60681 10.7526 4.58648 10.7584C4.56615 10.7613 4.55165 10.7787 4.55451 10.799C4.72425 12.5711 5.26441 13.2433 5.29722 13.2841L5.29816 13.2852Z" fill="white"/>
358 <path d="M6.68367 4.56712C6.51879 4.78491 6.36389 5.03367 6.36389 5.19955V6.49776H6.79954L6.70949 6.56453C6.41326 6.77658 6.1054 7.05537 6.11125 7.1425C6.17802 7.279 7.51112 10.0526 7.9148 11.5048V9.82027L7.91318 9.80546C7.8933 9.62173 7.69542 7.79272 7.45896 6.95492C7.45762 6.95273 7.45661 6.95037 7.45599 6.94789C7.45208 6.93618 7.4318 6.87376 7.40183 6.77504C7.3775 6.70827 7.35289 6.65367 7.32814 6.61393L7.32229 6.60235C7.31556 6.57762 7.25793 6.33977 7.19283 6.00746C7.08578 5.56137 6.99022 5.04717 7.00552 4.6795C6.99407 4.50441 6.99094 4.33738 6.99995 4.18886C6.99459 4.19473 6.989 4.2009 6.98317 4.20734C6.89588 4.35344 6.79488 4.47115 6.68367 4.56712Z" fill="white"/>
359 <path d="M6.68853 2.50016L6.84897 2.56822C6.84999 2.5455 6.85251 2.51824 6.85857 2.48867L6.68853 2.50016Z" fill="white"/>
360 <path d="M6.93338 2.48374C6.91806 2.54321 6.92051 2.59378 6.92138 2.61176L6.9216 2.61747C7.0726 3.25063 7.57216 3.19544 7.59249 3.18965C7.81326 3.20705 7.97002 3.15774 8.06876 3.04736C8.25174 2.83824 8.17915 2.46942 8.17622 2.4665C8.17336 2.45485 8.17622 2.44327 8.18494 2.43745C8.18823 2.43286 8.19257 2.42911 8.19769 2.42661C8.20274 2.42405 8.20831 2.42282 8.21398 2.42295H8.65545C8.67578 2.42295 8.69028 2.44035 8.69028 2.45778C8.69028 2.7395 8.75998 2.94569 8.89648 3.06766C9.0562 3.21001 9.25661 3.18676 9.25661 3.18676C9.49771 3.18097 9.67772 3.11124 9.791 2.97763C9.95646 2.78696 9.93512 2.52589 9.93345 2.50548L9.93335 2.50422C9.92124 2.4271 9.89487 2.35318 9.8559 2.28617L9.62444 2.30182C9.60392 2.32337 9.58436 2.34266 9.56838 2.35795L9.62253 2.38226C9.66608 2.40259 9.67775 2.45781 9.64871 2.49261C9.52961 2.62911 9.15208 2.87599 8.84708 2.50133C8.84708 2.50133 8.84036 2.43034 8.85694 2.35371L8.10383 2.40462C8.11523 2.46019 8.11523 2.50428 8.11523 2.50428C7.76089 2.92247 7.4327 2.70177 7.2991 2.57398C7.26426 2.54201 7.27298 2.4839 7.31366 2.46067L7.31888 2.45768L6.93338 2.48374Z" fill="white"/>
361 <path d="M8.10383 2.40462L8.85694 2.35371C8.86302 2.32564 8.87224 2.29676 8.88604 2.27039C8.72471 2.2603 8.60018 2.2603 8.60018 2.2603C8.61404 2.24056 8.62842 2.22218 8.64338 2.20508H8.02966C8.02601 2.21293 8.02171 2.22102 8.01687 2.22925C8.06725 2.27512 8.09184 2.34623 8.10383 2.40462Z" fill="white"/>
362 <path d="M9.62444 2.30182L9.8559 2.28617C9.8394 2.25781 9.82064 2.23068 9.79975 2.20508H9.70731C9.68242 2.23857 9.65252 2.27232 9.62444 2.30182Z" fill="white"/>
363 <path d="M7.31888 2.45768L6.93338 2.48374C6.94368 2.44382 6.96204 2.39977 6.99422 2.35901C7.00259 2.34863 7.01158 2.33875 7.02118 2.32938C7.13433 2.33297 7.3124 2.34224 7.47776 2.36617L7.31888 2.45768Z" fill="white"/>
364 <path fill-rule="evenodd" clip-rule="evenodd" d="M16.6364 25.9624H0.5V13.8979C0.55945 13.8941 0.619514 13.8891 0.679992 13.8841C0.805655 13.8737 0.933104 13.8631 1.06054 13.8631C2.44083 13.8622 3.82113 13.8626 5.20143 13.8629C8.78171 13.8637 12.362 13.8645 15.9423 13.8456C16.5493 13.8427 16.6945 14.017 16.6887 14.6036C16.6704 17.1044 16.672 19.6038 16.6737 22.1038V22.1068C16.6744 23.174 16.6751 24.2414 16.6742 25.309C16.6721 25.458 16.6615 25.6055 16.6503 25.7607C16.6456 25.8263 16.6408 25.8934 16.6364 25.9624ZM6.6659 18.3241C7.06671 16.9881 7.76083 16.4479 8.92259 16.5176C9.76485 16.567 10.3515 17.0084 10.5344 17.7287C10.6971 18.3589 10.3747 18.963 9.63993 19.4103C9.48346 19.5049 9.32957 19.6022 9.17567 19.6994C9.09823 19.7483 9.02067 19.7973 8.94289 19.8459C8.04544 20.4123 7.80148 21.0687 8.0832 22.1171H8.9516C8.65538 21.0367 9.31752 20.5836 10.0959 20.1858C10.4109 20.0264 10.7079 19.8336 10.9817 19.6107C11.2652 19.3971 11.4807 19.106 11.6023 18.7725C11.724 18.4391 11.7465 18.0776 11.6671 17.7316C11.4697 16.7064 10.6826 16.0065 9.44827 15.7741C7.636 15.4343 6.04438 16.4537 5.79463 18.1556L6.6659 18.3241ZM9.12004 24.2431V23.0872H7.89151V24.2431H9.12004Z" fill="white"/>
365 <path d="M8.35368 0.698371C7.63362 0.575704 7.2608 0.832377 7.14484 0.935926C7.32376 0.975318 7.88451 1.05848 8.35368 0.698371Z" fill="white"/>
366 <path d="M8.0967 3.12261C8.10511 3.11435 8.11322 3.10574 8.12103 3.09679C8.29239 2.90218 8.26914 2.60595 8.25463 2.49557H8.61769C8.62348 2.78021 8.70193 2.9922 8.85001 3.12291C8.87629 3.14591 8.90333 3.16514 8.9304 3.18119C8.92532 3.25291 8.90508 3.30224 8.86745 3.32914C8.81512 3.36687 8.74835 3.35236 8.74835 3.35236C8.73385 3.34944 8.72224 3.35236 8.71352 3.36108C8.6409 3.43078 8.56538 3.46268 8.50147 3.45689C8.40273 3.4511 8.33885 3.36687 8.33885 3.36687C8.333 3.35815 8.32142 3.35236 8.30978 3.35236C8.22554 3.35236 8.16456 3.32914 8.12973 3.28559C8.08216 3.22799 8.09284 3.14456 8.0967 3.12261Z" fill="white"/>
367 <path d="M10.491 8.68755V9.03741L10.305 9.04189C10.2909 9.04189 10.2795 9.05035 10.2739 9.06235C10.3394 8.79765 10.4124 8.53826 10.4938 8.28959V8.67385C10.492 8.67799 10.491 8.6826 10.491 8.68755Z" fill="white"/>
368 <path d="M10.7581 9.03098L10.5607 9.03573V8.72531H10.7581V9.03098Z" fill="white"/>
369 <path d="M11.4436 8.79212V9.01447L10.8278 9.0293V8.79212H11.4436Z" fill="white"/>
370 <path d="M10.7581 9.10113V9.43399C10.7581 9.44323 10.7618 9.4521 10.7683 9.45863C10.7749 9.46516 10.7837 9.46883 10.793 9.46883C10.8133 9.46883 10.8278 9.45136 10.8278 9.43396V9.09935L11.4813 9.08264H11.6004V10.9472C11.5103 11.2725 11.1037 11.3334 11.1037 11.3334C10.5896 11.3509 10.4241 10.9704 10.4212 10.9617C10.3832 10.7012 10.3553 9.52041 10.3471 9.17213L10.3457 9.11168L10.7581 9.10113Z" fill="white"/>
371 <path d="M8.03103 5.80944C7.71933 5.68476 7.26941 5.07069 7.08855 4.80893C7.12451 5.21883 7.20009 5.66112 7.267 6.00213C7.34059 6.30827 7.41874 6.58169 7.46842 6.7498C7.48081 6.78367 7.4931 6.82041 7.50529 6.85972C7.73569 6.54007 7.91319 6.18545 8.03103 5.80944Z" fill="white"/>
372 <path d="M9.82882 4.71155C9.83803 4.76176 9.84877 4.82365 9.8598 4.89434C9.89558 5.17019 9.91199 5.52502 9.88103 5.96915L9.86914 6.33704L9.51224 6.87237L8.75129 5.79777C8.91394 5.69031 9.62842 5.1966 9.82882 4.71155Z" fill="white"/>
373 <path d="M8.23141 6.75912H8.6293C8.65252 6.50352 8.66127 5.96913 8.66127 5.82391H8.11816L8.23141 6.75912Z" fill="white"/>
374 </svg>
375 <span><@liferay.language key="cofares.product.disclaimer3"/></span>
376 </div>
377 </div>
378 <#break>
379 </#if>
380 </#list>
381 -->
382
383</section>
384
385<!-- Como usarlo -->
386
387<#assign CUImages = [] />
388<#assign PTVEImages = [] />
389<#assign CUCounter = 0 />
390<#assign PTVECounter = 0 />
391
392<#if imagenesSeccionComoUsarlo.getSiblings()?has_content>
393 <#list imagenesSeccionComoUsarlo.getSiblings() as cur_imagenesSeccionComoUsarlo>
394 <#if (cur_imagenesSeccionComoUsarlo.getData())?? && cur_imagenesSeccionComoUsarlo.getData() != "">
395 <#assign CUCounter = CUCounter + 1 />
396 <#assign CUImages = CUImages + [cur_imagenesSeccionComoUsarlo] />
397 </#if>
398 </#list>
399</#if>
400<#if imagenesSeccionPorqueTeVaAEncantar.getSiblings()?has_content>
401 <#list imagenesSeccionPorqueTeVaAEncantar.getSiblings() as cur_imagenesSeccionPorqueTeVaAEncantar>
402 <#if (cur_imagenesSeccionPorqueTeVaAEncantar.getData())?? && cur_imagenesSeccionPorqueTeVaAEncantar.getData() != "">
403 <#assign PTVECounter = PTVECounter + 1 />
404 <#assign PTVEImages = PTVEImages + [cur_imagenesSeccionPorqueTeVaAEncantar] />
405 </#if>
406 </#list>
407</#if>
408
409<#-- Caso: textos sin imagenes -->
410<#if comoUsarlo.getData()??
411 && comoUsarlo.getData() != ""
412 && porqueTeVaAEncantar.getData()??
413 && porqueTeVaAEncantar.getData() != ""
414 && CUCounter = 0
415 && PTVECounter = 0 >
416
417 <section class="product-info d-flex justify-content-center align-items-center">
418 <div class="product-info__section color-site w-50 d-flex align-items-center" style="min-height: 100%">
419 <div class="product-info__text ">
420 <h2 class="product-info__title">
421 <@liferay.language key="cofares.product.comoUsarlo"/>
422 </h2>
423 <div class="product-info__description">
424 ${comoUsarlo.getData()}
425 </div>
426 </div>
427 </div>
428 <div class="product-info__section w-50 d-flex align-items-center" style="min-height: 100%">
429 <div class="product-info__text color-white">
430 <h2 class="product-info__title">
431 <@liferay.language key="cofares.product.porQueTeVaAEncantar"/>
432 </h2>
433 <div class="product-info__description">
434 ${porqueTeVaAEncantar.getData()}
435 </div>
436 </div>
437 </div>
438 </section>
439
440<#else>
441
442 <#if comoUsarlo.getData()?? & comoUsarlo.getData() != "" >
443 <#-- <#if imagenesSeccionComoUsarlo.getSiblings()?size = 3 > -->
444
445 <#-- Caso: 3 imagenes de como usarlo -->
446 <#if CUCounter = 3 || CUCounter gt 3>
447 <section class="product-info d-flex color-site">
448 <div class="product-info__section w-50">
449 <div class="product-info__section d-flex h-50 justify-content-center align-items-center">
450 <div class="product-info__text">
451 <h2 class="product-info__title">
452 <@liferay.language key="cofares.product.comoUsarlo"/>
453 </h2>
454 <div class="product-info__description">
455 ${comoUsarlo.getData()}
456 </div>
457 </div>
458 </div>
459 <div class="product-info__section product-info__section--images d-flex h-50">
460 <div class="product-info__image col-md-6">
461 <#if (CUImages[0].getData())?? && CUImages[0].getData() != "">
462 <img alt="${CUImages[0].getAttribute("alt")}" data-fileentryid="${CUImages[0].getAttribute("fileEntryId")}" src="${CUImages[0].getData()}" loading=”lazy”/>
463 </#if>
464 </div>
465 <div class="product-info__image col-md-6">
466 <#if (CUImages[1].getData())?? && CUImages[1].getData() != "">
467 <img alt="${CUImages[1].getAttribute("alt")}" data-fileentryid="${CUImages[1].getAttribute("fileEntryId")}" src="${CUImages[1].getData()}" loading=”lazy”/>
468 </#if>
469 </div>
470 </div>
471 </div>
472 <div class="product-info__section w-50 d-flex">
473 <div class="product-info__image w-100">
474 <#if (CUImages[2].getData())?? && CUImages[2].getData() != "">
475 <img alt="${CUImages[2].getAttribute("alt")}" data-fileentryid="${CUImages[2].getAttribute("fileEntryId")}" src="${CUImages[2].getData()}" loading=”lazy”/>
476 </#if>
477 </div>
478 </div>
479 </section>
480
481 <#-- Caso: 0 imagenes de como usarlo -->
482 <#elseif CUCounter = 0 >
483
484 <section class="product-info">
485 <div class="product-info__text color-site text-center">
486 <h2 class="product-info__title">
487 <@liferay.language key="cofares.product.comoUsarlo"/>
488 </h2>
489 <div class="product-info__description">
490 ${comoUsarlo.getData()}
491 </div>
492 </div>
493 </section>
494
495 <#-- Caso: 1 imagen de como usarlo -->
496 <#elseif CUCounter = 1 >
497
498 <section class="product-info d-flex justify-content-center align-items-center color-site">
499 <div class="product-info__section w-50">
500 <div class="product-info__text">
501 <h2 class="product-info__title">
502 <@liferay.language key="cofares.product.comoUsarlo"/>
503 </h2>
504 <div class="product-info__description">
505 ${comoUsarlo.getData()}
506 </div>
507 </div>
508 </div>
509 <div class="product-info__section w-50 d-flex">
510 <div class="product-info__image w-100">
511 <img alt="${CUImages[0].getAttribute("alt")}" data-fileentryid="${CUImages[0].getAttribute("fileEntryId")}" src="${CUImages[0].getData()}" loading=”lazy”/>
512 </div>
513 </div>
514 </section>
515
516 <#-- Caso: 2 imagen de como usarlo -->
517 <#elseif CUCounter = 2 >
518
519 <section class="product-info d-flex justify-content-center align-items-center color-site">
520 <div class="product-info__section w-50">
521 <div class="product-info__text">
522 <h2 class="product-info__title">
523 <@liferay.language key="cofares.product.comoUsarlo"/>
524 </h2>
525 <div class="product-info__description">
526 ${comoUsarlo.getData()}
527 </div>
528 </div>
529 </div>
530 <div class="product-info__section w-50">
531 <div class="product-info__section product-info__section--images d-flex">
532 <div class="product-info__image col-md-6">
533 <#if (CUImages[0].getData())?? && CUImages[0].getData() != "">
534 <img alt="${CUImages[0].getAttribute("alt")}" data-fileentryid="${CUImages[0].getAttribute("fileEntryId")}" src="${CUImages[0].getData()}" loading=”lazy”/>
535 </#if>
536 </div>
537 <div class="product-info__image col-md-6">
538 <#if (CUImages[1].getData())?? && CUImages[1].getData() != "">
539 <img alt="${CUImages[1].getAttribute("alt")}" data-fileentryid="${CUImages[1].getAttribute("fileEntryId")}" src="${CUImages[1].getData()}" loading=”lazy”/>
540 </#if>
541 </div>
542 </div>
543 </div>
544 </section>
545 </#if>
546 </#if>
547
548 <!-- Por que te va a encantar -->
549
550 <#if porqueTeVaAEncantar.getData()?? && porqueTeVaAEncantar.getData() != "" >
551
552
553 <#-- Caso: 3 imagenes de Por que te va a encantar -->
554 <#if PTVECounter = 3 || PTVECounter gt 3>
555
556 <section class="product-info d-flex">
557 <div class="product-info__section w-50 d-flex">
558 <div class="product-info__image w-100">
559 <#if (PTVEImages[2].getData())?? && PTVEImages[2].getData() != "">
560 <img alt="${PTVEImages[2].getAttribute("alt")}" data-fileentryid="${PTVEImages[2].getAttribute("fileEntryId")}" src="${PTVEImages[2].getData()}" loading=”lazy”/>
561 </#if>
562 </div>
563 </div>
564 <div class="product-info__section w-50">
565 <div class="product-info__section d-flex h-50 justify-content-center align-items-center">
566 <div class="product-info__text">
567 <h2 class="product-info__title">
568 <@liferay.language key="cofares.product.porQueTeVaAEncantar"/>
569 </h2>
570 <div class="product-info__description">
571 ${porqueTeVaAEncantar.getData()}
572 </div>
573 </div>
574 </div>
575 <div class="product-info__section product-info__section--images d-flex h-50">
576 <div class="product-info__image col-md-6">
577 <#if (PTVEImages[0].getData())?? && PTVEImages[0].getData() != "">
578 <img alt="${PTVEImages[0].getAttribute("alt")}" data-fileentryid="${PTVEImages[0].getAttribute("fileEntryId")}" src="${PTVEImages[0].getData()}" loading=”lazy”/>
579 </#if>
580 </div>
581 <div class="product-info__image col-md-6">
582 <#if (PTVEImages[1].getData())?? && PTVEImages[1].getData() != "">
583 <img alt="${PTVEImages[1].getAttribute("alt")}" data-fileentryid="${PTVEImages[1].getAttribute("fileEntryId")}" src="${PTVEImages[1].getData()}" loading=”lazy”/>
584 </#if>
585 </div>
586 </div>
587 </div>
588 </section>
589
590 <#-- Caso: 0 imagenes de Por que te va a encantar -->
591 <#elseif PTVECounter = 0 >
592
593 <section class="product-info">
594 <div class="product-info__text text-center">
595 <h2 class="product-info__title">
596 <@liferay.language key="cofares.product.porQueTeVaAEncantar"/>
597 </h2>
598 <div class="product-info__description">
599 ${porqueTeVaAEncantar.getData()}
600 </div>
601 </div>
602 </section>
603
604 <#-- Caso: 1 imagen de Por que te va a encantar -->
605 <#elseif PTVECounter = 1 >
606
607 <section class="product-info d-flex justify-content-center align-items-center">
608 <div class="product-info__section w-50 d-flex">
609 <div class="product-info__image w-100">
610 <img alt="${PTVEImages[0].getAttribute("alt")}" data-fileentryid="${PTVEImages[0].getAttribute("fileEntryId")}" src="${PTVEImages[0].getData()}" loading=”lazy”/>
611 </div>
612 </div>
613 <div class="product-info__section w-50">
614 <div class="product-info__text">
615 <h2 class="product-info__title">
616 <@liferay.language key="cofares.product.porQueTeVaAEncantar"/>
617 </h2>
618 <div class="product-info__description">
619 ${porqueTeVaAEncantar.getData()}
620 </div>
621 </div>
622 </div>
623 </section>
624
625 <#-- Caso: 2 imagenes de Por que te va a encantar -->
626 <#elseif PTVECounter = 2 >
627
628 <section class="product-info d-flex justify-content-center align-items-center">
629 <div class="product-info__section w-50">
630 <div class="product-info__section product-info__section--images d-flex">
631 <div class="product-info__image col-md-6">
632 <#if (PTVEImages[0].getData())?? && PTVEImages[0].getData() != "">
633 <img alt="${PTVEImages[0].getAttribute("alt")}" data-fileentryid="${PTVEImages[0].getAttribute("fileEntryId")}" src="${PTVEImages[0].getData()}" loading=”lazy”/>
634 </#if>
635 </div>
636 <div class="product-info__image col-md-6">
637 <#if (PTVEImages[1].getData())?? && PTVEImages[1].getData() != "">
638 <img alt="${PTVEImages[1].getAttribute("alt")}" data-fileentryid="${PTVEImages[1].getAttribute("fileEntryId")}" src="${PTVEImages[1].getData()}" loading=”lazy”/>
639 </#if>
640 </div>
641 </div>
642 </div>
643 <div class="product-info__section w-50">
644 <div class="product-info__text">
645 <h2 class="product-info__title">
646 <@liferay.language key="cofares.product.porQueTeVaAEncantar"/>
647 </h2>
648 <div class="product-info__description">
649 ${porqueTeVaAEncantar.getData()}
650 </div>
651 </div>
652 </div>
653 </section>
654 </#if>
655 </#if>
656</#if>
657
658<!-- Completa tu rutina -->
659
660<#if productosRelacionadosCategorias.getSiblings()?has_content>
661<#if productosRelacionadosCategorias.getSiblings()[0]?has_content && productosRelacionadosCategorias.getSiblings()[0].getData() != "">
662<section class="cards-adt text-center">
663
664 <p class="cards-adt__pretitle">
665 <@liferay.language key="cofares.product.completaRutina"/>
666 </p>
667
668 <#if productosRelacionadosCategorias.getSiblings()?size lt 4>
669 <div class="cards-adt__items-container row justify-content-center">
670 <#else>
671 <div class="cards-adt__items-container row">
672 </#if>
673
674 <#list productosRelacionadosCategorias.getSiblings() as cur_productosRelacionados>
675 <#attempt>
676 <#assign
677 webContentData = jsonFactoryUtil.createJSONObject(cur_productosRelacionados.getData())
678 />
679 <#if webContentData.classPK?has_content && webContentData.classPK != "">
680 <#assign
681 contentClassPK = webContentData.classPK?number
682 contentClassName = webContentData.className
683 />
684 <#if webContentData?? && webContentData.title??>
685 <div class="cards-adt__item col-6 col-xl-3">
686 <a href="${cur_productosRelacionados.getFriendlyUrl()}" class="card--product">
687 <button class="share-button" style="background-image: url(/documents/d/guest/share)"></button>
688 <#if contentClassName == "com.liferay.journal.model.JournalArticle" >
689 <#assign
690 journalArticle = journalArticleLocalService.getLatestArticle(contentClassPK)
691 ddmStructure = journalArticle.getDDMStructure()
692 ddmForm = ddmStructure.getDDMForm()
693 ddmFieldLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMFieldLocalService")
694 ddmFormValues = ddmFieldLocalService.getDDMFormValues(ddmForm, journalArticle.getId())
695 ddmFormFieldValues = ddmFormValues.getDDMFormFieldValues()
696 mainImage = true
697 productCardDescription = "Descripcion"
698 productCardImage = "/documents/d/guest/placeholder-aposan"
699 />
700
701 <#list ddmFormFieldValues as fieldName>
702 <#if fieldName.getFieldReference() == 'descripcionCorta'>
703 <#if fieldName.getValue().getString(locale)?has_content && fieldName.getValue().getString(locale) != "" >
704 <#assign productCardDescription = fieldName.getValue().getString(locale)?replace('<[^>]+>','','r') />
705 <#if productCardDescription?length gt 100>
706 <#assign productCardDescription = productCardDescription?substring(0, 100) + "..." />
707 </#if>
708 </#if>
709 </#if>
710 <#if fieldName.getFieldReference() == 'imagenesSeccionPrincipalDetalle' && mainImage >
711 <#if fieldName.getValue().getString(locale)?has_content && fieldName.getValue().getString(locale) != "" >
712 <#assign
713 mainImage = false
714 valores = fieldName.getValue().getString(locale)
715 mapaValores=valores?eval
716 />
717 <#list mapaValores as k, v>
718 <#if k == "url">
719 <#assign productCardImage = v />
720 </#if>
721 </#list>
722 </#if>
723 </#if>
724 </#list>
725 <#assign mainImage = true />
726 <div class="card--product__image">
727 <img src="${productCardImage}" loading=”lazy”/>
728 <i class="share-icon"></i>
729 </div>
730 <div class="card--product__text">
731 <h3>
732 ${webContentData.title}
733 </h3>
734 <p class="card--product__description">
735 ${productCardDescription}
736 </p>
737 <p class="card--product__link-text" >
738 <@liferay.language key="cofares.product.button.verProducto"/>
739 </p>
740 </div>
741 </#if>
742 </a>
743 </div>
744 </#if>
745 </#if>
746 <#recover>
747 </#attempt>
748 </#list>
749
750 </div>
751
752</section>
753</#if>
754</#if>
755
756
757<!-- Tabs -->
758
759<#assign
760 tabCount = 1
761 hasContent = false
762 tabActive = true
763/>
764
765<#if (descripcionLarga.getData())?? && descripcionLarga.getData() != "">
766 <#assign hasContent = true />
767</#if>
768<#if (activos.getData())?? && activos.getData() != "">
769 <#assign hasContent = true />
770</#if>
771<#if (composicion.getData())?? && composicion.getData() != "">
772 <#assign hasContent = true />
773</#if>
774<#if (indicaciones.getData())?? && indicaciones.getData() != "">
775 <#assign hasContent = true />
776</#if>
777<#if (contraindicaciones.getData())?? && contraindicaciones.getData() != "">
778 <#assign hasContent = true />
779</#if>
780
781<#if hasContent >
782<section class="cards-adt product-tabs text-center mb-7">
783 <p class="cards-adt__pretitle">
784 <@liferay.language key="cofares.product.tabs.title"/>
785 </p>
786
787 <div class="cards-adt__tabs">
788
789
790 <ul class="nav nav-tabs justify-content-center" id="myTab" role="tablist">
791
792 <#if (descripcionLarga.getData())?? && descripcionLarga.getData() != "">
793 <li class="nav-item" role="presentation">
794 <button class="nav-link active" id="item${tabCount}-tab" data-bs-toggle="tab" data-bs-target="#item${tabCount}" type="button" role="tab" aria-controls="item${tabCount}" aria-selected="true">
795 <@liferay.language key="cofares.product.tabs.descripcion"/>
796 </button>
797 <#assign tabActive = false />
798 </li>
799 <#assign tabCount = tabCount + 1 />
800 </#if>
801 <#if (activos.getData())?? && activos.getData() != "">
802 <li class="nav-item" role="presentation">
803 <#if tabActive >
804 <button class="nav-link active" id="item${tabCount}-tab" data-bs-toggle="tab" data-bs-target="#item${tabCount}" type="button" role="tab" aria-controls="item${tabCount}" aria-selected="true">
805 <@liferay.language key="cofares.product.tabs.activos"/>
806 </button>
807 <#assign tabActive = false />
808 <#else>
809 <button class="nav-link" id="item${tabCount}-tab" data-bs-toggle="tab" data-bs-target="#item${tabCount}" type="button" role="tab" aria-controls="item${tabCount}" aria-selected="false">
810 <@liferay.language key="cofares.product.tabs.activos"/>
811 </button>
812 </#if>
813 </li>
814 <#assign tabCount = tabCount + 1 />
815 </#if>
816 <#if (composicion.getData())?? && composicion.getData() != "">
817 <li class="nav-item" role="presentation">
818 <#if tabActive >
819 <button class="nav-link active" id="item${tabCount}-tab" data-bs-toggle="tab" data-bs-target="#item${tabCount}" type="button" role="tab" aria-controls="item${tabCount}" aria-selected="true">
820 <@liferay.language key="cofares.product.tabs.composicion"/>
821 </button>
822 <#assign tabActive = false />
823 <#else>
824 <button class="nav-link" id="item${tabCount}-tab" data-bs-toggle="tab" data-bs-target="#item${tabCount}" type="button" role="tab" aria-controls="item${tabCount}" aria-selected="false">
825 <@liferay.language key="cofares.product.tabs.composicion"/>
826 </button>
827 </#if>
828 </li>
829 <#assign tabCount = tabCount + 1 />
830 </#if>
831 <#if (indicaciones.getData())?? && indicaciones.getData() != "">
832 <li class="nav-item" role="presentation">
833 <#if tabActive >
834 <button class="nav-link active" id="item${tabCount}-tab" data-bs-toggle="tab" data-bs-target="#item${tabCount}" type="button" role="tab" aria-controls="item${tabCount}" aria-selected="true">
835 <@liferay.language key="cofares.product.tabs.para"/>
836 </button>
837 <#assign tabActive = false />
838 <#else>
839 <button class="nav-link" id="item${tabCount}-tab" data-bs-toggle="tab" data-bs-target="#item${tabCount}" type="button" role="tab" aria-controls="item${tabCount}" aria-selected="false">
840 <@liferay.language key="cofares.product.tabs.para"/>
841 </button>
842 </#if>
843 </li>
844 <#assign tabCount = tabCount + 1 />
845 </#if>
846 <#if (contraindicaciones.getData())?? && contraindicaciones.getData() != "">
847 <li class="nav-item" role="presentation">
848 <#if tabActive >
849 <button class="nav-link active" id="item${tabCount}-tab" data-bs-toggle="tab" data-bs-target="#item${tabCount}" type="button" role="tab" aria-controls="item${tabCount}" aria-selected="true">
850 <@liferay.language key="cofares.product.tabs.advertencias"/>
851 </button>
852 <#assign tabActive = false />
853 <#else>
854 <button class="nav-link" id="item${tabCount}-tab" data-bs-toggle="tab" data-bs-target="#item${tabCount}" type="button" role="tab" aria-controls="item${tabCount}" aria-selected="false">
855 <@liferay.language key="cofares.product.tabs.advertencias"/>
856 </button>
857 </#if>
858 </li>
859 <#assign tabCount = tabCount + 1 />
860 </#if>
861
862 </ul>
863
864 <#assign
865 tabCount = 1
866 tabActive = true
867 />
868
869 <div class="tab-content" id="myTabContent">
870
871 <#if (descripcionLarga.getData())?? && descripcionLarga.getData() != "">
872 <div class="tab-pane fade show active" id="item${tabCount}" role="tabpanel" aria-labelledby="item${tabCount}-tab">
873 ${descripcionLarga.getData()}
874 </div>
875 <#assign
876 tabCount = tabCount + 1
877 tabActive = false
878 />
879 </#if>
880 <#if (activos.getData())?? && activos.getData() != "">
881 <#if tabActive >
882 <div class="tab-pane fade show active" id="item${tabCount}" role="tabpanel" aria-labelledby="item${tabCount}-tab">
883 ${activos.getData()}
884 </div>
885 <#assign tabActive = false />
886 <#else >
887 <div class="tab-pane fade" id="item${tabCount}" role="tabpanel" aria-labelledby="item${tabCount}-tab">
888 ${activos.getData()}
889 </div>
890 </#if>
891 <#assign tabCount = tabCount + 1 />
892 </#if>
893 <#if (composicion.getData())?? && composicion.getData() != "">
894 <#if tabActive >
895 <div class="tab-pane fade show active" id="item${tabCount}" role="tabpanel" aria-labelledby="item${tabCount}-tab">
896 ${composicion.getData()}
897 </div>
898 <#assign tabActive = false />
899 <#else >
900 <div class="tab-pane fade" id="item${tabCount}" role="tabpanel" aria-labelledby="item${tabCount}-tab">
901 ${composicion.getData()}
902 </div>
903 </#if>
904 <#assign tabCount = tabCount + 1 />
905 </#if>
906 <#if (indicaciones.getData())?? && indicaciones.getData() != "">
907 <#if tabActive >
908 <div class="tab-pane fade show active" id="item${tabCount}" role="tabpanel" aria-labelledby="item${tabCount}-tab">
909 ${indicaciones.getData()}
910 </div>
911 <#assign tabActive = false />
912 <#else >
913 <div class="tab-pane fade" id="item${tabCount}" role="tabpanel" aria-labelledby="item${tabCount}-tab">
914 ${indicaciones.getData()}
915 </div>
916 </#if>
917 <#assign tabCount = tabCount + 1 />
918 </#if>
919 <#if (contraindicaciones.getData())?? && contraindicaciones.getData() != "">
920 <#if tabActive >
921 <div class="tab-pane fade show active" id="item${tabCount}" role="tabpanel" aria-labelledby="item${tabCount}-tab">
922 ${contraindicaciones.getData()}
923 </div>
924 <#assign tabActive = false />
925 <#else >
926 <div class="tab-pane fade" id="item${tabCount}" role="tabpanel" aria-labelledby="item${tabCount}-tab">
927 ${contraindicaciones.getData()}
928 </div>
929 </#if>
930 <#assign tabCount = tabCount + 1 />
931 </#if>
932
933 </div>
934
935 </div>
936
937</section>
938</#if>
939
940<!-- Productos relacionados -->
941
942<#assign
943 journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")
944 productJournalArticle = journalArticleLocalService.getLatestArticle(groupId, .vars["reserved-article-id"].data)
945 ddmProductStructure = productJournalArticle.getDDMStructure()
946/>
947
948<#if productosRelacionados.getSiblings()?has_content>
949<#if productosRelacionados.getSiblings()[0].getData()?has_content && productosRelacionados.getSiblings()[0].getData() != "">
950 <section class="cards-adt text-center">
951
952 <p class="cards-adt__pretitle">
953 <@liferay.language key="cofares.product.relacionados.title"/>
954 </p>
955 <#if productosRelacionados.getSiblings()?size lt 4>
956 <div class="cards-adt__items-container row justify-content-center">
957 <#else>
958 <div class="cards-adt__items-container row">
959 </#if>
960
961 <#list productosRelacionados.getSiblings() as cur_productosRelacionados>
962 <#attempt>
963 <#assign
964 webContentData = jsonFactoryUtil.createJSONObject(cur_productosRelacionados.getData())
965 />
966
967 <#if webContentData.classPK?has_content && webContentData.classPK != "">
968 <#assign
969 contentClassPK = webContentData.classPK?number
970 contentClassName = webContentData.className
971 />
972
973 <#if webContentData?? && webContentData.title??>
974 <div class="cards-adt__item col-6 col-xl-3">
975 <a href="${cur_productosRelacionados.getFriendlyUrl()}" class="card--product">
976 <button class="share-button" style="background-image: url(/documents/d/guest/share)"></button>
977 <#if contentClassName == "com.liferay.journal.model.JournalArticle" >
978 <#assign
979 journalArticle = journalArticleLocalService.getLatestArticle(contentClassPK)
980 ddmStructure = journalArticle.getDDMStructure()
981 ddmForm = ddmStructure.getDDMForm()
982 ddmFieldLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMFieldLocalService")
983 ddmFormValues = ddmFieldLocalService.getDDMFormValues(ddmForm, journalArticle.getId())
984 ddmFormFieldValues = ddmFormValues.getDDMFormFieldValues()
985 mainImage = true
986 productCardDescription = "Descripcion"
987 productCardImage = "/documents/d/guest/placeholder-aposan"
988 />
989
990 <#list ddmFormFieldValues as fieldName>
991 <#if fieldName.getFieldReference() = 'descripcionCorta'>
992 <#if fieldName.getValue().getString(locale)?has_content && fieldName.getValue().getString(locale) != "" >
993 <#assign productCardDescription = fieldName.getValue().getString(locale)?replace('<[^>]+>','','r') />
994 <#if productCardDescription?length gt 100>
995 <#assign productCardDescription = productCardDescription?substring(0, 100) + "..." />
996 </#if>
997 </#if>
998 </#if>
999 <#if fieldName.getFieldReference() = 'imagenesSeccionPrincipalDetalle' && mainImage >
1000 <#if fieldName.getValue().getString(locale)?has_content && fieldName.getValue().getString(locale) != "" >
1001 <#assign
1002 mainImage = false
1003 valores = fieldName.getValue().getString(locale)
1004 mapaValores=valores?eval
1005 />
1006 <#list mapaValores as k, v>
1007 <#if k == "url">
1008 <#assign productCardImage = v />
1009 </#if>
1010 </#list>
1011
1012 </#if>
1013 </#if>
1014 </#list>
1015 <#assign mainImage = true />
1016 <div class="card--product__image">
1017 <img src="${productCardImage}" loading=”lazy”/>
1018 <i class="share-icon"></i>
1019 </div>
1020 <div class="card--product__text">
1021 <h3>
1022 ${webContentData.title}
1023 </h3>
1024 <p class="card--product__description">
1025 ${productCardDescription}
1026 </p>
1027 <p class="card--product__link-text" >
1028 <@liferay.language key="cofares.product.button.verProducto"/>
1029 </p>
1030 </div>
1031 </#if>
1032 </a>
1033 </div>
1034 </#if>
1035 </#if>
1036 <#recover>
1037 </#attempt>
1038 </#list>
1039 </div>
1040
1041 </section>
1042</#if>
1043</#if>
1044
1045<script>
1046
1047 var images = document.querySelectorAll('.product__image-selector img');
1048 var mainImage = document.querySelector('.product__main-image');
1049
1050 images.forEach(image => {
1051 image.addEventListener('click', function() {
1052 images.forEach(img => img.classList.remove('active'));
1053 this.classList.add('active');
1054 const src = this.getAttribute('src');
1055 mainImage.setAttribute('src', src);
1056 });
1057 });
1058</script>
1059
1060<script>
1061 var images = document.querySelectorAll('.product__image-selector img');
1062 var mainImage = document.querySelector('.product__main-image');
1063 var currentIndex = 0;
1064
1065 var prevButton = document.querySelector('.prev-image');
1066 var nextButton = document.querySelector('.next-image');
1067
1068 function setMainImage(index) {
1069 var src = images[index].getAttribute('src');
1070 var alt = images[index].getAttribute('alt');
1071
1072 console.log("Cambio a la imagen: " + src);
1073
1074 if (mainImage) {
1075 mainImage.src = src;
1076 if (alt) {
1077 mainImage.alt = alt;
1078 }
1079 }
1080
1081 // Actualiza la clase 'active' en las imágenes del selector
1082 images.forEach(function(img) {
1083 img.classList.remove('active');
1084 });
1085 images[index].classList.add('active');
1086
1087 // Muestra/oculta los botones dependiendo del índice
1088 toggleNavigationButtons(index);
1089 }
1090
1091 function toggleNavigationButtons(index) {
1092 if (index === 0) {
1093 prevButton.style.visibility = 'hidden';
1094 } else {
1095 prevButton.style.visibility = 'visible';
1096 }
1097
1098 if (index === images.length - 1) {
1099 nextButton.style.visibility = 'hidden';
1100 } else {
1101 nextButton.style.visibility = 'visible';
1102 }
1103 }
1104
1105 // Establece la primera imagen como activa por defecto
1106 setMainImage(currentIndex);
1107
1108 prevButton.addEventListener('click', function() {
1109 if (currentIndex > 0) {
1110 currentIndex--;
1111 setMainImage(currentIndex);
1112 }
1113 });
1114
1115 nextButton.addEventListener('click', function() {
1116 if (currentIndex < images.length - 1) {
1117 currentIndex++;
1118 setMainImage(currentIndex);
1119 }
1120 });
1121
1122 // Por si también quieres cambiar la imagen haciendo clic sobre una miniatura
1123 images.forEach(function(img, i) {
1124 img.addEventListener('click', function() {
1125 currentIndex = i;
1126 setMainImage(currentIndex);
1127 });
1128 });
1129</script>
1130
1131<style>
1132.product-info__description {
1133padding-left: 3rem;
1134}
1135.product-info__description ul li {
1136list-style: disc;
1137}
1138.image-navigation {
1139display: none;
1140}
1141@media only screen and (max-width: 768px) {
1142.image-navigation {
1143 position: absolute;
1144 top: 50%;
1145 left: 0;
1146 width: 100%;
1147 display: flex;
1148 justify-content: space-between;
1149 transform: translateY(-50%);
1150 z-index: 1;
1151}
1152.image-navigation button {
1153 background-color: transparent;
1154 color: #e40046;
1155 border: none;
1156 padding: 10px;
1157 cursor: pointer;
1158 font-size: 30px;
1159 transition: background-color 0.3s;
1160 min-width: 50px;
1161}
1162}
1163</style>