Navegación por categorías

Se ha producido un error al procesar la plantilla.
Java method "com.sun.proxy.$Proxy66.getAssetCategory(long)" threw an exception when invoked on com.sun.proxy.$Proxy66 object "com.liferay.asset.categories.internal.service.AssetEntryAssetCategoryRelAssetCategoryLocalServiceWrapper@70342fc9"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: category = assetCategoryService.getAs...  [in template "217051#217099#573763" at line 49, column 22]
	- Reached through: #assign-container  [in template "217051#217099#573763" at line 49, column 13]
----
1<#assign assetCategoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") 
2		 assetCategoryPropertyService =  serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") 
3		 SAXReaderUtil = staticUtil["com.liferay.portal.kernel.xml.SAXReaderUtil"] 
4		 HtmlUtil = staticUtil["com.liferay.portal.kernel.util.HtmlUtil"] 
5		 layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") 
6		 PortletURLFactoryUtil = staticUtil["com.liferay.portal.kernel.portlet.PortletURLFactoryUtil"] 
7		 PortletRequest = staticUtil["javax.portlet.PortletRequest"]     
8		 journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")   
9		 ParamUtil = staticUtil["com.liferay.portal.kernel.util.ParamUtil"]              
10         categoryId = ParamUtil.getLong(request,"categoryId", 0) 
11         title =  ParamUtil.getString(request,"title", "") 
12         maxLoop = 100          
13         imageId = ParamUtil.getString(request,"imageId","")          
14/> 
15 
16<#if (categoryId <= 0) > 
17	<#assign categoryId = ParamUtil.getLong(renderRequest,"categoryId", 0)/> 
18</#if> 
19 
20<#if (categoryId <= 0) > 
21    <#if entries?has_content> 
22		<#foreach aCategory in entries?first.getCategories()> 
23			<#assign aCategory = aCategory/> 
24			<#break> 
25		</#foreach> 
26		<#list 1..maxLoop as i> 
27			<#list 1..maxLoop as j> 
28				<#if aCategory.getParentCategory()?has_content> 
29					<#assign aCategory = aCategory.getParentCategory()/> 
30				<#else> 
31					<#assign categoryId = aCategory.getCategoryId()/> 
32			   </#if>   
33			   <#break> 
34			</#list> 
35			<#if (categoryId > 0) > 
36				<#break> 
37			</#if> 
38		</#list> 
39	 </#if> 
40</#if> 
41 
42 
43<nav aria-label="breadcrumb"> 
44    <ol class="breadcrumb"> 
45       <li class="breadcrumb-title"><span>${languageUtil.get(locale,"webasturias.breadcrumb-title")}</span></li> 
46       <#--<li class="breadcrumb-item"><a href="/">${languageUtil.get(locale,"webasturias.breadcrumb-asturias")}</a></li>-->         
47        <#if (categoryId > 0) > 
48 
49            <#assign category = assetCategoryService.getAssetCategory(categoryId) 
50                     categoryAncestors = category.getAncestors() 
51                     breadCrumbContent = ""/> 
52                      
53            <#if categoryAncestors?has_content> 
54                <#foreach categoryAncestor in categoryAncestors> 
55                	 
56                	<#assign hideCategory = false/> 
57                	 
58                	<#-- obtener el contenido de la categoría hija --> 
59                	<#assign contentId = (assetCategoryPropertyService.fetchCategoryProperty(categoryAncestor.getCategoryId(), "idContenido").getValue())!""/> 
60					<#if contentId ? has_content>			         
61		            	<#assign journalArticleSub = journalArticleService.getLatestArticle(groupId,contentId)/> 
62		        		 
63		        		<#if journalArticleSub?has_content> 
64			        		<#-- obtener el contenido de la categoría actual --> 
65			                <#assign document = SAXReaderUtil.read(journalArticleSub.getContentByLocale(locale)) 
66                    		 	pageDetailNode =  document.selectSingleNode("/root/dynamic-element[@name='paginaDetalle']/dynamic-content") 
67                    		 	/> 
68                    		 <#if document.selectSingleNode("/root/dynamic-element[@name='visibleMigas']/dynamic-content")?has_content> 
69                    		 	<#assign visibleMigasNode =  document.selectSingleNode("/root/dynamic-element[@name='visibleMigas']/dynamic-content")  
70                    		 			 visibleMigas =  visibleMigasNode.getText() 
71                    		 			 hideCategory = visibleMigas != "1"/> 
72                    		 </#if> 
73			        	</#if>		 	      		    	  
74			    	  
75				    	 <#if pageDetailNode?has_content && pageDetailNode.getText()?has_content> 
76			        		<#assign  pageDetail = pageDetailNode.getText()/> 
77			        		<#if (pageDetail?index_of("@")>0)> 
78		                		<#assign pageDetailPosition = (pageDetail?index_of("@")-1) 
79		                         	pageDetail = pageDetail[0..pageDetailPosition] 
80		                          	layoutDetail = layoutLocalService.getLayout(themeDisplay.getScopeGroupId(),false,pageDetail?number) 
81		                      	/> 
82		                	</#if> 
83			            <#else> 
84			            	<#assign detailPage = "general" 
85			            	 		 layoutDetail = layoutLocalService.getFriendlyURLLayout(themeDisplay.getScopeGroupId(), false, "/"+detailPage) /> 
86			            </#if> 
87			             
88			            <#assign categoryUrl = PortletURLFactoryUtil.create(request, "com_liferay_asset_categories_navigation_web_portlet_AssetCategoriesNavigationPortlet", layoutDetail.getPlid(), PortletRequest.RENDER_PHASE)    /> 
89	                    ${categoryUrl.setParameter("categoryId",categoryAncestor.getCategoryId()+"")} 
90	                 
91	                	<#if !(hideCategory?has_content && hideCategory)> 
92	                		<#if categoryAncestor.isRootCategory()> 
93		                		<#assign breadCrumbContent = "<li class='breadcrumb-item'><a href='"+categoryUrl+"'>"+categoryAncestor.getTitle(locale)+" </a> </li>"+breadCrumbContent/> 
94		                	<#else> 
95		                    	<#assign breadCrumbContent = "<li class='breadcrumb-item'><a href='"+categoryUrl+"'>"+categoryAncestor.getTitle(locale)+" </a> </li>"+breadCrumbContent/> 
96		                    </#if>	                   		 
97	                   	</#if> 
98                	</#if> 
99                </#foreach> 
100                 
101                ${breadCrumbContent} 
102                 
103            </#if> 
104             
105            <#assign hideCategory = false/> 
106            <#assign contentId = (assetCategoryPropertyService.fetchCategoryProperty(category.getCategoryId(), "idContenido").getValue())!""/> 
107			<#if contentId ? has_content>	 
108            	<#assign journalArticleSub = journalArticleService.getLatestArticle(groupId,contentId)/> 
109        		 
110        		<#if journalArticleSub?has_content> 
111	        		<#-- obtener el contenido de la categoría actual --> 
112	                <#assign document = SAXReaderUtil.read(journalArticleSub.getContentByLocale(locale)) 
113            		 	pageDetailNode =  document.selectSingleNode("/root/dynamic-element[@name='paginaDetalle']/dynamic-content") 
114            		 	/> 
115            		 <#if document.selectSingleNode("/root/dynamic-element[@name='visibleMigas']/dynamic-content")?has_content> 
116            		 	<#assign visibleMigasNode =  document.selectSingleNode("/root/dynamic-element[@name='visibleMigas']/dynamic-content")  
117            		 			 visibleMigas =  visibleMigasNode.getText() 
118            		 			 hideCategory = visibleMigas != "1"/> 
119            		 </#if> 
120	        	</#if>  	  
121	    	  
122		    	<#if pageDetailNode?has_content && pageDetailNode.getText()?has_content> 
123	        		<#assign  pageDetail = pageDetailNode.getText()/> 
124	        		<#if (pageDetail?index_of("@")>0)> 
125                		<#assign pageDetailPosition = (pageDetail?index_of("@")-1) 
126                         	pageDetail = pageDetail[0..pageDetailPosition] 
127                          	layoutDetail = layoutLocalService.getLayout(themeDisplay.getScopeGroupId(),false,pageDetail?number) 
128                      	/> 
129                	</#if> 
130	            <#else> 
131	            	<#if category.isRootCategory()> 
132	            		<#assign detailPage = "inicio"/> 
133	            	<#else> 
134	            		<#assign detailPage = "general"/> 
135	            	</#if> 
136	            	 
137	            	<#assign layoutDetail = layoutLocalService.getFriendlyURLLayout(themeDisplay.getScopeGroupId(), false, "/"+detailPage) /> 
138	            </#if> 
139	             
140	            <#assign categoryUrl = PortletURLFactoryUtil.create(request, "com_liferay_asset_categories_navigation_web_portlet_AssetCategoriesNavigationPortlet", layoutDetail.getPlid(), PortletRequest.RENDER_PHASE)    /> 
141                ${categoryUrl.setParameter("categoryId",category.getCategoryId()+"")} 
142             
143            	<#if !(hideCategory?has_content && hideCategory)> 
144            		<#if category.isRootCategory()> 
145                		<#if title?has_content> 
146                			<li class="breadcrumb-item"><a href="/inicio">${category.getTitle(locale)}</a></li>		                		 
147                		<#else> 
148                			<li class="breadcrumb-item active">${category.getTitle(locale)}</li> 
149                		</#if>  
150                	<#else> 
151                    	<#if title?has_content> 
152                			<li class="breadcrumb-item"><a href="${categoryUrl}<#if imageId ? has_content>?imageId=${imageId}&title=${HtmlUtil.escapeURL(category.getTitle(locale))}</#if>">${category.getTitle(locale)}</a></li>		                		 
153                		<#else> 
154                			<li class="breadcrumb-item active">${category.getTitle(locale)}</li> 
155                		</#if>  
156                    </#if>	                		               		 
157               	</#if> 
158        	</#if> 
159        </#if> 
160        <#if title ? has_content> 
161        	<li class="breadcrumb-item active">${title}</li>  
162        </#if> 
163    </ol> 
164</nav> 
165 
166<script type="text/javascript"> 
167	$( document ).ready(function() { 
168		 if(typeof ga !== "undefined") { 
169		 <#if title ? has_content> 
170		 	var pageName = '${title}'; 
171		 <#elseif category ? has_content> 
172		 	var pageName = '${category.getName()}'; 
173		 <#else> 
174		 	var pageName = location.pathname; 
175		 </#if> 
176			     ga( 'send', 'pageview', { 
177				    'page': pageName, 
178				    'title': pageName 
179				} ); 
180
181	}); 
182</script> 

Navegación por categorías

El 'Camín de los Santuarios' conecta Asturias y Cantabria como referente cultural y turístico

03/08/2022
  • El itinerario que enlaza la catedral de Oviedo, el Real Sitio y Santo Toribio de Liébana destaca por su riqueza patrimonial, etnográfica y paisajística
  • El Gobierno del Principado lanza una aplicación específica con toda la información de utilidad para completar el recorrido

Los presidentes Adrián Barbón y Miguel Ángel Revilla inauguran la ruta, que se pone en marcha con motivo de la conmemoración de los 1.300 años de la batalla de Cuadonga/Covadonga

Los presidentes del Principado, Adrián Barbón, y de Cantabria, Miguel Ángel Revilla, han inaugurado hoy el Camín de los Santuarios, una nueva ruta inspirada en el histórico recorrido que enlaza la catedral de Oviedo con Cuadonga/Covadonga y Santo Toribio de Liébana, en Cantabria, tres hitos fundamentales en la historia de la monarquía asturiana. La apertura y promoción de este itinerario se enmarca en la celebración de los 1.300 años de la batalla de Cuadonga/Covadonga.

La consejera de Cultura, Política Llingüística y Turismo, Berta Piñán; el vicepresidente y consejero de Universidades, Igualdad, Cultura y Deporte de Cantabria, Pablo Zuloaga, y el consejero cántabro de Innovación, Industria, Transporte y Comercio, Javier López, junto con alcaldes de los municipios que atraviesa la ruta, han recorrido un tramo del Camín de los Santuarios desde el límite entre Asturias y Cantabria, hasta Merodio, en Peñamellera Baja, donde han participado en una visita guiada por el historiador Toño Huerta sobre los hitos arquitectónicos y etnográficos de la localidad.

El Camín de los Santuarios constituye un nuevo recurso, llamado a convertirse en referente cultural y turístico, para poner en valor los elementos patrimoniales, naturales y etnográficos que jalonan la ruta a lo largo de sus 200 kilómetros. El recorrido desde Liébana a Oviedo será un elemento dinamizador para los once concejos asturianos que atraviesa: Peñamellera Alta, Peñamellera Baja, Cabrales, Onís, Cangas de Onís, Parres, Piloña, Nava, Noreña, Siero y Oviedo.

El itinerario refleja la gran importancia del patrimonio histórico y cultural del interior de la comarca oriental asturiana, desde los vestigios prehistóricos hasta los cenobios e iglesias de variada tipológica, que abarcan el prerrománico, el románico, el renacimiento o el barroco; sin olvidar las construcciones civiles, los elementos etnográficos y los espacios de gran valor paisajístico integrados en la Red Natura 2000.

El Camín de los Santuarios se convierte en eje de un paisaje muy singular, llamado a convertirse en una referencia dentro de los itinerarios culturales europeos. Además, en 2023 se celebrará el septuagésimo cuarto Año Jubilar Lebaniego, en el que se volverá a abrir la Puerta del Perdón de Santo Toribio, con lo que la ruta tendrá un atractivo añadido. 

Aplicación para la ruta

La Consejería de Cultura, Política Llingüística y Turismo ha impulsado el desarrollo de una aplicación sobre el Camín de los Santuarios, a cargo de la empresa Where is Asturias, y disponible en castellano, asturiano, inglés y francés. Esta herramienta permite a las personas que peregrinan disponer de toda la información útil para realizar el recorrido, a través de mapas y perfiles off line, guía de consejos, itinerarios, datos sobre las etapas, distancias y puntos de interés.

La aplicación facilita también el acceso a la información meteorológica en tiempo real y ofrece la posibilidad de crear durante el recorrido un diario de ruta con notas de texto, voz, fotos y vídeo. También incluye un diccionario en varios idiomas con frases habituales traducidas al español para ser leídas o locutadas desde la propia app.