Recuperación ambiental de las áreas degradadas del río Chiquito en Comayagua (Honduras)
An error occurred while processing the template.
The following has evaluated to null or missing: ==> serviceLocator.findService("es.gob.exteriores.aecid.lcl.base.util.CustomPermissionUtil") [in template "5931966#5932007#PROYECTO-DETALLE-FTL" at line 4, column 33] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign customPermissionUtil = servic... [in template "5931966#5932007#PROYECTO-DETALLE-FTL" at line 4, column 1] ----
1<#assign journalArticleResourceLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService") >
2<#assign assetEntryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")>
3<#assign assetCategoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") >
4<#assign customPermissionUtil = serviceLocator.findService("es.gob.exteriores.aecid.lcl.base.util.CustomPermissionUtil") >
5
6<#assign cities_vocabulary_id = layout.getGroup().getExpandoBridge().getAttribute("cities_vocabulary_id")>
7<#assign cities_vocabulary_id = cities_vocabulary_id?number>
8<#assign areas_vocabulary_id = layout.getGroup().getExpandoBridge().getAttribute("areas_vocabulary_id")>
9<#assign areas_vocabulary_id = areas_vocabulary_id?number>
10
11<#assign articleId = .vars['reserved-article-id'].data >
12<#assign classPK = journalArticleResourceLocalService.getArticleResourcePrimKey(groupId, articleId) >
13<#assign categories = assetCategoryService.getCategories("com.liferay.journal.model.JournalArticle", classPK) >
14
15<#assign rolGestion = customPermissionUtil.hasRole(themeDisplay,"Gestión de proyectos CdC") >
16<#assign rolView = customPermissionUtil.hasRole(themeDisplay,"Visualización de actas de proyectos CdC") >
17
18<div class="cabecera-pagina-interior cabecera-pagina-interior--volver">
19 <div class="global-container">
20 <div class="cabecera-pagina-interior--volver__inner">
21 <div class="cabecera-pagina-interior--volver__col">
22 <button type="button" id="go-back-btn" class="header-bg-color--link">${languageUtil.get(locale, "es.gob.exteriores.aecid.lcl.volver.atras")}</button>
23 </div>
24 <div class="cabecera-pagina-interior--volver__col">
25 <h2 class="cabecera-pagina-interior--title cabecera-pagina-interior--title--volver">${title.getData()}</h2>
26 </div>
27 </div>
28 </div>
29</div>
30<div class="project-detail">
31 <div class="global-container">
32 <h3 class="project-detail__title">${languageUtil.get(locale, 'formulario.proyecto.datos.basicos')}</h3>
33 <#list categories as category>
34 <#if (category.getVocabularyId() == areas_vocabulary_id)>
35 <p class="project-detail__subtitle project-detail__subtitle"><strong>${category.getTitle(locale)?substring(2)}</strong></p>
36 </#if>
37 </#list>
38 <!-- <p class="project-detail__intro">Proyectos que rehabilitan cuerpos de agua y sistemas de áreas verdes en zonas urbanas, conectando y dando accesibilidad a frentes ribereños y marinos, parques lineales y otros espacios públicos con soluciones multifuncionales basadas en la naturaleza, para que contribuyan mitigar la vulnerabilidad de las ciudades a las inundaciones y otros efectos del cambio climático, y mejorar la biodiversidad.</p>
39 <h4 class="project-detail__subtitle project-detail__subtitle--azul-verde">Infraestructura azul y verde</h4>
40 <p class="project-detail__intro-area">Proyectos que rehabilitan cuerpos de agua y sistemas de áreas verdes en zonas urbanas, conectando y dando accesibilidad a frentes ribereños y marinos, parques lineales y otros espacios públicos con soluciones multifuncionales basadas en la naturaleza, para que contribuyan mitigar la vulnerabilidad de las ciudades a las inundaciones y otros efectos del cambio climático, y mejorar la biodiversidad.</p>
41 -->
42 <div class="area-proyecto--proyecto--data">
43 <#if categories?has_content>
44 <div class="area-proyecto--proyecto--country">
45 <#list categories as category>
46 <#if (urlPais.getData())??>
47 <#if (category.getVocabularyId() == cities_vocabulary_id)>
48 <a href="${urlPais.getData()}" title="Ir al mapa" class="area-proyecto--proyecto--country--item" target="_blank">${category.getName()}</a>
49 </#if>
50 </#if>
51 </#list>
52 </div>
53 </#if>
54 <#if (government_url.getData())?? && government_url.getData() != "">
55 <div class="area-proyecto--proyecto--gov-link">
56 <a href="${government_url.getData()}" title="${languageUtil.get(locale, 'es.gob.exteriores.aecid.lcl.proyecto.title.gobierno')}">${languageUtil.get(locale, 'es.gob.exteriores.aecid.lcl.proyecto.gobierno')}</a>
57 </div>
58 </#if>
59 </div>
60 <#if image.getSiblings()?has_content>
61 <div id="proyecto-item_${articleId}" class="area-proyecto--proyecto--carrusel">
62 <#list image.getSiblings() as cur_image>
63 <#if (cur_image.getData())?? && cur_image.getData() != "">
64 <div class="area-proyecto--proyecto--carrusel--item">
65 <div class="area-proyecto--proyecto--carrusel--item--inner" style="background-image: url('${cur_image.getData()}')">
66 <img class="sr-only" alt="${cur_image.getAttribute('alt')}" data-fileentryid="${cur_image.getAttribute('fileEntryId')}" src="${cur_image.getData()}" />
67 </div>
68 </div>
69 </#if>
70 </#list>
71 </div>
72 </#if>
73 <#if (description.getData())??>
74 <div class="project-detail__intro-photos">
75 ${description.getData()}
76 </div>
77 </#if>
78
79 <#if documentosList.getSiblings()?has_content && !(documentosList.getSiblings()?size == 1 && validator.isNull(documentosList.getSiblings()[0].archivo.getData()))>
80 <div class="documentos-lista">
81 <h4 class="documentos-lista__description">${languageUtil.get(locale, 'es.gob.exteriores.aecid.lcl.proyecto.documentacion')}</h4>
82 <div class="documentos-lista__docs-info">
83 <#assign nameDoc="">
84 <ul>
85 <#list documentosList.getSiblings() as cur_documentosList>
86 <#list cur_documentosList.archivo.getData()?split("/") as x>
87 <#if x?counter==5>
88 <#assign nameDoc=x>
89 <#assign extension = nameDoc?keep_after_last(".")>
90 </#if>
91 </#list>
92 <#assign titleData=nameDoc>
93 <#if (cur_documentosList.docName.getData())?? && cur_documentosList.docName.getData() !="">
94 <#assign nameDoc=cur_documentosList.docName.getData()>
95 </#if>
96 <#if (cur_documentosList.archivo.getData())?? && cur_documentosList.archivo.getData() !="">
97 <li>
98 <a title="${titleData}" href="${cur_documentosList.archivo.getData()}" target="_blank">
99 <img src="https://laifcitylife.aecid.es/o/laif-theme/images/ico/ico-${extension}.svg"><span>${nameDoc}</span>
100 </a>
101 <a href="${cur_documentosList.archivo.getData()}&download=true" title="" class="documentos-lista__docs-info__link documentos-lista__docs-info__link--download">
102 <span class="sr-only">Descargar</span>
103 </a>
104 </li>
105 </#if>
106 <#if (cur_documentosList.linkToExternalPage.getData())?? && cur_documentosList.linkToExternalPage.getData() != "">
107 <li>
108 <a title="${titleData}" href="${cur_documentosList.linkToExternalPage.getData()}" target="_blank">
109 <img src="https://laifcitylife.aecid.es/o/laif-theme/images/ico/ico-web.svg"><span>${nameDoc}</span>
110 </a>
111 </li>
112 </#if>
113 </#list>
114 </ul>
115 </div>
116 </div>
117 </#if>
118 </div>
119</div>
120
121
122<#if dataAditional?? && dataAditional.getData()??>
123 <#assign webContentData = jsonFactoryUtil.createJSONObject(dataAditional.getData()) />
124 <#if webContentData?? && webContentData.className?? && webContentData.classPK?? >
125
126 <#assign
127 className = webContentData.className
128 classPK = webContentData.classPK
129 asset = assetEntryService.getEntry(className, classPK?number)
130 assetRenderer = asset.getAssetRenderer()
131 journalArticle = assetRenderer.getAssetObject()
132 />
133 <div class="">
134 <div class="">
135 <#assign void = request.setAttribute("projectId", articleId) />
136 <@liferay_journal["journal-article"]
137 articleId=journalArticle.getArticleId()
138 ddmTemplateKey="PROYECTO-DATOS-ADICIONALES-DETALLE-FTL"
139 groupId=journalArticle.getGroupId()
140 />
141 </div>
142 </div>
143 </#if>
144</#if>
145
146<#-- /.area-proyecto--proyecto -->
147
148<script>
149
150 document.getElementById('go-back-btn').addEventListener('click', () => history.back());
151
152 $(function() {
153 // Slider proyectos imagenes
154 $('#proyecto-item_${articleId}').slick({
155 slidesToShow: 2,
156 slidesToScroll: 1,
157 arrows: true,
158 dots: true,
159 autoplay: false,
160 autoplaySpeed: 5000,
161 infinite: false,
162 responsive: [
163 {
164 breakpoint: 992,
165 settings: {
166 slidesToShow: 2,
167 arrows: false,
168 infinite: true,
169 }
170 },
171 {
172 breakpoint: 768,
173 settings: {
174 slidesToShow: 1,
175 arrows: false,
176 infinite: true,
177 }
178 },
179 ]
180 });
181
182 // Check if slick track has more than one item
183 jQuery('.slick-track').each(
184 function () {
185 let itemsLength = this.children.length
186 if (itemsLength === 1) {
187 jQuery(this).addClass('unique-item')
188 jQuery(this).parent('.slick-list').addClass('two-or-less')
189 } else if (itemsLength === 2) {
190 jQuery(this).addClass('two-items')
191 jQuery(this).parent('.slick-list').addClass('two-or-less')
192 }
193 }
194 )
195 });
196</script>
es.gob.exteriores.aecid.lcl.listado.ciudades
-
Brasil
João PessoaBelém do Pará -
Colombia
Barranquilla -
Perú
CajamarcaArequipaTrujillo -
El Salvador
San Salvador -
Costa Rica
Cartago -
México
Estado de Tlaxcala -
Honduras
TrujilloComayaguaTegucigalpa -
Guatemala
Ciudad de Guatemala