All News
أقفل
recent-searches
روابط سريعة
حصل خطأ عند معالجة القالب.
Java method "com.sun.proxy.$Proxy1092.getTaxonomyVocabularyTaxonomyCategoriesPage(Long, Boolean, String, com.liferay.portal.vulcan.aggregation.Aggregation, com.liferay.portal.kernel.search.filter.Filter, com.liferay.portal.vulcan.pagination.Pagination, com.liferay.portal.kernel.search.Sort[])" takes 7 arguments, but 6 was given. ---- FTL stack trace ("~" means nesting-related): - Failed at: categories = taxonomyCategoryResource... [in template "44549#44620#98661" in function "getVocabularyCategoriesIds" at line 16, column 5] ----
1<#assign
2 structuredContentResource = resourceLocator.locate("/headless-delivery/v1.0", "StructuredContent")
3 vocabularyResource = resourceLocator.locate("/headless-admin-taxonomy/v1.0", "TaxonomyVocabulary")
4 taxonomyCategoryResource = resourceLocator.locate("/headless-admin-taxonomy/v1.0", "TaxonomyCategory")
5/>
6
7<#function getVocabularyCategoriesIds vocabularyEnName vocabularyPtName>
8 <#local filter>
9 name eq '${vocabularyEnName}' or name eq '${vocabularyPtName}'
10 </#local>
11 <#local
12 vocabulary = vocabularyResource.getSiteTaxonomyVocabulariesPage(
13 groupId, null, null, vocabularyResource.toFilter(filter), null, null).getItems()?first
14 vocabularyId = vocabulary.getId()
15
16 categories = taxonomyCategoryResource
17 .getTaxonomyVocabularyTaxonomyCategoriesPage(vocabularyId, null, null, null, null, null).getItems()
18 />
19 <#return categories?map(category -> category.getId()?number)/>
20</#function>
21
22<#function getNewsTopicsFilterEndpoint structuredContent>
23 <#local
24 structuredContentCategoriesIds = structuredContent.getTaxonomyCategoryBriefs()
25 ?map(taxonomyCategoryBrief -> taxonomyCategoryBrief.getTaxonomyCategoryId())
26
27 newsTopicsCategoriesId = getVocabularyCategoriesIds("News topics", "Temas de notícias")
28 categoryId = structuredContentCategoriesIds?filter(c -> newsTopicsCategoriesId?seq_contains(c))?first
29 />
30 <#return "/-/categories/" + categoryId/>
31</#function>
32
33<#function getCustomDisplayPageUrl structuredContent>
34 <#local
35 structuredContentFields = structuredContent.getContentFields()
36 customDisplayPageField = structuredContentFields?filter(f -> f.getName() == "customDisplayPage")?first
37 />
38 <#return customDisplayPageField.getContentFieldValue().getLink()/>
39</#function>
40
41<#function getNewsViewUrl structuredContent>
42 <#local
43 friendlyUrl = "/w/" + structuredContent.getFriendlyUrlPath()
44
45 categoryFilterEndpoint = getNewsTopicsFilterEndpoint(structuredContent)
46 customDisplayPageUrl = getCustomDisplayPageUrl(structuredContent)!""
47 />
48 <#return customDisplayPageUrl?has_content?then(customDisplayPageUrl, friendlyUrl) + categoryFilterEndpoint/>
49</#function>
50
51<#assign images_path = "/documents/d/guest/" />
52<#assign total = searchContainer.getTotal() />
53<#assign start = searchContainer.getStart() />
54<#assign delta = searchContainer.getDelta() />
55<#assign totalPages = (total/delta)?ceiling />
56<#assign currentPage = ((start+1)/delta)?ceiling />
57<#assign isFirstPage = currentPage == 1 />
58<#assign isLastPage = currentPage == totalPages />
59<#assign iteratorURL = searchContainer.getIteratorURL().toString() />
60<#assign iteratorURL += iteratorURL?contains("?")?then("", "?") />
61<#assign firstPageURL = iteratorURL + '&start=1'/>
62<#assign lastPageURL = iteratorURL + '&start=' + totalPages?string/>
63<#assign previousURL = iteratorURL + '&start=' + (currentPage - 1)?string />
64<#assign nextURL = iteratorURL + '&start=' + (currentPage + 1)?string />
65
66<#assign startPage = (currentPage < 3)?then(1, currentPage - 1) />
67<#assign endPage = 2 + startPage />
68<#assign endPage = (totalPages < endPage)?then(totalPages, endPage) />
69<#assign diff = startPage - endPage + 2 />
70<#assign startPage -= (startPage - diff > 0)?then(diff, 0) />
71
72<div class="vale-widget-resultados-busca-noticia">
73 <div class="d-sm-flex justify-content-between flex-wrap">
74 <#if entries?has_content>
75 <#list entries as entry>
76 <#if entry.getTitle()?has_content>
77 <#assign structuredContent = structuredContentResource.getStructuredContent(entry.getClassPK()) />
78 <#assign url = getNewsViewUrl(structuredContent) />
79 <#list structuredContent.getContentFields() as field>
80 <#if field.getName() == "data">
81 <#assign data = field.getContentFieldValue().getData()?datetime.iso />
82 <#assign date_localized = dateUtil.formatDate("yyyyMMdd", data?string("yyyyMMdd"), locale) />
83 </#if>
84 <#if field.getName() == "imagemDeCapa">
85 <#assign imageUrl = field.getContentFieldValue().getImage().getContentUrl() />
86 <#assign imageAlt = field.getContentFieldValue().getImage().getDescription() />
87 </#if>
88 </#list>
89
90 <a class="box text-decoration-none" href="${url}">
91 <div class="font-weight-light mb-5">
92 <div class="mb-4 position-relative">
93 <img
94 alt="${imageAlt}"
95 class="imagem-capa"
96 src="${imageUrl}"
97 />
98 <img
99 class="onda position-absolute"
100 src="${images_path}onda_branca"
101 />
102 </div>
103 <p class="text-cinza-escuro texto-sm mb-2">
104 ${date_localized}
105 </p>
106
107 <h5 class="title mb-0 text-verde-vale">
108 ${entry.getHighlightedTitle()}
109 </h5>
110 </div>
111 </a>
112 </#if>
113 </#list>
114 </#if>
115 </div>
116 <div class="line-divider"></div>
117 <div class="pagination d-flex justify-content-center my-5">
118 <a
119 class="pagination-option text-decoration-none mr-sm-5 ${isFirstPage?then('disabled', '')}"
120 href="${previousURL}"
121 disabled="${isFirstPage?string}"
122 >
123 <img
124 class="btn btn-primary border-amarelo-vale bg-amarelo-vale mr-2 p-1 rounded-circle"
125 src="${images_path}seta-2-esq_bra"
126 alt="button-prev"
127 />
128 <span class="btn btn-link text-amarelo-vale p-0 d-none d-sm-inline">
129 <@liferay.language key="previous" />
130 </span>
131 </a>
132
133 <#if (startPage > 1)>
134 <a
135 class="mr-2"
136 href="${firstPageURL}"
137 >
138 <span
139 class="pagination-item btn btn-primary p-1 rounded-circle"
140 alt="first-page-button"
141 >1
142 </span>
143 </a>
144 <#if currentPage != 3>
145 <span class="elipsis h-100 mt-auto mr-2">...</span>
146 </#if>
147 </#if>
148
149 <#list startPage..endPage as i>
150 <a
151 class="mr-2 ${(i == currentPage)?then('disabled', '')}"
152 href="${iteratorURL + '&start=' + i?string}"
153 >
154 <span
155 class="pagination-item ${(currentPage == i)?then('is-active', '')} btn btn-primary p-1 rounded-circle"
156 alt="first-page-button"
157 >${i}
158 </span>
159 </a>
160 </#list>
161
162 <#if (endPage < totalPages)>
163 <#if currentPage != totalPages - 2>
164 <span class="elipsis h-100 mt-auto mr-2">...</span>
165 </#if>
166 <a
167 class="mr-2"
168 href="${lastPageURL}"
169 >
170 <span
171 class="pagination-item btn btn-primary p-1 rounded-circle"
172 alt="last-page-button"
173 >${totalPages}
174 </span>
175 </a>
176 </#if>
177
178 <a
179 class="pagination-option text-decoration-none ml-sm-5 ${isLastPage?then('disabled', '')}"
180 href="${nextURL}"
181 disabled="${isLastPage?string}"
182 >
183 <span class="btn btn-link text-amarelo-vale mr-2 p-0 d-none d-sm-inline">
184 <@liferay.language key="next" />
185 </span>
186 <img
187 class="btn btn-primary border-amarelo-vale bg-amarelo-vale p-1 rounded-circle"
188 src="${images_path}seta-2-dir_bra"
189 alt="button-next"
190 />
191 </a>
192 </div>
193</div>
194
195
196<style>
197 .vale-widget-resultados-busca-noticia .pagination img {
198 width: 2.03125rem;
199 }
200
201 .vale-widget-resultados-busca-noticia .pagination-item {
202 color: var(--cinza-escuro);
203 background-color: var(--branco);
204 border: 2px solid var(--cinza-escuro);
205 line-height: 1.30625rem;
206 opacity: 0.6;
207 width: 2.03125rem;
208 height: 2.03125rem;
209 }
210
211 .vale-widget-resultados-busca-noticia .pagination-item:hover {
212 box-shadow: 0px 0px 6px #55555594;
213 }
214
215 .vale-widget-resultados-busca-noticia .pagination-item.is-active {
216 color: var(--branco);
217 background-color: var(--amarelo-vale);
218 border-color: var(--amarelo-vale);
219 opacity: 1;
220 }
221
222 .vale-widget-resultados-busca-noticia .pagination-item.is-active:hover {
223 box-shadow: 0px 0px 6px #ecb11f94;
224 }
225
226 .vale-widget-resultados-busca-noticia .elipsis {
227 opacity: 0.6;
228 }
229
230 .vale-widget-resultados-busca-noticia ~ form .pagination-bar {
231 display: none;
232 }
233
234 .vale-widget-resultados-busca-noticia .pagination .disabled {
235 pointer-events: none;
236 }
237
238 .vale-widget-resultados-busca-noticia .pagination-option.disabled {
239 opacity: 0.5;
240 }
241
242 .line-divider {
243 background-color: var(--cinza-escuro);
244 color: var(--cinza-escuro);
245 height: 1px;
246 width: 100%;
247 opacity: 0.2;
248 }
249
250 .vale-widget-resultados-busca-noticia .onda {
251 bottom: -0.125rem;
252 right: -0.125rem;
253 }
254
255 .vale-widget-resultados-busca-noticia .box {
256 width: 31%
257 }
258
259 .vale-widget-resultados-busca-noticia .imagem-capa {
260 border-left: 20px solid var(--amarelo-vale);
261 height: 13.75rem;
262 width: 100%;
263 object-fit: cover;
264 }
265
266 .vale-widget-resultados-busca-noticia .title {
267 height: 5.125rem;
268 display: -webkit-box;
269 overflow: hidden;
270 -webkit-line-clamp: 3;
271 -webkit-box-orient: vertical;
272 }
273
274 @media screen and (max-width: 992px) {
275 .vale-widget-resultados-busca-noticia .box {
276 width: 47%
277 }
278 }
279
280 @media screen and (max-width: 768px) {
281 .vale-widget-resultados-busca-noticia .imagem-capa {
282 border-left: 10px solid var(--amarelo-vale);
283 }
284
285 .vale-widget-resultados-busca-noticia .onda {
286 bottom: -0.125rem;
287 right: -0.125rem;
288 width: 75%
289 }
290 }
291
292</style>
Press room
Access our press-only section
Photo: Vale's Archive
Veja também
Reparation
Our commitment to repairing the communities and people impacted by the B1 dam failure is constant. See the social, environmental and safety actions taken by Vale.