The following has evaluated to null or missing:
==> renderer.getArticle [in template "12187455#12187494#13940982" at line 66, column 75]
----
Tip: It's the step after the last dot that caused this error, not those before it.
----
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 journalArticle = renderer.get... [in template "12187455#12187494#13940982" at line 66, column 49]
----
1<#assign UserLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.UserLocalService")>
2<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
3
4<#assign user = UserLocalService.getUserById(themeDisplay.getUserId())>
5<#assign scopeLocale = themeDisplay.getLocale()>
6
7
8<#if entries?has_content>
9 <#assign listaContenidos = [] />
10 <#assign listaRenderersContenidos = [] />
11
12 <#if locale == "es_ES">
13 <#assign indicatorText = "Mover a la imagen">
14 <#assign playButtonText = "Iniciar carrusel">
15 <#assign stopButtonText = "Pausar carrusel">
16 <#elseif locale == "ca_ES">
17 <#assign indicatorText = "Mou a la imatge">
18 <#assign playButtonText = "Iniciar carrusel">
19 <#assign stopButtonText = "Pausar carrusel">
20 <#elseif locale == "gl_ES">
21 <#assign indicatorText = "Mover á imaxe">
22 <#assign playButtonText = "Comeza o carrusel">
23 <#assign stopButtonText = "Pausa o carrusel">
24 <#elseif locale == "fr_FR">
25 <#assign indicatorText = "Passer à l'image">
26 <#assign playButtonText = "Démarrer le carrousel">
27 <#assign stopButtonText = "Suspendre le carrousel">
28 <#elseif locale == "pt_PT">
29 <#assign indicatorText = "Passar para a imagem">
30 <#assign playButtonText = "Play carrossel">
31 <#assign stopButtonText = "Stop carrossel">
32 <#elseif locale == "it_IT">
33 <#assign indicatorText = "Passa all'immagine">
34 <#assign playButtonText = "Avvia carosello">
35 <#assign stopButtonText = "Metti in pausa il carosello">
36 <#elseif locale == "de_DE">
37 <#assign indicatorText = "Gehen Sie zu Bild">
38 <#assign playButtonText = "Karussell starten">
39 <#assign stopButtonText = "Karussell anhalten">
40 <#else>
41 <#assign indicatorText = "Move to image">
42 <#assign playButtonText = "Play carousel">
43 <#assign stopButtonText = "Stop carousel">
44 </#if>
45
46
47 <#if entries?size gt 1>
48 <div id="myCarousel" class="carousel slide normalSlider" data-ride="carousel">
49 <div class="center">
50
51 <button id="playButton" type="button" class="btn btnPlayPause btnPlay" aria-label="${playButtonText}">
52 <span class="sr-only">${playButtonText}</span>
53 <i class="icon-play"></i>
54 </button>
55 <button id="pauseButton" type="button" class="btn btnPlayPause" aria-label="${stopButtonText}">
56 <span class="sr-only">${stopButtonText}</span>
57 <i class="icon-pause"></i>
58 </button>
59
60 <ol class="carousel-indicators">
61 <#assign active = "active" />
62 <#list entries as curEntry>
63
64 <#assign renderer = curEntry.getAssetRenderer() />
65 <#assign className = renderer.getClassName() />
66 <#assign journalArticle = renderer.getArticle() />
67 <#assign listaContenidos = listaContenidos + [journalArticle]>
68 <#assign listaRenderersContenidos = listaRenderersContenidos + [renderer]>
69
70 <li class="${active}">
71 <a href="#" data-target="#myCarousel" data-slide-to="${curEntry?index}">
72 <span class="sr-only">${indicatorText} ${curEntry?index}</span>
73 </a>
74 </li>
75
76 <#assign active = "" />
77 </#list>
78
79 </ol>
80 </div>
81
82 <div class="carousel-inner">
83 <#assign active ="active" />
84
85 <#if listaContenidos?has_content>
86 <#list listaContenidos as contenido>
87
88
89 <#assign currentRenderer = listaRenderersContenidos[contenido_index]>
90
91 <div class="${active} carousel-item item">
92 <div class="lfr-meta-actions asset-actions">
93
94 <#if currentRenderer.hasEditPermission(themeDisplay.getPermissionChecker())>
95
96 <#assign redirectURL = renderResponse.createRenderURL()>
97 <#assign ignore = redirectURL.setParameter("struts_action", "/asset_publisher/add_asset_redirect")>
98 <#assign ignore = redirectURL.setWindowState("pop_up")>
99
100 <#assign editPortletURL = currentRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)>
101
102 <#if editPortletURL?? && editPortletURL?has_content>
103 <#assign title = languageUtil.format(locale, "edit-x", currentRenderer.getTitle(locale))>
104
105
106
107 <#assign namespace = renderResponse.getNamespace()>
108 <#assign escapedURL = htmlUtil.escapeURL(editPortletURL?string)>
109 <#assign jsURL = "javascript:Liferay.Util.openWindow({dialog: {width: 960}, id:'${namespace}editAsset', title:'${currentRenderer.getTitle(locale)}', uri:'${escapedURL}'})">
110
111
112
113 <@liferay_ui["icon"]
114 image="edit"
115 message=title
116 url=jsURL
117 />
118
119 </#if>
120 </#if>
121 </div>
122
123
124 <#assign article = JournalArticleLocalService.getArticle(contenido.getGroupId(), contenido.getArticleId() ) />
125 ${JournalArticleLocalService.getArticleContent(contenido.getGroupId(),contenido.getArticleId() , null , article.getDDMTemplateKey(), locale.toString(), null, themeDisplay)}
126
127 </div>
128 <#assign active ="" />
129 </#list>
130 </#if>
131
132 </div>
133 </div>
134
135 <#else>
136
137 <div class="carousel normalSlider">
138 <#assign curEntry= entries[0] />
139 <#assign currentRenderer = curEntry.getAssetRenderer()/>
140 <#assign className = currentRenderer.getClassName() />
141 <#assign journalArticle = currentRenderer.getArticle()/>
142 <#assign contenido = journalArticle />
143
144 <div class="carousel-inner">
145 <div class="carousel-item item active">
146
147 <div class="lfr-meta-actions asset-actions">
148
149 <#if currentRenderer.hasEditPermission(themeDisplay.getPermissionChecker())>
150
151 <#assign redirectURL = renderResponse.createRenderURL()>
152 <#assign ignore = redirectURL.setParameter("struts_action", "/asset_publisher/add_asset_redirect")>
153 <#assign ignore = redirectURL.setWindowState("pop_up")>
154
155 <#assign editPortletURL = currentRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)>
156
157 <#if editPortletURL?? && editPortletURL?has_content>
158 <#assign title = languageUtil.format(locale, "edit-x", currentRenderer.getTitle(locale))>
159
160 <#-- <#assign icono = taglibLiferay.getIconTag()>
161 <#assign ignore = icono.setImage("edit")>
162 <#assign ignore = icono.setMessage(title)> -->
163
164 <#assign namespace = renderResponse.getNamespace()>
165 <#assign escapedURL = htmlUtil.escapeURL(editPortletURL?string)>
166 <#assign jsURL = "javascript:Liferay.Util.openWindow({dialog: {width: 960}, id:'${namespace}editAsset', title:'${currentRenderer.getTitle(locale)}', uri:'${escapedURL}'})">
167
168 <#-- <#assign ignore = icono.setUrl(jsURL)> -->
169
170 <@liferay_ui["icon"]
171 image="edit"
172 message=title
173 url=jsURL
174 />
175
176 </#if>
177 </#if>
178 </div>
179
180 <#assign article = JournalArticleLocalService.getArticle(contenido.getGroupId(), contenido.getArticleId() ) />
181 ${JournalArticleLocalService.getArticleContent(contenido.getGroupId(),contenido.getArticleId() , null , article.getDDMTemplateKey(), locale.toString(), null, themeDisplay)}
182
183
184 </div>
185 </div>
186 </div>
187 </#if>
188</#if>
Sostenibilidad

Estrategia de Sostenibilidad 2050
Más información

Medio Ambiente
Más información

Excelencia
Más información

Gobernanza
Más información

Premios AVANZA
Más información
Gestión de la Calidad
FCC Medio Ambiente posee un Sistema de Gestión de la Calidad conforme a la norma internacional UNE-EN ISO 9001:2015 que ha sido auditado por AENOR, obteniéndose el correspondiente certificado ER-0278/1997 en el año 1997.
Entre los principales requisitos de esta norma internacional están el desarrollo de políticas de gestión y procedimientos documentados para el correcto desarrollo operativo de la organización, el análisis y revisión de las necesidades y expectativas de las partes interesadas para logar la calidad prevista, la determinación de los requisitos legales u otros que puedan afectar a la organización para su control y cumplimiento, y el seguimiento, medición, análisis y mejora del sistema de gestión. Es por ello que el Sistema de Gestión de FCC se basa en la metodología PHVA (Planificar-Hacer-Verificar y Actuar), el principio de mejorar continuamente las actividades que desarrolla y obligan a garantizar una eficaz y excelente prestación de los servicios a nuestros clientes, basado a su vez en la satisfacción del ciudadano.

Baldeo mixto en el Puente del Tercer Milenio (Zaragoza)









