An error occurred while processing the template.
The following has evaluated to null or missing:
==> Article_Title [in template "20302#20342#PUB_GOOD_NEWS" at line 145, column 52]
----
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: ${Article_Title.getData()} [in template "20302#20342#PUB_GOOD_NEWS" at line 145, column 50]
----
1<#-- @ftlvariable name="JournalArticleTemplateHelper" type="com.neptune.ui.templates.helpers.JournalArticleTemplateHelperUtil" -->
2<#-- @ftlvariable name="JournalArticleLocalService" type="com.liferay.journal.service.JournalArticleLocalService" -->
3<#-- @ftlvariable name="PortalUtil" type="com.liferay.portal.kernel.util.PortalUtil" -->
4
5<style>
6 #aoc .aoc-pub-article__header--author {
7 text-transform: capitalize;
8 }
9
10 /*Social Media*/
11 #aoc #aoc-pub-social-media-sticky-sticky-wrapper, #aoc #aoc-pub-social-media-books-sticky-sticky-wrapper {
12 margin-left: -45px;
13 position: fixed;
14 top: 240px;
15 }
16
17 @media screen and (max-width: 1023px) {
18 #aoc-pub-social-media-sticky {
19 display: none;
20 }
21
22 #aoc .aoc-pub-article__social-media-mobile {
23 display: inline-flex;
24 list-style: none;
25 margin: 0;
26 }
27
28 #aoc .aoc-pub-article__header--author {
29 display: block;
30 padding: 0;
31 }
32
33 #aoc .aoc-pub-article__fb-share,
34 #aoc #aoc-mobile-facebook {
35 margin-right: 10px;
36 }
37 }
38
39 /*Stamps when injected*/
40 @media screen and (max-width: 1023px) {
41 #aoc .aoc-pub-article__content .aoc-pub-thumbnails-vertical__thumbnail {
42 max-width: 48%;
43 flex: 1 0 auto;
44 display: inline-flex;
45 margin: 0 auto;
46 justify-content: center;
47 }
48 }
49
50 @media screen and (max-width: 799px) {
51 #aoc .aoc-pub-article__content .aoc-pub-thumbnails-vertical__thumbnail {
52 flex: 1 0 100%;
53 margin: 0 1%;
54 }
55 }
56</style>
57
58<!-- sticky element -->
59<div id="aoc-pub-social-media-sticky">
60 <ul class="aoc-pub-article__social-media">
61 <li>
62 <a id="aoc-sticky-facebook" class="aoc-pub-article__social-media--link" href="#" target="_blank">
63 <svg class="aoc-pub-article__social-media--icon">
64 <use xlink:href="/o/aoc-publication-theme/resources/svg-sprite.svg#icon-fb"/>
65 </svg>
66 </a>
67 </li>
68 <li>
69 <a id="aoc-sticky-twitter" href="#" target="_blank" class="aoc-pub-article__social-media--link">
70 <svg
71 xmlns="http://www.w3.org/2000/svg"
72 xmlns:svg="http://www.w3.org/2000/svg"
73 xmlns:xlink="http://www.w3.org/1999/xlink"
74 xml:space="preserve"
75 x="0px"
76 y="0px"
77 viewBox="0 0 1668.56 1221.19"
78 class="aoc-pub-article__social-media--icon"
79 style="transform: scale(1.7); enable-background:new 0 0 1668.56 1221.19;"
80 >
81 <style type="text/css">
82 .st0 {
83 stroke: #FFFFFF;
84 stroke-miterlimit: 10;
85 }
86 .st1 {
87 fill: #FFFFFF;
88 }
89 </style>
90 <g>
91 <circle
92 class="st0"
93 cx="834.28"
94 cy="610.6"
95 r="481.33"
96 fill="#808285"
97 style="display: flex; align-items: center; justify-content: center;"
98 />
99 <g
100 id="layer1"
101 transform="translate(52.390088,-25.058597)"
102 style="scale: .80; display: block; transform: translate(16%, 9%);"
103 >
104 <path
105 id="path1009"
106 class="st1"
107 d="M485.39,356.79l230.07,307.62L483.94,914.52h52.11l202.7-218.98l163.77,218.98h177.32L836.82,589.6l215.5-232.81h-52.11L813.54,558.46L662.71,356.79H485.39z M562.02,395.17h81.46l359.72,480.97h-81.46L562.02,395.17z"
108 />
109 </g>
110 </g>
111 </svg>
112 </a>
113 </li>
114 </ul>
115</div>
116
117<#assign GroupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") />
118<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
119<#assign group = GroupLocalService.getGroup(groupId) />
120<#assign articleInfoLocalService = serviceLocator.findService("org.archdioceseofchicago.portal.service.service.ArticleInfoLocalService") />
121<#assign articleId = .vars['reserved-article-id'].data />
122
123<#assign languageId = themeDisplay.getLanguageId()>
124<#assign sectionName = articleInfoLocalService.getArticleSection(articleId, groupId, companyId, locale)>
125
126<#-- create edit URL-->
127<#assign editURL = ""/>
128<#assign journalArticle = JournalArticleLocalService.fetchLatestArticle(groupId, articleId, 0)!{} />
129<#if journalArticle?has_content>
130 <#assign assetEntry = JournalArticleTemplateHelper.getAssetEntry(journalArticle)!{} />
131 <#if assetEntry?has_content>
132 <#assign windowState = windowStateFactory.getWindowState("POP_UP")!"" />
133 <#assign assetRenderer = assetEntry.getAssetRenderer()!{} />
134 <#if assetRenderer?has_content && assetRenderer.hasEditPermission(permissionChecker)>
135 <#assign editURL = assetRenderer.getURLEdit(themeDisplay.getRequest())!"" />
136 </#if>
137 </#if>
138</#if>
139
140<main class="aoc-pub-article__main">
141 <section class="aoc-pub-article">
142 <header class="aoc-pub-article__header">
143 <!--<span class="aoc-pub-article__header--label">${sectionName}</span>-->
144 <h2 class="aoc-pub-page-title">${sectionName}</h2>
145 <h1 class="aoc-pub-article__header--title">${Article_Title.getData()}</h1>
146 <h4 class="aoc-pub-article__header--author">
147 <@liferay.language key="byline-text" />
148 <strong>${Author_and_Dept.getData()}</strong>
149 <br/>
150 <#assign userLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.UserLocalService") />
151 <#assign user = userLocalService.getUserById(permissionChecker.getUserId()) />
152 <#assign articleDisplayDate = .vars['reserved-article-display-date'].data />
153 <#assign pubDate = articleDisplayDate?datetime("EEE, dd MMM yyyy hh:mm:ss Z") />
154 ${pubDate}
155 <#if editURL?has_content>
156 |
157 <a href="${editURL}" title="Edit Article">
158 <@clay["icon"] symbol="pencil" />
159 Edit Article
160 </a>
161 </#if>
162 </h4>
163 </header>
164
165 <!-- Social Media Mobile -->
166 <ul class="aoc-pub-article__social-media-mobile">
167 <li>
168 <a id="aoc-mobile-facebook" class="aoc-pub-article__social-media--link" href="#" target="_blank">
169 <svg class="aoc-pub-article__social-media--icon">
170 <use xlink:href="/o/aoc-publication-theme/resources/svg-sprite.svg#icon-fb"/>
171 </svg>
172 </a>
173 </li>
174 <li>
175 <a id="aoc-mobile-twitter" href="#" target="_blank" class="aoc-pub-article__social-media--link">
176 <svg
177 xmlns="http://www.w3.org/2000/svg"
178 xmlns:svg="http://www.w3.org/2000/svg"
179 xmlns:xlink="http://www.w3.org/1999/xlink"
180 xml:space="preserve"
181 x="0px"
182 y="0px"
183 viewBox="0 0 1668.56 1221.19"
184 class="aoc-pub-article__social-media--icon"
185 style="transform: scale(1.7); enable-background:new 0 0 1668.56 1221.19;"
186 >
187 <style type="text/css">
188 .st0{stroke:#FFFFFF;stroke-miterlimit:10;}
189 .st1{fill:#FFFFFF;}
190 </style>
191 <g>
192 <circle class="st0" cx="834.28" cy="610.6" r="481.33" fill="#808285" style="display: flex; align-items: center; justify-content: center;" />
193 <g id="layer1" transform="translate(52.390088,-25.058597)" style="scale: .80; display: block; transform: translate(16%, 9%);">
194 <path id="path1009" class="st1" d="M485.39,356.79l230.07,307.62L483.94,914.52h52.11l202.7-218.98l163.77,218.98h177.32L836.82,589.6l215.5-232.81h-52.11L813.54,558.46L662.71,356.79H485.39z M562.02,395.17h81.46l359.72,480.97h-81.46L562.02,395.17z"/>
195 </g>
196 </g>
197 </svg>
198 </a>
199 </li>
200 </ul>
201 <#assign relatedGalleryId = articleInfoLocalService.getRelatedArticlesIds("GALLERY_STRUCTURE", articleId?string, groupId, companyId)>
202 <#assign ddmTemplateKey = "GALLERY_TEMPLATE">
203 <#if relatedGalleryId?has_content>
204 <#assign relatedGalleryArticleId = relatedGalleryId[0]>
205 <#assign galleryDisplay = JournalArticleLocalService.getArticleDisplay(groupId, relatedGalleryArticleId, ddmTemplateKey, languageId, themeDisplay)>
206 ${galleryDisplay.getContent()}
207 <#else>
208 <#if Cover_Image?has_content>
209 <article class="aoc-pub-article-hero">
210 <div class="aoc-pub-article-hero__image-container">
211 <img class="aoc-pub-article-hero__image" src="${Cover_Image.getData()}">
212 </div>
213 <span class="aoc-pub-article-hero__caption">
214 ${Image_Caption_and_Credit.getData()}
215 </span>
216 </article>
217 </#if>
218 </#if>
219 <article class="aoc-pub-article__content">
220 <#assign sourceArticleBody = articleInfoLocalService.getParsedPublicationArticle(
221 Article_Content.getData(),
222 SidebarsFieldSet.SidebarFieldSet.getSiblings()
223 ) />
224 ${sourceArticleBody}
225 <#if Contributors.getData()?has_content>
226 <p>- - -</p>
227 <p>Contributing to this story was ${Contributors.getData()}</p>
228 </#if>
229 </article>
230
231 <#assign theme = group.getPublicLayoutSet().getTheme() />
232
233 <#assign articleIndexRoot = "/article-index" />
234 <#if themeDisplay.getThemeSetting("theme-type") == "catolico">
235 <#assign articleIndexRoot = "/articulo-indice" />
236 </#if>
237 <#assign trendingPortletId = themeDisplay.getThemeSetting("trending-topic-portlet-id")!"" />
238 <#assign articleIndexPath = (articleIndexRoot
239 + "?p_p_id="
240 + trendingPortletId
241 + "&_"
242 + trendingPortletId
243 + "_tag="
244 ) />
245 <#assign siteFriendlyUrl = group.getFriendlyURL()! ""/>
246 <#assign pathPublicUrl = portalUtil.getPathFriendlyURLPublic()!"" />
247 <#assign tags = articleInfoLocalService.getTagsWithIds(articleId, groupId)![] />
248 <#assign user = permissionChecker.getUser()!{} />
249 <#assign userId = user.getUserId() />
250 <#if tags?has_content>
251 <div class="aoc-pub-article__topics">
252 <h4 class="aoc-pub-article__topics__title">Topics:</h4>
253 <ul class="aoc-pub-article__topics__list">
254 <#list tags as tag>
255 <#assign tagName = tag.getValue() />
256 <#assign tagId = tag.getKey() />
257 <script>
258 AUI().use('aui-base', A => {
259 Liferay.Service(
260 '/aoc.taghit/hit-tag',
261 {
262 groupId: ${groupId},
263 userId: ${userId},
264 tagId: '${tagId}'
265 },
266 (obj) => {}
267 );
268 });
269 </script>
270 <#assign tagUrl = theme_service_util.getTrendingTopicPageUrl(tagName, themeDisplay, articleIndexPath)!"" />
271 <li class="aoc-pub-article__topics__list--item">
272 <a href="${tagUrl}">${tagName}</a>
273 </li>
274 </#list>
275 </ul>
276 </div>
277 </#if>
278 <#assign relatedArticleAuthorId = articleInfoLocalService.getRelatedArticlesIds("AUTHOR_STRUCTURE", articleId, groupId, companyId)>
279 <#assign ddmTemplateKey = "PUB_AUTHOR">
280 <#if relatedArticleAuthorId?has_content>
281 <#assign authorArticleId = relatedArticleAuthorId[0]>
282 <#assign authorDisplay = JournalArticleLocalService.getArticleDisplay(groupId, authorArticleId, ddmTemplateKey, languageId, themeDisplay)>
283 <#if authorDisplay?has_content>
284 ${authorDisplay.getContent()}
285 </#if>
286 </#if>
287 <#assign relatedArticlesIds = articleInfoLocalService.getRelatedArticlesIds("ARTICLE_STRUCTURE", articleId?string, groupId, companyId)>
288 <#assign ddmTemplateKey = "RELATED_ARTICLE">
289 <#if relatedArticlesIds?has_content >
290 <hr>
291 <strong class="aoc-pub-article__posts-header">Related Articles</strong>
292 <section class="aoc-pub-secondary-post-feed">
293 <#list relatedArticlesIds as relatedArticleId>
294 <#if relatedArticleId?index lt 3>
295 <#assign relatedArticleDisplay = JournalArticleLocalService.getArticleDisplay(groupId, relatedArticleId, ddmTemplateKey, "view", languageId, themeDisplay)>
296 ${relatedArticleDisplay.getContent()}
297 </#if>
298 </#list>
299 </section>
300 </#if>
301 </section>
302</main>
Sign up for our email newsletter
Advertising