noticia
Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing: ==> journalArticleService.fetchArticleByUrlTitle(groupId, urlTitle?url('UTF-8')) [in template "61028#61055#90528" at line 166, column 20] ---- Tip: If the failing expression is known to be 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 article = journalArticleServi... [in template "61028#61055#90528" at line 166, column 1] ----
1<style>
2
3 /* BREADCRUMB */
4 nav.breadcrumb-nav {
5 margin-top: 50px;
6 margin-right: 70px;
7 }
8
9 .breadcrumb-element.list-inline-item {
10 padding: 2px 10px;
11 margin-right: 0;
12 }
13
14
15 .breadcrumb-element.list-inline-item:not(:first-child) {
16 border-left: 1px solid #E2E2E2;
17 }
18
19 .breadcrumb-element.list-inline-item:last-child {
20 border-left: 1px solid #015174;
21 }
22
23
24 li.breadcrumb-element {
25 font-size: 0.875rem;
26 }
27
28 li.breadcrumb-element.active {
29 color: #015174;
30 }
31
32 li.breadcrumb-element a {
33 color: #7E7E7E;
34 }
35
36 /* END BREADCRUMB */
37
38 .container-image {
39 background-color: white;
40 background-size: cover;
41 }
42
43 .conteudo {
44 background-color: white;
45 padding-top: 40px;
46 padding-bottom: 40px;
47 }
48
49 .conteudo h1 {
50 font-size: 1.875rem;
51 }
52
53
54 .conteudo h2 {
55 color: #A1BB15;
56 padding-top: 20px;
57 font-size: 1.5rem;
58 }
59
60 .corpoDoTexto {
61 padding-top: 20px;
62 }
63
64 .data-criacao {
65 border-bottom: 2px solid #E2E2E2;
66 padding-top: 30px;
67 padding-bottom: 10px;
68 color: #E2E2E2;
69 }
70
71 .data-criacao .fas {
72 color: #A1BB15;
73 padding-right: 10px;
74 }
75
76 #news {
77 padding-bottom: 50px;
78 }
79
80 h3 {
81 border-bottom: 2px solid #E2E2E2;
82 padding-bottom: 10px;
83 }
84
85 #relatedNews {
86
87 color: #A1BB15;
88 }
89
90 #relatedNews h2 {
91 font-size: 1rem;
92 padding-bottom: 20px;
93 text-transform: uppercase;
94 letter-spacing: 5px;
95 word-spacing: 10px;
96 }
97
98 .verde, a.verde:hover {
99 color: #A1BB15;
100 }
101
102 .info-contato {
103 padding: 0.5rem 0;
104 }
105
106 .card-img-top {
107 width: 100%;
108 height: auto;
109 }
110
111 .card-text-title {
112 font-size: 1.125rem;
113 }
114
115 .a2a_kit {
116 z-index: 1000;
117 }
118
119 .stretched-link::after {
120 z-index: 0 !important;
121 }
122
123 .badge-silver {
124 background-color: #e0e0e0;
125 color: #272833;
126 font-size: 1rem;
127 letter-spacing: 0.09rem;
128 }
129
130 .badge-silver:hover {
131 background-color: #c3c3c3;
132 color: #272833;
133 }
134
135
136 .fa-linkedin {
137 color: #0e76a8;
138 }
139
140 .fa-facebook-square {
141 color: #3b5998;
142 }
143
144 .fa-instagram {
145 color: #405DE6;
146 }
147
148 .fa-twitter {
149 color: #00acee;
150 }
151
152 .fa-youtube {
153 color: #c4302b;
154 }
155
156</style>
157
158<#assign urlTitle = paramUtil.getString(themeDisplay.getRequest(), "titulo", "") />
159<#assign assetEntryService = staticUtil["com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil"] />
160<#assign assetLinkLocalService = staticUtil["com.liferay.asset.kernel.service.AssetLinkLocalServiceUtil"] />
161<#assign layoutLocalService = staticUtil["com.liferay.portal.kernel.service.LayoutLocalServiceUtil"] />
162<#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
163<#assign dlAppServiceUtil = staticUtil["com.liferay.document.library.kernel.service.DLAppServiceUtil"] />
164<#assign classNameUtil = staticUtil["com.liferay.portal.kernel.service.ClassNameServiceUtil"] />
165<#assign articleClassName = classNameUtil.fetchClassName("com.liferay.journal.model.JournalArticle") />
166<#assign article = journalArticleService.fetchArticleByUrlTitle(groupId, urlTitle?url('UTF-8')) />
167<#assign assetEntry = assetEntryService.fetchEntry(articleClassName.getClassNameId(), article.getResourcePrimKey()) />
168<#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(assetEntry.getEntryId()) />
169<#assign document = saxReaderUtil.read(article.getContent()) />
170<#assign rootElement = document.getRootElement() />
171
172<#assign relationsNewsArray = []>
173<#assign imagensArray = []>
174<#assign telefonesArray = []>
175<#assign ficheirosArray = []>
176<#assign emailsArray = []>
177<#assign sitesArray = []>
178<#assign redesSociaisArray = []>
179
180<#assign ficheiro = "" />
181<#assign ficheiroURL = "" />
182<#assign data = dateUtil.newTime() />
183<#assign titulo = "" />
184<#assign subtitulo = "" />
185<#assign corpoDoTexto = "" />
186<#assign redeSocial = "" />
187<#assign currentUrl = themeDisplay.getPortalURL() />
188
189<#list rootElement.elements() as el>
190 <#list el.elements() as il>
191 <#if il.attributeValue("name")??>
192 <#if "imagem" == il.attributeValue("name")>
193 <#if il.element("dynamic-content")?has_content && il.element("dynamic-content").getData()?has_content>
194 <#assign imagem = il.element("dynamic-content").getData()?eval />
195 <#assign imagensArray += [imagem] />
196 </#if>
197 </#if>
198
199 <#if "data" == il.attributeValue("name")>
200
201 <#assign data = il.element("dynamic-content").getData() />
202 <#if data?has_content>
203 <#assign data = data?split("-")[2] + "/"+ data?split("-")[1] + "/" + data?split("-")[0]/>
204 </#if>
205 </#if>
206
207 <#if "titulo" == il.attributeValue("name")>
208 <#assign titulo = il.element("dynamic-content").getData() />
209 </#if>
210
211 <#if "subtitulo" == il.attributeValue("name")>
212 <#assign subtitulo = il.element("dynamic-content").getData() />
213
214 </#if>
215
216 <#if "corpoDoTexto" == il.attributeValue("name")>
217 <#assign corpoDoTexto = il.element("dynamic-content").getData() />
218 </#if>
219
220 <#if "DocumentosEMdias19f7" == il.attributeValue("name")>
221 <#assign ficheiro = il.element("dynamic-content").getData() />
222 <#if ficheiro?has_content>
223 <#assign ficheiro = ficheiro?eval />
224 <#assign ficheirosArray += ["/c/document_library/get_file?uuid=" + ficheiro.uuid + "&groupId=" + ficheiro.groupId + "|" + ficheiro.title] />
225 </#if>
226 </#if>
227
228
229 <#if "telefone" == il.attributeValue("name")>
230 <#if il.element("dynamic-content").getData()?has_content>
231 <#assign telefonesArray += [il.element("dynamic-content").getData()] />
232 </#if>
233 </#if>
234
235 <#if "email" == il.attributeValue("name")>
236 <#if il.element("dynamic-content").getData()?has_content>
237 <#assign emailsArray += [il.element("dynamic-content").getData()] />
238 </#if>
239 </#if>
240
241 <#--
242 <#if "site" == il.attributeValue("name")>
243 <#assign site = il.element("dynamic-content").getData() />
244 <#assign layoutID = site?split("@")?first />
245 <#assign groupID = site?split("@")?last />
246 <#if layoutID?has_content && groupID?has_content>
247 <#assign pageLayout = layoutLocalService.getLayout(groupID?number?long, false, layoutID?number?long) />
248 <#assign pageURL = pageLayout.getFriendlyURL() />
249 <#assign pageTitle = pageLayout.getName() />
250 <#assign sitesArray += [pageURL + "|" +pageTitle]/>
251 </#if>
252 </#if> -->
253
254 <#if "site" == il.attributeValue("name")>
255 <#if il.element("dynamic-content").getData()?has_content>
256 <#assign sitesArray += [il.element("dynamic-content").getData()] />
257 </#if>
258 </#if>
259
260 <#if "redesocial1" == il.attributeValue("name")>
261 <#assign redeSocial = il.element("dynamic-content").getData() />
262 <#if redeSocial?has_content>
263 <#assign redesSociaisArray += [redeSocial]/>
264 </#if>
265 </#if>
266
267 </#if>
268
269 </#list>
270</#list>
271
272
273<div class="container-fluid">
274
275 <div class="container">
276
277 <div class="row">
278 <div class="col-12">
279 <nav class="breadcrumb-nav">
280 <ul class="breadcrumb-ul list-unstyled list-inline">
281 <li class="breadcrumb-element list-inline-item"><a href="/"><i class="fa fa-home"></i></a></li>
282 <li class="breadcrumb-element list-inline-item"><a href="/noticias">Noticias</a></li>
283 <li class="breadcrumb-element list-inline-item active">${titulo}</li>
284 </ul>
285 </nav>
286 </div>
287 <div class="col-md-8">
288 <section id="news">
289
290 <div class="row conteudo">
291 <div class="col-md-12">
292 <h1>${titulo}</h1>
293 <h2>${subtitulo}</h2>
294 <div class="data-criacao">
295 <span><i class="fas fa-clock"></i>${data}</span>
296 </div>
297 </div>
298 </div>
299 <div class="row">
300 <div>
301 <div id="carouselIndicators" class="carousel slide"
302 data-ride="carousel">
303 <ol class="carousel-indicators">
304 <#list imagensArray as item>
305 <#if item?is_first>
306 <li data-target="#carouselIndicators" data-slide-to="${item?index}"
307 class="active"></li>
308 <#else>
309 <li data-target="#carouselIndicators"
310 data-slide-to="${item?index}"></li>
311 </#if>
312 </#list>
313 </ol>
314 <div class="carousel-inner">
315 <#list imagensArray as item>
316 <#if item?is_first>
317 <div class="carousel-item active">
318 <#else>
319 <div class="carousel-item">
320 </#if>
321 <#assign imagemFileEntry = dlAppServiceUtil.getFileEntry(item.fileEntryId?number) />
322 <#if !shareImgFileEntry??>
323 <#assign shareImgFileEntry = imagemFileEntry />
324 </#if>
325 <@adaptive_media_image["img"] class="d-block w-100 container-image" fileVersion=imagemFileEntry.getFileVersion() alt="${item.alt}"/>
326 </div>
327 </#list>
328 </div>
329
330 <a class="carousel-control-prev" href="#carouselIndicators" role="button"
331 data-slide="prev">
332 <span class="carousel-control-prev-icon" aria-hidden="true"></span>
333 <span class="sr-only">Previous</span>
334 </a>
335 <a class="carousel-control-next" href="#carouselIndicators" role="button"
336 data-slide="next">
337 <span class="carousel-control-next-icon" aria-hidden="true"></span>
338 <span class="sr-only">Next</span>
339 </a>
340
341 </div>
342
343 </div>
344 </div>
345
346 <div class="row">
347 <div class="col-12">
348 <div class="corpoDoTexto">
349 ${corpoDoTexto}
350 </div>
351 </div>
352 </div>
353 <#if ficheirosArray?has_content>
354
355 <div class="row conteudo">
356 <div class="col-12">
357 <h3>Mais Informações</h3>
358 </div>
359 <div class="col-12">
360 <ul>
361 <#list ficheirosArray as item>
362 <li><a class="verde" target="_blank"
363 href="${item?split("|")?first}">${item?split("|")?last}</a>
364 </li>
365 </#list>
366 </ul>
367 </div>
368 </div>
369
370 </#if>
371
372 <#if telefonesArray?has_content || emailsArray?has_content || sitesArray?has_content || redesSociaisArray?has_content>
373 <div class="conteudo">
374
375 <h3>Contatos</h3>
376
377
378 <#if telefonesArray?has_content>
379 <div class="info-contato">
380 <div class="row">
381 <div class="col-md-2">
382 <b>Telefone</b>
383 </div>
384 <div class="col-md-10">
385 <#list telefonesArray as item>
386 <p>${item}</p>
387 </#list>
388 </div>
389 </div>
390 </div>
391 </#if>
392
393 <#if emailsArray?has_content>
394 <div class="info-contato">
395 <div class="row">
396 <div class="col-md-2">
397 <b>Email</b>
398 </div>
399 <div class="col-md-10">
400 <#list emailsArray as item>
401 <p>${item}</p>
402 </#list>
403 </div>
404 </div>
405 </div>
406 </#if>
407
408 <#if sitesArray?has_content>
409 <#assign portalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"] />
410 <#assign baseURL = portalUtil.getPortalURL(request) />
411 <div class="info-contato">
412 <div class="row">
413 <div class="col-md-2">
414 <b>Site</b>
415 </div>
416 <div class="col-md-10">
417
418 <#list sitesArray as item>
419 <p><a class="verde" href="${item}" target="${item?starts_with(baseURL)?then('_self', '_blank')}">${item}</a></p>
420 </#list>
421 </div>
422 </div>
423 </div>
424 </#if>
425
426 <#if redesSociaisArray?has_content>
427 <div class="info-contato">
428 <div class="row">
429 <div class="col-md-2">
430 <b>Redes Sociais</b>
431 </div>
432 <div class="col-md-10">
433 <#list redesSociaisArray as item>
434 <#if item?contains("linked")>
435 <a href="${item}" target="_blank"><i
436 class="fab fa-linkedin fa-2x"></i></a>
437 </#if>
438 <#if item?contains("facebook")>
439 <a href="${item}" target="_blank"><i
440 class="fab fa-facebook-square fa-2x"></i></a>
441 </#if>
442 <#if item?contains("insta")>
443 <a href="${item}" target="_blank"><i
444 class="fab fa-instagram fa-2x"></i></a>
445 </#if>
446 <#if item?contains("twitter")>
447 <a href="${item}" target="_blank"><i
448 class="fab fa-twitter fa-2x"></i></a>
449 </#if>
450 <#if item?contains("youtube")>
451 <a href="${item}" target="_blank"><i
452 class="fab fa-youtube fa-2x"></i></a>
453 </#if>
454 </#list>
455 </div>
456 </div>
457 </div>
458 </#if>
459
460 </#if>
461
462 <div class="row">
463 <div class="col-12 text-right">
464 <p style="color:#9e9797">Atualizado
465 em: ${ article.getModifiedDate()?string["dd/MM/yyyy"]}</p>
466 </div>
467
468 <div class="a2a_kit a2a_kit_size_32 a2a_default_style"
469 data-a2a-icon-color = "transparent, black">
470 <a class="a2a_button_facebook"></a>
471 <a class="a2a_button_twitter"></a>
472 <a class="a2a_button_whatsapp"></a>
473 <a class="a2a_button_facebook_messenger"></a>
474 <a class="a2a_button_email"></a>
475 <a class="a2a_button_copy_link"></a>
476 <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
477 </div>
478
479 <#if assetEntry.getTags()?has_content>
480 <div class="col-12 mt-4">
481 <#list assetEntry.getTags() as tag>
482 <a href="/pesquisa?q=${tag.name}" class="badge badge-pill badge-silver p-2">${tag.name}</a>
483 </#list>
484 </div>
485 </#if>
486
487 <@liferay_util["html-top"]>
488 <script crossorigin="anonymous" src="https://kit.fontawesome.com/9f47eedf41.js"></script>
489 <script src="https://static.addtoany.com/menu/page.js"></script>
490 <meta property="og:title" content="${titulo}" />
491 <meta property="og:description" content="${subtitulo}" />
492 <meta property="og:type" content="article" />
493 <meta property="og:locale" content="${locale}" />
494 <meta property="og:site_name" content="${company.getName()}" />
495 <meta property="og:url" content="${themeDisplay.getPortalURL() + themeDisplay.getURLCurrent()}">
496 <#if tagsArray?has_content>
497 <meta property="article:tag" content="${tags?join(",")}" />
498 </#if>
499
500 <#if shareImgFileEntry??>
501 <meta property="og:image" itemprop="image" content="${themeDisplay.getURLPortal()}/o/adaptive-media/image/${shareImgFileEntry.getFileEntryId()}/thumbnail-600x0/${shareImgFileEntry.getFileName()}" />
502 </#if>
503 </@>
504 </div>
505
506
507 </section>
508 </div>
509
510 <div class="col-md-4">
511 <#if currentArticleRelatedLinks?has_content>
512 <aside id="relatedNews">
513 <div class="container-fluid">
514 <div class="container">
515 <h2>Notícias Relacionadas</h2>
516 <div class="row">
517 <#list currentArticleRelatedLinks as related>
518 <#assign assertRelated = assetEntryService.getEntry(related.getEntryId2()) />
519 <#assign assetRendererRelated = assertRelated.getAssetRenderer() />
520 <#assign articleRelated = assetRendererRelated.getArticle() />
521 <#assign documentRelated = saxReaderUtil.read(articleRelated.getContent()) />
522 <#assign rootElementRelated = documentRelated.getRootElement() />
523 <#assign assetRelatedUrlTitle = articleRelated.getUrlTitle(locale) />
524
525 <#assign tituloRelated = "" />
526 <#assign subtituloRelated = "" />
527
528 <#list rootElementRelated.elements() as el>
529 <#list el.elements() as il>
530 <#if "imagem" == il.attributeValue("name") && il.element("dynamic-content").getData()?has_content>
531 <#assign imagemURLRelated = il.element("dynamic-content").getData()?eval />
532 </#if>
533
534 <#if "titulo" == il.attributeValue("name")>
535 <#assign tituloRelated = il.element("dynamic-content").getData() />
536 </#if>
537
538 <#if "subtitulo" == il.attributeValue("name")>
539 <#assign subtituloRelated = il.element("dynamic-content").getData() />
540
541 </#if>
542
543 </#list>
544 </#list>
545
546 <div class="col-md-12">
547 <div class="card"
548 style="background-color: white;">
549 <#if imagemURLRelated?has_content>
550 <@adaptive_media_image["img"] class="card-img-top"
551 fileVersion=dlAppServiceUtil.getFileEntry(imagemURLRelated.fileEntryId?number).getFileVersion()
552 alt="${imagemURLRelated.alt}" />
553 </#if>
554 <div class="card-body" style="color: #3B3B3B">
555 <p class="card-text card-text-title verde"> ${tituloRelated}</p>
556 <br/>
557 <p class="card-text card-text-subtitle"> ${subtituloRelated}</p>
558 <a href="/noticia/-/${assetRelatedUrlTitle}"
559 class="stretched-link"></a>
560
561 <div class="a2a_kit a2a_kit_size_32 a2a_default_style"
562 data-a2a-icon-color="transparent, black"
563 data-a2a-url="${currentUrl}/noticia/-/${assetRelatedUrlTitle}">
564 <a class="a2a_button_facebook"></a>
565 <a class="a2a_button_twitter"></a>
566 <a class="a2a_button_whatsapp"></a>
567 <a class="a2a_button_facebook_messenger"></a>
568 <a class="a2a_button_email"></a>
569 <a class="a2a_button_copy_link"></a>
570 <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
571 </div>
572 </div>
573
574 </div>
575 </div>
576 </#list>
577 </div>
578 </div>
579 </div>
580 </aside>
581 </#if>
582 </div>
583 </div>
584 </div>
585
586</div>
SUBSCREVER NEWSLETTER
Newsletter subscrito com sucesso Não foi subscrever o Newsletter. Por favor tente mais tardeUtilizamos cookies no nosso site para lhe proporcionar a melhor experiência. Ao continuar a navegar, está a autorizar a nossa utilização destes cookies. No entanto, se pretender saber mais informações, nomeadamente como alterar as suas definições, consulte a nossa Politica.