Navegación por categorías
Java method "com.sun.proxy.$Proxy67.getAssetCategory(long)" threw an exception when invoked on com.sun.proxy.$Proxy67 object "com.liferay.asset.categories.internal.service.AssetEntryAssetCategoryRelAssetCategoryLocalServiceWrapper@3dddd4ef"; 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 avance de las obras para mejorar la seguridad del túnel de Sotrondio en la AS-117 permite recuperar la circulación el lunes
- Los vehículos, desviados ahora por la carretera AS-387, que une El Entrego con El Condado, volverán a pasar por al corredor del Nalón quince días antes de lo previsto
El avance de las obras que la Consejería de Medio Rural y Cohesión Territorial ejecuta para mejorar la seguridad del túnel de Sotrondio, en el entorno del kilómetro 12.5 de la carretera AS-117, que une Riaño con el puerto de Tarna, a su paso por San Martín del Rey Aurelio, permitirá reabrir el paso al tráfico el lunes, quince días antes de lo previsto.
La circulación, que desde mayo se desviaba por la carretera AS-387, que une El Entrego con El Condado, regresará al corredor del Nalón (AS-117 Riaño-puerto de Tarna) en la madrugada del domingo 18 al lunes 19, en lugar del próximo 2 de agosto, como estaba previsto inicialmente. De este modo, se mejora la comunicación entre los concejos de Langreo, San Martín del Rey Aurelio, Laviana, Sobrescobio y Caso.
Una vez finalizado el grueso de los trabajos, incluidas la intervención sobre la bóveda del túnel y la pavimentación del tramo afectado, las labores se centran ahora en la señalización y el balizamiento y en la mejora del drenaje, con el fin de garantizar una correcta evacuación de las aguas. Estas actuaciones podrían llevar aparejados cortes puntuales del tráfico en alguno de los carriles, que no precisarán habilitar itinerarios alternativos.
El proyecto se inició el pasado enero, cuando las intensas lluvias obligaron a actuar de emergencia, y ha supuesto una inversión superior al millón de euros.