Buscando, por favor espere...

Portal del Ayuntamiento de la ciudad de Valencia - València

Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> imagenJSON.groupId  [in template "20115#20151#4467918" at line 102, column 81]

----
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 imagen = "/documents/${imagen...  [in template "20115#20151#4467918" at line 102, column 49]
----
1<#assign liferay_theme = PortletJspTagLibs["/META-INF/liferay-theme.tld"] /> 
2<@liferay_theme["defineObjects"] /> 
3<#assign themeRootPath = themeDisplay.getPathThemeRoot() /> 
4<#assign themeImagesPath = themeDisplay.getPathThemeImages() /> 
5 
6<#assign contador  = 0 > 
7<#assign maxContenidos  = 7 > 
8 
9<div class="container-fluid carousel-container no-cabecera-pt-movil"> 
10	<div id="myCarouselV1" class="portada-principal carousel slide" data-ride="carousel"> 
11		<a class="left carousel-control-prev control-flecha" href="#myCarouselV1" data-slide="prev" tabindex="0"> 
12			<div class="arrow"> 
13				<span class="vlc-arrow vlc-arrow-left"></span> 
14				<span class="sr-only" title="Diapositiva anterior">Diapositiva anterior</span> 
15			</div> 
16		</a> 
17 
18		<#assign contador1  = 0 > 
19		<#if entries?has_content> 
20		<div class="carousel-inner" > 
21			<h2 class="ocultovisual"><@liferay.language key="adt-portada-principal-carrusel-noticias-destacadas" /></h2> 
22			<#list entries as curEntry> 
23				<#assign assetRenderer = curEntry.getAssetRenderer() /> 
24	            <#assign article = assetRenderer.getAssetObject() /> 
25				<#assign titulo = "" > 
26				<#assign descripcion = "" > 
27				<#assign urlTitle = article.getUrlTitle() > 
28				<#assign url = "/-/${article.getUrlTitle()}" > 
29                <#assign urlContext = ""> 
30                <#assign lang = themeDisplay.getLocale()> 
31				<#assign ddmStructureKey = article.getDDMStructureKey() > 
32				<#assign rootElement = saxReaderUtil.read(article.getContentByLocale(locale)).getRootElement() /> 
33 
34				 <#-- Campanya municipales y Agenda --> 
35 
36				<#if (ddmStructureKey == "44452") || (ddmStructureKey == "46341")> 
37 
38                     <#-- Campanya municipales --> 
39                    <#if (ddmStructureKey == "44452")> 
40                        <#if lang == "es_ES"> 
41                            <#assign urlContext= "/cas/campañas-municipales"> 
42                        <#elseif lang == "ca_ES" > 
43                            <#assign urlContext= "/val/campanyes-municipals"> 
44                        <#else> 
45                            <#assign urlContext = "/val/campanyes-municipals"> 
46                        </#if> 
47 
48                        <#assign url = "${urlContext}/-/content/${article.getUrlTitle(locale)}" > 
49                    </#if> 
50 
51                    <#-- Agenda --> 
52                    <#if (ddmStructureKey == "46341")> 
53                        <#if lang == "es_ES"> 
54                            <#assign urlContext= "/cas/agenda-de-la-ciudad"> 
55                        <#elseif lang == "ca_ES" > 
56                            <#assign urlContext= "/val/agenda-de-la-ciutat"> 
57                        <#else> 
58                            <#assign urlContext = "/val/agenda-de-la-ciutat"> 
59                        </#if> 
60 
61                        <#assign url = "${urlContext}/-/content/${article.getUrlTitle(locale)}" > 
62                    </#if> 
63 
64					<#assign selectorTituloPortada = saxReaderUtil.createXPath("dynamic-element[@name='tituloPortada']") /> 
65					<#if selectorTituloPortada.selectSingleNode(rootElement)?has_content> 
66						<#assign titulo = selectorTituloPortada.selectSingleNode(rootElement).getStringValue()?replace("\"", "")?trim /> 
67						<#if titulo == ""> 
68							<#assign titulo = article.getTitle(locale) /> 
69						</#if> 
70					<#else> 
71						<#assign titulo = article.getTitle(locale) /> 
72					</#if> 
73 
74					<#assign selectorSubtituloPortada = saxReaderUtil.createXPath("dynamic-element[@name='subtituloPortada']") /> 
75					<#if selectorSubtituloPortada.selectSingleNode(rootElement)?has_content> 
76						<#assign descripcion = selectorSubtituloPortada.selectSingleNode(rootElement).getStringValue()?replace("\"", "")?trim /> 
77						<#if descripcion == ""> 
78							<#assign descripcion = article.getDescription(locale) /> 
79						</#if> 
80					<#else> 
81						<#assign descripcion = article.getDescription(locale) /> 
82					</#if> 
83					<#assign selectorImagenPortada = saxReaderUtil.createXPath("dynamic-element[@name='imagenPortada']") /> 
84					<#if selectorImagenPortada.selectSingleNode(rootElement)?has_content> 
85						<#assign imagen = selectorImagenPortada.selectSingleNode(rootElement).getStringValue()?trim/> 
86 
87						<#if imagen == ""> 
88							<#assign selectorImagenCA = saxReaderUtil.createXPath("dynamic-element[@name='imagen']") /> 
89							<#if selectorImagenCA.selectSingleNode(rootElement)?has_content> 
90								<#assign imagen = selectorImagenCA.selectSingleNode(rootElement).getStringValue()?trim/> 
91								<#if imagen == ""> 
92									<#assign imagen = "${themeImagesPath}/imagen_no_disponible.jpg" /> 
93							   <#else> 
94    							    <#assign imagenJSON = imagen?eval > 
95    						    	<#assign imagen = "/documents/${imagenJSON.groupId}/${imagenJSON.fileEntryId}/${imagenJSON.name?url('UTF-8')}/${imagenJSON.uuid}" > 
96							    </#if> 
97							<#else> 
98								<#assign imagen = "${themeImagesPath}/imagen_no_disponible.jpg" /> 
99							</#if> 
100						<#else> 
101						    <#assign imagenJSON = imagen?eval > 
102					    	<#assign imagen = "/documents/${imagenJSON.groupId}/${imagenJSON.fileEntryId}/${imagenJSON.name?url('UTF-8')}/${imagenJSON.uuid}" > 
103						</#if> 
104					<#else> 
105						<#assign selectorImagenCA = saxReaderUtil.createXPath("dynamic-element[@name='imagen']") /> 
106 
107						<#if selectorImagenCA.selectSingleNode(rootElement)?has_content> 
108							<#assign imagen = selectorImagenCA.selectSingleNode(rootElement).getStringValue()?trim/> 
109							<#if imagen == ""> 
110								<#assign imagen = "${themeImagesPath}/imagen_no_disponible.jpg" /> 
111							<#else> 
112							    <#assign imagenJSON = imagen?eval > 
113						    	<#assign imagen = "/documents/${imagenJSON.groupId}/${imagenJSON.fileEntryId}/${imagenJSON.name?url('UTF-8')}/${imagenJSON.uuid}" > 
114							</#if> 
115						<#else> 
116							<#assign imagen = "${themeImagesPath}/imagen_no_disponible.jpg" /> 
117						</#if> 
118					</#if> 
119 
120					  <#-- Noticia actualidad --> 
121 
122				<#elseif ddmStructureKey == "156671"> 
123 
124					<#if lang == "es_ES"> 
125						<#assign urlContext= "/cas/actualidad"> 
126		  			<#elseif lang == "ca_ES" > 
127						<#assign urlContext= "/val/actualitat"> 
128		  			<#else> 
129			   			<#assign urlContext = "/val/actualitat"> 
130		  			</#if> 
131 
132					<#assign url = "${urlContext}/-/content/${article.getUrlTitle(locale)}" > 
133 
134					<#assign selectorTituloPortada = saxReaderUtil.createXPath("dynamic-element[@name='tituloPortada']") /> 
135					<#if selectorTituloPortada.selectSingleNode(rootElement)?has_content> 
136						<#assign titulo = selectorTituloPortada.selectSingleNode(rootElement).getStringValue()?replace("\"", "")?trim /> 
137						<#if titulo == ""> 
138							<#assign titulo = article.getTitle(locale) /> 
139						</#if> 
140					<#else> 
141						<#assign titulo = article.getTitle(locale) /> 
142					</#if> 
143 
144					<#assign selectorSubtituloPortada = saxReaderUtil.createXPath("dynamic-element[@name='subtituloPortada']") /> 
145					<#if selectorSubtituloPortada.selectSingleNode(rootElement)?has_content> 
146						<#assign descripcion = selectorSubtituloPortada.selectSingleNode(rootElement).getStringValue()?replace("\"", "")?trim /> 
147						<#if descripcion == ""> 
148							<#assign selectorTitular = saxReaderUtil.createXPath("dynamic-element[@name='Antetitulo']") /> 
149							<#if selectorTitular.selectSingleNode(rootElement)?has_content> 
150								<#assign descripcion = selectorTitular.selectSingleNode(rootElement).getStringValue()?replace("\"", "")?trim /> 
151							</#if> 
152						</#if> 
153					<#else> 
154						<#assign selectorTitular = saxReaderUtil.createXPath("dynamic-element[@name='Antetitulo']") /> 
155						<#if selectorTitular.selectSingleNode(rootElement)?has_content> 
156							<#assign descripcion = selectorTitular.selectSingleNode(rootElement).getStringValue()?replace("\"", "")?trim /> 
157						</#if> 
158					</#if> 
159					<#assign selectorImagenPortada = saxReaderUtil.createXPath("dynamic-element[@name='imagenPortada']") /> 
160					<#if selectorImagenPortada.selectSingleNode(rootElement)?has_content> 
161						<#assign imagen = selectorImagenPortada.selectSingleNode(rootElement).getStringValue()?trim /> 
162 
163						<#if imagen == ""> 
164							<#assign selectorTipo = saxReaderUtil.createXPath("dynamic-element[@name='tituloRecurso']/dynamic-element[@name='tipoRecurso']") /> 
165							<#assign selectorMult = saxReaderUtil.createXPath("dynamic-element[@name='tituloRecurso']/dynamic-element[@name='multimedia']") /> 
166							<#if selectorTipo.selectSingleNode(rootElement)?has_content> 
167								<#assign tipo = selectorTipo.selectSingleNode(rootElement).getStringValue()?replace("\"", "") /> 
168							</#if> 
169							<#if (tipo?? && tipo?trim == "imagen") && selectorMult.selectSingleNode(rootElement)?has_content> 
170								<#assign imagen = selectorMult.selectSingleNode(rootElement).getStringValue()?trim /> 
171								<#if imagen == ""> 
172									<#assign imagen = "${themeImagesPath}/imagen_no_disponible.jpg" /> 
173								<#else> 
174    							    <#assign imagenJSON = imagen?eval > 
175    						    	<#assign imagen = "/documents/${imagenJSON.groupId}/${imagenJSON.classPK}/${imagenJSON.title?url('UTF-8')}/${imagenJSON.uuid}" > 
176    							</#if> 
177 
178							<#else> 
179								<#assign imagen = "${themeImagesPath}/imagen_no_disponible.jpg" /> 
180							</#if> 
181						<#else> 
182						    <#assign imagenJSON = imagen?eval > 
183					    	<#assign imagen = "/documents/${imagenJSON.groupId}/${imagenJSON.fileEntryId}/${imagenJSON.name?url('UTF-8')}/${imagenJSON.uuid}" > 
184						</#if> 
185					<#else> 
186						<#assign selectorTipo = saxReaderUtil.createXPath("dynamic-element[@name='tituloRecurso']/dynamic-element[@name='tipoRecurso']") /> 
187						<#assign selectorMult = saxReaderUtil.createXPath("dynamic-element[@name='tituloRecurso']/dynamic-element[@name='multimedia']") /> 
188						<#if selectorTipo.selectSingleNode(rootElement)?has_content> 
189							<#assign tipo = selectorTipo.selectSingleNode(rootElement).getStringValue()?replace("\"", "") /> 
190						</#if> 
191						<#if (tipo?? && tipo?trim == "imagen") && selectorMult.selectSingleNode(rootElement)?has_content> 
192							<#assign imagen = selectorMult.selectSingleNode(rootElement).getStringValue()?trim /> 
193							}/${imagenJSON.name}/${imagenJSON.uuid}" > 
194							<#if imagen == ""> 
195								<#assign imagen = "${themeImagesPath}/imagen_no_disponible.jpg" /> 
196							<#else> 
197							    <#assign imagenJSON = imagen?eval > 
198						    	<#assign imagen = "/documents/${imagenJSON.groupId}/${imagenJSON.fileEntryId}/${imagenJSON.name?url('UTF-8')}/${imagenJSON.uuid}" > 
199							</#if> 
200 
201						<#else> 
202							<#assign imagen = "${themeImagesPath}/imagen_no_disponible.jpg" /> 
203						</#if> 
204					</#if> 
205 
206					<#-- destacadas carrousel --> 
207 
208				<#elseif ddmStructureKey == "9465501"> 
209 
210					<#assign selectorTituloPortada = saxReaderUtil.createXPath("dynamic-element[@name='titulo']") /> 
211                    <#if selectorTituloPortada.selectSingleNode(rootElement)?has_content> 
212						<#assign titulo = selectorTituloPortada.selectSingleNode(rootElement).getStringValue()?replace("\"", "")?trim /> 
213						<#if titulo == ""> 
214							<#assign titulo = article.getTitle(locale) /> 
215						</#if> 
216					<#else> 
217						<#assign titulo = article.getTitle(locale) /> 
218					</#if> 
219 
220					<#assign selectorUrl = saxReaderUtil.createXPath("dynamic-element[@name='url']") /> 
221                    <#if selectorUrl.selectSingleNode(rootElement)?has_content> 
222						<#assign url = selectorUrl.selectSingleNode(rootElement).getStringValue()?replace("\"", "")?trim /> 
223						<#if url == ""> 
224							 <#assign url = "/-/${article.getUrlTitle()}" > 
225						</#if> 
226 
227					</#if> 
228 
229 
230					<#assign selectorSubtituloPortada = saxReaderUtil.createXPath("dynamic-element[@name='descripcion']") /> 
231					<#if selectorSubtituloPortada.selectSingleNode(rootElement)?has_content> 
232						<#assign descripcion = selectorSubtituloPortada.selectSingleNode(rootElement).getStringValue()?replace("\"", "")?trim /> 
233						<#if descripcion == ""> 
234							<#assign descripcion = article.getDescription(locale) /> 
235						</#if> 
236					<#else> 
237						<#assign descripcion = article.getDescription(locale) /> 
238					</#if> 
239 
240					<#assign selectorImagenPortada = saxReaderUtil.createXPath("dynamic-element[@name='imagen']") /> 
241					<#if selectorImagenPortada.selectSingleNode(rootElement)?has_content> 
242						<#assign imagen = selectorImagenPortada.selectSingleNode(rootElement).getStringValue()?trim/> 
243 
244						<#if imagen == ""> 
245							<#assign selectorImagenCA = saxReaderUtil.createXPath("dynamic-element[@name='imagen']") /> 
246							<#if selectorImagenCA.selectSingleNode(rootElement)?has_content> 
247								<#assign imagen = selectorImagenCA.selectSingleNode(rootElement).getStringValue()?trim/> 
248								<#if imagen == ""> 
249									<#assign imagen = "${themeImagesPath}/imagen_no_disponible.jpg" /> 
250							   <#else> 
251    							    <#assign imagenJSON = imagen?eval > 
252    						    	<#assign imagen = "/documents/${imagenJSON.groupId}/${imagenJSON.fileEntryId}/${imagenJSON.name?url('UTF-8')}/${imagenJSON.uuid}" > 
253							    </#if> 
254							<#else> 
255								<#assign imagen = "${themeImagesPath}/imagen_no_disponible.jpg" /> 
256							</#if> 
257						<#else> 
258						    <#assign imagenJSON = imagen?eval > 
259					    	<#assign imagen = "/documents/${imagenJSON.groupId}/${imagenJSON.fileEntryId}/${imagenJSON.name?url('UTF-8')}/${imagenJSON.uuid}" > 
260						</#if> 
261					<#else> 
262						<#assign selectorImagenCA = saxReaderUtil.createXPath("dynamic-element[@name='imagen']") /> 
263 
264						<#if selectorImagenCA.selectSingleNode(rootElement)?has_content> 
265							<#assign imagen = selectorImagenCA.selectSingleNode(rootElement).getStringValue()?trim/> 
266							<#if imagen == ""> 
267								<#assign imagen = "${themeImagesPath}/imagen_no_disponible.jpg" /> 
268							<#else> 
269							    <#assign imagenJSON = imagen?eval > 
270						    	<#assign imagen = "/documents/${imagenJSON.groupId}/${imagenJSON.fileEntryId}/${imagenJSON.name?url('UTF-8')}/${imagenJSON.uuid}" > 
271							</#if> 
272						<#else> 
273							<#assign imagen = "${themeImagesPath}/imagen_no_disponible.jpg" /> 
274					</#if> 
275				 </#if> 
276 
277 
278				<#else> 
279					<#assign titulo = article.getTitle(locale) /> 
280					<#assign descripcion = article.getDescription(locale) /> 
281					<#assign imagen = "${themeImagesPath}/imagen_no_disponible.jpg" /> 
282				</#if> 
283 
284				<div class="carousel-item ${(contador1 == 0)?then('active', '')} background-image-publicador" style="background-image: url(${imagen})"> 
285					<div class="container"> 
286						<div class="row row-elementosV1"> 
287							<div class="col-xs-12"> 
288								<div class=" row row-title "> 
289									<h3 class="text-titleV1" style="width: 100%;">${titulo?trim}</h3> 
290									<hr class="hr-title"/> 
291								</div> 
292 
293								<div class="row row-description "> 
294									<p class="text-descriptionV1 ">${descripcion?trim}</p> 
295								</div> 
296								<div class="row url-informationV1 "> 
297									<p> 
298										<a class="btn btn-estandar " href="${url} " target="_blank"> 
299											<@liferay.language key="label_mas_informacion" /> 
300										</a> 
301									</p> 
302								</div> 
303							</div> 
304						</div> 
305					</div> 
306				</div> 
307 
308			<#assign contador1  = contador1+1 > 
309			<#if contador1 == maxContenidos > 
310			    <#break> 
311			</#if> 
312			</#list> 
313		</div> 
314		<a class="right carousel-control-next control-flecha flecha" href="#myCarouselV1" data-slide="next" tabindex="0"> 
315			<div class="arrow"> 
316				<span class="vlc-arrow vlc-arrow-right"></span> 
317				<span class="sr-only" title="Diapositiva siguiente">Diapositiva siguiente</span> 
318			</div> 
319		</a> 
320		<div class="slider-dots-wrapper"> 
321			<span class="btn-play glyphicon"></span> 
322			<ul class="carousel-indicators"> 
323				<#if entries?has_content> 
324					<#list entries as curEntry> 
325						<li data-target="#myCarouselV1" data-slide-to="${contador}" class="${(contador == 0)?then('active', '')}" > 
326							<button  ${(contador == 0)?then('aria-current=\"true\"', '')}  class="${(contador == 0)?then('current', '')}" ><span class="ocultovisual">Mostrar Noticia ${contador+1} </span></button> 
327						</li> 
328						<#assign contador  = contador+1 > 
329                        <#if contador == maxContenidos > 
330                            <#break> 
331                        </#if> 
332					</#list> 
333				</#if> 
334			</ul> 
335		</div> 
336 
337		</#if> 
338	</div> 
339</div> 
340 
341<#if !entries?has_content> 
342    <style> 
343        .container-fluid.carousel-container { 
344            display: none; 
345
346        #webs-municipales-circ { 
347            margin-top: 3em; 
348
349    </style> 
350 
351</#if> 
352 
353<script> 
354    $('#myCarouselV1').carousel({ 
355        interval:6000, 
356        pause: "false" 
357    }); 
358 
359    $('#myCarouselV1 .btn-play').on('click', function () { 
360        if ($('.btn-play').hasClass('btn-play-paused') ) { 
361            $('#myCarouselV1').carousel('cycle'); 
362        } else { 
363            $('#myCarouselV1').carousel('pause'); 
364
365        $('.btn-play').toggleClass('btn-play-paused'); 
366    }); 
367 
368</script> 

ACTUALIDAD


A un clic

A TU LADO


Agenda de la ciudad

Jueves

19

Marzo

FALLAS DE VALÈNCIA 2026 - Programa

11/01/2026 - 19/03/2026

FIESTAS

III Año Jubilar Santo Cáliz: visitas guiadas gratuitas

21/03/2026 - 26/04/2026

VISITAS GUIADAS

Rutas Hemingway: visitas guiadas gratuitas

14/03/2026 - 04/04/2026

VISITAS GUIADAS

Bibliotecas Municipales: programación de marzo

02/03/2026 - 31/03/2026

AGENDA INFANTIL

REDES SOCIALES

com.everis.liferay.instagram.info.num-post-0

Inserta la configuracion correcta

GEOPORTAL