2_COMPREENDER - 2_COMPREENDER
null 2_COMPREENDER
Jorge Santos
modificado hace 3 meses
Ocorreu um erro ao processar o template.
The following has evaluated to null or missing: ==> journalArticleService.fetchArticleByUrlTitle(groupId, urlTitle?replace(' ','') ) [in template "43131#43158#57114" at line 195, column 21] ---- 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 "43131#43158#57114" at line 195, column 2] ----
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 .fa-facebook-square {
136 color: #3b5998;
137 }
138
139 .fa-instagram {
140 color: #405DE6;
141 }
142
143 .fa-twitter {
144 color: #00acee;
145 }
146
147 .fa-youtube {
148 color: #c4302b;
149 }
150
151 .col-md-12 .card {
152 background: white;
153 }
154
155 #sabermais:focus{
156 box-shadow: none;
157 }
158 #sabermais.btn.collapsed:before
159 {
160 content:'Saber +' ;
161 display:block;
162 }
163 #sabermais.btn:before
164 {
165 content:'Saber -' ;
166 display:block;
167 }
168 #sabermais{
169 background-color: #015174!important;
170 border-color: #015174;
171 }
172
173</style>
174<#assign urlTitle = themeDisplay.getURLCurrent()/>
175<#assign lang = themeDisplay.getLanguageId() />
176
177<#if urlTitle[0..2] == '/-/'>
178 <#assign urlTitle = urlTitle?replace('/-/', '') />
179<#else>
180 <#if lang == 'en_US'>
181 <#assign urlTitle = urlTitle?replace('/en/-/', '') />
182 <#else>
183 <#assign urlTitle = urlTitle?replace('/pt/-/', '') />
184 </#if>
185</#if>
186<#assign assetEntryService = staticUtil["com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil"] />
187<#assign assetLinkLocalService = staticUtil["com.liferay.asset.kernel.service.AssetLinkLocalServiceUtil"] />
188<#assign layoutLocalService = staticUtil["com.liferay.portal.kernel.service.LayoutLocalServiceUtil"] />
189<#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
190<#assign dlAppServiceUtil = staticUtil["com.liferay.document.library.kernel.service.DLAppServiceUtil"] />
191<#assign classNameUtil = staticUtil["com.liferay.portal.kernel.service.ClassNameServiceUtil"] />
192<#assign articleClassName = classNameUtil.fetchClassName("com.liferay.journal.model.JournalArticle") />
193
194
195 <#assign article = journalArticleService.fetchArticleByUrlTitle(groupId, urlTitle?replace(' ','') ) />
196
197
198
199 <#assign assetEntry = assetEntryService.fetchEntry(articleClassName.getClassNameId(), article.getResourcePrimKey()) />
200 <#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(assetEntry.getEntryId()) />
201 <#assign document = saxReaderUtil.read(article.getContentByLocale(lang)) />
202 <#assign rootElement = document.getRootElement() />
203
204
205
206
207 <#assign relationsNewsArray = []>
208<#assign imagensArray = []>
209<#assign telefonesArray = []>
210<#assign ficheirosArray = []>
211<#assign emailsArray = []>
212<#assign sitesArray = []>
213<#assign redesSociaisArray = []>
214
215<#assign ficheiro = "" />
216<#assign ficheiroURL = "" />
217<#assign data = dateUtil.newTime() />
218<#assign titulo = "" />
219<#assign subtitulo = "" />
220<#assign corpoDoTexto = "" />
221<#assign redeSocial = "" />
222 <#assign imagem = "" />
223
224<#list rootElement.elements() as el>
225 <#list el.elements() as il>
226 <#if il.attributeValue("name")??>
227
228 <#if "imagem" == il.attributeValue("name") && il.element("dynamic-content").getData()?has_content>
229
230 <#assign imagem = il.element("dynamic-content").getData()?eval />
231 </#if>
232
233 <#if "data" == il.attributeValue("name")>
234
235 <#assign data = il.element("dynamic-content").getData() />
236 <#if data?has_content>
237 <#assign data = data?split("-")[2] + "/"+ data?split("-")[1] + "/" + data?split("-")[0]/>
238 </#if>
239 </#if>
240
241 <#if "titulo" == il.attributeValue("name")>
242 <#assign titulo = il.element("dynamic-content").getData() />
243 </#if>
244
245 <#if "subtitulo" == il.attributeValue("name")>
246 <#assign subtitulo = il.element("dynamic-content").getData() />
247
248 </#if>
249
250 <#if "corpoDoTexto" == il.attributeValue("name")>
251 <#assign corpoDoTexto = il.element("dynamic-content").getData() />
252 </#if>
253
254 <#if "DocumentosEMdias19f7" == il.attributeValue("name")>
255 <#assign ficheiro = il.element("dynamic-content").getData() />
256 <#if ficheiro?has_content>
257 <#assign ficheiro = ficheiro?eval />
258 <#assign ficheirosArray += ["/c/document_library/get_file?uuid=" + ficheiro.uuid + "&groupId=" + ficheiro.groupId + "|" + ficheiro.title] />
259 </#if>
260 </#if>
261
262
263 <#if "telefone" == il.attributeValue("name")>
264 <#if il.element("dynamic-content").getData()?has_content>
265 <#assign telefonesArray += [il.element("dynamic-content").getData()] />
266 </#if>
267 </#if>
268
269 <#if "email" == il.attributeValue("name")>
270 <#if il.element("dynamic-content").getData()?has_content>
271 <#assign emailsArray += [il.element("dynamic-content").getData()] />
272 </#if>
273 </#if>
274
275 <#--
276 <#if "site" == il.attributeValue("name")>
277 <#assign site = il.element("dynamic-content").getData() />
278 <#assign layoutID = site?split("@")?first />
279 <#assign groupID = site?split("@")?last />
280 <#if layoutID?has_content && groupID?has_content>
281 <#assign pageLayout = layoutLocalService.getLayout(groupID?number?long, false, layoutID?number?long) />
282 <#assign pageURL = pageLayout.getFriendlyURL() />
283 <#assign pageTitle = pageLayout.getName() />
284 <#assign sitesArray += [pageURL + "|" +pageTitle]/>
285 </#if>
286 </#if> -->
287
288 <#if "site" == il.attributeValue("name")>
289 <#if il.element("dynamic-content").getData()?has_content>
290 <#assign sitesArray += [il.element("dynamic-content").getData()] />
291 </#if>
292 </#if>
293
294 <#if "redesocial1" == il.attributeValue("name")>
295 <#assign redeSocial = il.element("dynamic-content").getData() />
296 <#if redeSocial?has_content>
297 <#assign redesSociaisArray += [redeSocial]/>
298 </#if>
299 </#if>
300
301 </#if>
302
303 </#list>
304</#list>
305
306
307<div class="container-fluid">
308
309 <div class="container">
310
311 <div class="row">
312 <div class="col-12">
313 <nav class="breadcrumb-nav">
314 <ul class="breadcrumb-ul list-unstyled list-inline">
315 <li class="breadcrumb-element list-inline-item"><a href="/"><i class="fa fa-home"></i></a></li>
316 <li class="breadcrumb-element list-inline-item"><a href="/exposicoes">
317
318 <#if themeDisplay.getLanguageId() == "en_US">
319 Exhibitions
320 <#else>
321 Exposições
322 </#if>
323 </a></li>
324 <li class="breadcrumb-element list-inline-item active">${titulo}</li>
325 </ul>
326 </nav>
327 </div>
328 <div class="col-md-8">
329 <section id="news">
330
331 <div class="row conteudo">
332 <div class="col-md-12">
333 <h1>${titulo}</h1>
334 <h2>${subtitulo}</h2>
335 <div class="data-criacao">
336 <span><i class="fas fa-clock"></i>${data}</span>
337 </div>
338 </div>
339 </div>
340 <div class="row">
341 <div>
342 <#if banner.getData()?? && banner.getData() != "">
343
344 <image src="${banner.getData()}" class="someClass "/>
345 </#if>
346
347 <#--
348 <div id="carouselIndicators" class="carousel slide"
349 data-ride="carousel">
350 <ol class="carousel-indicators">
351
352
353
354 <#list imagensArray as item>
355 <#if item?is_first>
356 <li data-target="#carouselIndicators" data-slide-to="${item?index}"
357 class="active"></li>
358 <#else>
359 <li data-target="#carouselIndicators"
360 data-slide-to="${item?index}"></li>
361 </#if>
362 </#list>
363 </ol>
364 <div class="carousel-inner">
365 <#list imagensArray as item>
366 <#if item?is_first>
367 <div class="carousel-item active">
368 <#else>
369 <div class="carousel-item">
370 </#if>
371 <#assign imagemFileEntry = dlAppServiceUtil.getFileEntry(item.fileEntryId?number) />
372 <#if !shareImgFileEntry??>
373 <#assign shareImgFileEntry = imagemFileEntry />
374 </#if>
375 <@adaptive_media_image["img"] class="d-block w-100 container-image" fileVersion=imagemFileEntry.getFileVersion() alt="${item.alt}"/>
376 </div>
377 </#list>
378 </div>
379
380 <a class="carousel-control-prev" href="#carouselIndicators" role="button"
381 data-slide="prev">
382 <span class="carousel-control-prev-icon" aria-hidden="true"></span>
383 <span class="sr-only">
384
385 <#if themeDisplay.getLanguageId() == "en_US">
386 Previous
387 <#else>
388 Anteriormente
389 </#if>
390
391
392 </span>
393 </a>
394 <a class="carousel-control-next" href="#carouselIndicators" role="button"
395 data-slide="next">
396 <span class="carousel-control-next-icon" aria-hidden="true"></span>
397 <span class="sr-only">
398
399 <#if themeDisplay.getLanguageId() == "en_US">
400 Next
401 <#else>
402 Próximo
403 </#if>
404
405
406 </span>
407 </a>
408
409 </div>
410-->
411 </div>
412 </div>
413
414 <div class="row">
415 <div class="col-12">
416 <div class="corpoDoTexto">
417 ${corpoDoTexto}
418 </div>
419 </div>
420 </div>
421
422<#if informacaoGeral.ConteudoMaisExp.getData()?has_content >
423 <div class="row">
424 <div class="col-sm-7 padding " style="text-align: center;">
425 <button id="sabermais" class="btn btn-primary collapsed" type="button" data-toggle="collapse" data-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
426 </button>
427 </div>
428 </div>
429 </br>
430 <!-- -->
431 <div class="row collapse" id="collapseExample">
432 <div class="col-sm-7 padding">
433 <div class="corpo-texto">
434 ${informacaoGeral.ConteudoMaisExp.getData()}
435 </div>
436</#if>
437 <#if ficheirosArray?has_content>
438
439 <div class="row conteudo">
440 <div class="col-12">
441 <h3>
442
443 <#if themeDisplay.getLanguageId() == "en_US">
444 More information
445 <#else>
446 Mais informações
447 </#if>
448
449 </h3>
450 </div>
451 <div class="col-12">
452 <ul>
453 <#list ficheirosArray as item>
454 <li><a class="verde" target="_blank"
455 href="${item?split("|")?first}">${item?split("|")?last}</a>
456 </li>
457 </#list>
458 </ul>
459 </div>
460 </div>
461
462 </#if>
463
464 <#if telefonesArray?has_content || emailsArray?has_content || sitesArray?has_content || redesSociaisArray?has_content>
465 <div class="conteudo">
466
467 <h3>
468
469 <#if themeDisplay.getLanguageId() == "en_US">
470 Contacts
471 <#else>
472 Contactos
473 </#if>
474
475
476
477
478 </h3>
479
480
481 <#if telefonesArray?has_content>
482 <div class="info-contato">
483 <div class="row">
484 <div class="col-md-2">
485 <b>
486
487 <#if themeDisplay.getLanguageId() == "en_US">
488 Phone
489 <#else>
490 Telefone
491 </#if>
492
493
494 </b>
495 </div>
496 <div class="col-md-10">
497 <#list telefonesArray as item>
498 <p>${item}</p>
499 </#list>
500 </div>
501 </div>
502 </div>
503 </#if>
504
505 <#if emailsArray?has_content>
506 <div class="info-contato">
507 <div class="row">
508 <div class="col-md-2">
509 <b>Email</b>
510 </div>
511 <div class="col-md-10">
512 <#list emailsArray as item>
513 <p>${item}</p>
514 </#list>
515 </div>
516 </div>
517 </div>
518 </#if>
519
520 <#if sitesArray?has_content>
521 <#assign portalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"] />
522 <#assign baseURL = portalUtil.getPortalURL(request) />
523 <div class="info-contato">
524 <div class="row">
525 <div class="col-md-2">
526 <b>Site</b>
527 </div>
528 <div class="col-md-10">
529
530 <#list sitesArray as item>
531 <p><a class="verde" href="${item}" target="${item?starts_with(baseURL)?then('_self', '_blank')}">${item}</a></p>
532 </#list>
533 </div>
534 </div>
535 </div>
536 </#if>
537
538 <#if redesSociaisArray?has_content>
539 <div class="info-contato">
540 <div class="row">
541 <div class="col-md-2">
542 <b>
543
544 <#if themeDisplay.getLanguageId() == "en_US">
545 Social Media
546 <#else>
547 Redes Sociais
548 </#if>
549
550
551
552 </b>
553 </div>
554 <div class="col-md-10">
555 <#list redesSociaisArray as item>
556 <#if item?contains("linked")>
557 <a href="${item}" target="_blank"><i
558 class="fab fa-linkedin fa-2x"></i></a>
559 </#if>
560 <#if item?contains("facebook")>
561 <a href="${item}" target="_blank"><i
562 class="fab fa-facebook-square fa-2x"></i></a>
563 </#if>
564 <#if item?contains("insta")>
565 <a href="${item}" target="_blank"><i
566 class="fab fa-instagram fa-2x"></i></a>
567 </#if>
568 <#if item?contains("twitter")>
569 <a href="${item}" target="_blank"><i
570 class="fab fa-twitter fa-2x"></i></a>
571 </#if>
572 <#if item?contains("youtube")>
573 <a href="${item}" target="_blank"><i
574 class="fab fa-youtube fa-2x"></i></a>
575 </#if>
576 </#list>
577 </div>
578 </div>
579 </div>
580 </#if>
581
582 </#if>
583
584 <div class="row">
585 <div class="col-12 text-right">
586 <#if themeDisplay.getLanguageId() == "en_US">
587 <p style="color:#9e9797">Updated
588 in: ${ article.getModifiedDate()?string["dd/MM/yyyy"]}</p>
589 <#else>
590 <p style="color:#9e9797">Atualizado
591 em: ${ article.getModifiedDate()?string["dd/MM/yyyy"]}</p>
592 </#if>
593 </div>
594
595 <div class="a2a_kit a2a_kit_size_32 a2a_default_style"
596 data-a2a-icon-color = "transparent, black">
597 <a class="a2a_button_facebook"></a>
598 <a class="a2a_button_twitter"></a>
599 <a class="a2a_button_whatsapp"></a>
600 <a class="a2a_button_facebook_messenger"></a>
601 <a class="a2a_button_email"></a>
602 <a class="a2a_button_copy_link"></a>
603 <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
604 </div>
605
606 <#if assetEntry.getTags()?has_content>
607 <div class="col-12 mt-4">
608 <#list assetEntry.getTags() as tag>
609 <a href="/pesquisa?q=${tag.name}" class="badge badge-pill badge-silver p-2">${tag.name}</a>
610 </#list>
611 </div>
612 </#if>
613
614 <@liferay_util["html-top"]>
615
616
617 <meta property="og:title" content="${titulo}" />
618 <meta property="og:description" content="${subtitulo}" />
619 <meta property="og:type" content="article" />
620 <meta property="og:locale" content="${locale}" />
621 <meta property="og:site_name" content="${company.getName()}" />
622 <meta property="og:url" content="${themeDisplay.getPortalURL() + themeDisplay.getURLCurrent()}">
623 <#if tagsArray?has_content>
624 <meta property="article:tag" content="${tags?join(",")}" />
625 </#if>
626
627 <#if shareImgFileEntry??>
628 <meta property="og:image" itemprop="image" content="${themeDisplay.getURLPortal()}/o/adaptive-media/image/${shareImgFileEntry.getFileEntryId()}/thumbnail-600x0/${shareImgFileEntry.getFileName()}" />
629 </#if>
630 </@>
631 </div>
632
633
634 </section>
635 </div>
636
637 <div class="col-md-4">
638 <#if currentArticleRelatedLinks?has_content>
639 <aside id="relatedNews">
640 <div class="container-fluid">
641 <div class="container">
642 <h2>
643 <#if themeDisplay.getLanguageId() == "en_US">
644 Related News
645 <#else>
646 Notícias Relacionadas
647 </#if>
648
649
650 </h2>
651 <div class="row">
652 <#list currentArticleRelatedLinks as related>
653 <#assign assertRelated = assetEntryService.getEntry(related.getEntryId2()) />
654 <#assign assetRendererRelated = assertRelated.getAssetRenderer() />
655 <#assign articleRelated = assetRendererRelated.getArticle() />
656 <#assign documentRelated = saxReaderUtil.read(articleRelated.getContent()) />
657 <#assign rootElementRelated = documentRelated.getRootElement() />
658 <#assign assetRelatedUrlTitle = articleRelated.getUrlTitle(locale) />
659
660 <#assign tituloRelated = "" />
661 <#assign subtituloRelated = "" />
662
663 <#list rootElementRelated.elements() as el>
664 <#list el.elements() as il>
665 <#if "imagem" == il.attributeValue("name") && il.element("dynamic-content").getData()?has_content>
666 <#assign imagemURLRelated = il.element("dynamic-content").getData()?eval />
667 </#if>
668
669 <#if "titulo" == il.attributeValue("name")>
670 <#assign tituloRelated = il.element("dynamic-content").getData() />
671 </#if>
672
673 <#if "subtitulo" == il.attributeValue("name")>
674 <#assign subtituloRelated = il.element("dynamic-content").getData() />
675
676 </#if>
677
678 </#list>
679 </#list>
680
681 <div class="col-md-12">
682 <div class="card">
683 <#if imagemURLRelated?has_content>
684 <@adaptive_media_image["img"] class="card-img-top"
685 fileVersion=dlAppServiceUtil.getFileEntry(imagemURLRelated.fileEntryId?number).getFileVersion()
686 alt="${imagemURLRelated.alt}" />
687 </#if>
688 <div class="card-body" style="color: #3B3B3B">
689 <p class="card-text card-text-title verde"> ${tituloRelated}</p>
690 <br/>
691 <p class="card-text card-text-subtitle"> ${subtituloRelated}</p>
692 <a href="/noticias/${assetRelatedUrlTitle}"
693 class="stretched-link"></a>
694
695 </div>
696
697 </div>
698 </div>
699 </#list>
700 </div>
701 </div>
702 </div>
703 </aside>
704 </#if>
705 </div>
706 </div>
707 </div>
708
709</div>
SUBSCREVER NEWSLETTER IPDJ
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.