Hiba jelentkezett a sablon feldolgozása során.
The following has evaluated to null or missing: ==> year [in template "89710184640307#20120#3476814" at line 50, column 63] ---- 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 50, column 61] ----
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 "year": "${currentYear}"
37 } />
38 <#assign projectResultList +=[projectResult] />
39 </#list>
40</#if>
41<section class="td-avisos">
42 <div class="avisos__select-wrapper">
43 <label for="yearSelect" class="year-label">Ano</label>
44 <div class="avisos__select" role="combobox" aria-expanded="false" aria-controls="yearOptions"
45 tabindex="0">
46 <div class="select-selected" id="selectedYear"></div>
47 <div class="select-items select-hide" id="yearOptions" role="listbox">
48 [#assign currentYear = .now?string('yyyy')?number /]
49 [#list (2002..currentYear)?reverse as year]
50 <div tabindex="0" role="option" data-value="${year}" [#if year==currentYear]class="same-as-selected" [/#if]>
51 ${year}</div>
52 [/#list]
53 </div>
54 <select id="yearSelect" aria-hidden="true" style="display: none;">
55 [#assign currentYear = .now?string('yyyy')?number /]
56 [#list (2002..currentYear)?reverse as year]
57 <option value="${year}" [#if year==currentYear]selected[/#if]>${year}</option>
58 [/#list]
59 </select>
60 </div>
61 </div>
62
63 <ul class="td-avisos--list list-unstyled m-0 swiper-wrapper">
64 <#list projectResultList as curEntry>
65 <article class="td-avisos--card b3-ga-card">
66 <div class="td-avisos--content">
67 <div class="td-avisos--wrapper">
68 <a href="${curEntry.linkToWebContentDisplayPage}" class="td-avisos--texts b3-ga-button">
69 <p class="td-avisos--subtitle text__body--small mb-0">
70 ${curEntry.cardSummary}
71 </p>
72 </a>
73 </div>
74 <div class="td-avisos--lead">
75 <p class="td-avisos--data text__body--small">
76 <svg width="18" height="18" viewBox="0 0 18 18" fill="none"
77 xmlns="http://www.w3.org/2000/svg">
78 <mask id="mask0_13857_914294321${count}" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="2"
79 y="0" width="14" height="16">
80 <path fill-rule="evenodd" clip-rule="evenodd"
81 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"
82 fill="black" />
83 </mask>
84 <g mask="url(#mask0_13857_914294321${count})">
85 <rect width="18" height="18" fill="#666E7A" />
86 </g>
87 </svg>
88 ${curEntry.dateTime}
89 ${curEntry.year}
90 </p>
91 </div>
92 </div>
93 </article>
94 <#assign count=count + 1 />
95 </#list>
96 </ul>
97</section>
98
99<style>
100.td-avisos {
101 position: relative;
102 overflow: hidden;
103 width: 100%;
104 max-width: 79.375rem;
105 margin: 0 auto;
106 padding-bottom: 0.75rem;
107}
108
109.td-avisos--list {
110 display: flex;
111 flex-direction: column;
112 flex-wrap: nowrap;
113}
114
115.td-avisos--card {
116 display: flex;
117 flex-direction: column;
118 align-items: flex-start;
119 justify-content: flex-start;
120 background: var(--white, #FFF);
121 overflow: hidden;
122 width: 100%;
123 padding: 0 1rem 1rem 1rem;
124 border-radius: 8px;
125}
126
127.td-avisos--content {
128 width: 100%;
129}
130
131.td-avisos--wrapper {
132 display: block;
133 color: #237131;
134 text-decoration: underline;
135 cursor: pointer;
136 padding: 0.5rem 0;
137 transition: color 0.3s ease;
138}
139
140.td-avisos--wrapper:hover {
141 color: #1e5f2a;
142}
143
144.td-avisos--data {
145 margin-top: 0.5rem;
146 color: var(--text-text-light, #666E7A);
147 text-align: left;
148 line-height: 150%;
149 font-size: 0.875rem;
150}
151
152.td-avisos--subtitle {
153 color: var(--text-text-light, #666E7A);
154 line-height: 150%;
155 overflow: hidden;
156 text-overflow: ellipsis;
157 display: -webkit-box;
158 -webkit-line-clamp: 2;
159 -webkit-box-orient: vertical;
160 font-size: 1rem;
161 color: #237131
162}
163
164.pagination-bar .dropdown.pagination-items-per-page,
165.pagination-bar .pagination-results {
166 display: none;
167}
168
169.pagination-bar nav {
170 width: 100%
171}
172
173.pagination-bar .pagination {
174 justify-content: center;
175}
176
177.pagination-bar .pagination .page-link,
178.page-item .page-link{
179 color: #237131;
180}
181
182.page-item .page-link:hover,
183.page-item .page-link.hover,
184.page-item.active .page-link,
185.page-link:active {
186 background-color: #2371311A;
187}
188
189.page-item .page-link::before {
190 content: none;
191}
192
193@media (max-width: 1279px) {
194 .td-avisos--card {
195 padding: 0 1.5rem 1rem 1.5rem;
196 }
197}
198
199@media screen and (max-width: 767px) {
200 .td-avisos--card {
201 padding: 0 1.5rem 1rem 1.5rem;
202 }
203
204 .b3--container__btn-to-top {
205 border-radius: 100px;
206 border: 1px solid var(--interaction-light, #0063DE);
207 display: flex;
208 width: 17rem;
209 padding: 0.4375rem 1rem;
210 justify-content: center;
211 align-items: center;
212 gap: var(--space-2, 12px);
213 background: transparent;
214 line-height: 1.375rem;
215 letter-spacing: 0.09375rem;
216 text-transform: uppercase;
217 color: var(--interaction-light, #0063DE);
218 text-align: center;
219 margin: 1.5rem auto 0.75rem auto;
220 }
221}
222</style>