Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing: ==> contenidoWeb.selectSingleNode("/root/dynamic-element[@name='tituloGroup']/dynamic-element[@name='titulo']/dynamic-content") [in template "20101#20128#14855556" at line 119, column 56] ---- 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 titulo = contenidoWeb.selectS... [in template "20101#20128#14855556" at line 119, column 37] ----
1<#if activarListadoCategoria.getData()=="FALSE">
2<#else>
3 <!--Obtener URL-->
4 <#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()>
5 <#assign themeDisplay = serviceContext.getThemeDisplay()>
6 <#assign url = themeDisplay.getPortalURL()>
7 <!--Service Locator-->
8 <#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")>
9 <#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
10 <!--Obtener path del comparador-->
11 <#assign paginaComparador = comparadorGroup.urlComparador.getData()?eval>
12 <#assign groupIdComparador = paginaComparador.groupId>
13 <#assign layoutIdComparador = paginaComparador.layoutId>
14 <#assign urlComparador = layoutLocalService.getLayout(groupIdComparador,false,layoutIdComparador?number).getFriendlyURL()>
15 <!--Obtener path de página padre-->
16 <#assign pageData = paginaPadre.getData()?eval>
17 <#assign groupId = pageData.groupId>
18 <#assign layoutId = pageData.layoutId>
19 <#assign Layouts = layoutLocalService.getLayouts(groupId,false,layoutId?number)>
20 <#assign urlSeleccionada = layoutLocalService.getLayout(groupId,false,layoutId?number).getFriendlyURL()>
21 <!--Contadores-->
22 <#assign counterLayouts = 0>
23 <#assign counterLayouts2 = 0>
24 <!--Layouts activos-->
25 <#assign activeLayouts = 0><!---->
26 <#list Layouts as Layout>
27 <#if Layout.getTypeSettingsProperties().getProperty("flag-show-comparator", "")=="false">
28 <#assign activeLayouts++>
29 </#if>
30 </#list>
31 <!--Objeto-->
32 <#assign dataTabItems = ""><!---->
33 <#list Layouts as Layout>
34 <#if Layout.getTypeSettingsProperties().getProperty("flag-show-comparator", "")=="false">
35 <#assign counterLayouts++>
36 <#if (counterLayouts<5)>
37 <#if activeLayouts == 1>
38 <#assign dataTabItems = '[{"ref":"${Layout.getFriendlyURL()?replace(urlSeleccionada+"/","")}","label":"${Layout.getNameCurrentValue()}","iconUrl":"${Layout.getTypeSettingsProperties().getProperty("image-comparator", "")}","activeIconUrl":"${Layout.getTypeSettingsProperties().getProperty("hover-immage-comparator", "")}","active":true}]'>
39 <#assign defaultTab = Layout.getFriendlyURL()?replace(urlSeleccionada+"/","")>
40 <#elseif counterLayouts=1>
41 <#assign dataTabItems = '[{"ref":"${Layout.getFriendlyURL()?replace(urlSeleccionada+"/","")}","label":"${Layout.getNameCurrentValue()}","iconUrl":"${Layout.getTypeSettingsProperties().getProperty("image-comparator", "")}","activeIconUrl":"${Layout.getTypeSettingsProperties().getProperty("hover-immage-comparator", "")}","active":true},'>
42 <#assign defaultTab = Layout.getFriendlyURL()?replace(urlSeleccionada+"/","")>
43 <#elseif (counterLayouts==activeLayouts || counterLayouts==4)>
44 <#assign dataTabItems += '{"ref":"${Layout.getFriendlyURL()?replace(urlSeleccionada+"/","")}","label":"${Layout.getNameCurrentValue()}","iconUrl":"${Layout.getTypeSettingsProperties().getProperty("image-comparator", "")}","activeIconUrl":"${Layout.getTypeSettingsProperties().getProperty("hover-immage-comparator", "")}"}]'>
45 <#else>
46 <#assign dataTabItems += '{"ref":"${Layout.getFriendlyURL()?replace(urlSeleccionada+"/","")}","label":"${Layout.getNameCurrentValue()}","iconUrl":"${Layout.getTypeSettingsProperties().getProperty("image-comparator", "")}","activeIconUrl":"${Layout.getTypeSettingsProperties().getProperty("hover-immage-comparator", "")}"},'>
47 </#if>
48 </#if>
49 </#if>
50 </#list>
51 <!--HTML-->
52 <div>
53 <div class="o-container">
54 <div cols="13/15 19/31@sm" mar="0-auto">
55 <#if tituloGroup.tituloTag.getData()?has_content>
56 <${tituloGroup.tituloTag.getData()} class="g-title g-title-m g-title-m--light u-text-center" marb="32 40@sm 52@md">${tituloGroup.titulo.getData()}</${tituloGroup.tituloTag.getData()}>
57 <#else>
58 <h2 class="g-title g-title-m g-title-m--light u-text-center" marb="32 40@sm 52@md">${tituloGroup.titulo.getData()}</h2>
59 </#if>
60 </div>
61 </div>
62 <div class="o-account-categories" data-tab-items='${dataTabItems}' data-path-page="/${urlSeleccionada[1..]}" data-lazy-component="account-categories:css-js">
63 <div class="o-account-categories__header" cols="1/1">
64 <div class="o-container">
65 <div cols="1/1 31/31@sm 27/31@md" mar="0-auto">
66 <#if (activeLayouts>1)>
67 <div class="o-account-categories__header__scroll">
68 <div class="o-account-categories__header__content">
69 <div class="m-tabs-buttons" cols="1/1@md">
70 </div>
71 </div>
72 </div>
73 </#if>
74 </div>
75 </div>
76 </div>
77 <div class="o-account-categories__content">
78 <div class="o-container">
79 <div cols="1/1 31/31@sm 27/31@md" mar="0-auto">
80 <div class="o-account-categories__body">
81 <#if (activeLayouts>1)>
82 <div class="m-htmls-contents m-htmls-contents--lineal-effect" data-effect="lineal" pad="24-0-0 32-0-0@md">
83 <#else>
84 <div class="m-htmls-contents m-htmls-contents--lineal-effect" data-effect="lineal" pad="0">
85 </#if>
86 <#list Layouts as Layout>
87 <#if Layout.getTypeSettingsProperties().getProperty("flag-show-comparator", "")=="false">
88 <#assign counterLayouts2++>
89 <#if (counterLayouts2<5)>
90 <#if counterLayouts2=1>
91 <div class="a-html-content is-active false" cols="1/1" id="${Layout.getFriendlyURL()?replace(urlSeleccionada+'/','')}" data-href="${Layout.getFriendlyURL()?replace(urlSeleccionada+'/','')}" pad="0-1/31@sm 0@md">
92 <#else>
93 <div class="a-html-content false false" cols="1/1" id="${Layout.getFriendlyURL()?replace(urlSeleccionada+'/','')}" data-href="${Layout.getFriendlyURL()?replace(urlSeleccionada+'/','')}" pad="0-1/31@sm 0@md">
94 </#if>
95 <#assign LayoutId = Layout.getLayoutId()>
96 <#assign LayoutsHijos = layoutLocalService.getLayouts(groupId,false,LayoutId?number)>
97 <#assign counterHijos = 0>
98 <#list LayoutsHijos as Layout>
99 <#if Layout.getTypeSettingsProperties().getProperty("flag-show-comparator", "")=="false">
100 <#assign counterHijos++>
101 </#if>
102 </#list>
103 <#assign mensajeContador = Layout.getTypeSettingsProperties().getProperty("message-comparator", "")>
104 <div class="a-html-content__wrapper">
105 <#if (activeLayouts>1)>
106 <div padb="24@sm 32@md" cols="7/15 1/1@sm" mar="0-auto">
107 ${mensajeContador?replace("%CONTADOR%",counterHijos)}
108 </div>
109 </#if>
110 <div class="o-account-categories__items o-account-categories__items--secure">
111 <#list LayoutsHijos as LayoutHijo>
112 <#if LayoutHijo.getTypeSettingsProperties().getProperty("flag-show-comparator", "")=="false">
113 <#assign contenidoWebNombre = LayoutHijo.getTypeSettingsProperties().getProperty("web-content-comparator", "")>
114 <#if contenidoWebNombre?has_content && contenidoWebNombre!="null">
115 <#assign contenidoWebData= JournalArticleLocalService.getArticle(groupId, contenidoWebNombre)>
116 <#if contenidoWebData?has_content>
117 <#assign contenidoWeb = saxReaderUtil.read(contenidoWebData.getContent())>
118
119 <#assign titulo = contenidoWeb.selectSingleNode("/root/dynamic-element[@name='tituloGroup']/dynamic-element[@name='titulo']/dynamic-content").text>
120 <#assign movil = "">
121 <#if (contenidoWeb.selectSingleNode("/root/dynamic-element[@name='imgSecundariaGroup']/dynamic-element[@name='movilSecundaria']/dynamic-content").text)??>
122 <#assign movil = contenidoWeb.selectSingleNode("/root/dynamic-element[@name='imgSecundariaGroup']/dynamic-element[@name='movilSecundaria']/dynamic-content").text>
123 </#if>
124 <#assign desktop = "">
125 <#if (contenidoWeb.selectSingleNode("/root/dynamic-element[@name='imgSecundariaGroup']/dynamic-element[@name='desktopSecundaria']/dynamic-content").text)??>
126 <#assign desktop = contenidoWeb.selectSingleNode("/root/dynamic-element[@name='imgSecundariaGroup']/dynamic-element[@name='desktopSecundaria']/dynamic-content").text>
127 </#if>
128
129 <#assign btnProductoTexto = contenidoWeb.selectSingleNode("/root/dynamic-element[@name='btnProductoGroup']/dynamic-element[@name='btnProductoTexto']/dynamic-content").text>
130 <#assign btnProductoEnlace = contenidoWeb.selectSingleNode("/root/dynamic-element[@name='btnProductoGroup']/dynamic-element[@name='btnProductoEnlace']/dynamic-content").text>
131 <#assign btnProductoTagAnalytics = contenidoWeb.selectSingleNode("/root/dynamic-element[@name='btnProductoGroup']/dynamic-element[@name='btnProductoTagAnalytics']/dynamic-content").text>
132
133 <#assign btnVentaTexto = contenidoWeb.selectSingleNode("/root/dynamic-element[@name='btnVentaGroup']/dynamic-element[@name='btnVentaTexto']/dynamic-content").text>
134 <#assign btnVentaEnlace = contenidoWeb.selectSingleNode("/root/dynamic-element[@name='btnVentaGroup']/dynamic-element[@name='btnVentaEnlace']/dynamic-content").text>
135 <#assign btnVentaTagAnalytics = contenidoWeb.selectSingleNode("/root/dynamic-element[@name='btnVentaGroup']/dynamic-element[@name='btnVentaTagAnalytics']/dynamic-content").text>
136
137 <#assign tituloCategoria1 = contenidoWeb.selectSingleNode("/root/dynamic-element[@name='categoriaGroup1']/dynamic-element[@name='tituloCategoria1']/dynamic-content").text>
138 <#assign contenidoCategoria1 = contenidoWeb.selectSingleNode("/root/dynamic-element[@name='categoriaGroup1']/dynamic-element[@name='contenidoCategoria1']/dynamic-content").text>
139
140 <#assign tituloCategoria2 = contenidoWeb.selectSingleNode("/root/dynamic-element[@name='categoriaGroup2']/dynamic-element[@name='tituloCategoria2']/dynamic-content").text>
141 <#assign contenidoCategoria2 = contenidoWeb.selectSingleNode("/root/dynamic-element[@name='categoriaGroup2']/dynamic-element[@name='contenidoCategoria2']/dynamic-content").text>
142
143 <#assign btnProductoMostrar = contenidoWeb.selectSingleNode("/root/dynamic-element[@name='btnProductoGroup']/dynamic-element[@name='btnProductoMostrar']/dynamic-content").text>
144 <#assign btnVentaMostrar = contenidoWeb.selectSingleNode("/root/dynamic-element[@name='btnVentaGroup']/dynamic-element[@name='btnVentaMostrar']/dynamic-content").text>
145 <article class="o-account-categories__item" pad="24-1/13 32-1/25@sm 32-24@md" flex="fd:co jc:sb">
146 <div class="u-position-relative">
147 <div class="u-ov-h" marb="12 20@sm">
148 <div class="o-account-categories__item__image">
149 <picture>
150 <#if desktop?has_content && movil?has_content>
151 <img class="lazyload" alt="${titulo}" data-src="${desktop}" data-srcset="${movil} 2x"/>
152 </#if>
153 </picture>
154 </div>
155 </div>
156 <div class="o-account-categories__item__content" cols="1/1" flex="fd:co">
157 <div>
158 <p class="g-sub-title g-sub-title-s u-text-light" marb="8">${tituloCategoria1}</p>
159 <h2 class="g-title g-title-xs" marb="20">${titulo}</h2>
160 <div marb="24 30@sm">
161 ${contenidoCategoria1}
162 </div>
163 </div>
164 </div>
165 </div>
166 <div cols="1/1" flex="fd:co ai:fs">
167 <#if tituloCategoria2?has_content && contenidoCategoria2?has_content>
168 <p class="descriptive" marb="4">${tituloCategoria2}</p>
169 <h2 class="g-sub-title g-sub-title-m" marb="12 20@sm">
170 ${contenidoCategoria2?replace('<.*?>', '', 'r')}
171 </h2>
172 </#if>
173 <#if btnProductoMostrar=="TRUE">
174 <div class="a-button-wrapper " marb="12" cols="1/1">
175 <a class="a-button a-button--s a-button--green a-button--primary " cols="1/1" href="${btnProductoEnlace}${btnProductoTagAnalytics}"><span class="a-button__text u-text-nowrap u-display-block">${btnProductoTexto}</span></a>
176 </div>
177 </#if>
178 <#if btnVentaMostrar=="TRUE">
179 <div class="a-button-wrapper " cols="1/1">
180 <a class="a-button a-button--s a-button--green a-button--secondary " cols="1/1" href="${btnVentaEnlace}${btnVentaTagAnalytics}" target="blank"><span class="a-button__text u-text-nowrap u-display-block">${btnVentaTexto}</span></a>
181 </div>
182 </#if>
183 </div>
184 </article>
185 </#if>
186 </#if>
187 </#if>
188 </#list>
189 </div>
190 </div>
191 </div>
192 </#if>
193 </#if>
194 </#list>
195 </div>
196 </div>
197 </div>
198 </div>
199 </div>
200 </div>
201 </div>
202</#if>