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