Super App Sicoob é reconhecido como melhor aplicativo do mercado financeiro no Prêmio Banking Transformation
Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing:
==> .vars['reserved-article-display-date'] [in template "20102#20128#1144056" at line 6, column 24]
----
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 "20102#20128#1144056" at line 6, column 1]
----
1<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
2<#assign vocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")>
3<#assign currentArticle = JournalArticleLocalService.getArticle(getterUtil.getLong(groupId),.vars['reserved-article-id'].data)>
4<#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey()>
5<#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() />
6<#assign displaydate = .vars['reserved-article-display-date'].data>
7
8<#-- Save the original page locale for later -->
9<#assign originalLocale = .locale>
10
11<#-- Set the page locale to the portals default locale -->
12<#setting locale = localeUtil.getDefault()>
13
14<#-- Parse the date to a date object -->
15<#assign displaydate = displaydate?datetime("EEE, d MMM yyyy HH:mm:ss Z")>
16
17
18<div class="news view">
19 <span class="date">
20 ${displaydate?string("dd/MM/yyyy HH:mm")}
21 </span>
22
23 <#setting locale="pt_BR">
24 <div class="featured-image">
25 <#if image?has_content >
26 <#if image.getData()?? && image.getData() != "">
27 <img alt="${image.getAttribute('alt')}" data-fileentryid="${image.getAttribute('fileEntryId')}" src="${image.getData()}" />
28 <script>
29 let metaOgImage = document.createElement('meta');
30 metaOgImage.setAttribute('property', 'og:image');
31 metaOgImage.setAttribute('content', '${image.getData()}');
32 document.head.append(metaOgImage);
33 </script>
34 </#if>
35 </#if>
36 </div>
37
38 <div class="text text-justify">
39 ${content.getData()}
40
41 </div>
42 <#if photo?has_content>
43 <#if photo.getSiblings()?has_content>
44 <div id="galeria_${randomNamespace}" class="galeria-noticia carousel slide fullscreen" data-ride="carousel">
45 <div class="carousel-inner">
46 <#list photo.getSiblings() as cur_photo>
47 <#if cur_photo.getData()?? && cur_photo.getData() != "">
48 <div class="carousel-item ${(cur_photo?counter == 1)?then('active','')}">
49 <img class="d-block w-100" src="${cur_photo.getData()}">
50 <div class="texto-galeria">
51 <h4 style="color:#ffffff">${(cur_photo.photo_title.getData()?length < 65)?then(cur_photo.photo_title.getData(), cur_photo.photo_title.getData()?substring(0, 65) + '...')}</h4>
52 <p>${(cur_photo.photo_description.getData()?length < 195)?then(cur_photo.photo_description.getData(), cur_photo.photo_description.getData()?substring(0, 195) + '...')}</p>
53 </div>
54 </div>
55 </#if>
56 </#list>
57 </div>
58 <a class="carousel-control-prev" href="#galeria_${randomNamespace}" role="button" data-slide="prev">
59 <span class="carousel-control-prev-icon" aria-hidden="true"></span>
60 <span class="sr-only">Previous</span>
61 </a>
62 <a class="carousel-control-next" href="#galeria_${randomNamespace}" role="button" data-slide="next">
63 <span class="carousel-control-next-icon" aria-hidden="true"></span>
64 <span class="sr-only">Next</span>
65 </a>
66 </div>
67 </#if>
68 <#if photo.getSiblings()?has_content && (photo.getSiblings())[0].getData()??>
69 <div class="pics-row container d-flex flex-row justify-content-center align-items-center flex-wrap">
70 <ol class="carousel-indicators flex-wrap">
71 <#list photo.getSiblings() as cur_photo_min>
72 <li data-target="#galeria_${randomNamespace}" data-slide-to="${(cur_photo_min?counter) - (1)}" class="">
73 <img class="d-block" src="${cur_photo_min.getData()}">
74 </li>
75 </#list>
76 </ol>
77 </div>
78 </#if>
79 </#if>
80</div>
81<style>
82h4.component-title {text-align: left;}
83 .metadata-author {
84 display: none ;
85 }
86
87.galeria-noticia {
88 margin-bottom: 30px;
89}
90.carousel.slide.fullscreen {
91 transition: all 1.8s;
92
93}
94
95.galeria-noticia .carousel-control-next span, .galeria-noticia .carousel-control-prev span{
96 box-sizing:content-box;
97 border-radius: 0px;
98 transform: scale(1.2);
99 box-shadow:0px 0px 0px 0px #ffffff;
100
101 transition: all .3s;
102
103}
104.galeria-noticia .carousel-control-next span:hover, .galeria-noticia .carousel-control-prev span:hover{
105 color:#c9d200;
106 box-shadow:3px 3px 0px 0px #ffffff, -3px -3px 0px 0px #ffffff;
107
108}
109.galeria-noticia .texto-galeria {
110 position: absolute;
111 color: #ffffff;
112 left:32px;
113 bottom:80px;
114 width: 80%;
115 text-shadow: 1px 1px 0px #49479d;
116}
117@media (max-width: 790px) {
118 .galeria-noticia .texto-galeria {
119 transform:scale(.6);
120 bottom:10px;
121 left:-70px;
122 width:120%;
123 }
124}
125.pics-row {
126 max-width: 750px;
127 margin-top: 20px;
128}
129.news.view .pics-row img {
130 max-height: 90px!important;
131 max-width: unset!important;
132 width: unset!important;
133 margin: 5px 5px;
134}
135.news.view .pics-row .carousel-indicators {
136 position: unset;
137}
138.news.view .pics-row .carousel-indicators li {
139 width: unset;
140 height: unset;
141}
142</style>