Proyecto Ciudades CENCYL
El Ayuntamiento de Salamanca, a través de su Estrategia Municipal de Adaptación al Cambio Climático, participa en el proyecto ‘Ciudades Verdes Cencyl’ del Programa INTERREG de Cooperación Transfronteriza España-Portugal, en el que participan nueve ciudades, de Castilla y León y de la región centro del vecino país. Entre los objetivos del proyecto ‘Ciudades Verdes Cencyl’ destaca la elaboración de una completa estrategia de adaptación al cambio climático, de manera que se pueda diagnosticar las vulnerabilidades y riesgos climáticos de cada ciudad, dentro de una diversidad funcional entre ciudades mesetarias, de montaña y litorales. Al mismo tiempo, permitirá intercambiar y compartir experiencias entre las ciudades Cencyl sobre las políticas que están desarrollando o planificando.
Java method "static com.liferay.document.library.kernel.service.DLFileEntryLocalServiceUtil.getDLFileEntryByUuidAndGroupId(String, long)" threw an exception; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign imagenDlFile = DLFileEntryLoc... [in template "20096#20121#50657" at line 27, column 5] ----
1<#--
2Widget templates can be used to modify the look of a
3specific application.
4
5Please use the right panel to quickly add commonly used variables.
6Autocomplete is also available and can be invoked by typing "${".
7-->
8
9
10
11<#assign LayoutLocalServiceUtil = staticUtil["com.liferay.portal.kernel.service.LayoutLocalServiceUtil"] />
12<#assign DLFileEntryLocalServiceUtil = staticUtil["com.liferay.document.library.kernel.service.DLFileEntryLocalServiceUtil"]>
13<#assign DlAppServiceUtil = staticUtil["com.liferay.document.library.kernel.service.DLAppServiceUtil"] />
14<#assign LocaleUtil = staticUtil["com.liferay.portal.kernel.util.LocaleUtil"]>
15<#assign AssetCategoryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"] />
16<#assign AssetEntryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil"] />
17<#assign JSONFactoryUtil = staticUtil["com.liferay.portal.kernel.json.JSONFactoryUtil"]>
18<#if entries?has_content>
19<div class="row slm-distribuidora">
20<#list entries as curEntry>
21 <#assign assetRenderer = curEntry.getAssetRenderer() />
22 <#assign journalArticle = assetRenderer.getArticle() >
23 <#assign document = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) >
24 <#assign rootElement = document.getRootElement() >
25 <#assign imagen = saxReaderUtil.createXPath("dynamic-element[@field-reference='Imagen']/dynamic-content").selectSingleNode(rootElement).getStringValue() >
26 <#assign imagenJson = JSONFactoryUtil.createJSONObject(imagen)>
27 <#assign imagenDlFile = DLFileEntryLocalServiceUtil.getDLFileEntryByUuidAndGroupId(imagenJson.uuid,imagenJson.groupId?number)>
28 <#assign friendlyMap=journalArticle.getFriendlyURLMap()>
29 <#assign friendlyUrl="">
30 <#assign friendlyUrlDefault="">
31 <#assign friendlyUrl="">
32 <#assign layoutFriendlyUrlDefault="">
33 <#assign layoutFriendlyUrl="">
34 <#assign urlExterna="">
35 <#assign url="">
36 <#assign target="">
37 <#if ((saxReaderUtil.createXPath("dynamic-element[@field-reference='NuevaPestana']/dynamic-content").selectSingleNode(rootElement))??)?then(true,false)>
38 <#assign nuevaPestana = saxReaderUtil.createXPath("dynamic-element[@field-reference='NuevaPestana']/dynamic-content").selectSingleNode(rootElement)>
39 <#if nuevaPestana.getData()=="true">
40 <#assign target='target="_blank"'>
41 </#if>
42 </#if>
43 <#if (saxReaderUtil.createXPath("dynamic-element[@field-reference='UrlExterna']/dynamic-content").selectSingleNode(rootElement).getStringValue())??>
44 <#assign urlExterna = saxReaderUtil.createXPath("dynamic-element[@field-reference='UrlExterna']/dynamic-content").selectSingleNode(rootElement).getStringValue() >
45 </#if>
46 <#if (saxReaderUtil.createXPath("dynamic-element[@field-reference='EnlacePagina']/dynamic-content").selectSingleNode(rootElement).getStringValue())??>
47 <#assign enlace = saxReaderUtil.createXPath("dynamic-element[@field-reference='EnlacePagina']/dynamic-content").selectSingleNode(rootElement).getStringValue() >
48 <#assign enlaceJson=JSONFactoryUtil.createJSONObject(enlace)>
49 <#if enlaceJson.has("groupId") && enlaceJson.has("privateLayout") && enlaceJson.has("layoutId")>
50 <#assign layout=LayoutLocalServiceUtil.fetchLayout(enlaceJson.groupId?number,enlaceJson.privateLayout,enlaceJson.layoutId?number)>
51 <#assign friendlyMap=layout.getFriendlyURLMap()>
52
53 <#list friendlyMap as key,value>
54 <#if key==LocaleUtil.getDefault()>
55 <#assign layoutFriendlyUrlDefault=value>
56 </#if>
57 <#if key==locale>
58 <#assign layoutFriendlyUrl=value>
59 </#if>
60 </#list>
61 <#if layoutFriendlyUrl=="">
62 <#assign layoutFriendlyUrl=layoutFriendlyUrlDefault>
63 </#if>
64 </#if>
65 </#if>
66
67 <#assign friendlyMap=journalArticle.getFriendlyURLMap()>
68
69 <#list friendlyMap as key,value>
70 <#if key==locale>
71 <#assign friendlyUrl="/w/"+value>
72 </#if>
73 <#if key==LocaleUtil.getDefault()>
74 <#assign friendlyUrlDefault="/w/"+value>
75 </#if>
76 </#list>
77 <#if friendlyUrl=="">
78 <#assign friendlyUrl=friendlyUrlDefault>
79 </#if>
80
81 <#if urlExterna!="">
82 <#assign url=urlExterna>
83 <#elseif layoutFriendlyUrl!="">
84 <#assign url=layoutFriendlyUrl>
85 <#else>
86 <#assign url=friendlyUrl>
87 </#if>
88
89 <div class="col-lg-3 col-md-4 col-sm-6 col-12 mt-2 mb-5">
90 <a class="text-decoration-none" href="${url}" ${target}>
91 <@adaptive_media_image["img"] alt="${imagenJson.alt}" class="d-block card-img-top slm-obj-cover slm-img-180" fileVersion=DlAppServiceUtil.getFileEntry(imagenJson.fileEntryId?number).getFileVersion()/>
92 <span class="d-block font-weight-bold h5 py-2 mb-0 text-black">
93 ${curEntry.getTitle(locale)}
94 </span>
95 <span class="d-block descripcion pb-2">${curEntry.getDescription(locale)}</span>
96 <span class="d-block text-uppercase width-fit link">
97 <@liferay.language key="slm.leer-mas" />
98 </span>
99 </a>
100 </div>
101</#list>
102
103</div>
104
105 </#if>
106
107<style>
108 .width-fit{
109 width:fit-content;
110 }
111 .taglib-categorization-filter{
112 display:none
113 }
114 .slm-img-180{
115 height: 180px;
116 }
117
118 @media (max-width: 768px){
119 .slm-img-180{
120 height: 220px;
121 }
122 }
123</style>