Janela de chat
- Mover-se entre itens na janela de chat
- Tecla de tabulação
- Shift + tecla de tabulação
- Efetuar ação
- Tecla Enter
The following has evaluated to null or missing: ==> journalArticleService.fetchArticleByUrlTitle(groupId, parseUrl[0]) [in template "20101#20127#227452" at line 193, column 22] ---- 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 "20101#20127#227452" at line 193, column 3] ----
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<script>
158$( document ).ready(function() {
159 console.log( "ready!" );
160
161});
162</script>
163
164<#assign urlTitle = themeDisplay.getURLCurrent()/>
165<#assign lang = themeDisplay.getLanguageId() />
166<#if urlTitle[0..2] == '/-/'>
167 <#assign urlTitle = urlTitle?replace('/-/', '') />
168<#else>
169 <#if lang == 'en_US'>
170 <#assign urlTitle = urlTitle?replace('/en/-/', '') />
171 <#else>
172 <#assign urlTitle = urlTitle?replace('/pt/-/', '') />
173 </#if>
174</#if>
175
176<#assign assetEntryService = staticUtil["com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil"] />
177<#assign assetLinkLocalService = staticUtil["com.liferay.asset.kernel.service.AssetLinkLocalServiceUtil"] />
178<#assign layoutLocalService = staticUtil["com.liferay.portal.kernel.service.LayoutLocalServiceUtil"] />
179<#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
180<#assign dlAppServiceUtil = staticUtil["com.liferay.document.library.kernel.service.DLAppServiceUtil"] />
181<#assign classNameUtil = staticUtil["com.liferay.portal.kernel.service.ClassNameServiceUtil"] />
182<#assign articleClassName = classNameUtil.fetchClassName("com.liferay.journal.model.JournalArticle") />
183
184
185
186<#attempt>
187
188 <#assign article = journalArticleService.fetchArticleByUrlTitle(groupId, urlTitle) />
189
190<#recover>
191 <#assign parseUrl = urlTitle?split('?') >
192
193 <#assign article = journalArticleService.fetchArticleByUrlTitle(groupId, parseUrl[0]) />
194</#attempt>
195
196
197
198<#assign assetEntry = assetEntryService.fetchEntry(articleClassName.getClassNameId(), article.getResourcePrimKey()) />
199<#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(assetEntry.getEntryId()) />
200<#assign document = saxReaderUtil.read(article.getContent()) />
201<#assign rootElement = document.getRootElement() />
202
203<#assign relationsNewsArray = []>
204<#assign imagensArray = []>
205<#assign telefonesArray = []>
206<#assign ficheirosArray = []>
207<#assign emailsArray = []>
208<#assign sitesArray = []>
209<#assign redesSociaisArray = []>
210
211<#assign ficheiro = "" />
212<#assign ficheiroURL = "" />
213<#assign data = dateUtil.newTime() />
214<#assign titulo = "" />
215<#assign subtitulo = "" />
216<#assign corpoDoTexto = "" />
217<#assign redeSocial = "" />
218<#assign currentUrl = themeDisplay.getPortalURL() />
219
220<#list rootElement.elements() as el>
221 <#list el.elements() as il>
222 <#if il.attributeValue("name")??>
223 <#if "imagem" == il.attributeValue("name")>
224 <#if il.element("dynamic-content")?has_content && il.element("dynamic-content").getData()?has_content>
225 <#assign imagem = il.element("dynamic-content").getData()?eval />
226 <#assign imagensArray += [imagem] />
227 </#if>
228 </#if>
229
230 <#if "data" == il.attributeValue("name")>
231
232 <#assign data = il.element("dynamic-content").getData() />
233 <#if data?has_content>
234 <#assign data = data?split("-")[2] + "/"+ data?split("-")[1] + "/" + data?split("-")[0]/>
235 </#if>
236 </#if>
237
238 <#if "titulo" == il.attributeValue("name")>
239 <#assign titulo = il.element("dynamic-content").getData() />
240 </#if>
241
242 <#if "subtitulo" == il.attributeValue("name")>
243 <#assign subtitulo = il.element("dynamic-content").getData() />
244
245 </#if>
246
247 <#if "corpoDoTexto" == il.attributeValue("name")>
248 <#assign corpoDoTexto = il.element("dynamic-content").getData() />
249 </#if>
250
251 <#if "DocumentosEMdias19f7" == il.attributeValue("name")>
252 <#assign ficheiro = il.element("dynamic-content").getData() />
253 <#if ficheiro?has_content>
254 <#assign ficheiro = ficheiro?eval />
255 <#assign ficheirosArray += ["/c/document_library/get_file?uuid=" + ficheiro.uuid + "&groupId=" + ficheiro.groupId + "|" + ficheiro.title] />
256 </#if>
257 </#if>
258
259
260 <#if "telefone" == il.attributeValue("name")>
261 <#if il.element("dynamic-content").getData()?has_content>
262 <#assign telefonesArray += [il.element("dynamic-content").getData()] />
263 </#if>
264 </#if>
265
266 <#if "email" == il.attributeValue("name")>
267 <#if il.element("dynamic-content").getData()?has_content>
268 <#assign emailsArray += [il.element("dynamic-content").getData()] />
269 </#if>
270 </#if>
271
272 <#--
273 <#if "site" == il.attributeValue("name")>
274 <#assign site = il.element("dynamic-content").getData() />
275 <#assign layoutID = site?split("@")?first />
276 <#assign groupID = site?split("@")?last />
277 <#if layoutID?has_content && groupID?has_content>
278 <#assign pageLayout = layoutLocalService.getLayout(groupID?number?long, false, layoutID?number?long) />
279 <#assign pageURL = pageLayout.getFriendlyURL() />
280 <#assign pageTitle = pageLayout.getName() />
281 <#assign sitesArray += [pageURL + "|" +pageTitle]/>
282 </#if>
283 </#if> -->
284
285 <#if "site" == il.attributeValue("name")>
286 <#if il.element("dynamic-content").getData()?has_content>
287 <#assign sitesArray += [il.element("dynamic-content").getData()] />
288 </#if>
289 </#if>
290
291 <#if "redesocial1" == il.attributeValue("name")>
292 <#assign redeSocial = il.element("dynamic-content").getData() />
293 <#if redeSocial?has_content>
294 <#assign redesSociaisArray += [redeSocial]/>
295 </#if>
296 </#if>
297
298 </#if>
299
300 </#list>
301</#list>
302
303
304<div class="container-fluid">
305
306 <div class="container">
307
308 <div class="row">
309 <div class="col-12">
310 <nav class="breadcrumb-nav">
311 <ul class="breadcrumb-ul list-unstyled list-inline">
312 <li class="breadcrumb-element list-inline-item"><a href="/"><i class="fa fa-home"></i></a></li>
313 <li class="breadcrumb-element list-inline-item"><a href="/noticias">Noticias</a></li>
314 <li class="breadcrumb-element list-inline-item active">${titulo}</li>
315 </ul>
316 </nav>
317 </div>
318 <div class="col-md-8">
319 <section id="news">
320
321 <div class="row conteudo">
322 <div class="col-md-12">
323 <h1>${titulo}</h1>
324 <h2>${subtitulo}</h2>
325 <div class="data-criacao">
326 <span><i class="fas fa-clock"></i>${data}</span>
327 </div>
328 </div>
329 </div>
330 <div class="row">
331 <div>
332 <div id="carouselIndicators" class="carousel slide"
333 data-ride="carousel">
334 <ol class="carousel-indicators">
335 <#list imagensArray as item>
336 <#if item?is_first>
337 <li data-target="#carouselIndicators" data-slide-to="${item?index}"
338 class="active"></li>
339 <#else>
340 <li data-target="#carouselIndicators"
341 data-slide-to="${item?index}"></li>
342 </#if>
343 </#list>
344 </ol>
345 <div class="carousel-inner">
346 <#list imagensArray as item>
347 <#if item?is_first>
348 <div class="carousel-item active">
349 <#else>
350 <div class="carousel-item">
351 </#if>
352 <#assign imagemFileEntry = dlAppServiceUtil.getFileEntry(item.fileEntryId?number) />
353 <#if !shareImgFileEntry??>
354 <#assign shareImgFileEntry = imagemFileEntry />
355 </#if>
356 <@adaptive_media_image["img"] class="d-block w-100 container-image" fileVersion=imagemFileEntry.getFileVersion() alt="${item.alt}"/>
357 </div>
358 </#list>
359 </div>
360
361 <a class="carousel-control-prev" href="#carouselIndicators" role="button"
362 data-slide="prev">
363 <span class="carousel-control-prev-icon" aria-hidden="true"></span>
364 <span class="sr-only">Previous</span>
365 </a>
366 <a class="carousel-control-next" href="#carouselIndicators" role="button"
367 data-slide="next">
368 <span class="carousel-control-next-icon" aria-hidden="true"></span>
369 <span class="sr-only">Next</span>
370 </a>
371
372 </div>
373
374 </div>
375 </div>
376
377 <div class="row">
378 <div class="col-12">
379 <div class="corpoDoTexto">
380 ${corpoDoTexto}
381 </div>
382 </div>
383 </div>
384 <#if ficheirosArray?has_content>
385
386 <div class="row conteudo">
387 <div class="col-12">
388 <h3>Mais Informações</h3>
389 </div>
390 <div class="col-12">
391 <ul>
392 <#list ficheirosArray as item>
393 <li><a class="verde" target="_blank"
394 href="${item?split("|")?first}">${item?split("|")?last}</a>
395 </li>
396 </#list>
397 </ul>
398 </div>
399 </div>
400
401 </#if>
402
403 <#if telefonesArray?has_content || emailsArray?has_content || sitesArray?has_content || redesSociaisArray?has_content>
404 <div class="conteudo">
405
406 <h3>Contatos</h3>
407
408
409 <#if telefonesArray?has_content>
410 <div class="info-contato">
411 <div class="row">
412 <div class="col-md-2">
413 <b>Telefone</b>
414 </div>
415 <div class="col-md-10">
416 <#list telefonesArray as item>
417 <p>${item}</p>
418 </#list>
419 </div>
420 </div>
421 </div>
422 </#if>
423
424 <#if emailsArray?has_content>
425 <div class="info-contato">
426 <div class="row">
427 <div class="col-md-2">
428 <b>Email</b>
429 </div>
430 <div class="col-md-10">
431 <#list emailsArray as item>
432 <p>${item}</p>
433 </#list>
434 </div>
435 </div>
436 </div>
437 </#if>
438
439 <#if sitesArray?has_content>
440 <#assign portalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"] />
441 <#assign baseURL = portalUtil.getPortalURL(request) />
442 <div class="info-contato">
443 <div class="row">
444 <div class="col-md-2">
445 <b>Site</b>
446 </div>
447 <div class="col-md-10">
448
449 <#list sitesArray as item>
450 <p><a class="verde" href="${item}" target="${item?starts_with(baseURL)?then('_self', '_blank')}">${item}</a></p>
451 </#list>
452 </div>
453 </div>
454 </div>
455 </#if>
456
457 <#if redesSociaisArray?has_content>
458 <div class="info-contato">
459 <div class="row">
460 <div class="col-md-2">
461 <b>Redes Sociais</b>
462 </div>
463 <div class="col-md-10">
464 <#list redesSociaisArray as item>
465 <#if item?contains("linked")>
466 <a href="${item}" target="_blank"><i
467 class="fab fa-linkedin fa-2x"></i></a>
468 </#if>
469 <#if item?contains("facebook")>
470 <a href="${item}" target="_blank"><i
471 class="fab fa-facebook-square fa-2x"></i></a>
472 </#if>
473 <#if item?contains("insta")>
474 <a href="${item}" target="_blank"><i
475 class="fab fa-instagram fa-2x"></i></a>
476 </#if>
477 <#if item?contains("twitter")>
478 <a href="${item}" target="_blank"><i
479 class="fab fa-twitter fa-2x"></i></a>
480 </#if>
481 <#if item?contains("youtube")>
482 <a href="${item}" target="_blank"><i
483 class="fab fa-youtube fa-2x"></i></a>
484 </#if>
485 </#list>
486 </div>
487 </div>
488 </div>
489 </#if>
490
491 </#if>
492
493 <div class="row">
494 <div class="col-12 text-right">
495 <p style="color:#9e9797">Atualizado
496 em: ${ article.getModifiedDate()?string["dd/MM/yyyy"]}</p>
497 </div>
498
499 <div class="a2a_kit a2a_kit_size_32 a2a_default_style"
500 data-a2a-icon-color = "transparent, black">
501 <a class="a2a_button_facebook"></a>
502 <a class="a2a_button_twitter"></a>
503 <a class="a2a_button_whatsapp"></a>
504 <a class="a2a_button_facebook_messenger"></a>
505 <a class="a2a_button_email"></a>
506 <a class="a2a_button_copy_link"></a>
507 <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
508 </div>
509
510 <#if assetEntry.getTags()?has_content>
511 <div class="col-12 mt-4">
512 <#list assetEntry.getTags() as tag>
513 <a href="/pesquisa?q=${tag.name}" class="badge badge-pill badge-silver p-2">${tag.name}</a>
514 </#list>
515 </div>
516 </#if>
517
518 <@liferay_util["html-top"]>
519 <script crossorigin="anonymous" src="https://kit.fontawesome.com/9f47eedf41.js"></script>
520 <script src="https://static.addtoany.com/menu/page.js"></script>
521 <meta property="og:title" content="${titulo}" />
522 <meta property="og:description" content="${subtitulo}" />
523 <meta property="og:type" content="article" />
524 <meta property="og:locale" content="${locale}" />
525 <meta property="og:site_name" content="${company.getName()}" />
526 <meta property="og:url" content="${themeDisplay.getPortalURL() + themeDisplay.getURLCurrent()}">
527 <#if tagsArray?has_content>
528 <meta property="article:tag" content="${tags?join(",")}" />
529 </#if>
530
531 <#if shareImgFileEntry??>
532 <meta property="og:image" itemprop="image" content="${themeDisplay.getURLPortal()}/o/adaptive-media/image/${shareImgFileEntry.getFileEntryId()}/thumbnail-600x0/${shareImgFileEntry.getFileName()}" />
533 </#if>
534 </@>
535 </div>
536
537
538 </section>
539 </div>
540
541 <div class="col-md-4">
542 <#if currentArticleRelatedLinks?has_content>
543 <aside id="relatedNews">
544 <div class="container-fluid">
545 <div class="container">
546 <h2>Notícias Relacionadas</h2>
547 <div class="row">
548 <#list currentArticleRelatedLinks as related>
549 <#assign assertRelated = assetEntryService.getEntry(related.getEntryId2()) />
550 <#assign assetRendererRelated = assertRelated.getAssetRenderer() />
551 <#assign articleRelated = assetRendererRelated.getArticle() />
552 <#assign documentRelated = saxReaderUtil.read(articleRelated.getContent()) />
553 <#assign rootElementRelated = documentRelated.getRootElement() />
554 <#assign assetRelatedUrlTitle = articleRelated.getUrlTitle(locale) />
555
556 <#assign tituloRelated = "" />
557 <#assign subtituloRelated = "" />
558
559 <#list rootElementRelated.elements() as el>
560 <#list el.elements() as il>
561 <#if "imagem" == il.attributeValue("name") && il.element("dynamic-content").getData()?has_content>
562 <#assign imagemURLRelated = il.element("dynamic-content").getData()?eval />
563 </#if>
564
565 <#if "titulo" == il.attributeValue("name")>
566 <#assign tituloRelated = il.element("dynamic-content").getData() />
567 </#if>
568
569 <#if "subtitulo" == il.attributeValue("name")>
570 <#assign subtituloRelated = il.element("dynamic-content").getData() />
571
572 </#if>
573
574 </#list>
575 </#list>
576
577 <div class="col-md-12">
578 <div class="card"
579 style="background-color: white;">
580 <#if imagemURLRelated?has_content>
581 <@adaptive_media_image["img"] class="card-img-top"
582 fileVersion=dlAppServiceUtil.getFileEntry(imagemURLRelated.fileEntryId?number).getFileVersion()
583 alt="${imagemURLRelated.alt}" />
584 </#if>
585 <div class="card-body" style="color: #3B3B3B">
586 <p class="card-text card-text-title verde"> ${tituloRelated}</p>
587 <br/>
588 <p class="card-text card-text-subtitle"> ${subtituloRelated}</p>
589 <a href="/noticia/-/${assetRelatedUrlTitle}"
590 class="stretched-link"></a>
591
592 <div class="a2a_kit a2a_kit_size_32 a2a_default_style"
593 data-a2a-icon-color="transparent, black"
594 data-a2a-url="${currentUrl}/noticia/-/${assetRelatedUrlTitle}">
595 <a class="a2a_button_facebook"></a>
596 <a class="a2a_button_twitter"></a>
597 <a class="a2a_button_whatsapp"></a>
598 <a class="a2a_button_facebook_messenger"></a>
599 <a class="a2a_button_email"></a>
600 <a class="a2a_button_copy_link"></a>
601 <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
602 </div>
603 </div>
604
605 </div>
606 </div>
607 </#list>
608 </div>
609 </div>
610 </div>
611 </aside>
612 </#if>
613 </div>
614 </div>
615 </div>
616
617</div>
x
Utilizamos 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.