
Crítica cultural Raíces Migraciones Nº 723 Cine
The following has evaluated to null or missing: ==> revista_number [in template "10136#10174#47095576" at line 33, column 33] ---- 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: ${revista_number} [in template "10136#10174#47095576" at line 33, column 31] ----
1<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
2<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
4<#assign assetDisplayPageFriendlyURLProvider = serviceLocator.findService("com.liferay.asset.display.page.portlet.AssetDisplayPageFriendlyURLProvider")>
5<#assign journalArticle = journalArticleLocalService.getArticle(getterUtil.getLong(groupId),.vars['reserved-article-id'].data) />
6<#assign categoriesList = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey()) />
7
8<#assign vocabularyTemaName = "Tema" />
9<#assign vocabularyNRevistaName = "Nº de revista" />
10<#assign vocabularyTopicName = "Topic" />
11<#assign avoidTopic = "PRINCIPAL" />
12
13<#assign viewURL = assetDisplayPageFriendlyURLProvider.getFriendlyURL("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey(), themeDisplay)>
14
15<article class="hero hero-cols hero-cols-expand">
16 <div class="headings">
17 <#if categoriesList?has_content>
18 <#list categoriesList as category>
19 <#assign categoryVocabulary = assetVocabularyLocalService.getAssetVocabulary(category.getVocabularyId()) />
20 <#if categoryVocabulary.getName() == vocabularyNRevistaName>
21 <#assign revista_number = category.getTitle(locale)/>
22 </#if>
23 </#list>
24 </#if>
25 <p class="kicker">
26 <#if categoriesList?has_content>
27 <#list categoriesList as category>
28 <#assign categoryVocabulary = assetVocabularyLocalService.getAssetVocabulary(category.getVocabularyId()) />
29 <#if categoryVocabulary.getName() == vocabularyTemaName>
30 <a title="${category.getTitle(locale)}">${category.getTitle(locale)}</a>
31 </#if>
32 </#list>
33 <a title="${revista_number}">${revista_number}</a>
34 <#list categoriesList as category>
35 <#assign categoryVocabulary = assetVocabularyLocalService.getAssetVocabulary(category.getVocabularyId()) />
36 <#if categoryVocabulary.getName() == vocabularyTopicName && category.getTitle(locale) != avoidTopic>
37 <a title="${category.getTitle(locale)}">${category.getTitle(locale)}</a>
38 </#if>
39 </#list>
40 </#if>
41 </p>
42
43 <#assign articleTitle = .vars['reserved-article-title'].data />
44 <#if (articleTitle?? && articleTitle != "")>
45 <h2 class="title">
46 ${articleTitle}
47 </h2>
48 </#if>
49
50 <#assign resumen = .vars['reserved-article-description'].data />
51 <#if (resumen?? && resumen != "")>
52 <div class="description">${resumen}</div>
53 </#if>
54
55 <p class="meta">
56 <#assign originalLocale = .locale>
57 <#setting locale = localeUtil.getDefault()>
58 <#assign fecha = .vars['reserved-article-display-date'].data?datetime("EEE, d MMM yyyy HH:mm:ss Z")>
59 <#assign locale = originalLocale>
60
61 <#if fecha??>
62 <span>${fecha?string["d 'de' MMMM 'de' yyyy"]}</span>
63 </#if>
64
65 <#assign tiempo = "" />
66 <#if detalle.getData()?? && detalle.getData() != ''>
67 <#assign content = detalle.getData()?trim />
68 <#if content != "">
69 <#assign contentCount = content?replace("<[^>]+>", "", "r")?word_list?size />
70 <#if contentCount gt 0>
71 <#assign minutesValue = (contentCount/200)?round />
72 <#if minutesValue == 0>
73 <#assign tiempo = "Unos segundos" />
74 <#elseif minutesValue == 1>
75 <#assign tiempo = minutesValue + " minuto" />
76 <#else>
77 <#assign tiempo = minutesValue + " minutos" />
78 </#if>
79 </#if>
80 </#if>
81 </#if>
82 <#if tiempo?? && tiempo != "">
83 <span>
84 <i class="fa fa-regular fa-clock"></i> ${tiempo}
85 </span>
86 </#if>
87 </p>
88
89 <#if autor.getSiblings()?has_content>
90 <p class="author">
91 <#list autor.getSiblings() as cur_autor>
92 <#if cur_autor.getData()?? && cur_autor.getData()?has_content>
93 <#attempt>
94 <#assign jsonObject = cur_autor.getData()?eval/>
95 <#assign articleClassPK = jsonObject.classPK />
96 <#assign articleGroupId = getterUtil.getLong(jsonObject.groupId) />
97 <#assign article = journalArticleLocalService.fetchLatestArticle(articleClassPK?number)>
98 <#assign aArticleXML = saxReaderUtil.read(article.getContentByLocale(locale)) />
99 <#assign nombre = aArticleXML.valueOf("//dynamic-element[@name='nombre']/dynamic-content/text()") />
100 <#assign apellidos = aArticleXML.valueOf("//dynamic-element[@name='apellidos']/dynamic-content/text()") />
101 <a title="${nombre} ${apellidos}">${nombre} ${apellidos}</a>
102 <#recover>
103 </#attempt>
104 </#if>
105 </#list>
106 </p>
107 </#if>
108 </div>
109
110 <#if (imagen.getData())?? && imagen.getData() != "">
111 <figure class="media">
112 <img alt="${imagen.getAttribute("alt")}" data-fileentryid="${imagen.getAttribute("fileEntryId")}" src="${imagen.getData()}" />
113 </figure>
114 </#if>
115</article>
Por eso no pedimos a nuestros lectores que se suscriban a un producto, sino que donen a un proyecto de los que desarrolla la Universidad de Navarra: desde la investigación del cáncer a becas para alumnos de bajos recursos, pasando por un nuevo Museo de Ciencias.