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