Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> contenidoRelacionadoUrl?split('/w/')[1]  [in template "20099#20125#930868" at line 751, column 101]

----
Tip: It's the final [] step 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 contenidoRelacionadoUrl = cur...  [in template "20099#20125#930868" at line 751, column 41]
----
1<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
2<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") /> 
3<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
4<#assign assetPublisherHelper = serviceLocator.findService("com.liferay.asset.publisher.util.AssetPublisherHelper") /> 
5<#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
6<#assign dlFileVersionPreviewLocalService = serviceLocator.findService("com.liferay.document.library.service.DLFileVersionPreviewLocalService") /> 
7<#assign dlFileVersionService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileVersionService") /> 
8<#assign assetLinkFilterService = serviceLocator.findService("com.abaco.portales.related.service.RelatedAssetLinkFilterService") /> 
9 
10<#-- Get current entry assets --> 
11<#assign currentArticle = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) /> 
12<#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey() /> 
13<#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) /> 
14<#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() /> 
15<#assign currentArticleRelatedLinks = assetLinkFilterService.getOrderedListByPublishDate(currentArticleAssetEntryId) /> 
16 
17<#assign backURL = (request.getParameter("redirect"))!"" /> 
18 
19<#assign style_imagen_fondo = ""> 
20<#if (imagenes.imagenes_imagen_fondo.getData())?? && imagenes.imagenes_imagen_fondo.getData() != ""> 
21	<#assign style_imagen_fondo = "background-image: url('${imagenes.imagenes_imagen_fondo.getData()}')"> 
22</#if> 
23 
24<style> 
25	::-moz-selection { 
26	background:rgba(8,112,33,0.5); 
27	color:white 
28
29	::selection { 
30	background:rgba(8,112,33,0.5); 
31	color:white 
32
33 
34    #wrapper .procedimiento-hito__title-disabled { 
35        font-weight: 400; 
36        font-size: initial; 
37
38    #wrapper .procedimiento-hito__description { 
39        font-size: initial; 
40
41    #wrapper .documentos-entries { 
42        flex-direction: column; 
43        align-items: flex-start; 
44
45    #wrapper .documentos-entries .documento-entrie { 
46        width: 100%; 
47
48    #wrapper .documentos-entries ul { 
49        list-style: none; 
50        display: flex; 
51        flex-direction: row; 
52        justify-content: flex-start; 
53        flex-wrap: wrap; 
54        gap: 5px; 
55        padding-left: 0; 
56
57    #wrapper .documentos-entries ul>li { 
58        width: auto; 
59        min-width: 33%; 
60
61    @media (max-width: 776px) { 
62        #wrapper .documentos-entries ul { 
63            flex-direction: column; 
64
65
66    #wrapper .documentos-entries .documento-entry { 
67        width: 100% 
68
69    #wrapper .procedimiento-enlaces li a[target="_blank"] { 
70        background: url("https://www.juntadeandalucia.es/educacion/portals/abaco-juntav2-theme/images/subsite/icons/icon_external_link.png") no-repeat scroll 100% center/14px transparent; 
71        padding-right: 25px !important; 
72
73		#wrapper .procedimiento-hito__title:hover { 
74				color: var(--secondary-color); 
75
76	 
77	#the-canvas { 
78		border: 1px solid black; 
79		direction: ltr; 
80
81	.related-content__container { 
82		display: none; 
83
84</style> 
85<script> 
86	function actualizarMenuAsideProcedimiento() { 
87    var procedimientoMain = $('.procedimiento-main'); 
88    var procedimientoAside = $('.procedimiento-aside'); 
89    var links = procedimientoAside.find('a'); 
90     
91    procedimientoMain.find('div[id]').each(function() { 
92        var divTop = $(this).offset().top - 200; 
93        var divBottom = divTop + $(this).outerHeight(); 
94        var scrollTop = $(window).scrollTop(); 
95 
96        if (scrollTop >= divTop && scrollTop < divBottom) { 
97            links.closest('li').removeClass('elem-active'); 
98            var href = '#' + $(this).attr('id'); 
99            procedimientoAside.find('a[href="' + href + '"]').closest('li').addClass('elem-active'); 
100
101    }); 
102
103	function handleResizeProcedimiento() { 
104			var menu = $('.procedimiento-aside .menu'); 
105			var scrollTop = $(window).scrollTop(); 
106			var procedimientoMainTop = $('.procedimiento-main').offset().top; 
107 
108			if ($(window).width() <= 992 || scrollTop <= procedimientoMainTop) { 
109					menu.css({ 
110							'position': 'relative', 
111							'top': '0', 
112							'width': 'auto' 
113					}); 
114			} else { 
115					var aside = $('.procedimiento-aside'); 
116					var asideTop = aside.offset().top; 
117					var asideBottom = asideTop + aside.outerHeight(); 
118					var asideWidth = aside.width(); 
119					var bannerv6Height = $('#bannerv6').outerHeight(); 
120					var navbarTopHeight = $('#navbar-top').outerHeight(); 
121					var menuHeight = menu.outerHeight(); 
122					var maxTop = asideBottom - menuHeight - bannerv6Height - navbarTopHeight + 140; 
123 
124					if (scrollTop >= asideTop && scrollTop <= maxTop) { 
125							menu.css({ 
126									'position': 'fixed', 
127									'top': '140px', 
128									'width': asideWidth + 'px' 
129							}); 
130					} else if (scrollTop > maxTop) { 
131							var newTop = maxTop - scrollTop; 
132							menu.css({ 
133									'position': 'fixed', 
134									'top': newTop + 'px', 
135									'width': asideWidth + 'px' 
136							}); 
137
138
139
140	function handleScrollProcedimiento() { 
141			var scrollTop = $(window).scrollTop(); 
142			var aside = $('.procedimiento-aside'); 
143			var menu = $('.procedimiento-aside .menu'); 
144			var asideTop = aside.offset().top; 
145			var asideBottom = asideTop + aside.outerHeight(); 
146			var asideWidth = aside.width(); 
147			var bannerv6Height = $('#bannerv6').outerHeight(); 
148			var navbarTopHeight = $('#navbar-top').outerHeight(); 
149			var menuHeight = menu.outerHeight(); 
150			var maxTop = asideBottom - menuHeight - bannerv6Height - navbarTopHeight + 140; 
151			var newTop = maxTop - scrollTop; 
152 
153			if ($(window).width() > 992) { 
154					if (scrollTop >= asideTop && scrollTop <= maxTop) { 
155							menu.css({ 
156									'position': 'fixed', 
157									'top': '140px', 
158									'width': asideWidth + 'px' 
159							}); 
160					} else if (scrollTop > maxTop) { 
161							menu.css({ 
162									'position': 'fixed', 
163									'top': newTop + 'px', 
164									'width': asideWidth + 'px' 
165							}); 
166					} else { 
167							menu.css({ 
168									'position': 'relative', 
169									'top': '0', 
170									'width': 'auto' 
171							}); 
172
173
174
175	 
176	$(window).on('scroll', actualizarMenuAsideProcedimiento); 
177	$(window).on('resize', handleResizeProcedimiento); 
178	$(window).on('scroll', handleScrollProcedimiento); 
179	$(document).ready(function() { 
180        function scrollToMenuAsideProcedimiento(event) { 
181            event.preventDefault(); // Prevenir el comportamiento predeterminado del enlace 
182 
183            var targetId = $(this).attr('href').substring(1); 
184            var targetElement = $('#' + targetId); 
185 
186            if (targetElement && targetElement.length > 0) { 
187                var targetRect = targetElement[0].getBoundingClientRect(); 
188                var navbarHeight = $('#navbar-top').outerHeight() || 0; 
189                var bannerv6Height = $('#bannerv6').outerHeight() || 0; 
190 
191                var scrollToPosition = targetRect.top + $(window).scrollTop() - navbarHeight - bannerv6Height - 15; 
192 
193                $('html, body').animate({ 
194                    scrollTop: scrollToPosition 
195                }, 'slow'); 
196            } else { 
197                console.log("Target element not found or does not exist."); 
198
199
200        $('.procedimiento-aside a').on('click', scrollToMenuAsideProcedimiento); 
201		 
202		function moveInverterToFirst() { 
203            var parentDiv = document.getElementById("atributos"); 
204 
205            if (parentDiv) { 
206                var children = parentDiv.children; 
207                var childrenArray = Array.prototype.slice.call(children); 
208 
209                var inverterDivIndex = childrenArray.findIndex(function(child) { 
210                    return child.classList.contains("procedimiento-hito__container--inverter"); 
211                }); 
212                 
213                if (inverterDivIndex !== -1) { 
214                    var inverterDiv = childrenArray[inverterDivIndex]; 
215 
216                    parentDiv.removeChild(inverterDiv); 
217 
218                    var titleSection = parentDiv.querySelector('h2.title-section'); 
219 
220                    if (titleSection) { 
221                        titleSection.insertAdjacentElement('afterend', inverterDiv); 
222                    } else { 
223                        parentDiv.insertBefore(inverterDiv, parentDiv.firstChild); 
224
225
226
227
228        // Llamar a la función para ejecutar la acción 
229        //moveInverterToFirst(); 
230}); 
231 
232</script> 
233 
234<#macro detailDoc fileEntry cssClass> 
235		<div class="documento-entry ${cssClass}" onmouseenter="event.srcElement.style.overflow='unset';" onmouseleave="event.srcElement.style.overflow='hidden';"> 
236			<#assign	 
237					fileVersion = fileEntry.getLatestFileVersion(true)  
238					viewURL = themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/" + fileEntry.getGroupId() + "/" + fileEntry.getFolderId() + "/" + htmlUtil.escape(fileEntry.getFileName()) + "/" + fileEntry.getUuid() + "?version=" + fileVersion.getVersion() 
239					viewThumbnail = themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/" + fileEntry.getGroupId() + "/" + fileEntry.getFolderId() + "/" + htmlUtil.escape(fileEntry.getFileName()) + "/" + fileEntry.getUuid() + "?version=" + fileVersion.getVersion() + "&documentThumbnail=1" 
240			/> 
241			<div class="documento-entry__preview ${fileEntry.getExtension()}"> 
242				<a href="${viewURL}" target="_blank" title="Ver documento ${fileEntry.getTitle()}"> 
243					<span class="sr-only">Ver documento ${fileEntry.getTitle()}</span> 
244					<div class="documento-entry__preview--icon font-icomoon icon-ico-${fileEntry.getExtension()}"></div> 
245					<#if fileEntry.getExtension() == 'pdf'> 
246							<img id="the-canvas-${fileEntry.fileEntryId}" src="${viewThumbnail}" class="documento-entry__preview--canvas" style="margin-left: auto; 
247							margin-right: auto; display:flex;"> 
248					</#if> 
249					<#if fileEntry.getMimeType()?contains("image")> 
250							<img id="the-canvas-${fileEntry.fileEntryId}" src="${viewURL}" class="documento-entry__preview--canvas" style="margin-left: auto; 
251							margin-right: auto; display:flex;"> 
252					</#if> 
253				</a> 
254			</div> 
255			<div class="documento-entry__datos"> 
256				<a href="${viewURL}" target="_blank" class="documento-entry__datos--titulo" title="Ver documento ${fileEntry.getTitle()}">	 
257					${fileEntry.getTitle()}  
258				</a> 
259				<#if fileEntry.getDescription()?? && fileEntry.getDescription()?has_content> 
260					<p>${fileEntry.getDescription()}</p> 
261				</#if> 
262 
263			</div> 
264			<div class="documento-entry__info"> 
265					<a href="${viewURL}" target="_blank" download title="Descargar documento"> 
266						Descargar ${fileEntry.getExtension()} <span class="text-nowrap">(#{(fileEntry.getSize()/1024); M1} Kb)</span> 
267					</a> 
268			</div> 
269		</div> 
270</#macro> 
271 
272<#macro listDocs filesFolder> 
273	<#list filesFolder as fileEntry> 
274		<#if  !(fileEntry.getMimeType()?contains("image") || fileEntry.getMimeType()?contains("video") || fileEntry.getMimeType()?contains("audio")) > 
275			<@detailDoc fileEntry=fileEntry cssClass="content-folder"/> 
276		</#if>						 
277	</#list> 
278</#macro> 
279 
280<div class="container"> 
281    <div class="back_button"> 
282        <a href="${backURL}" title="Volver a la página anterior"> 
283            <span class="icon-reply" aria-hidden="true"></span> 
284            <span class="">Volver</span> <!-- Añadir texto solo visible para lectores de pantalla --> 
285        </a> 
286    </div> 
287</div> 
288 
289<div class="procedimiento-banner procedimiento-banner--light" style="${style_imagen_fondo}"> 
290    <div class="container"> 
291        <div class="procedimiento-banner__cont-header-logo"> 
292            <div class="procedimiento-banner__container-header"> 
293                <header class="procedimiento-banner__header"> 
294                    <#if (ficha.ficha_titulo_visible.getData())??> 
295                        <h1 class="procedimiento-banner__alias">${ficha.ficha_titulo_visible.getData()}</h1> 
296                    </#if> 
297                </header> 
298            </div> 
299            <div class="procedimiento-banner__container-logo"> 
300                <figure class="procedimiento-banner__logo"> 
301                    <#if (imagenes.imagenes_imagen_representativa.getData())?? && imagenes.imagenes_imagen_representativa.getData() != ""> 
302                        <img  
303                            src="${imagenes.imagenes_imagen_representativa.getData()}"  
304                            alt="${imagenes.imagenes_imagen_representativa.getAttribute("alt")}"  
305                            data-fileentryid="${imagenes.imagenes_imagen_representativa.getAttribute("fileEntryId")}"  
306                        /> 
307                    </#if> 
308                </figure> 
309            </div> 
310        </div> 
311    </div> 
312</div> 
313 
314<#-- Contenido procedimiento y menú lateral --> 
315<div class="container procedimiento-container"> 
316 
317	<#-- Contenido del procedimiento --> 
318	<div class="procedimiento-main"> 
319 
320		<#-- Ficha del procedimiento --> 
321		<div class="container procedimiento-ficha" id="ficha" role="region" aria-labelledby="ficha-title"> 
322				<h2 class="title-section" id="ficha-title">Información general</h2> 
323				<div class="procedimiento-ficha__apartados"> 
324                <#if (ficha.ficha_titulo_formal.getData())??  && (ficha.ficha_titulo_formal.getData() != "")> 
325                    <div class="procedimiento-ficha__apartados__apartado"> 
326                            <h4>Titulo formal:</h4> 
327                            <p>${ficha.ficha_titulo_formal.getData()}</p> 
328                    </div> 
329                </#if> 
330                    <div class="procedimiento-ficha__apartados__apartado"> 
331                        <h4>Código:</h4> 
332                        <#if (ficha.ficha_codigo.getData())?? && (ficha.ficha_codigo.getData() != "")> 
333                            <p>${ficha.ficha_codigo.getData()}</p> 
334                        <#else> 
335                            <p>Procedimiento no codificado</p> 
336                        </#if> 
337                    </div> 
338            <#if (ficha.ficha_destinatarios.getData())??  && (ficha.ficha_destinatarios.getData() != "")> 
339                    <div class="procedimiento-ficha__apartados__apartado"> 
340                            <h4>Destinatarios:</h4> 
341                            <p>${ficha.ficha_destinatarios.getData()}</p> 
342                    </div> 
343            </#if> 
344                    <div class="procedimiento-ficha__apartados__apartado"> 
345                            <h4>Fecha de creación:</h4> 
346                            <#assign fichaProcedimiento_Fecha_procedimiento_Data = getterUtil.getString(ficha.ficha_fecha_creacion.getData())> 
347                            <#if validator.isNotNull(fichaProcedimiento_Fecha_procedimiento_Data)> 
348                                    <p> 
349                                            <#assign fichaProcedimiento_Fecha_procedimiento_DateObj = dateUtil.parseDate("yyyy-MM-dd", fichaProcedimiento_Fecha_procedimiento_Data, locale)> 
350                                            ${dateUtil.getDate(fichaProcedimiento_Fecha_procedimiento_DateObj, "dd MMM yyyy", locale)} 
351                                    </p> 
352                            </#if> 
353                    </div> 
354				</div> 
355 
356				<#if (ficha.ficha_descripcion.getData())??  && (ficha.ficha_descripcion.getData() != "")> 
357						<div class="procedimiento-ficha__description" role="region" aria-labelledby="ficha-description-title"> 
358								<h3 id="ficha-description-title">Descripción</h3> 
359								<p>${ficha.ficha_descripcion.getData()}</p> 
360						</div> 
361				</#if> 
362		</div> 
363 
364		<#--Fin Ficha del procedimiento --> 
365		 
366		<#-- Atributos --> 
367		<#if atributos?size != 0 && (convocatoria.convocatoria_mostrar.getData() == "si" || plazo_solicitud.plazo_solicitud_mostrar.getData() == "si" ||  estado.estado_mostrar.getData() == "si") > 
368			<div class="container procedimiento-hito uno" id="atributos"> 
369                <h2 class="title-section">Atributos</h2> 
370 
371                <#-- Atributo destacados --> 
372                <#if atributos?size != 0> 
373                    <#list atributos.getSiblings() as atributo> 
374                        <#-- Obtener y formatear las fechas de cada atributo --> 
375                        <#assign hito_grupo_campos_hito_fecha_desde_Data = getterUtil.getString(atributo.atributos_fecha_inicio.getData())> 
376                        <#if validator.isNotNull(hito_grupo_campos_hito_fecha_desde_Data)> 
377                            <#assign hito_grupo_campos_hito_fecha_desde_DateObj = dateUtil.parseDate("yyyy-MM-dd", hito_grupo_campos_hito_fecha_desde_Data, locale)> 
378                            <#assign atributos_fecha_inicio = dateUtil.getDate(hito_grupo_campos_hito_fecha_desde_DateObj, "dd MMM yyyy", locale)> 
379                        </#if> 
380 
381                        <#assign hito_grupo_campos_hito_fecha_hasta_Data = getterUtil.getString(atributo.atributos_fecha_final.getData())> 
382                        <#if validator.isNotNull(hito_grupo_campos_hito_fecha_hasta_Data)> 
383                            <#assign hito_grupo_campos_hito_fecha_hasta_DateObj = dateUtil.parseDate("yyyy-MM-dd", hito_grupo_campos_hito_fecha_hasta_Data, locale)> 
384                            <#assign atributos_fecha_final = dateUtil.getDate(hito_grupo_campos_hito_fecha_hasta_DateObj, "dd MMM yyyy", locale)> 
385                        </#if> 
386 
387                        <#-- Mostrar el atributo solo si atributos_mostrar y atributos_destacado son "si" --> 
388                        <#if (atributo.atributos_titulo.getData())?? && (atributo.atributos_mostrar.getData())?? && (atributo.atributos_destacado.getData())??> 
389                            <#if atributo.atributos_mostrar.getData() == "si" && atributo.atributos_destacado.getData() == "si"> 
390                                <div class="procedimiento-hito__container procedimiento-hito__container--inverter"> 
391                                    <div class="procedimiento-hito__section"> 
392                                        <h3 title="${atributo.atributos_titulo.getData()}">${atributo.atributos_titulo.getData()}</h3> 
393                                        <#if validator.isNotNull(hito_grupo_campos_hito_fecha_desde_Data) && validator.isNotNull(hito_grupo_campos_hito_fecha_hasta_Data)> 
394                                            <h4> 
395                                                ${atributos_fecha_inicio} - ${atributos_fecha_final} 
396                                                <span class=""> 
397                                                    <i class="icon-calendar"></i> 
398                                                </span> 
399                                            </h4> 
400                                        </#if> 
401                                    </div> 
402                                    <div class="procedimiento-hito__container-content"> 
403                                        <div class="procedimiento-hito__container-a"> 
404                                            <#if (atributo.atributos_enlace_externo.getData())??> 
405                                                <a href="${atributo.atributos_enlace_externo.getData()}" target="_blank" class="procedimiento-hito__link"> 
406                                            </#if> 
407                                                <div class=""> 
408                                                    <div class="procedimiento-hito__icon"> 
409                                                        <span class=""> 
410                                                            <i class="icon-warning-sign"></i> 
411                                                        </span> 
412                                                    </div> 
413                                                </div> 
414                                                <div class="procedimiento-hito__title-container"> 
415                                                    <#if (atributo.atributos_descripcion.getData())??> 
416                                                        <div class="procedimiento-hito__subtitle"> 
417                                                            ${atributo.atributos_descripcion.getData()} 
418                                                        </div>     
419                                                    </#if> 
420                                                </div> 
421                                            <#if (atributo.atributos_enlace_externo.getData())??> 
422                                                </a> 
423                                            </#if> 
424                                        </div> 
425                                    </div> 
426                                </div> 
427                            </#if> 
428                        </#if> 
429                    </#list> 
430                </#if> 
431 
432                <#-- Convocatoria --> 
433				    <#-- Obtener y formatear las fechas de convocatoria --> 
434                <#assign convocatoria_grupo_campos_convocatoria_fecha_desde_Data = getterUtil.getString(convocatoria.convocatoria_fecha_inicio.getData())> 
435                <#if validator.isNotNull(convocatoria_grupo_campos_convocatoria_fecha_desde_Data)> 
436                    <#assign convocatoria_grupo_campos_convocatoria_fecha_desde_DateObj = dateUtil.parseDate("yyyy-MM-dd", convocatoria_grupo_campos_convocatoria_fecha_desde_Data, locale)> 
437                    <#assign convocatoria_fecha_inicio = dateUtil.getDate(convocatoria_grupo_campos_convocatoria_fecha_desde_DateObj, "dd MMM yyyy", locale)> 
438                </#if> 
439 
440                <#assign convocatoria_grupo_campos_convocatoria_fecha_hasta_Data = getterUtil.getString(convocatoria.convocatoria_fecha_final.getData())> 
441                <#if validator.isNotNull(convocatoria_grupo_campos_convocatoria_fecha_hasta_Data)> 
442                    <#assign convocatoria_grupo_campos_convocatoria_fecha_hasta_DateObj = dateUtil.parseDate("yyyy-MM-dd", convocatoria_grupo_campos_convocatoria_fecha_hasta_Data, locale)> 
443                    <#assign convocatoria_fecha_final = dateUtil.getDate(convocatoria_grupo_campos_convocatoria_fecha_hasta_DateObj, "dd MMM yyyy", locale)> 
444                </#if> 
445 
446                <#if (convocatoria.convocatoria_titulo.getData())?? && (convocatoria.convocatoria_mostrar.getData())??> 
447                    <#if convocatoria.convocatoria_mostrar.getData() == "si"> 
448                        <div class="procedimiento-hito__container"> 
449                            <div class="procedimiento-hito__section"> 
450                                <h3 title="CONVOCATORIA">CONVOCATORIA</h3> 
451                                <#if validator.isNotNull(convocatoria_grupo_campos_convocatoria_fecha_desde_Data) && validator.isNotNull(convocatoria_grupo_campos_convocatoria_fecha_hasta_Data)> 
452                                    <h4> 
453                                        ${convocatoria_fecha_inicio} - ${convocatoria_fecha_final} 
454                                        <span class=""> 
455                                            <i class="icon-calendar"></i> 
456                                        </span> 
457                                    </h4> 
458                                <#else> 
459                                    <h4> 
460                                        ${convocatoria_fecha_inicio} 
461                                        <span class=""> 
462                                            <i class="icon-calendar"></i> 
463                                        </span> 
464                                    </h4> 
465                                </#if> 
466                            </div> 
467                            <div class="procedimiento-hito__container-content"> 
468                                <div class="procedimiento-hito__container-a"> 
469                                    <#if (convocatoria.convocatoria_enlace.getData())??> 
470                                        <a href="${convocatoria.convocatoria_enlace.getData()}" target="_blank" class="procedimiento-hito__link"> 
471                                    </#if> 
472                                        <div class=""> 
473                                            <div class="procedimiento-hito__icon"> 
474                                                <span class=""> 
475                                                    <i class="icon-comment"></i> 
476                                                </span> 
477                                            </div> 
478                                        </div> 
479                                        <div class="procedimiento-hito__title-container"> 
480                                            <h3 class="procedimiento-hito__title">${convocatoria.convocatoria_titulo.getData()}</h3> 
481                                        </div> 
482                                    </a> 
483                                </div> 
484                            </div> 
485                        </div> 
486                    </#if> 
487                </#if> 
488                <#-- Fin Convocatoria --> 
489				 
490                <#-- Estado del procedimiento -->			 
491                <#if (estado.estado_descripcion.getData())?? && (estado.estado_mostrar.getData())??> 
492                    <#if estado.estado_mostrar.getData() == "si" > 
493                        <div class="procedimiento-hito__container"> 
494                            <div class="procedimiento-hito__section"> 
495                                <h3 title="ESTADO">ESTADO</h3> 
496                                <#assign estado_grupo_campos_estado_fecha_Data = getterUtil.getString(estado.estado_fecha.getData())> 
497                                <#if validator.isNotNull(estado_grupo_campos_estado_fecha_Data)> 
498                                    <#assign estado_grupo_campos_estado_fecha_Data_DateObj = dateUtil.parseDate("yyyy-MM-dd", estado_grupo_campos_estado_fecha_Data, locale)> 
499                                    <h4> 
500                                        ${dateUtil.getDate(estado_grupo_campos_estado_fecha_Data_DateObj, "dd MMM yyyy", locale)} 
501                                        <span class=""> 
502                                            <i class="icon-calendar"></i> 
503                                        </span> 
504                                    </h4> 
505                                </#if> 
506                            </div> 
507                            <div class="procedimiento-hito__container-content"> 
508                                <div class="procedimiento-hito__container-a"> 
509                                    <div class=""> 
510                                        <div class="procedimiento-hito__icon"> 
511                                            <span class=""> 
512                                                    <i class="icon-paper-clip"></i> 
513                                            </span> 
514                                        </div> 
515                                    </div> 
516                                    <div class="procedimiento-hito__title-container"> 
517                                        <div class="procedimiento-hito__description">${estado.estado_descripcion.getData()}</div> 
518                                    </div> 
519                                 
520                                </div> 
521                            </div> 
522                        </div> 
523                    </#if> 
524                </#if> 
525                <#-- Fin Estado del procedimiento --> 
526                 
527				<#-- Plazo de solicitud --> 
528                <#-- Obtener y formatear las fechas de plazo de solicitud --> 
529                <#assign plazo_solicitud_grupo_campos_plazo_solicitud_fecha_desde_Data = getterUtil.getString(plazo_solicitud.plazo_solicitud_fecha_inicio.getData())> 
530                <#if validator.isNotNull(plazo_solicitud_grupo_campos_plazo_solicitud_fecha_desde_Data)> 
531                    <#assign plazo_solicitud_grupo_campos_plazo_solicitud_fecha_desde_DateObj = dateUtil.parseDate("yyyy-MM-dd", plazo_solicitud_grupo_campos_plazo_solicitud_fecha_desde_Data, locale)> 
532                    <#assign plazo_solicitud_fecha_inicio = dateUtil.getDate(plazo_solicitud_grupo_campos_plazo_solicitud_fecha_desde_DateObj, "dd MMM yyyy", locale)> 
533                </#if> 
534 
535                <#assign plazo_solicitud_grupo_campos_plazo_solicitud_fecha_hasta_Data = getterUtil.getString(plazo_solicitud.plazo_solicitud_fecha_final.getData())> 
536                <#if validator.isNotNull(plazo_solicitud_grupo_campos_plazo_solicitud_fecha_hasta_Data)> 
537                    <#assign plazo_solicitud_grupo_campos_plazo_solicitud_fecha_hasta_DateObj = dateUtil.parseDate("yyyy-MM-dd", plazo_solicitud_grupo_campos_plazo_solicitud_fecha_hasta_Data, locale)> 
538                    <#assign plazo_solicitud_fecha_final = dateUtil.getDate(plazo_solicitud_grupo_campos_plazo_solicitud_fecha_hasta_DateObj, "dd MMM yyyy", locale)> 
539                </#if> 
540 
541                <#if (plazo_solicitud.plazo_solicitud_titulo.getData())?? && (plazo_solicitud.plazo_solicitud_mostrar.getData())??> 
542                    <#if plazo_solicitud.plazo_solicitud_mostrar.getData() == "si"> 
543                        <div class="procedimiento-hito__container"> 
544                            <div class="procedimiento-hito__section"> 
545                                <h3 title="PLAZO DE SOLICITUD">PLAZO DE SOLICITUD</h3> 
546                                <#if validator.isNotNull(plazo_solicitud_grupo_campos_plazo_solicitud_fecha_desde_Data) && validator.isNotNull(plazo_solicitud_grupo_campos_plazo_solicitud_fecha_hasta_Data)> 
547                                    <h4> 
548                                        ${plazo_solicitud_fecha_inicio} - ${plazo_solicitud_fecha_final} 
549                                        <span class=""> 
550                                            <i class="icon-calendar"></i> 
551                                        </span> 
552                                    </h4> 
553                                </#if> 
554                            </div> 
555                            <div class="procedimiento-hito__container-content"> 
556                                <div class="procedimiento-hito__container-a"> 
557                                    <#-- Verificar el estado del plazo de solicitud --> 
558                                    <#assign estadoSolicitud = plazo_solicitud.plazo_solicitud_estado.getData()> 
559                                    <#if ( ( estadoSolicitud == "abierto" || estadoSolicitud == "pendiente" ) && (plazo_solicitud.plazo_solicitud_enlace.getData())?? && validator.isNotNull(plazo_solicitud.plazo_solicitud_enlace.getData()))> 
560                                        <a href="${plazo_solicitud.plazo_solicitud_enlace.getData()}" target="_blank" class="procedimiento-hito__link"> 
561                                    <#elseif estadoSolicitud == "cerrado"> 
562                                        <div class="procedimiento-hito__link-disabled"> 
563                                    </#if> 
564                                            <div class="procedimiento-section-col procedimiento-section-col-infoicon"> 
565                                                <#-- Estado de la Solicitud  (ICONO: Abierto, Cerrado, Pendiente) -->      
566                                                <#if (estadoSolicitud)?? && validator.isNotNull(estadoSolicitud)> 
567                                                    <#if estadoSolicitud == "abierto"> 
568                                                        <span class="icon-unlock" title="Estado de la solicitud: abierto" aria-label="Estado de la solicitud: abierto"></span>  
569                                                    <#elseif estadoSolicitud == "cerrado"> 
570                                                        <span class="icon-lock" title="Estado de la solicitud: cerrado" aria-label="Estado de la solicitud: cerrado"></span>  
571                                                    <#else> 
572                                                        <span class="icon-spinner" title="Estado de la solicitud: pendiente" aria-label="Estado de la solicitud: pendiente"></span>  
573                                                    </#if>         
574                                                </#if>  
575                                            </div> 
576                                            <div class=""> 
577                                                <div class="procedimiento-hito__icon"> 
578                                                    <span class=""> 
579                                                        <i class="icon-calendar"></i> 
580                                                    </span> 
581                                                </div> 
582                                            </div> 
583                                            <div class="procedimiento-hito__title-container"> 
584                                                <#if (plazo_solicitud.plazo_solicitud_titulo.getData())?? && plazo_solicitud.plazo_solicitud_titulo.getData() != ""> 
585                                                    <h5 class="procedimiento-hito__title">${plazo_solicitud.plazo_solicitud_titulo.getData()}</h5> 
586                                                <#else> 
587                                                    <#if (estadoSolicitud)?? && validator.isNotNull(estadoSolicitud)> 
588                                                        <#if estadoSolicitud == "abierto"> 
589                                                            <h5 class="procedimiento-hito__title">Abierto</h5>  
590                                                        <#elseif estadoSolicitud == "cerrado"> 
591                                                            <h5 class="procedimiento-hito__title-disabled">Cerrado</h5> 
592                                                        <#else> 
593                                                            <h5 class="procedimiento-hito__title">Pendiente</h5>  
594                                                        </#if>         
595                                                    </#if>  
596                                                </#if> 
597                                            </div> 
598                                    <#if (( estadoSolicitud == "abierto" || estadoSolicitud == "pendiente" ) && (plazo_solicitud.plazo_solicitud_enlace.getData())?? && validator.isNotNull(plazo_solicitud.plazo_solicitud_enlace.getData()))> 
599                                        </a> 
600                                    <#else> 
601                                        </div> 
602                                    </#if> 
603                                </div> 
604                            </div> 
605                        </div> 
606                    </#if> 
607                </#if> 
608                <#-- Fin Plazo de solicitud --> 
609 
610                <#-- Atributos no destacados --> 
611                <#if atributos?size != 0> 
612                    <#list atributos.getSiblings() as atributo> 
613                        <#-- Obtener y formatear las fechas de cada atributo --> 
614                        <#assign hito_grupo_campos_hito_fecha_desde_Data = getterUtil.getString(atributo.atributos_fecha_inicio.getData())> 
615                        <#if validator.isNotNull(hito_grupo_campos_hito_fecha_desde_Data)> 
616                            <#assign hito_grupo_campos_hito_fecha_desde_DateObj = dateUtil.parseDate("yyyy-MM-dd", hito_grupo_campos_hito_fecha_desde_Data, locale)> 
617                            <#assign atributos_fecha_inicio = dateUtil.getDate(hito_grupo_campos_hito_fecha_desde_DateObj, "dd MMM yyyy", locale)> 
618                        </#if> 
619 
620                        <#assign hito_grupo_campos_hito_fecha_hasta_Data = getterUtil.getString(atributo.atributos_fecha_final.getData())> 
621                        <#if validator.isNotNull(hito_grupo_campos_hito_fecha_hasta_Data)> 
622                            <#assign hito_grupo_campos_hito_fecha_hasta_DateObj = dateUtil.parseDate("yyyy-MM-dd", hito_grupo_campos_hito_fecha_hasta_Data, locale)> 
623                            <#assign atributos_fecha_final = dateUtil.getDate(hito_grupo_campos_hito_fecha_hasta_DateObj, "dd MMM yyyy", locale)> 
624                        </#if> 
625 
626                        <#-- Mostrar el atributo solo si atributos_mostrar y atributos_destacado son "no" --> 
627                        <#if (atributo.atributos_titulo.getData())?? && (atributo.atributos_mostrar.getData())?? && (atributo.atributos_destacado.getData())??> 
628                            <#if atributo.atributos_mostrar.getData() == "si"> 
629                                <#if atributo.atributos_destacado.getData()??> 
630                                    <#if atributo.atributos_destacado.getData() == "no"> 
631                                        <div class="procedimiento-hito__container"> 
632                                            <div class="procedimiento-hito__section"> 
633                                                <h3 title="${atributo.atributos_titulo.getData()}">${atributo.atributos_titulo.getData()}</h3> 
634                                                <#if validator.isNotNull(hito_grupo_campos_hito_fecha_desde_Data) && validator.isNotNull(hito_grupo_campos_hito_fecha_hasta_Data)> 
635                                                    <h4> 
636                                                        ${atributos_fecha_inicio} - ${atributos_fecha_final} 
637                                                        <span class=""> 
638                                                            <i class="icon-calendar"></i> 
639                                                        </span> 
640                                                    </h4> 
641                                                </#if> 
642                                            </div> 
643                                            <div class="procedimiento-hito__container-content"> 
644                                                <div class="procedimiento-hito__container-a"> 
645                                                    <#if (atributo.atributos_enlace_externo.getData())??> 
646                                                        <a href="${atributo.atributos_enlace_externo.getData()}" target="_blank" class="procedimiento-hito__link"> 
647                                                    </#if> 
648                                                        <div class=""> 
649                                                            <div class="procedimiento-hito__icon"> 
650                                                                <span class=""> 
651                                                                    <i class="icon-warning-sign"></i> 
652                                                                </span> 
653                                                            </div> 
654                                                        </div> 
655                                                        <div class="procedimiento-hito__title-container"> 
656                                                            <#if (atributo.atributos_descripcion.getData())??> 
657                                                                <div class="procedimiento-hito__subtitle"> 
658                                                                    ${atributo.atributos_descripcion.getData()} 
659                                                                </div>     
660                                                            </#if> 
661                                                        </div> 
662                                                    <#if (atributo.atributos_enlace_externo.getData())??> 
663                                                        </a> 
664                                                    </#if> 
665                                                </div> 
666                                            </div> 
667                                        </div> 
668                                    </#if> 
669                                </#if> 
670                            </#if> 
671                        </#if> 
672                    </#list> 
673                </#if> 
674                <#-- Fin Atributos no destacados --> 
675             
676            </div> 
677					</#if> 
678        <#-- Fin Atributos --> 
679 
680        <#-- Fases --> 
681		<#-- Get Date texts --> 
682		<#assign daysText = ""> 
683		<#assign monthText = ""> 
684		<#assign daysWrapperClass = ""> 
685		<#assign monthWrapperClass = ""> 
686        <#-- Obtener y formatear las fechas de cada fase --> 
687        <#assign fases_fases_fecha_Data = getterUtil.getString(fases.fases_fecha.getData())> 
688        <#if validator.isNotNull(fases_fases_fecha_Data)> 
689            <#assign fases_fases_fecha_DateObj = dateUtil.parseDate("yyyy-MM-dd", fases_fases_fecha_Data, locale)> 
690            <#assign fase_fecha = dateUtil.getDate(fases_fases_fecha_DateObj, "dd MMM yyyy", locale)> 
691        </#if> 
692 
693        <#if fases?size != 0> 
694            <div class="container procedimiento-carousel" id="fases"> 
695                <h2 class="title-section">Fases</h2> 
696                <div class="container"> 
697                    <div class="procedimiento-carrusel__wrapper"> 
698                        <#-- Crear un mapa para agrupar por año y mes --> 
699                        <#assign fasesMap = {} /> 
700                         
701                        <#-- Iterar sobre las fases para agruparlas --> 
702                        <#list fases.getSiblings() as fa> 
703                                         
704                            <#-- Obtener la fecha de la fase --> 
705                            <#assign faseFechaData = getterUtil.getString(fa.fases_fecha.getData())> 
706                            <#if validator.isNotNull(faseFechaData)> 
707                                <#assign faseFechaDateObj = dateUtil.parseDate("yyyy-MM-dd", faseFechaData, locale)> 
708                                <#assign year = dateUtil.getDate(faseFechaDateObj, "yyyy", locale)> 
709                                <#assign monthNumber = dateUtil.getDate(faseFechaDateObj, "MM", locale)> 
710                                <#assign month = dateUtil.getDate(faseFechaDateObj, "MMMM", locale)> 
711                                <#assign day = dateUtil.getDate(faseFechaDateObj, "d", locale)> 
712                                <#assign dayOfWeek = dateUtil.getDate(faseFechaDateObj, "EE", locale)> 
713                                 
714                                <#-- Inicializar el mapa para el año si no existe --> 
715                                <#if !fasesMap[year]?has_content> 
716                                    <#assign fasesMap = fasesMap + { (year) : {} } /> 
717                                </#if> 
718                                 
719                                <#-- Inicializar el mapa para el mes si no existe dentro del año --> 
720                                <#if !fasesMap[year][monthNumber]?has_content> 
721                                    <#assign yearMap = fasesMap[year] + { (monthNumber) : [] } /> 
722                                    <#assign fasesMap = fasesMap + { (year) : yearMap } /> 
723                                </#if> 
724                                 
725                                <#-- Obtener el título de la fase --> 
726                                <#assign faseTitulo = getterUtil.getString(fa.fases_titulo.getData()) /> 
727                             
728                                <#-- Obtener contenido relacionado para esta fase --> 
729                                <#assign webContentData = jsonFactoryUtil.createJSONObject(fa.fases_contenido_relacionado.getData()) /> 
730                                <#--assign enlaceDirectLink = assetLinkFilterService.getLinkDirectLink(webContentData.classPK?eval) /--> 
731                                                         
732                                <#assign contenidoRelacionadoTitle = "" /> 
733                                <#assign contenidoRelacionadoUrl = "" /> 
734                                <#if webContentData?? && webContentData.title??> 
735                                                         
736                                    <#assign contenidoRelacionadoTitle = webContentData.title /> 
737                                    <#assign contenidoRelacionadoUrl = fa.fases_contenido_relacionado.getFriendlyUrl() /> 
738                                                                 
739                                    <#if webContentData.subtype=="Enlace"> 
740                                        <#--assign enlaceDirectLinkTest= journalArticleLocalService.getArticle(groupId, webContentData.className, webContentData.classPK?eval)/--> 
741                                        <#assign contenidoRelacionadoJournal= journalArticleLocalService.getLatestArticle(webContentData.classPK?eval)/> 
742                                        <#assign contenidoRelacionadoUrl =  assetLinkFilterService.getDynamicElementByName(contenidoRelacionadoJournal, "enlaceExterno")!"" /> 
743                                    </#if> 
744                                     
745                                    <#if webContentData.subtype=="Normativa"> 
746                                        <#assign viewURL = requestMap.attributes.viewURL!""/> 
747                                        <#assign urlView = friendlyURLs[themeDisplay.getLanguageId()]!"" /> 
748                                        <#assign siteFriendly = themeDisplay.getScopeGroup().getFriendlyURL() /> 
749                                     
750                                        <#assign currentSiteURL = urlView?split('/w/')[0]?replace("/normativa", siteFriendly) /> 
751                                        <#assign contenidoRelacionadoUrl = currentSiteURL + '/w/' + contenidoRelacionadoUrl?split('/w/')[1]+'?redirect=' + htmlUtil.escapeURL(themeDisplay.getURLCurrent())/> 
752                                    </#if> 
753                                         
754                                </#if> 
755                                 
756                                <#-- Añadir la fase a la lista correspondiente del mes dentro del año --> 
757                                <#assign faseData = { 
758                                    "day": day, 
759                                    "dayOfWeek": dayOfWeek, 
760                                    "month": month, 
761                                    "monthNumber": monthNumber, 
762                                    "year": year, 
763                                    "isDestacada": fa.fases_destacado.getData() == "si", 
764                                    "title": faseTitulo, 
765                                    "contenidoRelacionadoTitle": contenidoRelacionadoTitle, 
766                                    "contenidoRelacionadoUrl": contenidoRelacionadoUrl 
767                                } /> 
768                                 
769                                <#-- Asignar la lista actualizada al mes correspondiente dentro del año --> 
770                                <#assign tempList = fasesMap[year][monthNumber] + [faseData] /> 
771                                <#assign yearMap = fasesMap[year] + { (monthNumber) : tempList } /> 
772                                <#assign fasesMap = fasesMap + { (year) : yearMap } /> 
773                            </#if> 
774                        </#list> 
775 
776                        <#-- Iterar sobre el mapa agrupado y ordenado para mostrar las fases --> 
777                        <#list fasesMap?keys?sort as year> 
778                            <div class="year-container"> 
779                                <h3 class="year-container__year-title"><span>Año</span> ${year}</h3> 
780                                <#assign monthsMap = fasesMap[year]> 
781                                <div class="months-container"> 
782                                    <#list monthsMap?keys?sort as monthNumber> 
783                                        <#assign month = monthsMap[monthNumber][0]["month"]> 
784                                        <div class="month-container"> 
785                                            <h4 class="month-container__month-title">${month}</h4> 
786                                            <div class="month-container__month-fases"> 
787                                                <#list monthsMap[monthNumber] as fase> 
788                                                    <div class="carrusel-item"> 
789                                                        <#if fase.isDestacada> 
790                                                            <div class="carrusel-item-inner destacada"> 
791                                                        <#else> 
792                                                            <div class="carrusel-item-inner"> 
793                                                        </#if> 
794                                                            <div class="carrusel-item-header"> 
795                                                                <h5><span>${fase.day}</span></h5> 
796                                                                <h6><span>${fase.dayOfWeek}</span></h6> 
797                                                            </div> 
798                                                            <div class="carrusel-item-arrow"> 
799                                                                <span class=""> 
800                                                                    <i class="icon-arrow-right"></i> 
801                                                                </span> 
802                                                            </div> 
803                                                            <div class="carrusel-item-image-content"> 
804                                                                <div class="tt-event-carousel-item-desc"> 
805                                                                    <#-- Mostrar contenido relacionado --> 
806                                                                    <#if fase.contenidoRelacionadoUrl??  && fase.contenidoRelacionadoTitle??> 
807                                                                        <div class="contenido-relacionado"> 
808                                                                            <a href="${fase.contenidoRelacionadoUrl}" target="_blank" title="${fase.contenidoRelacionadoTitle}" aria-label="${fase.contenidoRelacionadoTitle}">${fase.title}</a> 
809                                                                        </div> 
810                                                                    </#if> 
811                                                                </div> 
812                                                            </div> 
813                                                        </div> 
814                                                    </div> 
815                                                </#list> 
816                                            </div> 
817                                        </div> 
818                                    </#list> 
819                                </div> 
820                            </div> 
821                        </#list> 
822                    </div> 
823                </div> 
824            </div> 
825        </#if> 
826        <#-- Fin Fases --> 
827 
828 
829        <#-- Documentos del procedimiento --> 
830        <#if documentos.getSiblings()?has_content && documentos.getSiblings()?size != 0> 
831            <#-- Crear una lista para almacenar los documentos --> 
832            <#assign documentosList = [] /> 
833 
834            <#-- Iterar sobre los documentos para obtener sus datos --> 
835            <#list documentos.getSiblings() as documento> 
836                <#-- Obtener el título del documento --> 
837                <#assign documentoTitulo = getterUtil.getString(documento.documentos_titulo.getData())> 
838 
839                <#-- Asignar mostrarTitulo en función de la validez del título --> 
840                <#assign mostrarTitulo = (documentoTitulo?has_content)> 
841 
842                <#-- Crear una lista para almacenar los documentos asociados --> 
843                <#assign documentosAsociados = [] /> 
844 
845                <#-- Iterar sobre los documentos asociados --> 
846                <#list documento.documentos_documento.getSiblings() as cur_DocumentosDelProcedimiento> 
847                    <#if validator.isNotNull(cur_DocumentosDelProcedimiento.getData())> 
848                        <#assign dta = cur_DocumentosDelProcedimiento.data /> 
849                        <#assign dta_map = jsonFactoryUtil.createJSONObject(dta) /> 
850                        <#assign fileEntry = dlFileEntryLocalService.getFileEntry(dta_map.fileEntryId?number) /> 
851                        <#assign documentosAsociados = documentosAsociados + [fileEntry] /> 
852                    </#if> 
853                </#list> 
854 
855                <#-- Agregar a la lista de documentos si hay al menos un documento asociado --> 
856                <#if documentosAsociados?size != 0> 
857                    <#assign documentosList = documentosList + [{ 
858                        "title": documentoTitulo, 
859                        "mostrarTitulo": mostrarTitulo, 
860                        "documentosAsociados": documentosAsociados 
861                    }] /> 
862                </#if> 
863            </#list> 
864 
865            <#-- Mostrar los documentos si hay al menos uno --> 
866            <#if documentosList?size != 0> 
867                <div class="container" id="documentos"> 
868                    <h2 class="title-section">Documentos</h2> 
869                    <div class="documentos-entries"> 
870                        <#list documentosList as documento> 
871                        <div class="documento-entrie"> 
872                        <#if documento.mostrarTitulo> 
873                            <h3>${documento.title}:</h3> 
874                        <#else> 
875                            <h3>Más documentos:</h3> 
876                        </#if> 
877                            <ul> 
878                                <#list documento.documentosAsociados as fileEntry> 
879                                    <li> 
880                                        <@detailDoc fileEntry=fileEntry cssClass="no-content-folder"/> 
881                                    </li> 
882                                </#list> 
883                            </ul> 
884                        </div> 
885                        </#list> 
886                    </div> 
887                </div> 
888            </#if> 
889        </#if> 
890        <#-- Fin Documentos del procedimiento --> 
891 
892        <#-- Imagenes del procedimiento: Por ahora no se muestran nada más que en la zona superior 
893        <#if (imagenes.Imagen_representativa.getData())?? && imagenes.Imagen_representativa.getData() != ""> 
894            <div class="container" id="imagenes"> 
895                <h2 class="title-section">Imágenes</h2> 
896                <div class="procedimiento-imagenes"> 
897                        <img alt="${imagenes.Imagen_representativa.getAttribute("alt")}" data-fileentryid="${imagenes.Imagen_representativa.getAttribute("fileEntryId")}" src="${imagenes.Imagen_representativa.getData()}" /> 
898                </div> 
899            </div> 
900        </#if> 
901        --> 
902             
903        <#-- Enlaces del procedimiento --> 
904        <#if enlaces.getSiblings()?has_content && enlaces.getSiblings()?size != 0> 
905            <#-- Crear una lista para almacenar los enlaces --> 
906            <#assign enlacesList = [] /> 
907 
908            <#-- Iterar sobre los enlaces para obtener sus datos --> 
909            <#list enlaces.getSiblings() as enlace> 
910                <#-- Obtener el título del enlace --> 
911                <#assign enlaceTitulo = getterUtil.getString(enlace.enlaces_titulo.getData())> 
912                <#-- Obtener el enlace externo y enlace a página--> 
913                <#assign enlaceExterno = getterUtil.getString(enlace.enlaces_enlace_externo.getData())> 
914                <#assign enlacePagina = getterUtil.getString(enlace.enlaces_enlace_pagina.getFriendlyUrl())> 
915                <#-- Obtener el titulo de enlace a página--> 
916                <#assign enlacePaginaData = getterUtil.getString(enlace.enlaces_enlace_pagina.getData())> 
917                <#assign enlacePaginaDataJSON = jsonFactoryUtil.createJSONObject(enlacePaginaData)> 
918                <#assign enlaceTituloPagina = enlacePaginaDataJSON.getString("title")> 
919 
920                <#-- Agregar a la lista si hay título y al menos un enlace --> 
921                <#if validator.isNotNull(enlaceExterno) || validator.isNotNull(enlacePagina)> 
922                    <#assign enlacesList = enlacesList + [{ 
923                        "titleExterno": enlaceTitulo, 
924                        "urlExterno": enlaceExterno, 
925                        "titlePagina": enlaceTituloPagina, 
926                        "urlPagina": enlacePagina 
927                    }] /> 
928                </#if> 
929            </#list> 
930 
931            <#-- Mostrar los enlaces si hay al menos uno --> 
932            <#if enlacesList?size != 0> 
933                <div class="container" id="enlaces"> 
934                    <h2 class="title-section">Enlaces</h2> 
935                    <div class="procedimiento-enlaces"> 
936                        <ul> 
937                        <#list enlacesList as enlace> 
938                            <#if enlace.urlExterno != ""> 
939                                <li> 
940                                    <a href="${enlace.urlExterno}" target="_blank"> 
941                                        <#if enlace.titleExterno != ""> 
942                                            ${enlace.titleExterno} 
943                                        <#else> 
944                                            Enlace 
945                                        </#if> 
946                                    </a> 
947                                </li> 
948                            </#if> 
949                            <#if enlace.urlPagina != ""> 
950                                <li> 
951                                    <#if validator.isNotNull(enlace.titlePagina)> 
952                                        <a data-senna-off="true" href="${enlace.urlPagina}" target="_self">${enlace.titlePagina}</a> 
953                                    <#else> 
954                                        <a data-senna-off="true" href="${enlace.urlPagina}" target="_self">Enlace a Página</a> 
955                                    </#if> 
956                                </li> 
957                            </#if> 
958                        </#list> 
959                        </ul> 
960                    </div> 
961                </div> 
962            </#if> 
963        </#if> 
964        <#-- Fin Enlaces del procedimiento --> 
965 
966	</div> 
967    <#-- Fin Contenido del procedimiento --> 
968	 
969	<#-- Menú aside de navegación --> 
970	<aside class="procedimiento-aside"> 
971		<div class="menu"> 
972			<h3>Índice</h3> 
973			<nav> 
974				<ol> 
975					<#if (ficha.ficha_titulo_visible.getData())??  && ficha.ficha_titulo_visible.getData() != ""> 
976						<li class="elem-active"><a href="#ficha">Información general</a></li> 
977					</#if> 
978					<#if atributos?size != 0 && (convocatoria.convocatoria_mostrar.getData() == "si" || plazo_solicitud.plazo_solicitud_mostrar.getData() == "si" ||  estado.estado_mostrar.getData() == "si") > 
979					    <li><a href="#atributos">Atributos</a></li> 
980					</#if> 
981					<#if fases?size != 0> 
982						<li><a href="#fases">Fases</a></li> 
983					</#if> 
984                 
985					<#if documentos.getSiblings()?has_content &&  documentosList?size != 0> 
986					    <li><a href="#documentos">Documentos</a></li> 
987					</#if> 
988 
989				<#-- Quitamos imágenes por ahora	 
990					<#if (imagenes.Imagen_representativa.getData())?? && imagenes.Imagen_representativa.getData() != ""> 
991						<li><a href="#imagenes">Imágenes</a></li> 
992					</#if> --> 
993				 
994					<#if enlaces.getSiblings()?has_content   &&  enlacesList?size != 0> 
995						<li><a href="#enlaces">Enlaces</a></li> 
996					</#if> 
997                 
998				</ol> 
999			</nav> 
1000		</div> 
1001	</aside> 
1002    <#-- Fin Menú aside de navegación --> 
1003	 
1004</div> 
1005 
1006<#include "${templatesPath}/398918" > 
1007<div class="container"> 
1008	<div class="back_button"> 
1009		<a href="${backURL}"> 
1010			<span class="icon-reply" title="Volver" aria-label="Volver"></span> 
1011			Volver 
1012		</a> 
1013	</div> 
1014</div> 
Nodo: sv0666:8080