Kalitatezko prestakuntza globalizatua
Errorea gertatu da txantiloia prozesatzerakoan.
The following has evaluated to null or missing:
==> searcher.getURLViewInContext(relatedArticle,themeDisplay)  [in template "842907#842945#2659911" at line 341, column 43]

----
Tip: If the failing expression is known to be 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 urlViewContext = searcher.get...  [in template "842907#842945#2659911" at line 341, column 17]
----
1<#--FTL de funciones genericas--> 
2<#assign funcionesCustomId = layout.getGroup().getExpandoBridge().getAttribute("iybg-ftl-funciones")> 
3<#include "${templatesPath}/${funcionesCustomId}"> 
4 
5<#-- SERVICES --> 
6<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
7<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")> 
8<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") > 
9<#assign fileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") > 
10<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
11<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") /> 
12<#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")/> 
13<#assign textFormatter = staticUtil["com.liferay.portal.kernel.util.TextFormatter"]> 
14<#assign searcher = serviceLocator.findService("net.juventud.buscador.categorias.service.SearchService")> 
15 
16<#-- VARIABLES --> 
17<#assign articleId = .vars['reserved-article-id'].data > 
18<#assign articleTitle = .vars['reserved-article-title'].data > 
19<#assign journalArticle = journalArticleLocalService.fetchArticle(groupId, articleId) /> 
20<#assign currentArticleResourcePrimKey = journalArticle.getResourcePrimKey() /> 
21<#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) /> 
22<#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() /> 
23<#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) /> 
24<#assign urlEncoder = staticUtil["java.net.URLEncoder"]> 
25<#assign group = groupLocalService.getGroup(groupId)/> 
26<#assign groupFriendlyURL = group.getFriendlyURL() /> 
27<#assign renderURL = themeDisplay.getURLCurrent()> 
28<#assign redirectUrl =""> 
29<#assign equalsIndex = 0> 
30<#assign redirectUrlPatter = "redirectUrl="> 
31<#assign redirectUrlProgPatter = "redirectUrlProg="> 
32 
33<#-- Se viene desde detalle de listado de programas--> 
34<#if (renderURL?index_of(redirectUrlPatter) != -1)> 
35    <#assign paramLength = getterUtil.getInteger(renderURL?length)> 
36    <#assign equalsIndex =  getterUtil.getInteger(renderURL?index_of(redirectUrlPatter))> 
37    <#assign equalsIndex =  equalsIndex + (redirectUrlPatter?length)> 
38    <#assign redirectUrl = httpUtil.decodeURL((renderURL?substring(equalsIndex,paramLength)))> 
39</#if> 
40 
41<#-- Se vuelve desde detalle de convocatorias--> 
42<#if (renderURL?index_of(redirectUrlProgPatter) != -1)> 
43    <#assign paramLength = getterUtil.getInteger(renderURL?length)> 
44    <#assign equalsIndex =  getterUtil.getInteger(renderURL?index_of(redirectUrlProgPatter))> 
45    <#assign equalsIndex =  equalsIndex + (redirectUrlProgPatter?length)> 
46    <#assign redirectUrl = httpUtil.decodeURL((renderURL?substring(equalsIndex,paramLength)))> 
47</#if> 
48 
49<#if request?has_content> 
50    <#assign completeCurrentUrl = urlEncoder.encode((request["attributes"]["CURRENT_COMPLETE_URL"])?string?split("?")[0]?string, "UTF-8")> 
51<#else> 
52    <#assign completeCurrentUrl = 'https://web.bizkaia.eus'> 
53</#if> 
54<#assign encodedTitle = urlEncoder.encode(articleTitle, "UTF-8")> 
55<#assign completeCurrentRedirecUrl = httpUtil.decodeURL(completeCurrentUrl)> 
56<#assign completeCurrentRedirecUrlProg = completeCurrentRedirecUrl + "?"+redirectUrlProgPatter + redirectUrl> 
57 
58<#--HTTPS--> 
59<#assign currentUrl= themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() /> 
60<#assign currentUrl=currentUrl?split("?")[0] /> 
61<#--FIN DE HTTPS--> 
62 
63<section class="iybg-container"> 
64<div class="row"> 
65	<div class="col-md-8"> 
66    	<h1 class="bold"><@liferay.language key='iybg.programas.detalle.title-upper'/></h1> 
67        <div class="row"> 
68        	<div class="col-md-1 col-sm-1">         
69                <@social /> 
70            </div> 
71 
72            <div class="col-md-11 pl-2r ls-0"> 
73 
74                <#-- Categorias de tipo Ambito asociadas al journalArticle que se está mostrando--> 
75                <#assign ambitosVocabularyName = "BG-Ambitos" /> 
76                <#assign ambitosVocabulary = assetVocabularyLocalService.getGroupVocabulary(themeDisplay.getCompanyGroupId(), ambitosVocabularyName) /> 
77                <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(journalArticle.resourcePrimKey)) > 
78 
79                <#list categories as category> 
80                    <#if validator.equals(category.vocabularyId?string,ambitosVocabulary.getVocabularyId()?string)> 
81                        <p class="pre-tit bold fz-medium mb-0">${category.getTitle(locale)?upper_case}</p> 
82                    </#if> 
83                </#list>             
84 
85                <h2 class="mt-0 not-text-transform"><span class="bold">${titulo.getData()}</span></h2> 
86                <#if descripcion.getData()?has_content> 
87                    <p>${descripcion.getData()}</p> 
88                </#if> 
89 
90                <#if destinadoa.getData()?has_content> 
91                    <h3 class="fw-700"><@liferay.language key='iybg.programas.detalle.destinado-a'/></h3> 
92                    <p>${destinadoa.getData()}</p> 
93                </#if> 
94                 
95                <#if objetivos.getData()?has_content> 
96                    <h3 class="fw-700"><@liferay.language key='iybg.programas.detalle.objetivos'/></h3> 
97                    ${objetivos.getData()} 
98                </#if> 
99                 
100                <#assign nombre = ""> 
101                <#assign departamento = ""> 
102                <#assign direccion = ""> 
103 
104                <#if bloqueEntidadPromotora.getSiblings()?has_content> 
105                    <#list bloqueEntidadPromotora.getSiblings() as curBloque> 
106                        <#assign esDiputacion = getterUtil.getBoolean(curBloque.isDipuptacion.getData())> 
107                        <#assign nombre = curBloque.getChild('nombreEntidad').getData()> 
108                        <#assign departamento = curBloque.getChild('departamentoEntidad').getData()> 
109                        <#assign direccion = curBloque.getChild('direccionEntidad').getData()> 
110                    </#list> 
111                </#if> 
112 
113                <#if nombre?has_content || departamento?has_content || direccion?has_content > 
114                    <h3 class="fw-700"><@liferay.language key='iybg.programas.detalle.entidad-promotora'/></h3> 
115                    <ul class="bipo_listaflecha"> 
116                        <#if esDiputacion> 
117                            <li> 
118                                <span><@liferay.language key='iybg.programas.detalle.entidad'/>: </span> 
119                                <#if locale =="es_ES"> 
120                                    <@liferay.language key='iybg.theme.bizkaia-bfa-es'/> 
121                                <#else> 
122                                    <@liferay.language key='iybg.theme.bizkaia-bfa-eu'/> 
123                                </#if> 
124                            </li> 
125                            <#if departamento?has_content> 
126                                <li><span><@liferay.language key='iybg.programas.detalle.departamento'/>: </span> ${departamento}</li> 
127                            </#if> 
128                        <#else> 
129                            <#if nombre?has_content> 
130                                <li><span><@liferay.language key='iybg.programas.detalle.entidad'/>: </span> ${nombre}</li> 
131                            </#if> 
132                            <#if departamento?has_content> 
133                                <li><span><@liferay.language key='iybg.programas.detalle.ayuntamiento'/>: </span> ${departamento}</li> 
134                            </#if> 
135                        </#if> 
136                        <#if direccion?has_content> 
137                            <li><span><@liferay.language key='iybg.programas.detalle.direccion'/>: </span> ${direccion}</li> 
138                        </#if>   
139                    </ul> 
140                </#if> 
141 
142                <#assign estrategia = ""> 
143                <#assign linea = ""> 
144 
145                <#if bloqueClasificacionGaztedi.getSiblings()?has_content> 
146                    <#list bloqueClasificacionGaztedi.getSiblings() as curBloque> 
147                        <#assign estrategia = curBloque.getChild('estrategiaClasificacion').getData()> 
148                        <#assign linea = curBloque.getChild('lineaIntervencionClasificacion').getData()> 
149                    </#list> 
150                </#if> 
151 
152                <#if estrategia?has_content || linea?has_content > 
153                    <h3 class="fw-700"><@liferay.language key='iybg.programas.detalle.clasificacion-proyecto-gaztedi'/></h3> 
154                    <ul class="bipo_listaflecha"> 
155                         <#if estrategia?has_content > 
156                            <li><span><@liferay.language key='iybg.programas.detalle.estrategia'/>: </span><@liferay.language key=estrategia/></li> 
157                        </#if> 
158                        <#if linea?has_content > 
159                            <li><span><@liferay.language key='iybg.programas.detalle.linea'/>: </span> <@liferay.language key=linea/></li> 
160                        </#if> 
161                    </ul> 
162                </#if> 
163 
164                <#--VER SI HAY DOCUMENTOS--> 
165				<#--VALOR EN EL PRIMER ELEMENTO DOCUMENTO--> 
166		 
167                <#assign hayDocumentos = false> 
168                <#if bloqueDocumento.getSiblings()?has_content> 
169					<#if bloqueDocumento.getSiblings()[0].getChild('documento')?has_content 
170                        && bloqueDocumento.getSiblings()[0].getChild('documento').getData()?has_content 
171                        && bloqueDocumento.getSiblings()[0].getChild('nombreDocumento')?has_content 
172                        && bloqueDocumento.getSiblings()[0].getChild('nombreDocumento').getData()?has_content> 
173                            <#assign hayDocumentos =true> 
174	                </#if> 
175				</#if> 
176 
177                <#--VER SI HAY ENLACES--> 
178				<#--VALOR EN EL PRIMER ELEMENTO ENLACE--> 
179                <#assign hayEnlaces = false> 
180               	<#if bloqueEnlace.getSiblings()?has_content> 
181					<#if bloqueEnlace.getSiblings()[0].getChild('urlEnlace')?has_content 
182                        && bloqueEnlace.getSiblings()[0].getChild('urlEnlace').getData()?has_content  
183                        && bloqueEnlace.getSiblings()[0].getChild('nombreEnlace')?has_content 
184                        && bloqueEnlace.getSiblings()[0].getChild('nombreEnlace').getData()?has_content> 
185                            <#assign hayEnlaces =true> 
186	                </#if> 
187				</#if> 
188 
189				<#if hayDocumentos || hayEnlaces>		 
190                    <h3 class="fw-700"><@liferay.language key='iybg.programas.detalle.mas-informacion'/></h3> 
191	 
192                    <#-- <ul class="dowload separated"> --> 
193                    <ul class="listasPDF"> 
194                        <#--Documentos--> 
195                        <#if hayDocumentos> 
196                            <#list bloqueDocumento.getSiblings() as curBloqueDocumentos> 
197                                <#assign nombreDocumento = curBloqueDocumentos.getChild('nombreDocumento').getData()> 
198								<#if curBloqueDocumentos.getChild('documento').getData()?has_content > 
199									<#assign attachmentUrl = curBloqueDocumentos.getChild('documento').getData()> 
200									<#assign fileEntry = getFileEntry(attachmentUrl) > 
201								 
202									<#assign enlace = replaceSpecialCharacters(attachmentUrl)> 
203									<#assign extension = fileEntry.extension?upper_case> 
204									<#assign size =textFormatter.formatStorageSize(fileEntry.size, locale)?upper_case> 
205								 
206                                <li> 
207                                    <a title='<@liferay.language key="opens-new-window"/>' href="${enlace}" target="_blank">  
208                                        <span class="bipoicon icon-descargar static">${fileEntry.extension}</span> 
209                                            ${nombreDocumento} 
210                                    </a>  
211                                    <strong>(${extension} ${size})</strong> 
212                                </li> 
213								</#if> 
214                             </#list> 
215                        </#if> 
216 
217                        <#if  hayEnlaces> 
218                            <#list bloqueEnlace.getSiblings() as curBloqueEnlace> 
219                            <#if curBloqueEnlace.getChild("nombreEnlace").getData()?has_content && curBloqueEnlace.getChild('urlEnlace').getData() != ""> 
220                                <#assign nombreEnlace = curBloqueEnlace.getChild('nombreEnlace').getData()> 
221                                <#assign urlEnlace = curBloqueEnlace.getChild('urlEnlace').getData()> 
222                                <#assign enlace = replaceSpecialCharacters(urlEnlace)> 
223                                 
224                                <li> 
225									<!--ENLACE--> 
226								<a title='<@liferay.language key="opens-new-window"/>'  
227														href="${enlace}" target="_blank" >  
228								<!--ICONO DESCARGA--> 
229												 
230								<span class="bipoicon icon-new-tab"></span> <span>	${nombreEnlace}</span></a> 
231												 
232								</li>	 
233                            </#if> 
234                            </#list>                     
235                        </#if> 
236                    </ul> 
237                </#if> 
238            </div>             
239        </div> 
240    </div> 
241 
242    <#-- Comprobamos si hay tipologias--> 
243    <#assign hayTipologias = true> 
244    <#if bloqueTipologias.getSiblings()?has_content> 
245 
246        <#if (validator.isNull(bloqueTipologias.getSiblings()[0].getChild('tipologiaN1').getData()) ||  
247                validator.equals(bloqueTipologias.getSiblings()[0].getChild('tipologiaN1').getData()?trim,"")) 
248            && (validator.isNull(bloqueTipologias.getSiblings()[0].getChild('tipologiaN2').getData()) ||  
249                validator.equals(bloqueTipologias.getSiblings()[0].getChild('tipologiaN2').getData()?trim,"")) 
250            && (validator.isNull(bloqueTipologias.getSiblings()[0].getChild('tipologiaN3').getData()) ||  
251                validator.equals(bloqueTipologias.getSiblings()[0].getChild('tipologiaN3').getData()?trim,"")) 
252            && (validator.isNull(bloqueTipologias.getSiblings()[0].getChild('tipologiaN4').getData()) ||  
253                validator.equals(bloqueTipologias.getSiblings()[0].getChild('tipologiaN4').getData()?trim,"")) 
254
255                <#assign hayTipologias = false> 
256        </#if> 
257 
258    </#if> 
259 
260    <#if hayTipologias || presupuesto.getData()?has_content || foto.getData()?has_content> 
261 
262    <div class="col-md-3"> 
263    	<div class="card ficha"> 
264    		<h2 class="bold"><@liferay.language key='iybg.programas.detalle.datos-programa-upper'/></h2> 
265            <#if foto.getData()?? && foto.getData() != ""> 
266	            <img data-fileentryid="${foto.getAttribute("fileEntryId")}" alt="Card image cap" src="${foto.getData()}" class="card-img-top" /> 
267            </#if> 
268            <div class="card-body"> 
269 
270               <ul> 
271                    <#if hayTipologias> 
272                        <li><span class="bold"><@liferay.language key='iybg.programas.detalle.tipologia'/></span>  
273 
274                            <ul id="tipologia" class="pl-0 pt-0 pb-0"> 
275 
276                            <#list bloqueTipologias.getSiblings() as curBloque> 
277                                <#assign t1=curBloque.getChild('tipologiaN1').getData()> 
278                                <#assign t2=curBloque.getChild('tipologiaN2').getData()> 
279                                <#assign t3=curBloque.getChild('tipologiaN3').getData()> 
280                                <#assign t4=curBloque.getChild('tipologiaN4').getData()> 
281                                  
282 
283                                <#if validator.isNotNull(curBloque.getChild('tipologiaN1').getData()) && !validator.equals(curBloque.getChild('tipologiaN1').getData()?trim,"")> 
284                                    <li class="mb-0"><@liferay.language key=t1/></li> 
285                                </#if> 
286 
287                                <#if validator.isNotNull(curBloque.getChild('tipologiaN2').getData()) && !validator.equals(curBloque.getChild('tipologiaN2').getData()?trim,"")> 
288                                    <li class="mb-0"><@liferay.language key=t2/></li> 
289                                </#if> 
290 
291                                <#if validator.isNotNull(curBloque.getChild('tipologiaN3').getData()) && !validator.equals(curBloque.getChild('tipologiaN3').getData()?trim,"")> 
292                                    <li class="mb-0"><@liferay.language key=t3/></li> 
293                                </#if> 
294 
295                                <#if validator.isNotNull(curBloque.getChild('tipologiaN4').getData()) && !validator.equals(curBloque.getChild('tipologiaN4').getData()?trim,"")> 
296                                    <li class="mb-0"><@liferay.language key=t4/></li> 
297                                </#if> 
298 
299                            </#list> 
300                            </ul> 
301                        </li> 
302                    </#if> 
303 
304                    <#if presupuesto.getData()?has_content> 
305                        <li> 
306                            <span class="bold"><@liferay.language key='iybg.programas.detalle.persupuesto-upper'/> 
307                                <p class="fw-700"> ${presupuesto.getData()} </p> 
308                            </span> 
309                        </li> 
310                    </#if> 
311               </ul> 
312                
313            </div> 
314        </div> 
315    </div> 
316    </#if> 
317</div> 
318</section> 
319 
320<#-- Convocatorias relacionadas--> 
321<#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) /> 
322 
323<#if currentArticleRelatedLinks?has_content > 
324<section class="iybg-container"> 
325    <h2 class="tit-type-03 fw-700"><@liferay.language key="iybg.programas.convocatorias_relacionadas_upper"/></h2> 
326 
327    <div class="row"> 
328        <div class="col-md-8 col-centered"> 
329            <ul class="bipo_participa_estados list-group list-type02">     
330     
331            <#list currentArticleRelatedLinks as curEntry> 
332                <#assign relatedAssetEntryId = curEntry.getEntryId2() /> 
333                <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) /> 
334                <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() /> 
335                <#assign relatedArticle = journalArticleLocalService.getLatestArticle(relatedAssetEntryPrimKey) /> 
336 
337                <#-- Categorias de tipo Convocatorias asociadas al journalArticle que se está mostrando--> 
338                <#assign vocabularyName = "BG-Convocatorias" /> 
339                <#assign vocabulary = assetVocabularyLocalService.getGroupVocabulary(themeDisplay.getCompanyGroupId(), vocabularyName) /> 
340                <#assign relatedCategories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(relatedArticle.resourcePrimKey)) > 
341                <#assign urlViewContext = searcher.getURLViewInContext(relatedArticle,themeDisplay) > 
342 
343                <#assign hashFecha=""> 
344                <#assign documentcurrentArticle = saxReaderUtil.read(relatedArticle.getContentByLocale(locale)) > 
345                <#assign rootElementcurrentArticle = documentcurrentArticle.getRootElement() > 
346                <#assign currentArticleTitulo = saxReaderUtil.createXPath("dynamic-element[@name='titulo']/dynamic-content").selectSingleNode(rootElementcurrentArticle) > 
347                <#assign currentArticleFechaCaducidad = saxReaderUtil.createXPath("dynamic-element[@name='fecha_caducidad']/dynamic-content").selectSingleNode(rootElementcurrentArticle) > 
348                <#assign currentArticleNombreConvocante = saxReaderUtil.createXPath("dynamic-element[@name='Convocante']/dynamic-element[@name='nombreConvocante']/dynamic-content").selectSingleNode(rootElementcurrentArticle).getStringValue()  > 
349 
350 
351                <#if validator.isNotNull(currentArticleFechaCaducidad.getData())> 
352                    <#assign current_date_Data = .now?date?string('yyyy-MM-dd')> 
353                    <#assign current_date_DateObj = dateUtil.parseDate("yyyy-MM-dd", current_date_Data, locale)> 
354                    <#assign fecha_caducidad_Data = getterUtil.getString(currentArticleFechaCaducidad.getData())> 
355                    <#assign fecha_caducidad_DateObj = dateUtil.parseDate("yyyy-MM-dd", fecha_caducidad_Data, locale)> 
356                    <#assign fecha_caducidad7_Data = (fecha_caducidad_DateObj?long - (7 * 86400000))?number_to_date?string("yyyy-MM-dd")> 
357                    <#assign fecha_caducidad7_DateObj = dateUtil.parseDate("yyyy-MM-dd", fecha_caducidad7_Data, locale)> 
358                    <#assign hashFecha="OK"> 
359                </#if>                 
360 
361                <li class="list-group-item" tabindex="0"> 
362 
363                    <div class="row"> 
364                     
365                            <div class="col-md-3"> 
366                                <p> 
367 
368                                    <#list relatedCategories as relatedcategory> 
369                                        <#if validator.equals(relatedcategory.vocabularyId?string,vocabulary.getVocabularyId()?string)> 
370                                            <span class="fs-1_2 bold tc-rojo">${relatedcategory.getTitle(locale)?upper_case}</span> 
371                                        </#if> 
372                                    </#list> 
373 
374                                    <#if validator.isNotNull(hashFecha)> 
375                                        <#if (current_date_DateObj?date > fecha_caducidad7_DateObj?date) && (current_date_DateObj?date < fecha_caducidad_DateObj?date)> 
376                                            <span class="clearfix"><span class="red-outline"><@liferay.language key="iybg.convocatorias.listado.ultimos-dias-upper"/></span></span> 
377                                        </#if> 
378                                    </#if> 
379                                </p> 
380                            </div> 
381                             
382                                 
383                            <div class="col-md-9"> 
384                                <#if currentArticleTitulo.getData()?has_content> 
385                                    <p><a href="${urlViewContext}?redirectUrl=${completeCurrentRedirecUrlProg}" title='<@liferay.language key="iybg.convocatorias.listado.ir-detalle"/>' tabindex="-1"><span class="bold">${currentArticleTitulo.getData()}</span></a></p> 
386                                </#if> 
387 
388                                <#if validator.isNotNull(hashFecha)> 
389                                    <p class="clearfix"> 
390                                    <#if (current_date_DateObj?date > fecha_caducidad_DateObj?date)> 
391                                        <span class="bipo_flechaderecha"><@liferay.language key="iybg.convocatorias.cerrado-upper"/></span> 
392                                    <#else> 
393                                        <span class="bipo_flechaderecha back-rojo"><@liferay.language key="iybg.convocatorias.abierto-upper"/></span> 
394                                    </#if>             
395                                     
396                                    <#if (current_date_DateObj?date > fecha_caducidad_DateObj?date)> 
397                                        <#-- Formato 1: dd/MM/yyyy --> 
398                                        <span class="cerrada bipo_participa_fecha"><@liferay.language key="iybg.convocatorias.plazo-finalizado"/> ${formatFecha (fecha_caducidad_Data, 1, locale)}</span> 
399                                    <#else> 
400                                        <#-- Formato 1: dd/MM/yyyy --> 
401                                        <span class="bipo_participa_fecha"><@liferay.language key="iybg.convocatorias.hasta"/> ${formatFecha (fecha_caducidad_Data, 1, locale)}</span> 
402                                    </#if> 
403                                    </p> 
404                                </#if> 
405 
406                                <#if currentArticleNombreConvocante?has_content> 
407                                    <p class="texto-convocantes">${currentArticleNombreConvocante}</p> 
408                                </#if> 
409                            </div>    
410                    </div> 
411                </li> 
412            </#list> 
413            </ul> 
414        </div> 
415    </div> 
416 
417</section> 
418</#if> 
419 
420<div class="iybg-container"> 
421    <div class="row"> 
422        <div class="col-md-12"> 
423            <p class="button centered btn-rojo"><a href="${redirectUrl}" title='<@liferay.language key="iybg.volver"/>'><span >←</span> <@liferay.language key="iybg.volver"/></a></p> 
424        </div> 
425    </div> 
426</div> 
427 
428<#macro social> 
429  <div class="m-redes_sociales"> 
430    <ul> 
431        <li> 
432            <div class="taglib-social-bookmark-facebook" > 
433                    <div class="fb-like" data-href="${currentUrl}" data-layout="box_count" data-action="like" data-show-faces="false" data-share="false"></div> 
434                </div> 
435        </li> 
436      <li> 
437        <a class="facebook" href="http://www.facebook.com/sharer/sharer.php?u=${currentUrl}" target="_blank" title="<@liferay.language key='opens-new-window' />"> 
438          <span class="sr-only"><@liferay.language key="share-facebook" /></span><span class="bipoicon icon-facebook"></span> 
439        </a> 
440      </li> 
441      <li> 
442        <a class="twitter twitter-share-button" href="https://twitter.com/intent/tweet?url=${currentUrl}&text=${encodedTitle}" target="_blank" title="<@liferay.language key='opens-new-window' />" data-size="large"> 
443          <span class="sr-only"><@liferay.language key="share-twitter" /></span><span class="bipoicon icon-twitter"></span> 
444        </a> 
445      </li> 
446 
447      <li> 
448        <a class="whatsapp" href="whatsapp://send?text=${currentUrl}" target="_blank" title="<@liferay.language key='opens-new-window' />"> 
449          <span class="sr-only"><@liferay.language key="share-whatsapp" /></span><span class="bipoicon icon-whatsapp"></span> 
450        </a> 
451      </li> 
452    </ul> 
453  </div> 
454</#macro> 
455 
456<#-- Funciones --> 
457<#function getFileEntry url > 
458     
459	<#assign parts = url?split("/")> 
460	 
461	<#assign group_id = getterUtil.getLong(parts[2]) > 
462	 
463	<#assign parts = parts[5]?split("?") > 
464	<#assign uuid = parts[0] > 
465	 
466	<#return fileEntryService.getDLFileEntryByUuidAndGroupId(uuid?string, group_id) /> 
467</#function> 
468 
469<#function replaceSpecialCharacters(url)> 
470	<#return htmlUtil.escapeHREF(url?replace("|","%7C")) /> 
471</#function> 
472 
473<script type="text/javascript"> 
474    //Si no hay elementos en la lista de tipologias, se elimina el elemento UL 
475    var elementCount = $('ul#tipologia li').length; 
476 
477    if (elementCount <= 0){ 
478       $('ul#tipologia').remove(); 
479
480 
481</script>