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 pb-5"> 
				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 validator.isNotNull(FichasDestacadas.getSiblings()[0].TituloDestacado.getData()) > 
				186        <#if FichasDestacadas?? && FichasDestacadas.getSiblings()?has_content > 
				187            <section class="detail__featuredTag container"> 
				188                <div class="row"> 
				189                    <#list FichasDestacadas.getSiblings() as fichaDestacada> 
				190                        <div class="col-4"> 
				191                            <div class="detail__featuredTag-item"> 
				192 
				193                                <#if fichaDestacada.Icono.getData()?? && fichaDestacada.Icono.getData() != ""> 
				194                                    <img alt="${fichaDestacada.Icono.getAttribute("alt")}" data-fileentryid="${fichaDestacada.Icono.getAttribute("fileEntryId")}" src="${fichaDestacada.Icono.getData()}" /> 
				195                                </#if> 
				196 
				197                                <#if fichaDestacada.TituloDestacado?? && fichaDestacada.TituloDestacado.getData()?? && fichaDestacada.TituloDestacado.getData() != ""> 
				198                                    <p class="detail__featuredTag-item--title">${fichaDestacada.TituloDestacado.getData()} </p> 
				199                                </#if> 
				200 
				201                                <#if fichaDestacada.DescripcionDestacado?? && fichaDestacada.DescripcionDestacado.getData()?? && fichaDestacada.DescripcionDestacado.getData() != ""> 
				202                                    <p>${fichaDestacada.DescripcionDestacado.getData()} </p> 
				203                                </#if> 
				204                            </div> 
				205                        </div> 
				206                    </#list> 
				207                </div> 
				208            </section> 
				209        </#if> 
				210    </#if> 
				211        <section class="detail__paragraph container">    
				212            <div class="row"> 
				213                <div class="col-sm-8 col-sm-offset-2"> 
				214                    <#if validator.isNotNull(HTMLLibre1.getData()) > 
				215                    <#--  HTML LIBRE  --> 
				216                    ${HTMLLibre1.getData()} 
				217                     </#if> 
				218                    <#--  CITA  --> 
				219                    <div class="detail__paragraph--quote">  
				220                        <#if existCitas(Cita) > 
				221                            <span class="detail__paragraph--quote-icon fcc-opinion_ocio"></span> 
				222                            <#list Cita.getSiblings() as cita> 
				223                             
				224                                <#if cita.Autor?? && cita.Autor.getData()?? && cita.Autor.getData() != ""> 
				225                                    <p class="author">${cita.Autor.getData()} </p> 
				226                                </#if> 
				227 
				228                                <#if cita.Texto?? && cita.Texto.getData()?? && cita.Texto.getData() != ""> 
				229                                    <p>${cita.Texto.getData()} </p> 
				230                                </#if> 
				231                            </#list> 
				232 
				233                        </#if> 
				234                    </div> 
				235                     
				236                    <#if validator.isNotNull(HTMLLibre2.getData()) > 
				237                    <#--  HTML LIBRE  --> 
				238                    ${HTMLLibre2.getData()} 
				239                    </#if> 
				240 
				241                </div> 
				242            </div> 
				243        </section> 
				244     
				245</div> 
				246 
				247 
				248 
				249<#if (currentArticleRelatedLinks?size > 0)>       
				250    <section class="related__projects container-fluid"> 
				251        <h2>${languageUtil.get(locale, "construccion-tpl.related.projects")}</h2>         
				252        <div class="related__projects--wrapper"> 
				253            <#list currentArticleRelatedLinks as related_entry> 
				254                <div class="related__projects-slide"> 
				255                    <#assign relatedAssetEntryId = related_entry.getEntryId2() /> 
				256                    <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) /> 
				257                    <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() /> 
				258                    <#assign relatedArticle = journalArticleLocalService.getLatestArticle(relatedAssetEntryPrimKey) /> 
				259                     
				260                    <#assign document = saxReaderUtil.read(relatedArticle.getContentByLocale(locale.toString())) /> 
				261                    <#assign rootElement = document.getRootElement() /> 
				262                    <#assign xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@name='imagen']/dynamic-content") /> 
				263                    <#assign imagenRelatedArticulo = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 
				264                     
				265                    <#assign imagenRelatedArticuloFileEntryId = 0 /> 
				266                    <#if (imagenRelatedArticulo?has_content)> 
				267                        <#assign imagenRelatedArticuloMap = imagenRelatedArticulo?eval /> 
				268                        <#assign imagenRelatedArticuloFileEntryId = imagenRelatedArticuloMap["fileEntryId"]?number /> 
				269                    </#if> 
				270 
				271                    <#assign relatedJournalArticleResourcePrimKey = relatedArticle.getResourcePrimKey() /> 
				272                    <#assign relatedJournalArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", relatedJournalArticleResourcePrimKey) /> 
				273                    <#assign relatedCategoryList = relatedJournalArticleAssetEntry.getCategories() > 
				274 
				275                     
				276 
				277                    <#assign categories = currentArticleAssetEntry.getCategories() > 
				278 
				279                    <#if relatedCategoryList?? && (relatedCategoryList?size > 0) > 
				280                        <#list relatedCategoryList as categoryElement> 
				281                            <#if categoryElement.getPath(locale)?contains("Country") || categoryElement.getPath(locale)?contains("Pais") > 
				282                                <#assign relatedCountry =  categoryElement.getTitle(locale) />         
				283                             <#elseif categoryElement.getPath(locale)?contains("work") || categoryElement.getPath(locale)?contains("construccion") > 
				284                                <#assign relatedTypeOfWork =  categoryElement.getName() /> 
				285                            </#if> 
				286                        </#list> 
				287                    </#if> 
				288 
				289                    <#--  Enlace proyecto relacionado  --> 
				290                    <a href="${themeDisplay.getURLPortal()}${themeDisplay.getURLCurrent()[0..themeDisplay.getURLCurrent()?index_of("/-/")+2]}${relatedArticle.getUrlTitle()}"></a> 
				291                     
				292                    <div class="related__projects-slide--img"> 
				293                        <span class="related__projects-slide--icon fcc-i_${createStyleIcon(relatedTypeOfWork)}"></span> 
				294                        <#if (imagenRelatedArticuloFileEntryId != 0)> 
				295                            <#assign dlElement = dlFileEntryLocalService.getDLFileEntry(imagenRelatedArticuloFileEntryId) /> 
				296                            <img src="${themeDisplay.getPortalURL()}/documents/${dlElement.getRepositoryId()}/${dlElement.getFolderId()}/${dlElement.getTitle()}/${dlElement.getUuid()}?${dlElement.getVersion()}" alt="${imagenRelatedArticuloMap["alt"]}"> 
				297                        <#else> 
				298                            <#assign  imagen_listado_defecto = layout.getGroup().getExpandoBridge().getAttribute("ciudad-fcc-construccion-listado") /> 
				299                            <img src="${imagen_listado_defecto}" alt="${relatedArticle.getTitle()}"> 
				300                        </#if>    
				301                    </div> 
				302                    <#--  Titulo y pais proyecto relacionado  --> 
				303                    <div class="related__projects-slide--text"> 
				304                        <p class="related__projects-slide--title">${relatedArticle.getTitle()} </p> 
				305                        <p>${relatedCountry}</p> 
				306                    </div>  
				307                </div> 
				308            </#list> 
				309        </div> 
				310    </section> 
				311</#if> 
				312 
				313<#macro breadcrum> 
				314 
				315    <#assign layout_actual = layout /> 
				316    <#assign breadcrumbList = [] /> 
				317 
				318    <#list 0..10 as i> 
				319		<#assign parentId = layout_actual.getParentPlid() />		 
				320		<#if parentId == 0 > 
				321			<#break> 
				322		<#else> 
				323			<#assign layout_actual = layoutLocalService.getLayout(parentId) /> 
				324			<#assign breadcrumbList = breadcrumbList + [layout_actual] />			 
				325		</#if>  
				326	</#list> 
				327 
				328    <#assign size = breadcrumbList?size - 1/> 
				329			 
				330	<#list breadcrumbList?reverse as breadcrumb>	         
				331        <p>${breadcrumb.getName(locale)}</p>		         
				332        <#--<#assign completeUrl = portalUtil.getLayoutFullURL(breadcrumb, themeDisplay) /> 
				333        <li><a href="${completeUrl}">${breadcrumb.getName(locale)}</a></li>-->			 
				334	</#list> 
				335 
				336</#macro> 
				337 
				338<#function createStyleIcon name> 
				339    <#return name?replace("á", "a")?replace("é","e")?replace("í","i")?replace("ó","o")?replace("ú","u")?replace(" ","")?lower_case > 
				340</#function> 
				341 
				342<#function existCitas Cita> 
				343    <#if Cita?? && Cita.getSiblings()?has_content > 
				344        <#list Cita.getSiblings() as cita>         
				345            <#if cita.Autor?? && cita.Autor.getData()?? && cita.Autor.getData() != ""> 
				346                <#return true> 
				347            </#if> 
				348 
				349            <#if cita.Texto?? && cita.Texto.getData()?? && cita.Texto.getData() != ""> 
				350                <#return true> 
				351            </#if> 
				352        </#list> 
				353    </#if> 
				354    <#return false> 
				355</#function> 
				356        <script> 
				357$('.slick-prev').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$('.slick-next').on('click', function(){   
				363var slideIndex = $('.slick-active').attr('data-slick-index'); 
				364var newind = parseInt(slideIndex) + 1; 
				365$('.slick-active-slide').slick("slickGoTo", parseInt(newind)); 
				366}); 
				367 
				368</script>