Articles

An error occurred while processing the template.
The following has evaluated to null or missing:
==> .vars['reserved-article-display-date']  [in template "20101#20127#92247" at line 61, column 38]

----
Tip: It's the final [] step that caused this error, not those before it.
----
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: #assign displayDate = .vars["reserved...  [in template "20101#20127#92247" at line 61, column 15]
----
1<#-- 
2Freemarker template for media type archive (Article/Podcast/Video) 
3--> 
4 
5 
6<!-- constants/default values --> 
7<#assign viewURL = requestMap.attributes.viewURL /> 
8<#assign viewURLNoParams = viewURL?keep_before("?") /> 
9<#assign title = requestMap.attributes.title /> 
10<#assign topic = requestMap.attributes.topic /> 
11<#assign icon = requestMap.attributes.icon! /> 
12<#assign summary = requestMap.attributes.summary! /> 
13<#assign bgStyle = requestMap.attributes.bgStyle /> 
14<#assign iconImg = "" /> 
15<#assign iconID = "" /> 
16<#assign adaptiveMediaLocation = ["/o/adaptive-media/image/","/thumbnail-600x600/"] /> 
17 
18<#-- custom poster image overrides default podcast artwork (or default image) --> 
19<#-- this is in the item template because the Widget Template doesn't know about structure-specific values (PosterImage) --> 
20<#-- lots of conditions because of import in API? Sometimes has_content is true, but still empty... --> 
21<#if PosterImage?has_content && PosterImage.getData()?? && PosterImage.getData() != ""> 
22  <#assign iconID = PosterImage.getAttribute("fileEntryId") />  
23  <#assign iconImg = adaptiveMediaLocation[0] + iconID + adaptiveMediaLocation[1] + PosterImage.getData()?split("/")[4] /> 
24  <#assign bgStyle = "background-image: url('${iconImg}');" /> 
25</#if> 
26 
27<div class="row"> 
28  <div class="col-12 article-archive-item"> 
29    <a class="block-link" href="${viewURLNoParams}"> 
30      <div class="row"> 
31        <div class="col-3"> 
32          <div class="aspect-ratio aspect-ratio-4-to-3 aspect-ratio-bg-cover" style="${bgStyle}"> 
33            <!-- image implemented as background image --> 
34          </div> 
35        </div> 
36        <#if icon == "hash" || icon == "podcast"> 
37            <div class="podcast-icon-sm"> 
38                <div class="podcast-icon"> 
39                    <#if icon == "hash"><i class="fas fa-hashtag"></i></#if> 
40                    <#if icon == "podcast"><i class="fas fa-podcast"></i></#if> 
41                     
42                </div> 
43            </div> 
44        </#if> 
45        <#if icon == "play"> 
46            <div class="podcast-icon-sm"> 
47                <div class="podcast-icon" style="padding-left:.65rem;"> 
48                    <i class="fas fa-play"></i> 
49                </div> 
50            </div> 
51        </#if> 
52 
53        <div class="col-9"> 
54          <div class="d-flex flex-column h-100 article-archive-excerpt"> 
55            <h3>${title}</h3> 
56            <span class="summary mb-2">${summary}</span> 
57 
58            <div class="mt-auto"> 
59              <span class="meta-label meta-author">${.vars['reserved-article-author-name'].data}</span> 
60                 
61              <#assign displayDate = .vars['reserved-article-display-date'].data> 
62              <#assign originalLocale = .locale> 
63              <#setting locale = localeUtil.getDefault()> 
64              <#assign displayDate = displayDate?datetime("EEE, d MMM yyyy HH:mm:ss Z")> 
65              <#assign locale = originalLocale> 
66              <span class="meta-label meta-published-date">${displayDate?string["MM/dd/yyyy"]}</span> 
67            </div> 
68          </div> 
69        </div> 
70      </div> 
71    </a> 
72  </div> 
73</div>