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 86, 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 86, 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
7<#assign articleId = .vars['reserved-article-id'].data>
8<#assign title = .vars['reserved-article-title'].data>
9<#assign description=.vars["reserved-article-description"].data />
10<#assign smallImageUrl=.vars["reserved-article-small-image-url"].data />
11<#assign date=.vars["reserved-article-display-date"].data />
12<#assign request = .vars['request']>
13<#assign portletNamespace = request['portlet-namespace']!>
14<#assign themeDisplayStr = request['theme-display']!>
15
16
17<#assign smallImageFullUrl = "${themeDisplayStr['portal-url']!}${smallImageUrl}" />
18<#assign dateFormatted = journalTool.getDateFormat(date, "dd MMMM yyyy", locale, timezone)>
19
20
21<#assign display_date = .vars["reserved-article-display-date"].data />
22<#assign inputFormat = "EEE, dd MMM yyyy HH:mm:ss Z">
23<#assign parsedDate = display_date?datetime(inputFormat)>
24<#assign outputFormat = "dd-MM-yyyy">
25<#assign formattedDate = parsedDate?string(outputFormat)>
26
27<article class="template template-news-detail">
28
29 <#assign showJournalTitle = getterUtil.getBoolean(portletTool.getPreference(request, "showAssetTitle"), false) />
30 <#if showAssetTitle?has_content && showAssetTitle>
31 <div class="portlet-title-wrapper">
32 <div class="portlet-title h3">${title}</div>
33 </div>
34 <#else>
35 <div class="portlet-title-wrapper">
36 <div class="portlet-title h3">${title}</div>
37 </div>
38 </#if>
39
40 <section class="row flex-row-reverse mt-4">
41 <#if validator.isNotNull(smallImageUrl)>
42 <div class="col-sm-3 col-12">
43 <a href="${smallImageUrl}" title="Imagen ${title}" class="image-wrapper image-wrapper-cover image-wrapper-style lightbox" style="background-image: url('${dlTool.getThumbnail(smallImageUrl, 3)}');">
44 <img src="${dlTool.getThumbnail(smallImageUrl, 3)}" alt="Imagen ${title}" />
45 </a>
46 </div>
47 </#if>
48 <div class="<#if validator.isNotNull(smallImageUrl)> col-sm-9 </#if> col-12">
49 <div class="date-wrapper text-metadata mb-3">
50 <span class="icon-calendar"><span class="hide-accessible"><@liferay.language key="date" /></span> </span><span class="date">${dateFormatted}</span>
51 </div>
52 <#if validator.isNotNull(description)>
53 <p class="text-abstract">${description}</p>
54 </#if>
55 <#if validator.isNotNull(Descripcion.data)>
56 <div class="text">${Descripcion.getData()}</div>
57 </#if>
58 </div>
59 </section>
60
61 <#assign htmlDocuments = journalTool.getHTMLDocuments(Documentos.Documento.getSiblings()) />
62 <#if validator.isNotNull(htmlDocuments)>
63 <section class="documents">
64 <div class="h5">${languageUtil.get(locale, "documents")}</div>
65 ${htmlDocuments}
66 </section>
67 </#if>
68
69
70 <#assign htmlGallery = journalTool.getHTMLGallery(Galeria.Imagen.getSiblings(), 3, "gallery-thumbs") />
71 <#if validator.isNotNull(htmlGallery)>
72 <section class="image-gallery">
73 <div class="h5">${languageUtil.get(locale, "image-gallery")}</div>
74 ${htmlGallery}
75 </section>
76 </#if>
77
78
79 <#assign htmlLinks = journalTool.getHTMLLinks(getterUtil.getLong(groupId), locale, Enlaces.Enlace.getSiblings(), Enlaces.EnlaceInterno.getSiblings()) />
80 <#if validator.isNotNull(htmlLinks)>
81 <section class="links">
82 <div class="h5">${languageUtil.get(locale, "links")}</div>
83 ${htmlLinks}
84 </section>
85 </#if>
86 <#if validator.isNotNull(Podcasts.Podcast.getData()) && validator.isNotNull(Podcasts.Podcast.getSiblings()) && Podcasts.Podcast.getSiblings()?size gt 0>
87 <section class="audios mt-4">
88 <div class="h5">Audios</div>
89 <#list Podcasts.Podcast.getSiblings() as podcast>
90 <#if validator.isNotNull(podcast.getData())>
91 <#assign dlFileEntry = dlTool.getDLFileEntryByPath(podcast.getData()?string)/>
92 <#assign ext = dlFileEntry.extension/>
93
94 <#if validator.isNotNull(podcast.PodcastNombre.getData())>
95 <#assign title = podcast.PodcastNombre.getData()/>
96 <#else>
97 <#assign title = dlFileEntry.getTitle()/>
98 </#if>
99
100 <div class="audio-wrapper">
101 <div class="audio mb-4">
102 <div class="important mb-2">${title}</div>
103 <audio controls>
104 <source src="${podcast.getData()}" title="${title}" type="audio/mpeg">
105 Tu navegador no soporta el elemento de audio.
106 </audio>
107 </div>
108 </div>
109 </#if>
110 </#list>
111 </section>
112 </#if>
113</article>
114
115<div class="hide">
116 <#assign cats = journalTool.getCategories(getterUtil.getLong(groupId),articleId) />
117 <#list cats as cat>
118 <p>cat: ${cat.getName()}, vaobulcary: ${cat.getVocabularyId()}</p>
119 </#list>
120</div>
121
122<style>
123 .template-news-detail .audio{
124 background: #fafafa;
125 padding: 5px 10px;
126 }
127</style>