Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> country  [in template "12187455#12187494#3138569" at line 59, column 50]

----
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: ${country}  [in template "12187455#12187494#3138569" at line 59, column 48]
----
1<style> 
2@media(max-width: 990px){ 
3  .desktop-buttons{ 
4    display:none!important; 
5
6   
7
8 
9.desktop-buttons{ 
10	padding: 2%; 
11
12 
13</style> 
14 
15<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>																   
16<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
17<#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
18<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") /> 
19 
20<#assign currentArticle = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) /> 
21<#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey() /> 
22<#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) /> 
23<#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() /> 
24<#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) /> 
25 
26<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") /> 
27 
28<div class="background-color--gray"> 
29    <section class="detail__banner"> 
30        <div class="detail__banner--image"> 
31            <#if sep_imagen_cabecera.imagen_cabecera.getData()?? && sep_imagen_cabecera.imagen_cabecera.getData() != ""> 
32                <img alt="${sep_imagen_cabecera.imagen_cabecera.getAttribute("alt")}" data-fileentryid="${sep_imagen_cabecera.imagen_cabecera.getAttribute("fileEntryId")}" src="${sep_imagen_cabecera.imagen_cabecera.getData()}" /> 
33            </#if> 
34        </div> 
35 
36        <#assign categories = currentArticleAssetEntry.getCategories() > 
37 
38        <#if categories?? && (categories?size > 0) > 
39            <#list categories as categoryElement> 
40                <#if categoryElement.getPath(locale)?contains("Country") || categoryElement.getPath(locale)?contains("Pais") > 
41                    <#assign country =  categoryElement.getTitle(locale) /> 
42                <#elseif categoryElement.getPath(locale)?contains("work") || categoryElement.getPath(locale)?contains("construccion") > 
43                    <#assign typeOfWork =  categoryElement.getName() /> 
44                </#if> 
45            </#list> 
46        </#if> 
47 
48        <div class="container"> 
49            <div class="detail__banner--category"> 
50                <div class="detail__banner--category-icon"><span class="fcc-i_${createStyleIcon(typeOfWork)}"></span></div>             
51                <#--  breadcrum  --> 
52                <div class="detail__banner--category-breadcrumb">             
53                    <@breadcrum/>      
54                </div>        
55            </div> 
56             
57            <p class="detail__banner--title">${.vars['reserved-article-title'].data}</p> 
58 
59            <p class="detail__banner--country">${country}</p> 
60        </div> 
61 
62        <div class="detail__banner--featured"> 
63            <div class="container"> 
64                <div class="row"> 
65                    <#if DatosDestacados?? && DatosDestacados.getSiblings()?has_content > 
66                        <#list DatosDestacados.getSiblings() as datoDestacado> 
67                            <div class="col-12 col-sm-3 item"> 
68                                <p class="detail__banner--featured-data">${datoDestacado.TextoSuperior.getData()}</p> 
69                                <p class="detail__banner--featured-unit">${datoDestacado.TextoInferior.getData()}</p> 
70                            </div> 
71                        </#list> 
72 
73                    </#if> 
74                </div> 
75            </div> 
76        </div>     
77 
78    </section> 
79 
80 
81    <#--  <p class="detail__slider--text d-lg-none">${.vars['reserved-article-description'].data} </p>  --> 
82    <section class="detail__slider container"> 
83        <div class="detail__slider--text d-lg-none"> 
84            ${.vars['reserved-article-description'].data} 
85        </div> 
86        <#if sep_galeria_medios?? && sep_galeria_medios.getSiblings()?has_content >     
87            <div class="slick-container"> 
88                <div class="slick__pagination d-none d-lg-block"> 
89                    ${.vars['reserved-article-description'].data} 
90                    <!-- Add Pagination --> 
91                    <p class="slick-fraction"></p> 
92                    <!-- Add Progress bar --> 
93                    <div class="slick-progress"> 
94                        <div class="progress"> 
95                            <div class="progress-bar" role="progressbar" aria-valuenow="" aria-valuemin="0" aria-valuemax="100"></div> 
96                        </div> 
97                    </div> 
98                </div> 
99                <div class="slick-wrapper"> 
100 
101                    <ul class="slick-active-slide"> 
102                        <#list sep_galeria_medios.getSiblings() as galeria> 
103                            <#if galeria.galeria_medios?? && galeria.galeria_medios.data?has_content > 
104                                <li class="slick-slide"> 
105                                    <#if galeria.galeria_medios.data?contains('.tif/') || galeria.galeria_medios.data?contains('.TIF/') > 
106                                        <a title="<@liferay.language_format arguments="${galeria.alt_galeria_medios.data}" key="show-x" />" href="${galeria.galeria_medios.data&imageThumbnail=1}" target="_blank"> 
107                                            <img src="${galeria.galeria_medios.data&imageThumbnail=1}" alt="${galeria.alt_galeria_medios.data}"/> 
108                                        </a> 
109                                    <#else>                     
110                                        <#assign imagen = galeria.galeria_medios.data /> 
111 
112                                        <#if (imagen?has_content)> 
113                                            <#assign imagenMap = imagen?eval /> 
114                                            <#assign imagenGroupId = imagenMap["groupId"]?number /> 
115                                            <#assign imagenUuid = imagenMap["uuid"] />                             
116                                        </#if> 
117                                         
118                                        <#assign urlImage = "" /> 
119                                        <#if (imagen?has_content) && (imagenGroupId != 0)> 
120                                            <#assign dlElement = dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId(imagenUuid, imagenGroupId) />	 
121                                            <#assign urlImage = portalUtil.getPortalURL(renderRequest) + '/documents/' + dlElement.getRepositoryId() + '/' + dlElement.getFolderId() + '/' + htmlUtil.escapeURL(dlElement.getTitle()) +'/' + dlElement.getUuid() + '?' + dlElement.getVersion() />									 
122                                        </#if>                       
123 
124                                        <img src="${urlImage}" alt="${galeria.alt_galeria_medios.data}"/> 
125                                         
126                                    </#if> 
127                                </li> 
128                            </#if> 
129                        </#list> 
130                    </ul> 
131                     
132                    <ul class="slick-nav"> 
133                        <#list sep_galeria_medios.getSiblings() as galeria> 
134                            <#if galeria.galeria_medios?? && galeria.galeria_medios.data?has_content > 
135                                <li class="slick-slide"> 
136                                    <#if galeria.galeria_medios.data?contains('.tif/') || galeria.galeria_medios.data?contains('.TIF/') > 
137                                        <a title="<@liferay.language_format arguments="${galeria.alt_galeria_medios.data}" key="show-x" />" href="${galeria.galeria_medios.data&imageThumbnail=1}" target="_blank"> 
138                                            <img src="${galeria.galeria_medios.data&imageThumbnail=1}" alt="${galeria.alt_galeria_medios.data}"/> 
139                                        </a> 
140                                    <#else>                     
141                                        <#assign imagen = galeria.galeria_medios.data /> 
142 
143                                        <#if (imagen?has_content)> 
144                                            <#assign imagenMap = imagen?eval /> 
145                                            <#assign imagenGroupId = imagenMap["groupId"]?number /> 
146                                            <#assign imagenUuid = imagenMap["uuid"] />                             
147                                        </#if> 
148                                         
149                                        <#assign urlImage = "" /> 
150                                        <#if (imagen?has_content) && (imagenGroupId != 0)> 
151                                            <#assign dlElement = dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId(imagenUuid, imagenGroupId) />	 
152                                            <#assign urlImage = portalUtil.getPortalURL(renderRequest) + '/documents/' + dlElement.getRepositoryId() + '/' + dlElement.getFolderId() + '/' + htmlUtil.escapeURL(dlElement.getTitle()) +'/' + dlElement.getUuid() + '?' + dlElement.getVersion() />									 
153                                        </#if>                       
154 
155                                        <img src="${urlImage}" alt="${galeria.alt_galeria_medios.data}"/> 
156                                         
157                                    </#if> 
158                                </li> 
159                            </#if> 
160                        </#list> 
161                    </ul> 
162                </div> 
163                <div class="slick__pagination-mobile d-lg-none"> 
164                    <p class="slick-fraction"></p> 
165                </div> 
166 
167            </div> 
168        </#if> 
169                <div class="desktop-buttons d-flex justify-content-between"> 
170                        <button class="slick-prev slick-arrow" aria-label="Previous" type="button" style="">Previous</button> 
171                        <button class="slick-next slick-arrow" aria-label="Next" type="button" style="">Next</button> 
172        </div> 
173    </section> 
174 
175 
176    <section class="detail__paragraph container">    
177        <div class="row"> 
178            <div class="col-sm-8 col-sm-offset-2"> 
179                ${descripcion.getData()} 
180            </div> 
181        </div> 
182    </section> 
183 
184    <#--  FICHAS DESTACADAS  --> 
185    <#if FichasDestacadas?? && FichasDestacadas.getSiblings()?has_content > 
186        <section class="detail__featuredTag container"> 
187            <div class="row"> 
188                <#list FichasDestacadas.getSiblings() as fichaDestacada> 
189                    <div class="col-4"> 
190                        <div class="detail__featuredTag-item"> 
191 
192                            <#if fichaDestacada.Icono.getData()?? && fichaDestacada.Icono.getData() != ""> 
193                                <img alt="${fichaDestacada.Icono.getAttribute("alt")}" data-fileentryid="${fichaDestacada.Icono.getAttribute("fileEntryId")}" src="${fichaDestacada.Icono.getData()}" /> 
194                            </#if> 
195 
196                            <#if fichaDestacada.TituloDestacado?? && fichaDestacada.TituloDestacado.getData()?? && fichaDestacada.TituloDestacado.getData() != ""> 
197                                <p class="detail__featuredTag-item--title">${fichaDestacada.TituloDestacado.getData()} </p> 
198                            </#if> 
199 
200                            <#if fichaDestacada.DescripcionDestacado?? && fichaDestacada.DescripcionDestacado.getData()?? && fichaDestacada.DescripcionDestacado.getData() != ""> 
201                                <p>${fichaDestacada.DescripcionDestacado.getData()} </p> 
202                            </#if> 
203                        </div> 
204                    </div> 
205                </#list> 
206            </div> 
207        </section> 
208    </#if> 
209 
210    <section class="detail__paragraph container">    
211        <div class="row"> 
212            <div class="col-sm-8 col-sm-offset-2"> 
213                <#--  HTML LIBRE  --> 
214                ${HTMLLibre1.getData()} 
215                <#--  CITA  --> 
216                <div class="detail__paragraph--quote">  
217                    <#if existCitas(Cita) > 
218                        <span class="detail__paragraph--quote-icon fcc-opinion_ocio"></span> 
219                        <#list Cita.getSiblings() as cita> 
220                         
221                            <#if cita.Autor?? && cita.Autor.getData()?? && cita.Autor.getData() != ""> 
222                                <p class="author">${cita.Autor.getData()} </p> 
223                            </#if> 
224 
225                            <#if cita.Texto?? && cita.Texto.getData()?? && cita.Texto.getData() != ""> 
226                                <p>${cita.Texto.getData()} </p> 
227                            </#if> 
228                        </#list> 
229 
230                    </#if> 
231                </div> 
232                <#--  HTML LIBRE  --> 
233                ${HTMLLibre2.getData()} 
234 
235            </div> 
236        </div> 
237    </section> 
238</div> 
239 
240 
241 
242<#if (currentArticleRelatedLinks?size > 0)>       
243    <section class="related__projects container-fluid"> 
244        <h2>${languageUtil.get(locale, "construccion-tpl.related.projects")}</h2>         
245        <div class="related__projects--wrapper"> 
246            <#list currentArticleRelatedLinks as related_entry> 
247                <div class="related__projects-slide"> 
248                    <#assign relatedAssetEntryId = related_entry.getEntryId2() /> 
249                    <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) /> 
250                    <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() /> 
251                    <#assign relatedArticle = journalArticleLocalService.getLatestArticle(relatedAssetEntryPrimKey) /> 
252                     
253                    <#assign document = saxReaderUtil.read(relatedArticle.getContentByLocale(locale.toString())) /> 
254                    <#assign rootElement = document.getRootElement() /> 
255                    <#assign xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@name='imagen']/dynamic-content") /> 
256                    <#assign imagenRelatedArticulo = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 
257                     
258                    <#assign imagenRelatedArticuloFileEntryId = 0 /> 
259                    <#if (imagenRelatedArticulo?has_content)> 
260                        <#assign imagenRelatedArticuloMap = imagenRelatedArticulo?eval /> 
261                        <#assign imagenRelatedArticuloFileEntryId = imagenRelatedArticuloMap["fileEntryId"]?number /> 
262                    </#if> 
263 
264                    <#assign relatedJournalArticleResourcePrimKey = relatedArticle.getResourcePrimKey() /> 
265                    <#assign relatedJournalArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", relatedJournalArticleResourcePrimKey) /> 
266                    <#assign relatedCategoryList = relatedJournalArticleAssetEntry.getCategories() > 
267 
268                     
269 
270                    <#assign categories = currentArticleAssetEntry.getCategories() > 
271 
272                    <#if relatedCategoryList?? && (relatedCategoryList?size > 0) > 
273                        <#list relatedCategoryList as categoryElement> 
274                            <#if categoryElement.getPath(locale)?contains("Country") || categoryElement.getPath(locale)?contains("Pais") > 
275                                <#assign relatedCountry =  categoryElement.getTitle(locale) />         
276                             <#elseif categoryElement.getPath(locale)?contains("work") || categoryElement.getPath(locale)?contains("construccion") > 
277                                <#assign relatedTypeOfWork =  categoryElement.getName() /> 
278                            </#if> 
279                        </#list> 
280                    </#if> 
281 
282                    <#--  Enlace proyecto relacionado  --> 
283                    <a href="${themeDisplay.getURLPortal()}${themeDisplay.getURLCurrent()[0..themeDisplay.getURLCurrent()?index_of("/-/")+2]}${relatedArticle.getUrlTitle()}"></a> 
284                     
285                    <div class="related__projects-slide--img"> 
286                        <span class="related__projects-slide--icon fcc-i_${createStyleIcon(relatedTypeOfWork)}"></span> 
287                        <#if (imagenRelatedArticuloFileEntryId != 0)> 
288                            <#assign dlElement = dlFileEntryLocalService.getDLFileEntry(imagenRelatedArticuloFileEntryId) /> 
289                            <img src="${themeDisplay.getPortalURL()}/documents/${dlElement.getRepositoryId()}/${dlElement.getFolderId()}/${dlElement.getTitle()}/${dlElement.getUuid()}?${dlElement.getVersion()}" alt="${imagenRelatedArticuloMap["alt"]}"> 
290                        <#else> 
291                            <#assign  imagen_listado_defecto = layout.getGroup().getExpandoBridge().getAttribute("ciudad-fcc-construccion-listado") /> 
292                            <img src="${imagen_listado_defecto}" alt="${relatedArticle.getTitle()}"> 
293                        </#if>    
294                    </div> 
295                    <#--  Titulo y pais proyecto relacionado  --> 
296                    <div class="related__projects-slide--text"> 
297                        <p class="related__projects-slide--title">${relatedArticle.getTitle()} </p> 
298                        <p>${relatedCountry}</p> 
299                    </div>  
300                </div> 
301            </#list> 
302        </div> 
303    </section> 
304</#if> 
305 
306<#macro breadcrum> 
307 
308    <#assign layout_actual = layout /> 
309    <#assign breadcrumbList = [] /> 
310 
311    <#list 0..10 as i> 
312		<#assign parentId = layout_actual.getParentPlid() />		 
313		<#if parentId == 0 > 
314			<#break> 
315		<#else> 
316			<#assign layout_actual = layoutLocalService.getLayout(parentId) /> 
317			<#assign breadcrumbList = breadcrumbList + [layout_actual] />			 
318		</#if>  
319	</#list> 
320 
321    <#assign size = breadcrumbList?size - 1/> 
322			 
323	<#list breadcrumbList?reverse as breadcrumb>	         
324        <p>${breadcrumb.getName(locale)}</p>		         
325        <#--<#assign completeUrl = portalUtil.getLayoutFullURL(breadcrumb, themeDisplay) /> 
326        <li><a href="${completeUrl}">${breadcrumb.getName(locale)}</a></li>-->			 
327	</#list> 
328 
329</#macro> 
330 
331<#function createStyleIcon name> 
332    <#return name?replace("á", "a")?replace("é","e")?replace("í","i")?replace("ó","o")?replace("ú","u")?replace(" ","")?lower_case > 
333</#function> 
334 
335<#function existCitas Cita> 
336    <#if Cita?? && Cita.getSiblings()?has_content > 
337        <#list Cita.getSiblings() as cita>         
338            <#if cita.Autor?? && cita.Autor.getData()?? && cita.Autor.getData() != ""> 
339                <#return true> 
340            </#if> 
341 
342            <#if cita.Texto?? && cita.Texto.getData()?? && cita.Texto.getData() != ""> 
343                <#return true> 
344            </#if> 
345        </#list> 
346    </#if> 
347    <#return false> 
348</#function> 
349        <script> 
350$('.slick-prev').on('click', function(){   
351var slideIndex = $('.slick-active').attr('data-slick-index'); 
352var newind = parseInt(slideIndex) - 1; 
353$('.slick-active-slide').slick("slickGoTo", parseInt(newind)); 
354}); 
355$('.slick-next').on('click', function(){   
356var slideIndex = $('.slick-active').attr('data-slick-index'); 
357var newind = parseInt(slideIndex) + 1; 
358$('.slick-active-slide').slick("slickGoTo", parseInt(newind)); 
359}); 
360 
361</script>