Agência Petrobras de Notícias | Agência
O uso deste material é autorizado apenas para fins editoriais.
Jean Paul Prates defende que fontes locais de energia são o caminho para uma transição energética justa
Mais recentes
Java method "com.liferay.journal.model.impl.JournalArticleImpl.getDocument()" threw an exception when invoked on com.liferay.journal.model.impl.JournalArticleImpl object "{\"mvccVersion\": 1, \"ctCollectionId\": 0, \"uuid\": \"23f38ab4-f31f-0a61-22af-2d65a5a9e042\", \"id\": 14860245, \"resourcePrimKey\": 14860246, \"groupId\": 10623376, \"companyId\": 20099, \"userId\": 11888211, \"userName\": \"Leonardo Bruno Pimenta Melo\", \"createDate\": \"Fri Mar 15 22:14:28 GMT 2024\", \"modifiedDate\": \"Fri Mar 15 22:14:28 GMT 2024\", \"externalReferenceCode\": \"23f38ab4-f31f-0a61-22af-2d65a5a9e042\", \"folderId\": 11260026, \"classNameId\": 0, \"classPK\": 0, \"treePath\": \"/10628776/11260026/\", \"articleId\": \"14860244\", \"version\": 1.0, \"urlTitle\": \"negocio/petrobras-informa-sobre-parceria-em-refino-e-biorrefino\", \"DDMStructureId\": 10628772, \"DDMTemplateKey\": \"\", \"defaultLanguageId\": \"pt_BR\", \"layoutUuid\": \"\", \"displayDate\": \"Fri Mar 15 21:59:00 GMT 2024\", \"expirationDate\": null, \"reviewDate\": null, \"indexable\": true, \"smallImage\": false, \"smallImageId\": 0, \"smallImageSource\": 1, \"smallImageURL\": \"\", \"lastPublishDate\": null, \"status\": 0, \"statusByUserId\": 11888211, \"statusByUserName\": \"Leonardo Bruno Pimenta Melo\", \"statusDate\": \"Fri Mar 15 22:14:28 GMT 2024\"}"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign xmlArticle = journalArticle.g... [in template "20099#20135#10832147" in function "getCardData" at line 52, column 5] ----
1<#-- Conteúdo Web -> Templates: Site de Crise - Include de templates-->
2<#-- include "${templatesPath}/1975602" -->
3
4<#-- Conteúdo Web -> Templates: Site de Crise - Funções gerais-->
5<#include "${templatesPath}/1975398" />
6
7<#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
8<#assign fileEntryService = staticUtil["com.liferay.document.library.kernel.service.DLFileEntryLocalServiceUtil"] />
9<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
10<#assign assetVocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyService") />
11<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
12<#assign vocabularies = assetVocabularyService.getGroupVocabularies(groupId) />
13<#assign editoriaVocabulary = findVocabulary("Editorial", vocabularies) />
14
15
16
17<#function getFirstCategoryFromVocabulary entry vocabulary>
18 <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", entry.getClassPK()) />
19 <#list categories as category>
20 <#assign vocabulary = assetVocabularyService.getVocabulary(category.getVocabularyId()) />
21
22 <#if vocabulary.getVocabularyId() == category.getVocabularyId()>
23 <#return category>
24 </#if>
25 </#list>
26 <#return "">
27</#function>
28
29<#assign rootCss = "card-news_" + randomNumber(4586) />
30<#assign cardMap = {} />
31
32<#-- Função para obter os dados de um card no Web Content (Journal Article) -->
33<#function getCardData entry journalArticleLocalService fileEntryService cardMap>
34
35 <#assign editoria = getFirstCategoryFromVocabulary(entry, editoriaVocabulary) />
36 <#assign editoriaId = -1 />
37 <#if editoria?has_content>
38 <#assign editoriaId = editoria.getCategoryId() />
39 </#if>
40 <#if editoriaId == -1>
41 <#return {} />
42 </#if>
43 <#if cardMap[ editoriaId?string]??>
44 <#if cardMap[editoriaId?string]?size gt 7 >
45 <#return {} />
46 </#if>
47 </#if>
48
49 <#assign journalArticle = journalArticleLocalService.getLatestArticle(entry.getClassPK()) />
50 <#assign ddmStructure = journalArticle.getDDMStructure() />
51 <#assign fieldList = getFieldListByStructure(ddmStructure) />
52 <#assign xmlArticle = journalArticle.getDocument().getRootElement() />
53 <#assign ddmStructure = journalArticle.getDDMStructure() />
54
55 <#assign imagesGroup = getNodes(getIdFromFieldName(fieldList, "Imagem de destaque da notícia"), xmlArticle) />
56 <#assign image = "" />
57 <#list imagesGroup as imageGroup >
58 <#assign image = getMediaInfo(fieldList, imageGroup, "Imagem de destaque", fileEntryService) /> />
59 </#list>
60
61 <#assign title = getFieldValue(fieldList, xmlArticle, "Título de destaque da notícia") />
62
63 <#assign lastPublishDate = journalArticle.getDisplayDate()>
64 <#assign createDate = journalArticle.getCreateDate()>
65
66 <#assign editoria = getFirstCategoryFromVocabulary(entry, editoriaVocabulary) />
67 <#assign editoriaId = -1 />
68 <#if editoria?has_content>
69 <#assign editoriaId = editoria.getCategoryId() />
70 </#if>
71
72 <#assign review = getFieldValue(fieldList, xmlArticle, "Subtítulo") />
73
74 <#assign urlNews = "/">
75 <#if themeDisplay.getPortalURL()?contains("webserver")>
76 <#assign urlNews = themeDisplay.getPortalURL() + themeDisplay.getPathFriendlyURLPublic() + layout.getGroup().friendlyURL + "/w/" + journalArticle.getUrlTitle()>
77 <#else>
78 <#assign urlNews = "/w/" + journalArticle.getUrlTitle()>
79 </#if>
80
81 <#assign cardInfo = {"image": image,
82 "title": title,
83 "lastPublishDate": lastPublishDate,
84 "createDate" : createDate,
85 "editoriaId": editoriaId,
86 "urlNews": urlNews,
87 "review": review} />
88
89 <#if cardMap[editoriaId?string]??>
90 <#assign cardMap = cardMap + {editoriaId : cardMap[editoriaId?string] + [cardInfo]} />
91 <#else>
92 <#assign cardMap = cardMap + {editoriaId : [cardInfo]} />
93 </#if>
94
95 <#return cardInfo />
96
97</#function>
98
99
100<#macro renderCard cardData>
101 <#if !cardData["image"]??>
102 <#return />
103 </#if>
104
105 <div class="card ${rootCss}" category-id="${cardData.editoriaId}">
106 <#if cardData.image.url?has_content>
107 <img class="image" src="/o/adaptive-media/image/${cardData.image.fileEntryId}/Thumbnail-300x300/image" alt="${cardData.image.alt}"/>
108 </#if>
109 <div class="news-content">
110 <div class="head">
111 <p class="date">${formatDate(cardData.lastPublishDate)}</p>
112 <h2 class="title h4">${cardData.title}</h2>
113 <div class="bar"></div>
114 </div>
115 <div class="bottom-wrapper">
116 <div class="review-container">
117 ${cardData.review}
118 </div>
119 <div class="link-container">
120 <a class="link" href="${cardData.urlNews}" class="card-news-container">
121 <#if locale?lower_case == "pt_br"> Continuar lendo <#else> Keep reading </#if>
122 <span style="display: none">${randomNumber(10000)}</span> <#-- Devido ao ASESWEB -->
123 </a>
124 </div>
125 </div>
126 </div>
127 </div>
128
129</#macro>
130
131<#-- Renderizar Lista de cards -->
132<#if entries?has_content>
133 <#list entries as entry>
134 <#assign cardData = getCardData(entry journalArticleService fileEntryService cardMap) />
135 <@renderCard cardData/>
136 </#list>
137
138 <style>
139
140
141 .${rootCss} {
142 display: flex;
143 flex-direction: column;
144 width: 306px;
145 border-radius: 16px;
146 border: 1px solid var(--color-neutral-400, #EEE);
147 background: var(--color-neutral-100, #FFF);
148 margin: 0;
149 }
150
151 .${rootCss}:hover {
152 box-shadow: var(--box-shadow-neutral);
153 transition: box-shadow 300ms ease-in-out;
154 }
155
156 .${rootCss} .news-content {
157 padding: var(--space-md, 24px);
158 display: flex;
159 flex-direction: column;
160 height: 100%;
161 background: var(--color-background-card);
162 border-radius: 0 0 var(--border-radius-lg) var(--border-radius-lg);
163 }
164
165
166 .${rootCss} img {
167 background: lightgray 50% / cover no-repeat;
168 height: 170px;
169 width: 100%;
170 border-radius: 16px 16px 0 0;
171 /*transform: translateX(-1px);*/
172 object-fit: cover;
173 }
174
175 .${rootCss} .head {
176 display: flex;
177 flex-direction: column;
178 gap: var(--space-xxs, 8px);
179 }
180
181 .${rootCss} .head .date {
182 color: var(--color-neutral-800, #373737);
183 font-family: var(--font-family-base, "Petrobras Sans");
184 font-size: 14px;
185 font-style: normal;
186 font-weight: 400;
187 line-height: 160%; /* 19.2px */
188 }
189
190 .${rootCss} .head .title {
191 color: var(--color-neutral-800);
192 }
193
194 .${rootCss} .head .bar {
195 background-color: var(--color-secondary-solid-to-bright-200, #FDC82F);
196 height: 4px;
197 width: 20px;
198 margin: 12px 0 16px 0;
199 }
200
201 .${rootCss} .bottom-wrapper {
202 height: 100%;
203 display: flex;
204 flex-direction: column;
205 justify-content: space-between;
206 }
207
208 .${rootCss} .bottom-wrapper .review-container {
209 color: var(--color-neutral-800, #373737);
210 font-family: var(--font-family-base, "Petrobras Sans");
211 font-size: 16px;
212 font-style: normal;
213 font-weight: 400;
214 line-height: 160%; /* 22.4px */
215 }
216
217 .${rootCss} .bottom-wrapper .link-container {
218 flex: 0 1 auto;
219 }
220
221 .${rootCss} .bottom-wrapper .link-container .link {
222 color: var(--color-primary-solid-to-bright-200, var(--color-primary-medium));
223 font-family: var(--font-family-base, "Petrobras Sans");
224 font-size: 16px;
225 font-style: normal;
226 font-weight: 700;
227 line-height: 144%; /* 23.04px */
228 text-decoration-line: underline;
229 }
230
231 @media screen and (max-width: 1024px) {
232 .${rootCss} {
233 flex-direction: column;
234 /*gap: 16px;*/
235 min-width: 296px;
236 }
237
238 .${rootCss} img {
239 height: 140px;
240 }
241
242 .${rootCss} .head .date {
243 font-size: 12px;
244 }
245
246 .${rootCss} .head .title {}
247
248 .${rootCss} .head .bar {
249 width: 18px;
250 margin: 8px 0 16px 0;
251 }
252
253 .${rootCss} .review-container {
254 font-size: 14px;
255 }
256 }
257 </style>
258</#if>
Mais lidos
29/01/2024
Inscrições para concurso de nível técnico terminam na próxima quarta
30/01/2024
Petrobras apoia projetos de reciclagem no Rio e na Baixada Fluminense com capacidade de reaproveitar 600 toneladas de materiais por ano
31/01/2024
Petrobras destaca transição energética e ativos rentáveis em imersão com investidores em NY
26/01/2024
Petrobras bate recordes no primeiro ano da atual gestão
26/01/2024
Petrobras conclui primeira perfuração de poço exploratório na Margem Equatorial
30/01/2024
Petrobras amplia testes para produção de diesel com conteúdo renovável
26/01/2024
Petrobras informa sobre Reservas Provadas em 2023
30/01/2024
Repar bate recordes históricos de produção e vendas
Navegue por editoria
18/03/2024
Petrobras reúne lideranças globais do setor de energia durante CERAWeek
18/03/2024
Jean Paul Prates defende que fontes locais de energia são o caminho para uma transição energética justa
18/03/2024
Petrobras e Shell comemoram na CERAWeek resultados positivos de acordo
16/03/2024
Petrobras e Consórcio Amazônia Legal formarão grupo de trabalho com foco em ações de sustentabilidade na Margem Equatorial
15/03/2024
Aviso de pauta - Petrobras participa da CERAWeek 2024
08/12/2023
Petrobras e BNDES destinam R$ 42 milhões a projetos de restauração ecológica no Cerrado e Pantanal
18/11/2023
Time Petrobras estreia no Parapan do Chile neste sábado
07/11/2023
Time Petrobras encerra o Pan de Santiago com 40 medalhas conquistadas
01/11/2023
Petrobras e Ministério dos Direitos Humanos e da Cidadania firmam parceria para aperfeiçoar políticas de governança
27/10/2023
AVISO DE PAUTA - Exposição do projeto Tradição e Futuro na Amazônia leva “cultura misturada” dos indígenas Kayapó ao MAC Niterói
26/10/2023
Jornalistas e influenciadores visitam a Petrobras para conhecer a nova gasolina Podium
26/10/2023
OTC Brasil premia Petrobras por solução tecnológica inédita na indústria offshore
23/10/2023
Petrobras recebe prêmio por inovação pioneira na OTC 2023
30/08/2023
Petrobras recebe Prêmio OTC Brasil por tecnologia inovadora de poços
31/07/2023
Petrobras lança programa inédito para bolsistas e investirá em capacitação de toda cadeia de inovação
14/06/2023
Petrobras assina contrato de comercialização para uso de robô inédito no país, desenvolvido em parceria com startup
09/06/2023
Pesquisadora da Petrobras vence 6º Prêmio Mulheres Brasileiras na Química
29/05/2023
Com tecnologia da Petrobras, Refinaria Riograndense se prepara para ser a primeira biorrefinaria no Brasil a processar matéria-prima 100% renovável
20/03/2023
Petrobras estará na Febrace, a maior feira de ciências e engenharia do país
29/01/2023
Presidente da Petrobras participa de evento de inovação no Rio de Janeiro
14/11/2022
Projeto que conserva a Amazônia gerando renda para as comunidades locais é apresentado pela Petrobras na COP-27
22/09/2022
Projeto de Monitoramento de Praias realiza soltura de pinguins em Florianópolis
16/09/2022
Petrobras contribui para coleta de mais de 8 toneladas de lixo no Dia Mundial de Limpeza de Praias
08/09/2022
Petrobras assina convênio com projeto voltado ao universo literário
30/08/2022
Projeto de revitalização prevê reduzir em 60% emissões de carbono nos campos de Marlim e Voador, na Bacia de Campos (RJ)
28/07/2022
Petrobras assina convênio com projeto voltado a pescadores de sistemas lagunares no entorno da Bacia de Campos
Navegue por conteúdo multimídia
Discurso da ministra da Cultura, Margareth Menezes, no lançamento da Seleção + ...
Publicado em 26/02/2024 às 13:09:00
Vídeo
Discurso do presidente da República, Luiz Inácio Lula da Silva, no lançament + ...
Publicado em 24/02/2024 às 01:32:00
Vídeo
Discurso do presidente da Petrobras, Jean Paul Prates, no lançamento da Sele + ...
Publicado em 24/02/2024 às 01:29:00
Vídeo
Seleção Petrobras Cultural-Novos Eixos - Gerente setorial de Patrocínio Cult + ...
Publicado em 23/02/2024 às 19:28:00
Vídeo
Utilize nossa busca para encontrar o que procura
Faça uma busca:
Buscar
Mais pesquisados
Preço dos combustíveis
Pré-Sal
Time Petrobras
SAC Petrobras
0800 728 9001
Acesso à Informação
Portal da Transparência- Assessoria de Imprensa
- Categorias
- Acesse também
© Copyright Petrobras 2024. Todos os direitos reservados.
Canais
Idioma
Acessibilidade
Busca
Faça uma busca:
Buscar
Mais pesquisados
Preço dos combustíveis
Pré-Sal
Time Petrobras
Acessibilidade
Alto-Contraste
Desligado
Ligado
Texto Grande
Desligado
Ligado
Idioma:
Selecione um idioma: