Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> Podcasts  [in template "38913#38948#3413239" at line 111, column 34]

----
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: #if validator.isNotNull(Podcasts.Podc...  [in template "38913#38948#3413239" at line 111, column 9]
----
1<#assign layoutTool = utilLocator.findUtil("lportal-ce-hook", "as.asac.template.tools.LayoutTool") /> 
2<#assign journalTool = utilLocator.findUtil("lportal-ce-hook", "as.asac.template.tools.JournalTool") /> 
3<#assign dlTool = utilLocator.findUtil("lportal-ce-hook", "as.asac.template.tools.DLTool") /> 
4<#assign portletTool = utilLocator.findUtil("lportal-ce-hook", "as.asac.template.tools.PortletTool") /> 
5<#assign urlDecoderTool = utilLocator.findUtil('lportal-ce-hook', 'as.asac.template.tools.URLDecoder')/> 
6<#assign httpTool = utilLocator.findUtil('lportal-ce-hook', 'as.asac.template.tools.HttpTool') /> 
7 
8<#assign articleId = .vars['reserved-article-id'].data> 
9<#assign title = .vars['reserved-article-title'].data> 
10<#assign description=.vars["reserved-article-description"].data /> 
11<#assign smallImageUrl=.vars["reserved-article-small-image-url"].data /> 
12<#assign date=.vars["reserved-article-display-date"].data /> 
13<#assign request = .vars['request']> 
14<#assign portletNamespace = request['portlet-namespace']!> 
15<#assign themeDisplayStr = request['theme-display']!> 
16 
17 
18<#assign smallImageFullUrl = "${themeDisplayStr['portal-url']!}${smallImageUrl}" /> 
19<#assign dateFormatted = journalTool.getDateFormat(date, "dd MMMM yyyy", locale, timezone)> 
20 
21 
22<#assign display_date = .vars["reserved-article-display-date"].data /> 
23<#assign inputFormat = "EEE, dd MMM yyyy HH:mm:ss Z"> 
24<#assign parsedDate = display_date?datetime(inputFormat)> 
25<#assign outputFormat = "dd-MM-yyyy"> 
26<#assign formattedDate = parsedDate?string(outputFormat)> 
27 
28 
29<#assign currentURL = htmlUtil.escape(themeDisplay.getURLCurrent())/> 
30 
31 
32 
33			 
34<article class="template template-news-detail"> 
35		 
36	<#assign showJournalTitle = getterUtil.getBoolean(portletTool.getPreference(request, "showAssetTitle"), false) /> 
37    <#if showAssetTitle?has_content && showAssetTitle> 
38		<div class="portlet-title-wrapper"> 
39			<div class="portlet-title h3">${title}</div>	 
40		</div> 
41	<#else> 
42		<div class="portlet-title-wrapper"> 
43			<div class="portlet-title h3">${title}</div>	 
44		</div> 
45	</#if> 
46 
47    <section class="row flex-row-reverse mt-4"> 
48		<#if validator.isNotNull(smallImageUrl)> 
49			<div class="col-sm-3 col-12"> 
50					<a href="${smallImageUrl}" title="Imagen ${title}" class="image-wrapper image-wrapper-cover image-wrapper-style lightbox" style="background-image: url('${dlTool.getThumbnail(smallImageUrl, 3)}');"> 
51						<img src="${dlTool.getThumbnail(smallImageUrl, 3)}" alt="Imagen ${title}" /> 
52					</a> 
53			</div> 
54		</#if> 
55		<div class="<#if validator.isNotNull(smallImageUrl)> col-sm-9 </#if> col-12"> 
56		 <div class="text-metadata mt-4 mt-sm-0"> 
57				<span id="share-${articleId}" class="need-share-button-default need-share-button"  
58					data-share-icon-style="box"  
59					data-share-networks="Mailto,Twitter,Whatsapp,Telegram,Facebook" 
60					data-share-url="${urlDecoderTool.decodeURL(htmlUtil.escape(httpTool.toUnicode(themeDisplay.getPortalURL())))}${urlDecoderTool.decodeURL(htmlUtil.escape(httpTool.toUnicode(themeDisplay.getURLCurrent())))}" 
61					data-share-title="${htmlUtil.escape(title)}"><!--share--></span> 
62					<span><a href="https://api.whatsapp.com/send?text=${title} - ${urlDecoderTool.decodeURL(htmlUtil.escape(httpTool.toUnicode(themeDisplay.getPortalURL())))}${urlDecoderTool.decodeURL(htmlUtil.escape(httpTool.toUnicode(themeDisplay.getURLCurrent())))}" target="_blank"><i class="fab fa-whatsapp"></i><span class="hide-accessible">Whatsapp: ${title}</span></a></span> 
63 
64 
65				<script src="${themeDisplay.getPathThemeRoot()}/js/needsharebutton/needsharebutton.min.js"></script> 
66				<script src="${themeDisplay.getPathThemeRoot()}/js/needsharebutton/needsharebutton.js"></script> 
67				<script type="text/javascript"> 
68					new needShareDropdown(document.getElementById('share-${articleId}')); 
69				</script> 
70			 
71			 
72 
73		 
74            <div class="date-wrapper text-metadata mb-3"> 
75				<span class="icon-calendar"><span class="hide-accessible"><@liferay.language key="date" /></span>&nbsp;</span><span class="date">${dateFormatted}</span> 
76			</div>	 
77			<#if validator.isNotNull(description)>    
78				<p class="text-abstract">${description}</p> 
79			</#if> 
80			<#if validator.isNotNull(Descripcion.data)> 
81				<p class="text-abstract">${Descripcion.data}</p> 
82			</#if> 
83        </div> 
84    </section> 
85	 
86	<#assign htmlDocuments = journalTool.getHTMLDocuments(Documentos.Documento.getSiblings()) /> 
87	<#if validator.isNotNull(htmlDocuments)>    
88		<section class="documents"> 
89		<div class="h5">${languageUtil.get(locale, "documents")}</div> 
90		${htmlDocuments} 
91		</section> 
92	</#if> 
93	 
94 
95	<#assign htmlGallery = journalTool.getHTMLGallery(Galeria.Imagen.getSiblings(), 3, "gallery-thumbs") /> 
96	<#if validator.isNotNull(htmlGallery)>    
97		<section class="image-gallery"> 
98		<div class="h5">${languageUtil.get(locale, "image-gallery")}</div> 
99		${htmlGallery} 
100		</section> 
101	</#if> 
102     
103	 
104	<#assign htmlLinks = journalTool.getHTMLLinks(getterUtil.getLong(groupId), locale, Enlaces.Enlace.getSiblings(), Enlaces.EnlaceInterno.getSiblings()) />		 
105	<#if validator.isNotNull(htmlLinks)>    
106		<section class="links"> 
107			<div class="h5">${languageUtil.get(locale, "links")}</div> 
108			${htmlLinks} 
109		</section> 
110	</#if> 
111	<#if validator.isNotNull(Podcasts.Podcast.getData()) && validator.isNotNull(Podcasts.Podcast.getSiblings()) && Podcasts.Podcast.getSiblings()?size gt 0> 
112		<section class="audios mt-4">		 
113			<div class="h5">Audios</div> 
114			<#list Podcasts.Podcast.getSiblings() as podcast> 
115				<#if validator.isNotNull(podcast.getData())> 
116					<#assign dlFileEntry = dlTool.getDLFileEntryByPath(podcast.getData()?string)/> 
117					<#assign ext = dlFileEntry.extension/>					 
118					 
119					<#if validator.isNotNull(podcast.PodcastNombre.getData())> 
120						<#assign title = podcast.PodcastNombre.getData()/> 
121					<#else> 
122						<#assign title = dlFileEntry.getTitle()/> 
123					</#if> 
124					 
125					<div class="audio-wrapper"> 
126						<div class="audio mb-4"> 
127							<div class="important mb-2">${title}</div> 
128							<audio controls> 
129								<source src="${podcast.getData()}" title="${title}" type="audio/mpeg"> 
130								Tu navegador no soporta el elemento de audio. 
131							</audio> 
132						</div>	 
133					</div> 
134				</#if> 
135			</#list> 
136		</section> 
137	</#if> 
138</article> 
139 
140<div class="hide"> 
141	<#assign cats = journalTool.getCategories(getterUtil.getLong(groupId),articleId) /> 
142	<#list cats as cat> 
143		<p>cat: ${cat.getName()}, vaobulcary: ${cat.getVocabularyId()}</p> 
144	</#list> 
145</div> 
146 
147<style> 
148	.template-news-detail .audio{ 
149		background: #fafafa; 
150		padding: 5px 10px; 
151
152</style>