IFAD Asset Request Portlet

Asset Publisher

An error occurred while processing the template.
The following has evaluated to null or missing:
==> person.getFirstName()  [in template "10154#10192#NEWS" at line 97, column 80]

----
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: ${person.getFirstName()}  [in template "10154#10192#NEWS" at line 97, column 78]
----
1<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
2groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") 
3classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService") /> 
4 
5<#assign globalGroup = groupLocalService.getFriendlyURLGroup(companyId, "/global")> 
6<#assign destMacroClassId = classNameLocalService.getClassNameId("com.liferay.asset.kernel.model.AssetEntry")> 
7<#include "_TEMPLATE_CONTEXT_/${companyId}/${globalGroup.groupId}/${destMacroClassId}/ASSET_ENTRY_MACROS" /> 
8 
9<#assign article = journalArticleLocalService.getArticle(getterUtil.getLong(articleGroupId), .vars['reserved-article-id'].data)> 
10 
11<div class="abstract-article news"> 
12 
13    <div class="header-section"> 
14        <#if news_title?hasContent> 
15            <h1 class="title">${news_title.getData()}</h1> 
16        </#if> 
17 
18        <#if news_subtitle?hasContent> 
19            <h3 class="subtitle">${news_subtitle.getData()}</h3> 
20        </#if> 
21 
22        <#if abstract_publication_date?hasContent> 
23            <#assign publicationDateFormatted = getFormattedDateForAbstractArticle(article, abstract_publication_date, locale, "dd MMMM yyyy") /> 
24 
25            <#if publicationDateFormatted != ""> 
26                <small class="text-mitted article-date d-block mb-4">${publicationDateFormatted}</small> 
27            </#if> 
28        </#if> 
29    </div> 
30 
31    <div id="shareButtons" class="hidden-print"></div> 
32 
33    <#if news_image?hasContent> 
34        <img class="img-fluid" src="${news_image.getData()}"/> 
35        <small class="text-right d-block">${news_image.news_image_credits.data}</small> 
36 
37        <#if news_image.news_image_caption??> 
38            <p class="text-center text-muted">${news_image.news_image_caption.data}</p> 
39        </#if> 
40    </#if> 
41 
42    <#if .vars['section-divider-before-main-content']?hasContent && .vars['section-divider-before-main-content'].data> 
43        <hr/> 
44    </#if> 
45 
46    <div class="container main-content"> 
47        <div class="row"> 
48            <div class="col-lg-10 offset-lg-1 col-md-12"> 
49                ${main_content.getData()} 
50            </div> 
51        </div> 
52    </div> 
53 
54    <#assign mediaContactsItems = ""> 
55 
56    <#if media_contacs?hasContent && media_contacs.getSiblings()?hasContent> 
57        <#list media_contacs.getSiblings() as cur_media_contact> 
58            <#assign mediaContactsItems = mediaContactsItems + "|" + cur_media_contact.getData()> 
59        </#list> 
60    </#if> 
61 
62    <#assign persons = highriseWrapper.getPersonsList(mediaContactsItems)> 
63 
64    <#if persons?hasContent> 
65        <div class="container"> 
66            <div class="row"> 
67                <div class="col-lg-10 offset-lg-1 col-md-12"> 
68 
69                    <h2 class="title-underline mt-3 mb-3"><@liferay.language key="media-contact" /></h2> 
70 
71                    <div class="row"> 
72                        <#list persons as person> 
73                            <div class="col-lg-4 col-md-6 col-sm-12"> 
74                                <div> 
75                                    <div class="expert-photo-container"> 
76                                        <#if person.isHasBio()> 
77                                        <a href="/web/guest/profile?id=${person.getId()}&p_l_back_url=${themeDisplay.getURLCurrent()}"> 
78                                            </#if> 
79 
80 
81                                            <div class="expert-photo"> 
82                                                <#if person.getAvatarUrl()?hasContent> 
83                                                    <img class="expert-image" src="${person.getAvatarUrl()}" 
84                                                         alt="Image of ${person.getFirstName()} ${person.getLastName()}"/> 
85                                                </#if> 
86                                            </div> 
87 
88                                            <#if person.isHasBio()> 
89                                        </a> 
90                                        </#if> 
91 
92                                        <#if person.isHasBio()> 
93                                        <a href="/web/guest/profile?id=${person.getId()}&p_l_back_url=${themeDisplay.getURLCurrent()}"> 
94                                            </#if> 
95 
96                                            <div class="expert-photo-label"> 
97                                                <p class="expert-photo-name">${person.getFirstName()} ${person.getLastName()}</p> 
98                                                <p class="expert-photo-title">${person.getTitle()}</p> 
99 
100                                                <#if person.getContactData()?hasContent && 
101                                                (person.getContactData().getEmailAddresses()?size > 0) && 
102                                                person.getContactData().getEmailAddresses()[0]?hasContent > 
103                                                    <p class="expert-photo-email"> 
104                                                        <a href="mailto:${person.getContactData().getEmailAddresses()[0].getAddress()}">${person.getContactData().getEmailAddresses()[0].getAddress()}</a> 
105                                                    </p> 
106                                                </#if> 
107                                            </div> 
108 
109                                            <#if person.isHasBio()> 
110                                        </a> 
111                                        </#if> 
112                                    </div> 
113                                </div> 
114                            </div> 
115                        </#list> 
116                    </div> 
117                </div> 
118            </div> 
119        </div> 
120    </#if> 
121 
122    <#if related_documents_label?hasContent && 
123    related_documents_label.related_documents_file?hasContent && 
124    related_documents_label.related_documents_file.data?hasContent> 
125        <div class="container"> 
126            <div class="row"> 
127                <div class="col-lg-10 offset-lg-1 col-md-12"> 
128                    <h2 class="title-underline mt-3 mb-3"><@liferay.language key="related-documents" /></h2> 
129 
130                    <#if related_documents_label?hasContent && (related_documents_label.getSiblings()?size > 0)> 
131                        <#list related_documents_label.getSiblings() as cur_related_documents_label> 
132                            <div class="row border-bottom pb-3 mb-3"> 
133                                <div class="col-lg-1 col-xs-2"> 
134                                    <img class="img-fluid" 
135                                         src="/o/ifad-global-theme/images/placeholders/document-orange-icon.png"> 
136                                </div> 
137 
138                                <div class="col-xs-10 col-lg-11"> 
139                                    <a class="text-dark" target="_blank" 
140                                       href="${cur_related_documents_label.related_documents_file.getData()}"> 
141                                        <strong>${cur_related_documents_label.getData()}</strong> 
142                                    </a> 
143                                </div> 
144                            </div> 
145                        </#list> 
146                    <#else> 
147                        <p><@liferay.language key="err-msg-no-related-documents-found" /></p> 
148                    </#if> 
149                </div> 
150            </div> 
151        </div> 
152    </#if> 
153 
154</div> 
155 
156<@printLegacyArticleUrl article />