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@11220f4b"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: category = assetCategoryService.getAs...  [in template "646115#646149#789919" at line 50, column 22]
	- Reached through: #assign-container  [in template "646115#646149#789919" at line 50, 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         portalVocabularyId = PropsUtil.get("medio.ambiente.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()+"" == portalVocabularyId> 
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,"medio.ambiente.breadcrumb-title")}</span></li> 
46        <li class="breadcrumb-item"><a href="http://www.asturias.es">${languageUtil.get(locale,"medio.ambiente.breadcrumb-asturias")}</a></li> 
47         
48        <#if (categoryId > 0) > 
49 
50            <#assign category = assetCategoryService.getAssetCategory(categoryId) 
51            		 breadCrumbContent = "" 
52            		 categoryAncestors = category.getAncestors()/> 
53                      
54            <#if categoryAncestors?has_content> 
55                <#foreach categoryAncestor in categoryAncestors> 
56                 
57                    <#assign detailPage = "general" 
58							         layoutDetail = layoutLocalService.getFriendlyURLLayout(themeDisplay.getScopeGroupId(), false, "/"+detailPage) /> 
59							            	 		  
60				    		<#-- obtener el contenido de la categoría hija --> 
61		                    <#if assetCategoryPropertyService.getCategoryProperty(categoryAncestor.getCategoryId(),"idContenido") ? has_content > 
62		                    	<#assign contentIdProperty = assetCategoryPropertyService.getCategoryProperty(categoryAncestor.getCategoryId(),"idContenido") 
63		                        		 contentId = contentIdProperty.getValue()/> 
64		                       <#if contentId ? has_content> 
65		                       		<#assign journalArticleSub = journalArticleService.getLatestArticle(groupId,contentId)/> 
66		                                         
67		                            <#if journalArticleSub?has_content> 
68		                                   <#-- obtener el contenido de la categoría actual --> 
69		                                              
70		                                   <#assign document = SAXReaderUtil.read(journalArticleSub.getContentByLocale(locale)) 
71		                                                     paginaDetalleNode =  document.selectSingleNode("/root/dynamic-element[@name='paginaDetalle']/dynamic-content") 
72		                                            /> 
73		                                   <#if paginaDetalleNode?has_content && paginaDetalleNode.getText()?has_content> 
74							        			<#assign  pageDetail = paginaDetalleNode.getText()/> 
75							        			<#if (pageDetail?index_of("@")>0)> 
76							                		<#assign pageDetailPosition = (pageDetail?index_of("@")-1) 
77					                         					 pageDetail = pageDetail[0..pageDetailPosition] 
78					                          					 layoutDetail = layoutLocalService.getLayout(themeDisplay.getScopeGroupId(),false,pageDetail?number) 
79							                      	/> 
80							                      	 
81							                     </#if> 
82											</#if> 
83							                                     
84		                              </#if> 
85		                        </#if> 
86		                    </#if> 
87				    		<#assign categoryUrl = PortletURLFactoryUtil.create(request, "com_liferay_asset_categories_navigation_web_portlet_AssetCategoriesNavigationPortlet", layoutDetail.getPlid(), PortletRequest.RENDER_PHASE)/> 
88				    		${categoryUrl.setParameter("categoryId",categoryAncestor.getCategoryId()+"")} 
89                	 
90                	<#if categoryAncestor.isRootCategory()> 
91                		<#assign breadCrumbContent = "<li class='breadcrumb-item'><a href='/inicio'>"+languageUtil.get(locale,"medio.ambiente.breadcrumb-portal")+" </a> </li>"+breadCrumbContent/> 
92                	<#else> 
93                    	<#assign breadCrumbContent = "<li class='breadcrumb-item'><a href='"+categoryUrl+"'>"+categoryAncestor.getName()+" </a> </li>"+breadCrumbContent/> 
94                    </#if> 
95                 
96                </#foreach> 
97                 
98                ${breadCrumbContent} 
99                 
100            </#if> 
101            <li class="breadcrumb-item active">${category.getTitle(locale)}</li> 
102        </#if> 
103    </ol> 
104</nav> 
105 
106<script type="text/javascript"> 
107	$( document ).ready(function() { 
108		 if(typeof ga !== "undefined") { 
109		 <#if category ? has_content> 
110		 	var pageName = '${category.getName()}'; 
111		 <#else> 
112		 	var pageName = location.pathname; 
113		 </#if> 
114			     ga( 'send', 'pageview', { 
115				    'page': pageName, 
116				    'title': pageName 
117				} ); 
118
119	}); 
120</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@11220f4b"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign currentCategory = assetCatego...  [in template "646115#646149#789937" at line 16, column 10]
----
1<#assign assetCategoriesCustomService = serviceLocator.findService("pa.mtl.assetcategories.customservice.api.AssetCategoriesCustomServiceApi") 
2		 assetCategoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") 
3		 assetCategoryPropertyService =  serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryPropertyLocalService") 
4		 SAXReaderUtil = staticUtil["com.liferay.portal.kernel.xml.SAXReaderUtil"] 
5		 HtmlUtil = staticUtil["com.liferay.portal.kernel.util.HtmlUtil"] 
6		 layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") 
7		 PortletURLFactoryUtil = staticUtil["com.liferay.portal.kernel.portlet.PortletURLFactoryUtil"] 
8		 PortletRequest = staticUtil["javax.portlet.PortletRequest"]     
9		 journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
10		 ParamUtil = staticUtil["com.liferay.portal.kernel.util.ParamUtil"]   
11		 categoryId =ParamUtil.getLong(renderRequest,"categoryId", 0) 
12		 categoryName = ParamUtil.getString(request,"categoryName", "") 
13/> 
14 
15<#if ! currentCategory ? has_content > 
16	 <#assign currentCategory = assetCategoryService.getAssetCategory(categoryId)/> 
17</#if> 
18 
19<#assign childCategories = assetCategoriesCustomService.getChildCategoriesOrdered(categoryId,locale) 
20         showContents = true 
21         forceShowCategories = false 
22/> 
23 
24<#assign structureArticulo = assetCategoriesCustomService.findStructure("ARTICULO", groupId)/> 
25<#assign structureEnlace = assetCategoriesCustomService.findStructure("ENLACE", groupId)/> 
26 
27<#assign sin_grandchildCategories =  0 /> 
28<#assign cat_nivel_1 = 0 /> 
29 
30 
31<#assign TPL_categoria_img_acceso = "173202" /> 
32 
33 
34<#-- Pintar subcategorías --> 
35<#if childCategories?has_content>			 
36	 <div class="card flex-md-row mb-4 box-shadow h-md-250"> 
37        <div class="card-body d-flex flex-column align-items-start listado-categorias">   
38			<#assign hay_contenido_cat = 0 /> 
39			 
40			<#list childCategories as childCategory> 
41				<#assign contentId = (assetCategoryPropertyService.getCategoryProperty(childCategory.getCategoryId(), "idContenido").getValue())!""/> 
42				<#assign journalArticleSub = journalArticleService.getLatestArticle(groupId,contentId)/> 
43				<#if journalArticleSub.getStatus() == 0>	 
44					<#if contentId ? has_content>	 
45						<#assign hay_contenido_cat = hay_contenido_cat + 1 /> 
46		 
47						<#--compruebo si tiene nietas, si no las tiene es que ella misma es nieta --> 
48					 
49						<#if journalArticleSub?has_content>   
50			               	<#assign grandchildCategories = assetCategoriesCustomService.getChildCategoriesOrdered(childCategory.getCategoryId(),locale) /> 
51			               	<#if grandchildCategories?has_content>	 
52			               		<#assign cat_nivel_1 = 1 />                    	 
53			               	</#if> 
54			            </#if> 
55					</#if> 
56				 </#if> 
57			</#list>  
58			 
59			 
60			<h2 class="mb-0">${currentCategory.getTitle(locale)}</h2>      
61			<#assign contentId = (assetCategoryPropertyService.getCategoryProperty(currentCategory.getCategoryId(), "idContenido").getValue())!""/> 
62			<#if contentId ? has_content>	  							 
63                <#assign journalArticleCat = journalArticleService.getLatestArticle(groupId,contentId)/> 
64            </#if> 
65							 
66	  		<#list childCategories as childCategory>	 
67	  			<#assign contentId = (assetCategoryPropertyService.getCategoryProperty(childCategory.getCategoryId(), "idContenido").getValue())!""/> 
68				<#if contentId ? has_content>	  							 
69	                    <#assign journalArticleSub = journalArticleService.getLatestArticle(groupId,contentId)/>	 
70	                    <#if journalArticleSub.getStatus() == 0>	                     
71		                    <#assign document = SAXReaderUtil.read(journalArticleSub.getContentByLocale(locale)) 
72								paginaDetalleNode =  document.selectSingleNode("/root/dynamic-element[@name='paginaDetalle']/dynamic-content")							 
73			                    descripcionNode = document.selectSingleNode("/root/dynamic-element[@name='descripcion']/dynamic-content") 
74		                     	descripcion = HtmlUtil.stripHtml(descripcionNode.getText()) 
75							/> 
76		 
77							<#if paginaDetalleNode?has_content && paginaDetalleNode.getText()?has_content> 
78								<#assign  pageDetail = paginaDetalleNode.getText()/> 
79								<#if (pageDetail?index_of("@")>0)> 
80									<#assign pageDetailPosition = (pageDetail?index_of("@")-1) 
81		 								pageDetail = pageDetail[0..pageDetailPosition] 
82		 								layoutDetail = layoutLocalService.getLayout(themeDisplay.getScopeGroupId(),false,pageDetail?number)		 
83									/> 
84								</#if> 
85							<#else> 
86		                        <#assign detailPage = "general" 
87		                                 layoutDetail = layoutLocalService.getFriendlyURLLayout(themeDisplay.getScopeGroupId(), false, "/"+detailPage) /> 
88							</#if> 
89								 
90							<#assign categoryUrl = PortletURLFactoryUtil.create(request, "com_liferay_asset_categories_navigation_web_portlet_AssetCategoriesNavigationPortlet", layoutDetail.getPlid(), PortletRequest.RENDER_PHASE)/> 
91							${categoryUrl.setParameter("categoryId", childCategory.getCategoryId()+"")}															 
92		 
93		                    <#if journalArticleSub?has_content>   
94		                    	<#assign grandchildCategories = assetCategoriesCustomService.getChildCategoriesOrdered(childCategory.getCategoryId(),locale) 
95								         showContents = true 
96								         forceShowCategories = false 
97								/> 
98								<#if cat_nivel_1 == 1 > 
99									<#if grandchildCategories?has_content>	 
100										 
101										<div class="categoria-asociada"> 
102				                            <div class="row"> 
103				                                <div class="col-md-2 categoria-imagen"> 
104				                                	<#assign contenidoImagen = journalArticleService.getArticleContent(journalArticleSub, TPL_categoria_img_acceso, "VIEW", locale, themeDisplay)/> 
105				                                	${contenidoImagen}		                                	  
106				                                </div> 
107				                                <div class="col-md-10"> 
108				                                    <h3 class="title">${childCategory.getTitle(locale)}</h3> 									 
109													 
110														<#assign contador = 0 /> 
111														<#list grandchildCategories as grandchildCategory> 
112			                                            	<#if assetCategoryPropertyService.getCategoryProperty(grandchildCategory.getCategoryId(),"idContenido") ? has_content > 
113										                        <#assign contentIdProperty = assetCategoryPropertyService.getCategoryProperty(grandchildCategory.getCategoryId(),"idContenido")/> 
114										                        <#assign contentId = contentIdProperty.getValue()/> 
115										                        <#if contentId ? has_content> 
116										                            <#assign journalArticleSubSub = journalArticleService.getLatestArticle(groupId,contentId)/> 
117										                            <#if journalArticleSubSub.getStatus() == 0>		 
118											                            <#assign document = SAXReaderUtil.read(journalArticleSubSub.getContentByLocale(locale)) 
119																			paginaDetalleNode =  document.selectSingleNode("/root/dynamic-element[@name='paginaDetalle']/dynamic-content") 
120																			descripcionNode = document.selectSingleNode("/root/dynamic-element[@name='descripcion']/dynamic-content") 
121																			titleNode = document.selectSingleNode("/root/dynamic-element[@name='texto']/dynamic-content") 
122																			texto = HtmlUtil.stripHtml(titleNode.getText())	 
123				                     										descripcion = HtmlUtil.stripHtml(descripcionNode.getText())													                      
124																		/> 
125																		 
126																		<#if paginaDetalleNode?has_content && paginaDetalleNode.getText()?has_content> 
127																			<#assign  pageDetail = paginaDetalleNode.getText()/> 
128																			<#if (pageDetail?index_of("@")>0)> 
129																				<#assign pageDetailPosition = (pageDetail?index_of("@")-1) 
130													 								pageDetail = pageDetail[0..pageDetailPosition] 
131													 								layoutDetail = layoutLocalService.getLayout(themeDisplay.getScopeGroupId(),false,pageDetail?number)					                          					  
132																				/> 
133																			</#if> 
134																		<#else> 
135										                                    <#assign detailPage = "general" 
136										                                             layoutDetail = layoutLocalService.getFriendlyURLLayout(themeDisplay.getScopeGroupId(), false, "/"+detailPage) /> 
137																		</#if> 
138																		 
139																		<#assign grandchildCategoryUrl = PortletURLFactoryUtil.create(request, "com_liferay_asset_categories_navigation_web_portlet_AssetCategoriesNavigationPortlet", layoutDetail.getPlid(), PortletRequest.RENDER_PHASE)/> 
140																		${grandchildCategoryUrl.setParameter("categoryId", grandchildCategory.getCategoryId()+"")}	 
141										 
142																		<div class="col-md-6 articulo-relacionado"> 
143				                                                        	<h4 class="title">${texto}</h4>                                                    
144				                                                            <div class="summary">${descripcion}</div>                          
145				                                                            <div class="link-more"> 
146										                               			<a class="more-information" title="${languageUtil.get(locale,'medio.ambiente.general.more-info-about')} ${grandchildCategory.getTitle(locale)}" 
147										                               				href="${grandchildCategoryUrl}" >${languageUtil.get(locale,'medio.ambiente.general.more-info')}</a> 
148										                               		</div>	 
149				                                                        </div>  
150				                                                        <#assign contador = contador +1 />  
151				                                                     </#if> 
152																</#if> 
153															</#if> 
154															<#if contador == 4> 
155														    	<#break> 
156														  	</#if> 
157														</#list>  
158														<#-- Cuando hay más de 4 mostramos el enlace --> 
159											        	<#if grandchildCategories?size gt 4> 
160															<div class="col-md-12">	 
161																<div class="link-more"> 
162							                               			<a class="more-information" title="${languageUtil.get(locale,'medio.ambiente.general.more-info-about')} ${childCategory.getTitle(locale)}" 
163							                               				href="${categoryUrl}" >${languageUtil.get(locale,'medio.ambiente.general.more-info-about')} ${childCategory.getTitle(locale)}</a> 
164							                               		</div>	 
165							                               </div> 
166							                            </#if>	 
167													  
168												</div><#-- col-md-10 --> 
169				                            </div><#-- row --> 
170				                        </div><#-- categoria-asociada -->   
171				                    </#if> 			                    
172			                    </#if>             
173		                    </#if> 
174		               </#if> 	                     
175                </#if>   
176        	</#list> 
177 
178			<#-- Estamos en el segundo nivel, cuando la categoría actual es nieta --> 
179        	<#if cat_nivel_1 != 1 >	    
180        		<div class="categoria-asociada"> 
181                    <div class="row"> 
182                        <div class="col-md-2 categoria-imagen">                             
183		                    <#assign contenidoImagen = journalArticleService.getArticleContent(journalArticleCat, TPL_categoria_img_acceso, "VIEW", locale, themeDisplay)/> 
184		                    ${contenidoImagen}		 
185                        </div> 
186                        <div class="col-md-10">								 
187                            <#list childCategories as childCategory>		                            			 
188								<#if assetCategoryPropertyService.getCategoryProperty(childCategory.getCategoryId(),"idContenido") ? has_content > 
189			                        <#assign contentIdProperty = assetCategoryPropertyService.getCategoryProperty(childCategory.getCategoryId(),"idContenido")/> 
190			                        <#assign contentId = contentIdProperty.getValue()/> 
191			                        <#if contentId ? has_content> 
192				                            <#assign journalArticleSubSub = journalArticleService.getLatestArticle(groupId,contentId)/> 
193				                             <#if journalArticleSubSub.getStatus() == 0>	 
194					                            <#assign document = SAXReaderUtil.read(journalArticleSubSub.getContentByLocale(locale)) 
195													paginaDetalleNode =  document.selectSingleNode("/root/dynamic-element[@name='paginaDetalle']/dynamic-content") 
196													descripcionNode = document.selectSingleNode("/root/dynamic-element[@name='descripcion']/dynamic-content") 
197													titleNode = document.selectSingleNode("/root/dynamic-element[@name='texto']/dynamic-content") 
198													texto = HtmlUtil.stripHtml(titleNode.getText())	 
199		     										descripcion = HtmlUtil.stripHtml(descripcionNode.getText())													                      
200												/> 
201												 
202												<#if paginaDetalleNode?has_content && paginaDetalleNode.getText()?has_content> 
203													<#assign  pageDetail = paginaDetalleNode.getText()/> 
204													<#if (pageDetail?index_of("@")>0)> 
205														<#assign pageDetailPosition = (pageDetail?index_of("@")-1) 
206							 								pageDetail = pageDetail[0..pageDetailPosition] 
207							 								layoutDetail = layoutLocalService.getLayout(themeDisplay.getScopeGroupId(),false,pageDetail?number)					                          					  
208														/> 
209													</#if> 
210												<#else> 
211				                                    <#assign detailPage = "general" 
212				                                             layoutDetail = layoutLocalService.getFriendlyURLLayout(themeDisplay.getScopeGroupId(), false, "/"+detailPage) /> 
213												</#if> 
214												 
215												<#assign grandchildCategoryUrl = PortletURLFactoryUtil.create(request, "com_liferay_asset_categories_navigation_web_portlet_AssetCategoriesNavigationPortlet", layoutDetail.getPlid(), PortletRequest.RENDER_PHASE)/> 
216												${grandchildCategoryUrl.setParameter("categoryId", childCategory.getCategoryId()+"")}	 
217				 
218												<div class="col-md-6 articulo-relacionado"> 
219		                                        	<h4 class="title">${texto}</h4>                                                    
220		                                            <div class="summary">${descripcion}</div>                             
221		                                            <div class="link-more"> 
222				                               			<a class="more-information" title="${languageUtil.get(locale,'medio.ambiente.general.more-info-about')} ${childCategory.getTitle(locale)}" 
223				                               				href="${grandchildCategoryUrl}" >${languageUtil.get(locale,'medio.ambiente.general.more-info')}</a> 
224				                               		</div>	 
225		                                        </div>  
226		                                     </#if> 
227									</#if> 
228								</#if>								 
229                            
230							</#list> 
231								 
232						</div><#-- col-md-10 --> 
233                    </div><#-- row --> 
234                </div><#-- categoria-asociada -->    
235     
236	        	 
237	        
238				    		         
239	        </#if>                 
240        </div> 
241    </div>  
242<#-- No hay subcategorías, pintamos los contenidos de la categoría --> 
243<#else>             
244	<#assign TPL_articulo_listado = "173206" />   
245  	<div class="card flex-md-row mb-4 box-shadow h-md-250"> 
246      	<div class="card-body d-flex flex-column align-items-start navegacion-categorias">                      
247          	<h2 class="mb-0">${currentCategory.getTitle(locale)}</h2>   
248          	<#assign contentId = (assetCategoryPropertyService.getCategoryProperty(currentCategory.getCategoryId(), "idContenido").getValue())!""/> 
249			<#if contentId ? has_content>              	 
250                <#assign journalArticleSub = journalArticleService.getLatestArticle(groupId,contentId)/>  
251                	<#if journalArticleSub.getStatus() == 0>	 
252					<div class="categoria-asociada"> 
253						<div class="row">   
254	              			<div class="col-md-2 categoria-imagen">  
255	                            <#assign contenidoImagen = journalArticleService.getArticleContent(journalArticleSub, TPL_categoria_img_acceso, "VIEW", locale, themeDisplay)/> 
256			                    ${contenidoImagen}	                           	             
257	                    	</div> 
258	                    	<div class="col-md-10">	          
259								<#assign journalArticles = assetCategoriesCustomService.findJournalArticlesByCategoryId(currentCategory.getCategoryId(), groupId, structureArticulo, null, "title", "asc", null, null)/>             	 
260								 
261					            <#list journalArticles as journalArticle> 
262					            	<#assign document = SAXReaderUtil.read(journalArticle.getContentByLocale(locale))	 
263					                     currentUrl = renderResponse.createRenderURL() 
264					                     detailPage = "detalle" 
265			                         	 layoutDetail = layoutLocalService.getFriendlyURLLayout(themeDisplay.getScopeGroupId(), false, "/"+detailPage) 
266			                 			 detailUrl = PortletURLFactoryUtil.create(request, "com_liferay_asset_categories_navigation_web_portlet_AssetCategoriesNavigationPortlet", layoutDetail.getPlid(), PortletRequest.RENDER_PHASE) 
267			                 			 titulo = document.selectSingleNode("/root/dynamic-element[@name='titulo']/dynamic-content").getText()			                 			  
268					     			/>	  	      	        
269									${currentUrl.setParameter("categoryId",categoryId+"")} 
270									${detailUrl.setParameter("categoryId",currentCategory.getCategoryId()+"")} 
271									${detailUrl.setParameter("articleId", journalArticle.getArticleId())}																 
272										 
273									<#assign contenidoArticulo = journalArticleService.getArticleContent(journalArticle, TPL_articulo_listado, "VIEW", locale, themeDisplay)/> 
274					      			<div class="col-md-6 ${journalArticle?item_parity}"> 
275					                  	${contenidoArticulo}                                                                      
276					                  	<div class="link-more"> 
277					                  		<a class="more-information" title="${languageUtil.get(locale,'medio.ambiente.general.more-info-about')} ${titulo}" 
278					                  			href="${detailUrl}&articleId=${journalArticle.getArticleId()}&title=${HtmlUtil.escapeURL(titulo)}&redirect=${HtmlUtil.escapeURL(currentUrl)}">${languageUtil.get(locale,'medio.ambiente.general.more-info')}</a> 
279					              		</div> 
280					              	</div> 
281				            	</#list> 
282				            	<#-- ENLACES --> 
283				            	<#assign journalArticlesEnlaces = assetCategoriesCustomService.findJournalArticlesByCategoryId(currentCategory.getCategoryId(), groupId, structureEnlace, null, "title", "asc", null, null)/> 
284				            	<#if journalArticlesEnlaces ? has_content >            	 
285									<div class="col-md-12"> 
286										<h3 class="title">Web</h3> 
287										<ul> 
288								            <#list journalArticlesEnlaces as journalArticleEnlace>	 
289								            	<#assign documentEnlace = SAXReaderUtil.read(journalArticleEnlace.getContentByLocale(locale))	 
290						                 			 titulo = documentEnlace.selectSingleNode("/root/dynamic-element[@name='titulo']/dynamic-content").getText()			 
291						                 			 urlEnlace = "" 
292	                 		 						 nombreEnlace = "" 
293								     			/>	 
294							     				<#if documentEnlace.selectSingleNode("/root/dynamic-element[@name='urlEnlace']/dynamic-content") ? has_content> 
295													<#assign urlEnlaceNode = documentEnlace.selectSingleNode("/root/dynamic-element[@name='urlEnlace']/dynamic-content") 
296											         	 urlEnlace = urlEnlaceNode.getText() 
297											     		/> 
298										      	</#if>	  
299								               	<#if documentEnlace.selectSingleNode("/root/dynamic-element[@name='textoAlternativo']/dynamic-content") ? has_content> 
300													<#assign textoAlternativoNode = documentEnlace.selectSingleNode("/root/dynamic-element[@name='textoAlternativo']/dynamic-content") 
301											         	 textoAlternativo = textoAlternativoNode.getText() 
302											     		/> 
303										      	</#if>	  
304										      				 
305										      	<#assign nombreEnlace = titulo />									       
306											    <#if (textoAlternativo?? && textoAlternativo != "")>										    	 
307													 <#assign nombreEnlace = textoAlternativo /> 
308												</#if>							  	      	        
309												 
310												<li>			 
311													<a class="popup" target="_blank" href="${urlEnlace}"  
312														title="${nombreEnlace}. <@liferay.language key="medio.ambiente.general.external-link" />">${nombreEnlace}</a> 
313												</li>	 
314							            	</#list> 
315						            	</ul> 
316						            </div> 
317						        </#if>				            	         
318				            </div>    
319						</div> 
320					</div> 
321				</#if> 
322			</#if>	 
323        </div> 
324    </div>    	 
325</#if> 

Navegador por categorías personalizado

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.