Avisos

Fel uppstod under bearbetning av mallen.
The following has evaluated to null or missing:
==> year  [in template "89710184640307#20120#3476814" at line 49, column 67]

----
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: ${year}  [in template "89710184640307#20120#3476814" at line 49, column 65]
----
1<#assign _assetEntryLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
2<#assign roleLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.RoleLocalService")/> 
3<#assign _journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
4 
5<#assign projectResultList=[] /> 
6<#assign count=0 /> 
7<#if entries?has_content> 
8    <#list entries as doc> 
9 
10        <#assign curEntry=_assetEntryLocalService.fetchEntry("com.liferay.journal.model.JournalArticle", doc.getClassPK())> 
11 
12        <#assign article = _journalArticleLocalService.getLatestArticle(curEntry.getClassPK()) /> 
13					 
14        <#assign assetRenderer=curEntry.getAssetRenderer() /> 
15        <#assign linkToWebContentDisplayPage="/w/" + assetRenderer.getUrlTitle() /> 
16        <#assign DDMFormFieldValuesMap=assetRenderer.getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValuesMap() /> 
17        <#assign DDMFormFieldsReferencesMap=assetRenderer.article.DDMStructure.DDMForm.getDDMFormFieldsReferencesMap(true) /> 
18        <#assign categories=curEntry.getCategories() /> 
19        <!-- Pegando data da noticia --> 
20        <#assign yearDeliveryField=DDMFormFieldsReferencesMap['dateTime'].name /> 
21        <#assign yearDeliveryOptionSelected=DDMFormFieldValuesMap[yearDeliveryField] 
22            [0].getValue().getString(locale)?replace("-", "/" ) /> 
23            <#if yearDeliveryOptionSelected?has_content> 
24                <#assign currentYear=yearDeliveryOptionSelected?date("yyyy/MM/dd HH:mm")?string("yyyy")> 
25                <#assign yearDeliveryOptionSelected=yearDeliveryOptionSelected?date("yyyy/MM/dd HH:mm")?string("dd/MM/yyyy HH:mm")> 
26            </#if> 
27        <!-- Pegando Resumo do card --> 
28        <#assign cardSummaryField=DDMFormFieldsReferencesMap['description'].name /> 
29        <#assign cardSummary=DDMFormFieldValuesMap[cardSummaryField][0].getValue().getString(locale) /> 
30         
31        <#assign projectResult={  
32            "title" :"${curEntry.getTitle(locale)}", 
33            "cardSummary" :"${cardSummary}", 
34            "dateTime" :"${yearDeliveryOptionSelected}", 
35            "linkToWebContentDisplayPage" :"${linkToWebContentDisplayPage}" 
36            } /> 
37        <#assign projectResultList +=[projectResult] /> 
38    </#list> 
39</#if> 
40<section class="td-avisos"> 
41    <div class="avisos__select-wrapper"> 
42        <label for="yearSelect" class="year-label">Ano</label> 
43        <div class="avisos__select" role="combobox" aria-expanded="false" aria-controls="yearOptions" 
44            tabindex="0"> 
45            <div class="select-selected" id="selectedYear"></div> 
46            <div class="select-items select-hide" id="yearOptions" role="listbox"> 
47                <#if currentYear?has_content> 
48                    [#list (2002..currentYear)?reverse as year] 
49                    <div tabindex="0" role="option" data-value="${year}" [#if year==currentYear]class="same-as-selected" [/#if]> 
50                        ${year}</div> 
51                    [/#list] 
52                </#if> 
53            </div> 
54            <select id="yearSelect" aria-hidden="true" style="display: none;"> 
55                <#if currentYear?has_content> 
56                    [#assign currentYear = .now?string('yyyy')?number /] 
57                    [#list (2002..currentYear)?reverse as year] 
58                    <option value="${year}" [#if year==currentYear]selected[/#if]>${year}</option> 
59                    [/#list] 
60                </#if> 
61            </select> 
62        </div> 
63    </div> 
64 
65    <ul class="td-avisos--list list-unstyled m-0 swiper-wrapper"> 
66        <#list projectResultList as curEntry> 
67            <article class="td-avisos--card b3-ga-card"> 
68                <div class="td-avisos--content"> 
69                    <div class="td-avisos--wrapper"> 
70                        <a href="${curEntry.linkToWebContentDisplayPage}" class="td-avisos--texts b3-ga-button"> 
71                            <p class="td-avisos--subtitle text__body--small mb-0"> 
72                                ${curEntry.cardSummary} 
73                            </p> 
74                        </a> 
75                    </div> 
76                    <div class="td-avisos--lead"> 
77                        <p class="td-avisos--data text__body--small"> 
78                            <svg width="18" height="18" viewBox="0 0 18 18" fill="none" 
79                                xmlns="http://www.w3.org/2000/svg"> 
80                                <mask id="mask0_13857_914294321${count}" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="2" 
81                                    y="0" width="14" height="16"> 
82                                    <path fill-rule="evenodd" clip-rule="evenodd" 
83                                        d="M15.6001 3.6C15.6001 2.85 15.0001 2.25 14.2501 2.25H13.5001H13.3501V2.1V0.75H12.1501V2.1V2.25H12.0001H6.00015H5.85015V2.1V0.75H4.65015V2.1V2.25H4.50015H3.75015C3.00015 2.25 2.40015 2.85 2.40015 3.6V14.1C2.40015 14.85 3.00015 15.45 3.75015 15.45H14.2501C15.0001 15.45 15.6001 14.85 15.6001 14.1V3.6ZM14.4001 6.6V14.1V14.25H14.2501H3.75015H3.60015V14.1V6.6V6.45H3.75015H14.2501H14.4001V6.6ZM14.4001 3.6V5.1V5.25H14.2501H3.75015H3.60015V5.1V3.6V3.45H3.75015H14.2501H14.4001V3.6ZM9.60015 8.02478H8.40015V9.22478H9.60015V8.02478ZM5.40015 11.0999V12.2999H6.60015V11.0999H5.40015ZM12.6001 8.02478V9.22478H11.4001V8.02478H12.6001ZM6.60015 8.02478H5.40015V9.22478H6.60015V8.02478ZM8.40015 11.0999H9.60015V12.2999H8.40015V11.0999ZM11.4001 12.2999V11.0999H12.6001V12.2999H11.4001Z" 
84                                        fill="black" /> 
85                                </mask> 
86                                <g mask="url(#mask0_13857_914294321${count})"> 
87                                    <rect width="18" height="18" fill="#666E7A" /> 
88                                </g> 
89                            </svg> 
90                            ${curEntry.dateTime} 
91                        </p> 
92                    </div> 
93                </div> 
94            </article> 
95            <#assign count=count + 1 /> 
96        </#list> 
97    </ul> 
98</section> 
99	 
100<style> 
101.td-avisos { 
102    position: relative; 
103    overflow: hidden; 
104    width: 100%; 
105    max-width: 79.375rem; 
106    margin: 0 auto; 
107    padding-bottom: 0.75rem; 
108
109 
110.td-avisos--list { 
111    display: flex; 
112    flex-direction: column; 
113    flex-wrap: nowrap; 
114
115 
116.td-avisos--card { 
117    display: flex; 
118    flex-direction: column; 
119    align-items: flex-start; 
120    justify-content: flex-start; 
121    background: var(--white, #FFF); 
122    overflow: hidden; 
123    width: 100%; 
124    padding: 0 1rem 1rem 1rem; 
125    border-radius: 8px; 
126
127 
128.td-avisos--content { 
129    width: 100%; 
130
131 
132.td-avisos--wrapper { 
133    display: block; 
134    color: #237131; 
135    text-decoration: underline; 
136    cursor: pointer; 
137    padding: 0.5rem 0; 
138    transition: color 0.3s ease; 
139
140 
141.td-avisos--wrapper:hover { 
142    color: #1e5f2a; 
143
144 
145.td-avisos--data { 
146    margin-top: 0.5rem; 
147    color: var(--text-text-light, #666E7A); 
148    text-align: left; 
149    line-height: 150%; 
150    font-size: 0.875rem; 
151
152 
153.td-avisos--subtitle { 
154    color: var(--text-text-light, #666E7A); 
155    line-height: 150%; 
156    overflow: hidden; 
157    text-overflow: ellipsis; 
158    display: -webkit-box; 
159    -webkit-line-clamp: 2; 
160    -webkit-box-orient: vertical; 
161    font-size: 1rem; 
162    color: #237131 
163
164 
165.pagination-bar .dropdown.pagination-items-per-page, 
166.pagination-bar .pagination-results { 
167    display: none; 
168
169 
170.pagination-bar nav { 
171    width: 100% 
172
173 
174.pagination-bar .pagination { 
175    justify-content: center; 
176
177 
178.pagination-bar .pagination .page-link, 
179.page-item .page-link{ 
180    color: #237131; 
181
182 
183.page-item .page-link:hover, 
184.page-item .page-link.hover, 
185.page-item.active .page-link, 
186.page-link:active { 
187    background-color: #2371311A; 
188
189 
190.page-item .page-link::before { 
191    content: none; 
192
193 
194@media (max-width: 1279px) { 
195    .td-avisos--card { 
196        padding: 0 1.5rem 1rem 1.5rem; 
197
198
199 
200@media screen and (max-width: 767px) { 
201    .td-avisos--card { 
202        padding: 0 1.5rem 1rem 1.5rem; 
203
204 
205    .b3--container__btn-to-top { 
206        border-radius: 100px; 
207        border: 1px solid var(--interaction-light, #0063DE); 
208        display: flex; 
209        width: 17rem; 
210        padding: 0.4375rem 1rem; 
211        justify-content: center; 
212        align-items: center; 
213        gap: var(--space-2, 12px); 
214        background: transparent; 
215        line-height: 1.375rem; 
216        letter-spacing: 0.09375rem; 
217        text-transform: uppercase; 
218        color: var(--interaction-light, #0063DE); 
219        text-align: center; 
220        margin: 1.5rem auto 0.75rem auto; 
221
222
223</style>