Navegación por categorías

Se ha producido un error al procesar la plantilla.
Java method "com.sun.proxy.$Proxy75.getAssetCategory(long)" threw an exception when invoked on com.sun.proxy.$Proxy75 object "com.liferay.portlet.asset.service.impl.AssetCategoryLocalServiceImpl@3f95b3a1"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: category = assetCategoryService.getAs...  [in template "30812#30846#40986" at line 49, column 22]
	- Reached through: #assign-container  [in template "30812#30846#40986" at line 49, column 13]
----
1<#assign ParamUtil = staticUtil["com.liferay.portal.kernel.util.ParamUtil"] 
2         assetCategoryService =  serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") 
3         categoryId =ParamUtil.getLong(renderRequest,"categoryId", 0) 
4         maxLoop = 100 
5         PropsUtil = staticUtil["com.liferay.portal.kernel.util.PropsUtil"] 
6         justiciaVocabularyId = PropsUtil.get("justicia.vocabulary.id") 
7         layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") 
8         assetCategoryPropertyService =  serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryPropertyLocalService") 
9         journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
10         SAXReaderUtil = staticUtil["com.liferay.portal.kernel.xml.SAXReaderUtil"] 
11         PortletURLFactoryUtil = staticUtil["com.liferay.portal.kernel.portlet.PortletURLFactoryUtil"] 
12         PortletRequest = staticUtil["javax.portlet.PortletRequest"] 
13/> 
14 
15<#if (categoryId <= 0) > 
16     
17    <#if entries?has_content> 
18	    <#foreach vocabulary in entries> 
19	    	<#if vocabulary.getVocabularyId()+"" == justiciaVocabularyId> 
20	    	    <#foreach aCategory in vocabulary.getCategories()> 
21	    	        <#assign aCategory = aCategory/> 
22	    	        <#break> 
23	    	    </#foreach> 
24	    	    <#list 1..maxLoop as i> 
25	    	        <#list 1..maxLoop as j> 
26	    	            <#if aCategory.getParentCategory()?has_content> 
27	    	                <#assign aCategory = aCategory.getParentCategory()/> 
28	    	            <#else> 
29	        	            <#assign categoryId = aCategory.getCategoryId()/> 
30	                   </#if>   
31	                   <#break> 
32	    	        </#list> 
33	    	        <#if (categoryId > 0) > 
34	    	            <#break> 
35	    	        </#if> 
36	    	    </#list> 
37	    	</#if> 
38	    </#foreach> 
39	 </#if> 
40     
41</#if> 
42 
43<nav aria-label="breadcrumb"> 
44    <ol class="breadcrumb"> 
45        <li class="breadcrumb-title"><span>${languageUtil.get(locale,"breadcrumb-title")}</span></li> 
46        <li class="breadcrumb-item"><a href="http://www.asturias.es">${languageUtil.get(locale,"breadcrumb-asturias")}</a></li> 
47        <#if (categoryId > 0) > 
48 
49            <#assign category = assetCategoryService.getAssetCategory(categoryId) 
50            		 breadCrumbContent = "" 
51            		 categoryAncestors = category.getAncestors()/> 
52                      
53            <#if categoryAncestors?has_content> 
54                <#foreach categoryAncestor in categoryAncestors> 
55                 
56                    <#assign detailPage = "general" 
57							         layoutDetail = layoutLocalService.getFriendlyURLLayout(themeDisplay.getScopeGroupId(), false, "/"+detailPage) /> 
58							            	 		  
59				    		<#-- obtener el contenido de la categoría hija --> 
60		                    <#if assetCategoryPropertyService.getCategoryProperty(categoryAncestor.getCategoryId(),"idContenido") ? has_content > 
61		                    	<#assign contentIdProperty = assetCategoryPropertyService.getCategoryProperty(categoryAncestor.getCategoryId(),"idContenido") 
62		                        		 contentId = contentIdProperty.getValue()/> 
63		                       <#if contentId ? has_content> 
64		                       		<#assign journalArticleSub = journalArticleService.getLatestArticle(groupId,contentId)/> 
65		                                         
66		                            <#if journalArticleSub?has_content> 
67		                                   <#-- obtener el contenido de la categoría actual --> 
68		                                              
69		                                   <#assign document = SAXReaderUtil.read(journalArticleSub.getContentByLocale(locale)) 
70		                                                     paginaDetalleNode =  document.selectSingleNode("/root/dynamic-element[@name='paginaDetalle']/dynamic-content") 
71		                                            /> 
72		                                   <#if paginaDetalleNode?has_content && paginaDetalleNode.getText()?has_content> 
73							        			<#assign  pageDetail = paginaDetalleNode.getText()/> 
74							        			<#if (pageDetail?index_of("@")>0)> 
75							                		<#assign pageDetailPosition = (pageDetail?index_of("@")-1) 
76					                         					 pageDetail = pageDetail[0..pageDetailPosition] 
77					                          					 layoutDetail = layoutLocalService.getLayout(themeDisplay.getScopeGroupId(),false,pageDetail?number) 
78							                      	/> 
79							                      	 
80							                     </#if> 
81											</#if> 
82							                                     
83		                              </#if> 
84		                        </#if> 
85		                    </#if> 
86				    		<#assign categoryUrl = PortletURLFactoryUtil.create(request, "com_liferay_asset_categories_navigation_web_portlet_AssetCategoriesNavigationPortlet", layoutDetail.getPlid(), PortletRequest.RENDER_PHASE)/> 
87				    		${categoryUrl.setParameter("categoryId",categoryAncestor.getCategoryId()+"")} 
88                	 
89                	<#if categoryAncestor.isRootCategory()> 
90                		<#assign breadCrumbContent = "<li class='breadcrumb-item'><a href='/inicio'>"+categoryAncestor.getName()+" </a> </li>"+breadCrumbContent/> 
91                	<#else> 
92                    	<#assign breadCrumbContent = "<li class='breadcrumb-item'><a href='"+categoryUrl+"'>"+categoryAncestor.getName()+" </a> </li>"+breadCrumbContent/> 
93                    </#if> 
94                 
95                </#foreach> 
96                 
97                ${breadCrumbContent} 
98                 
99            </#if> 
100            <li class="breadcrumb-item active">${category.getTitle(locale)}</li> 
101        </#if> 
102    </ol> 
103</nav> 
104 
105<script type="text/javascript"> 
106	$( document ).ready(function() { 
107		 if(typeof ga !== "undefined") { 
108		 <#if category ? has_content> 
109		 	var pageName = '${category.getName()}'; 
110		 <#else> 
111		 	var pageName = location.pathname; 
112		 </#if> 
113			     ga( 'send', 'pageview', { 
114				    'page': pageName, 
115				    'title': pageName 
116				} ); 
117
118	}); 
119</script> 

Navegación por categorías

Se ha producido un error al procesar la plantilla.
Java method "com.sun.proxy.$Proxy75.getAssetCategory(long)" threw an exception when invoked on com.sun.proxy.$Proxy75 object "com.liferay.portlet.asset.service.impl.AssetCategoryLocalServiceImpl@3f95b3a1"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: currentCategory = assetCategoryServic...  [in template "30812#30846#40995" at line 46, column 10]
	- Reached through: #assign-container  [in template "30812#30846#40995" at line 46, column 1]
----
1<#assign ParamUtil = staticUtil["com.liferay.portal.kernel.util.ParamUtil"] 
2         SAXReaderUtil = staticUtil["com.liferay.portal.kernel.xml.SAXReaderUtil"] 
3         PortletURLFactoryUtil = staticUtil["com.liferay.portal.kernel.portlet.PortletURLFactoryUtil"] 
4         PropsUtil = staticUtil["com.liferay.portal.kernel.util.PropsUtil"] 
5         PortletRequest = staticUtil["javax.portlet.PortletRequest"] 
6         assetCategoryService =  serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") 
7         assetCategoryPropertyService =  serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryPropertyLocalService") 
8         assetEntryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
9         journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
10         layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") 
11         categoryId =ParamUtil.getLong(renderRequest,"categoryId", 0) 
12         assetCategoriesCustomService = serviceLocator.findService("pa.mtl.assetcategories.customservice.api.AssetCategoriesCustomServiceApi") 
13         HtmlUtil = staticUtil["com.liferay.portal.kernel.util.HtmlUtil"] 
14         maxLoop = 100 
15/> 
16 
17<#if ! themeDisplay ? has_content>         
18    <#assign liferay_theme = PortletJspTagLibs["/META-INF/liferay-theme.tld"] /> 
19    <@liferay_theme["defineObjects"] /> 
20</#if> 
21 
22 
23<#-- inicialización de categoría: si no hay seleccionada se coge la primera de la jerarquía --> 
24<#if (categoryId <= 0) > 
25     
26    <#if entries?has_content> 
27        <#foreach vocabulary in entries> 
28         
29            <#foreach aCategory in vocabulary.getCategories()> 
30                <#list 1..maxLoop as i> 
31                    <#if aCategory.getParentCategory()?has_content> 
32                        <#assign aCategory = aCategory.getParentCategory()/> 
33                    <#else> 
34                        <#assign categoryId = aCategory.getCategoryId()/> 
35                        <#break>  
36                   </#if>   
37                </#list> 
38            </#foreach> 
39             
40        </#foreach> 
41    </#if> 
42     
43</#if> 
44 
45<#-- obtener categoría actual y subcategorías --> 
46<#assign currentCategory = assetCategoryService.getAssetCategory(categoryId) 
47         childCategories = assetCategoriesCustomService.getChildCategoriesOrdered(categoryId,locale) 
48         showContents = true 
49         forceShowCategories = false/> 
50          
51 <#if childCategories?has_content> 
52 	 
53 	<#foreach childCategory in childCategories> 
54    	<#assign childCategoriesSub =assetCategoriesCustomService.getChildCategoriesOrdered(childCategory.getCategoryId(),locale)/> 
55                                 
56        <#if (childCategoriesSub ? has_content)> 
57        	<#assign showContents = false/> 
58        	<#break/> 
59        </#if> 
60   </#foreach> 
61 </#if> 
62  
63 <#if assetCategoryPropertyService.getCategoryProperty(currentCategory.getCategoryId(),"idContenido")? has_content > 
64 	<#assign contentIdProperty = assetCategoryPropertyService.getCategoryProperty(currentCategory.getCategoryId(),"idContenido")/> 
65	<#assign contentId = contentIdProperty.getValue()/> 
66	<#if contentId ? has_content> 
67		<#assign journalArticle = journalArticleService.getLatestArticle(groupId,contentId) 
68				 document = SAXReaderUtil.read(journalArticle.getContentByLocale(locale))/> 
69		<#if  document.selectSingleNode("/root/dynamic-element[@name='mostrarSubcategorias']/dynamic-content") ? has_content> 
70			<#assign mostrarSubcategoriasNode = document.selectSingleNode("/root/dynamic-element[@name='mostrarSubcategorias']/dynamic-content") 
71		         	 mostrarSubcategoriasHome = mostrarSubcategoriasNode.getText() 
72		     />	 
73		     <#if mostrarSubcategoriasHome == "true"> 
74		     	<#assign showContents = false 
75		     			 forceShowCategories = true/> 
76		     </#if> 
77		</#if>	                     
78	</#if> 
79</#if> 
80 
81 
82<#if showContents> 
83	 <#if childCategories?has_content> 
84		<#-- pintar contenidos de las subcategorías --> 
85		<div class="categorias-con-contenidos"> 
86			<div class="card flex-md-row mb-4 box-shadow h-md-250"> 
87	        	<div class="card-body d-flex flex-column align-items-start">   
88					<h2 class="mb-0">${currentCategory.getTitle(locale)}</h2> 
89										 
90					<#if childCategories?has_content> 
91				    	<#foreach childCategory in childCategories> 
92				    		<div class="categoria-asociada"> 
93								<div class="col-md-12">	 
94						        	<h3 class="title">${childCategory.getTitle(locale)}</h3> 
95						        	<div class="row col-md-12"> 
96							            <#assign journalArticles = assetCategoriesCustomService.findJournalArticlesByCategoryId(childCategory.getCategoryId(), groupId, 0, null, "title", "asc", null, null)/>             	 
97							             
98							            <#list journalArticles as journalArticle> 
99							            	<#assign document = SAXReaderUtil.read(journalArticle.getContentByLocale(locale)) 
100								                     titleNode = document.selectSingleNode("/root/dynamic-element[@name='titulo']/dynamic-content") 
101								                     title = titleNode.getText() 
102								                     descriptionNode = document.selectSingleNode("/root/dynamic-element[@name='resumen']/dynamic-content") 
103								                     description = HtmlUtil.stripHtml(descriptionNode.getText()) 
104								                     currentUrl = renderResponse.createRenderURL() 
105								                     detailPage = "detalle" 
106						                         	 layoutDetail = layoutLocalService.getFriendlyURLLayout(themeDisplay.getScopeGroupId(), false, "/"+detailPage) 
107						                 			 detailUrl = PortletURLFactoryUtil.create(request, "com_liferay_asset_categories_navigation_web_portlet_AssetCategoriesNavigationPortlet", layoutDetail.getPlid(), PortletRequest.RENDER_PHASE) 
108						                 			/> 
109								                      
110								                     ${currentUrl.setParameter("categoryId",categoryId+"")} 
111								                     ${detailUrl.setParameter("categoryId",childCategory.getCategoryId()+"")} 
112								                     ${detailUrl.setParameter("articleId", journalArticle.getArticleId())} 
113								                      
114								             
115								            <div class="col-md-6 articulo-relacionado"> 
116								            	<h4 class="title">${title}</h4> 
117								            	<div class="summary"> 
118								            		<#if (description?length > 300)> 
119														<div class="summary-buscador">${description[0..300] + "..."}</div> 
120													<#else> 
121														<div class="summary-buscador">${description}</div> 
122													</#if>	 
123								            	</div> 
124								            	<div class="link-more"> 
125								            		<a class="more-information" title="${languageUtil.get(locale,'general.more-info-about')} ${title}" href="${detailUrl}&articleId=${journalArticle.getArticleId()}&title=${HtmlUtil.escapeURL(title)}&redirect=${HtmlUtil.escapeURL(currentUrl)}">${languageUtil.get(locale,"general.more-info")}</a> 
126												</div> 
127								            </div>       
128								                      
129							            </#list>    
130							        </div> <!-- row col-md-12 -->               
131						        </div> <!--col-md-12-->	 
132							</div><!-- categoria-asociada -->                      
133				        </#foreach> 
134				    </#if>  
135				     
136				     
137				     
138	                        <#-- pintar contenidos de la categoría seleccionada --> 
139	                         
140	                        <#assign journalArticles = assetCategoriesCustomService.findJournalArticlesByCategoryId(categoryId, groupId, 0, null, "title", "asc", null, null)/>             	 
141												             
142							<#if journalArticles ? has_content>					             
143								<div class="categoria-asociada"> 
144									<div class="col-md-12">	 
145										<h3 class="title">${languageUtil.get(locale,'general.other-info')}</h3> 
146											<div class="row col-md-12"> 
147												<#list journalArticles as journalArticle> 
148												 	<#assign document = SAXReaderUtil.read(journalArticle.getContentByLocale(locale)) 
149													         titleNode = document.selectSingleNode("/root/dynamic-element[@name='titulo']/dynamic-content") 
150													         title = titleNode.getText() 
151													         descriptionNode = document.selectSingleNode("/root/dynamic-element[@name='resumen']/dynamic-content") 
152													         description = HtmlUtil.stripHtml(descriptionNode.getText()) 
153													         currentUrl = renderResponse.createRenderURL() 
154													         detailPage = "detalle" 
155											              	 layoutDetail = layoutLocalService.getFriendlyURLLayout(themeDisplay.getScopeGroupId(), false, "/"+detailPage) 
156											        		 detailUrl = PortletURLFactoryUtil.create(request, "com_liferay_asset_categories_navigation_web_portlet_AssetCategoriesNavigationPortlet", layoutDetail.getPlid(), PortletRequest.RENDER_PHASE) 
157											        		/> 
158													                      
159													        ${currentUrl.setParameter("categoryId",categoryId+"")} 
160													        ${detailUrl.setParameter("categoryId",categoryId+"")} 
161													        ${detailUrl.setParameter("articleId", journalArticle.getArticleId())} 
162													                      
163													             
164													         <div class="col-md-6 articulo-relacionado"> 
165													           	<h4 class="title">${title}</h4> 
166													            <div class="summary"> 
167													            		<#if (description?length > 300)> 
168																			<div class="summary-buscador">${description[0..300] + "..."}</div> 
169																		<#else> 
170																			<div class="summary-buscador">${description}</div> 
171																		</#if>	 
172													            </div> 
173													            	<div class="link-more"> 
174													            		<a class="more-information" title="${languageUtil.get(locale,'general.more-info-about')} ${title}" href="${detailUrl}&articleId=${journalArticle.getArticleId()}&title=${HtmlUtil.escapeURL(title)}&redirect=${HtmlUtil.escapeURL(currentUrl)}">${languageUtil.get(locale,"general.more-info")}</a> 
175																	</div> 
176													          </div>       
177													                      
178												   </#list>    
179											</div> <!-- row col-md-12 -->               
180									 </div> <!--col-md-12-->	 
181								</div><!-- categoria-asociada -->   
182	                      </#if> 
183				     
184				      					 
185				</div> 
186			</div> 
187		</div><!-- categorias-con-contenidos --> 
188	<#else> 
189		<#-- pintar directamente los contenidos de la categoría  --> 
190		 
191			<div class="card flex-md-row mb-4 box-shadow h-md-250"> 
192	        	<div class="card-body d-flex flex-column align-items-start">   
193					<h2 class="mb-0">${currentCategory.getTitle(locale)}</h2> 
194					<div class="outer"> 
195		            <div class="row content-two-columns"> 
196					 
197						<#assign journalArticles = assetCategoriesCustomService.findJournalArticlesByCategoryId(currentCategory.getCategoryId(), groupId, 0, null, "title", "asc", null, null)/>             	 
198						 
199						<#list journalArticles as journalArticle> 
200							<#assign document = SAXReaderUtil.read(journalArticle.getContentByLocale(locale)) 
201							         titleNode = document.selectSingleNode("/root/dynamic-element[@name='titulo']/dynamic-content") 
202							         title = titleNode.getText() 
203							         descriptionNode = document.selectSingleNode("/root/dynamic-element[@name='resumen']/dynamic-content") 
204							         description = HtmlUtil.stripHtml(descriptionNode.getText()) 
205							         currentUrl = renderResponse.createRenderURL() 
206							         detailPage = "detalle" 
207						             layoutDetail = layoutLocalService.getFriendlyURLLayout(themeDisplay.getScopeGroupId(), false, "/"+detailPage) 
208						             detailUrl = PortletURLFactoryUtil.create(request, "com_liferay_asset_categories_navigation_web_portlet_AssetCategoriesNavigationPortlet", layoutDetail.getPlid(), PortletRequest.RENDER_PHASE) 
209						             /> 
210							          
211							         ${currentUrl.setParameter("categoryId",currentCategory.getCategoryId()+"")} 
212							         ${detailUrl.setParameter("categoryId",currentCategory.getCategoryId()+"")} 
213							         ${detailUrl.setParameter("articleId", journalArticle.getArticleId())} 
214							          
215							 
216							<div class="col-md-6 articulo-relacionado"> 
217								<h4 class="title">${title}</h4> 
218								<div class="summary"> 
219									<#if (description?length > 300)> 
220										<div class="summary-buscador">${description[0..300] + "..."}</div> 
221									<#else> 
222										<div class="summary-buscador">${description}</div> 
223									</#if>	 
224								</div> 
225								<div class="link-more"> 
226									<a class="more-information" title="${languageUtil.get(locale,'general.more-info-about')} ${title}" href="${detailUrl}&articleId=${journalArticle.getArticleId()}&title=${HtmlUtil.escapeURL(title)}&redirect=${HtmlUtil.escapeURL(currentUrl)}">${languageUtil.get(locale,"general.more-info")}</a> 
227								</div> 
228							</div>       
229								                      
230						</#list>    
231					</div> <!-- row col-md-12 -->     
232					</div> <!-- outer -->    
233				</div> 
234			 
235		</div> 
236	</#if> 
237	 
238<#else> 
239	<#-- pintar las subcategorías --> 
240	<div class="row contenedor-categorias"> 
241	    <#-- pintar detalle de categoría con estilo 2 columnas -->    
242	        <div class="col-md-12"> 
243	            <div class="card flex-md-row mb-4 box-shadow h-md-250"> 
244	                <div class="card-body d-flex flex-column align-items-start">                      
245	                    <h2 class="mb-0">${currentCategory.getTitle(locale)}</h2>   
246	                     
247	                    <div class="outer"> 
248		                    <div class="row content-two-columns"> 
249		                       	 
250	                        <#if childCategories?has_content> 
251	                            <#foreach childCategory in childCategories> 
252	                                <#assign childCategoriesSub =assetCategoriesCustomService.getChildCategoriesOrdered(childCategory.getCategoryId(),locale)/> 
253	                                 
254	                                <#if (childCategoriesSub ? has_content || forceShowCategories)> 
255	                                	<#-- se pintan las subcategorías --> 
256	                                	 
257	                                	 <#-- obtener el contenido de la categoría hija --> 
258		                                <#if assetCategoryPropertyService.getCategoryProperty(childCategory.getCategoryId(),"idContenido") ? has_content > 
259		                                    <#assign contentIdProperty = assetCategoryPropertyService.getCategoryProperty(childCategory.getCategoryId(),"idContenido")/> 
260		                                    <#assign contentId = contentIdProperty.getValue()/> 
261		                                    <#if contentId ? has_content> 
262		                                        <#assign journalArticleSub = journalArticleService.getLatestArticle(groupId,contentId)/> 
263		                                         
264		                                        <#if journalArticleSub?has_content> 
265		                                            <#-- obtener el contenido de la categoría actual --> 
266		                                            <#assign childCategoryContent = journalArticleService.getArticleContent(journalArticleSub, "","VIEW", locale, themeDisplay)/> 
267		                                             
268		                                            <#assign document = SAXReaderUtil.read(journalArticleSub.getContentByLocale(locale)) 
269		                                                     pageDetailNode =  document.selectSingleNode("/root/dynamic-element[@name='paginaDetalle']/dynamic-content") 
270		                                            /> 
271		                                            <#assign    ficheroEnlaceArticleContent=""/> 
272		                                            <#if document.selectSingleNode("/root/dynamic-element[@name='ficheroEnlace']/dynamic-content")?has_content> 
273		                                                <#assign    ficheroEnlaceNode = document.selectSingleNode("/root/dynamic-element[@name='ficheroEnlace']/dynamic-content")/> 
274		                                                <#if ficheroEnlaceNode.getText() ? has_content> 
275		                                                    <#assign  ficheroEnlaceJSONObject = jsonFactoryUtil.createJSONObject(ficheroEnlaceNode.getText()) 
276		                                                	/> 
277		                                                 
278		                                                	<#if  ficheroEnlaceJSONObject.get("classPK")?has_content> 
279		                                                    	<#assign ficheroEnlaceClassPk = ficheroEnlaceJSONObject.get("classPK") 
280		                                                            ficheroEnlaceArticle =  journalArticleService.fetchLatestArticle(ficheroEnlaceClassPk?number) 
281		                                                            ficheroEnlaceArticleContent = journalArticleService.getArticleContent(ficheroEnlaceArticle, "","VIEW", locale, themeDisplay) 
282		                                                        /> 
283		                                               		 </#if> 
284		            									</#if> 
285		                                            </#if> 
286		                                        </#if> 
287		                                    </#if> 
288		                                 </#if> 
289		                                  
290		                                 <#-- si la categoría hija tiene hijas enlaza a la misma página --> 
291		                                 <#if (childCategoriesSub ? has_content) && (! (pageDetailNode?has_content && pageDetailNode.getText()?has_content))> 
292		                                    <#assign detailUrl = renderResponse.createRenderURL() 
293		                                             layoutDetail = "" 
294		                                    /> 
295		                                    ${detailUrl.setParameter("categoryId",childCategory.getCategoryId()+"")}                                           
296		                                     
297		                                 <#elseif pageDetailNode?has_content && pageDetailNode.getText()?has_content> 
298		                                    <#-- si no tiene hijas enlazará con una página de detalle especificada en el contenido --> 
299		                                        <#assign  pageDetail = pageDetailNode.getText()/> 
300		                                        <#if (pageDetail?index_of("@")>0)> 
301		                                            <#assign pageDetailPosition = (pageDetail?index_of("@")-1) 
302		                                                    pageDetail = pageDetail[0..pageDetailPosition] 
303		                                                    layoutDetail = layoutLocalService.getLayout(themeDisplay.getScopeGroupId(),false,pageDetail?number) 
304		                                             /> 
305		                                         </#if> 
306		                                  <#else> 
307		                                        <#assign detailPage = "general" 
308		                                                 layoutDetail = layoutLocalService.getFriendlyURLLayout(themeDisplay.getScopeGroupId(), false, "/"+detailPage) /> 
309		                                   </#if> 
310		                                     
311		                                    <#if layoutDetail ? has_content> 
312		                                        <#assign detailUrl = PortletURLFactoryUtil.create(request, "com_liferay_asset_categories_navigation_web_portlet_AssetCategoriesNavigationPortlet", layoutDetail.getPlid(), PortletRequest.RENDER_PHASE)  /> 
313		                                    <#else> 
314		                                        <#assign detailUrl = renderResponse.createRenderURL()> 
315		                                    </#if> 
316		                                     
317		                                    ${detailUrl.setParameter("categoryId",childCategory.getCategoryId()+"")} 
318		                                 
319		                                <#-- pintar el detalle de la categoría --> 
320		                                <#if childCategoryContent?has_content> 
321		                                     
322		                                    <#-- pintar detalle de categoría con estilo 2 columnas -->    
323		                                        <div class="col-md-6"> 
324		                                            ${childCategoryContent}   
325		                                             
326		                                             <#if ficheroEnlaceArticleContent?has_content> 
327		                                                <div class="fichero-enlace-categoria"> 
328		                                                    ${ficheroEnlaceArticleContent} 
329		                                                </div> 
330		                                            <#else>                                         
331		                                                <a class="more-information" title="${languageUtil.get(locale,'general.more-info-about')} ${childCategory.getTitle(locale)}" href="${detailUrl}"><@liferay.language key="general.more-info" /></a> 
332		                                            </#if> 
333		                                             
334		                                        </div>   
335	                                    </#if> 
336	                                 
337	                                </#if> 
338	                                 
339	                            </#foreach> 
340	                        </#if>    
341	                         
342	                         
343	                        <#-- pintar contenidos de la categoría seleccionada --> 
344	                         
345	                        <#assign journalArticles = assetCategoriesCustomService.findJournalArticlesByCategoryId(categoryId, groupId, 0, null, "title", "asc", null, null)/>             	 
346												             
347							<#if journalArticles ? has_content>					             
348								<div class="categoria-asociada"> 
349									<div class="col-md-12">	 
350										<h3 class="title">${languageUtil.get(locale,'general.other-info')}</h3> 
351											<div class="row col-md-12"> 
352												<#list journalArticles as journalArticle> 
353												 	<#assign document = SAXReaderUtil.read(journalArticle.getContentByLocale(locale)) 
354													         titleNode = document.selectSingleNode("/root/dynamic-element[@name='titulo']/dynamic-content") 
355													         title = titleNode.getText() 
356													         descriptionNode = document.selectSingleNode("/root/dynamic-element[@name='resumen']/dynamic-content") 
357													         description = HtmlUtil.stripHtml(descriptionNode.getText()) 
358													         currentUrl = renderResponse.createRenderURL() 
359													         detailPage = "detalle" 
360											              	 layoutDetail = layoutLocalService.getFriendlyURLLayout(themeDisplay.getScopeGroupId(), false, "/"+detailPage) 
361											        		 detailUrl = PortletURLFactoryUtil.create(request, "com_liferay_asset_categories_navigation_web_portlet_AssetCategoriesNavigationPortlet", layoutDetail.getPlid(), PortletRequest.RENDER_PHASE) 
362											        		/> 
363													                      
364													        ${currentUrl.setParameter("categoryId",categoryId+"")} 
365													        ${detailUrl.setParameter("categoryId",categoryId+"")} 
366													        ${detailUrl.setParameter("articleId", journalArticle.getArticleId())} 
367													                      
368													             
369													         <div class="col-md-6 articulo-relacionado"> 
370													           	<h4 class="title">${title}</h4> 
371													            <div class="summary"> 
372													            		<#if (description?length > 300)> 
373																			<div class="summary-buscador">${description[0..300] + "..."}</div> 
374																		<#else> 
375																			<div class="summary-buscador">${description}</div> 
376																		</#if>	 
377													            </div> 
378													            	<div class="link-more"> 
379													            		<a class="more-information" title="${languageUtil.get(locale,'general.more-info-about')} ${title}" href="${detailUrl}&articleId=${journalArticle.getArticleId()}&title=${HtmlUtil.escapeURL(title)}&redirect=${HtmlUtil.escapeURL(currentUrl)}">${languageUtil.get(locale,"general.more-info")}</a> 
380																	</div> 
381													          </div>       
382													                      
383												   </#list>    
384											</div> <!-- row col-md-12 -->               
385									 </div> <!--col-md-12-->	 
386								</div><!-- categoria-asociada -->   
387	                      </#if> 
388	                       
389	                   </div>          
390	                </div>            
391	            </div><!-- card-body -->                  
392	        </div><!-- card --> 
393	    </div><!-- col-md-12 --> 
394       
395	</div><!-- row --> 
396 
397</#if> 

Publicador de contenidos

Publicador de contenidos no está disponible temporalmente.

Publicador de contenidos

Publicador de contenidos no está disponible temporalmente.

Publicador de contenidos

Publicador de contenidos no está disponible temporalmente.

Publicador de contenidos

Publicador de contenidos no está disponible temporalmente.

Publicador de contenidos

Publicador de contenidos no está disponible temporalmente.

Publicador de contenidos

Publicador de contenidos no está disponible temporalmente.