parceiro
An error occurred while processing the template.
The following has evaluated to null or missing: ==> journalArticleService.fetchArticleByUrlTitle(groupId, urlTitle?url('UTF-8')) [in template "33911#33938#38542" at line 169, 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 "33911#33938#38542" at line 169, 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: #EF7105;
56 padding-top: 20px;
57 font-size: 1.5rem;
58 }
59
60 .conteudo h4 {
61 padding-top: 20px;
62 }
63
64 .corpoDoTexto {
65 padding-top: 20px;
66 }
67
68 .data-criacao {
69 border-bottom: 2px solid #E2E2E2;
70 padding-top: 30px;
71 padding-bottom: 10px;
72 }
73
74 .data-criacao .fas {
75 color: #EF7105;
76 padding-right: 10px;
77 }
78
79 #event {
80 padding-bottom: 50px;
81 }
82
83 h3 {
84 border-bottom: 2px solid #E2E2E2;
85 padding-bottom: 10px;
86 }
87
88 #relatedEvents {
89
90 color: #EF7105;
91 }
92
93 #relatedEvents h2 {
94 font-size: 1rem;
95 padding-bottom: 20px;
96 text-transform: uppercase;
97 letter-spacing: 5px;
98 word-spacing: 10px;
99 }
100
101 .laranja, a.laranja:hover {
102 color: #EF7105;
103 }
104
105 .info-contato {
106 padding: 0.5rem 0;
107 }
108
109 .card-img-top {
110 width: 100%;
111 height: auto;
112 }
113
114 .card-text-title {
115 font-size: 1.125rem;
116 }
117
118 .image-center {
119 display: block;
120 margin-left: auto;
121 margin-right: auto;
122 }
123
124 .a2a_kit {
125 z-index: 1000;
126 }
127
128 .stretched-link::after {
129 z-index: 0 !important;
130 }
131
132 .badge-silver {
133 background-color: #e0e0e0;
134 color: #272833;
135 font-size: 1rem;
136 letter-spacing: 0.09rem;
137 }
138
139 .badge-silver:hover {
140 background-color: #c3c3c3;
141 color: #272833;
142 }
143
144 .fa-facebook-square {
145 color: #3b5998;
146 }
147
148 .fa-instagram {
149 color: #405DE6;
150 }
151
152 .fa-twitter {
153 color: #00acee;
154 }
155
156 .fa-youtube {
157 color: #c4302b;
158 }
159</style>
160
161<#assign urlTitle = paramUtil.getString(themeDisplay.getRequest(), "titulo", "") />
162<#assign assetEntryService = staticUtil["com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil"] />
163<#assign assetLinkLocalService = staticUtil["com.liferay.asset.kernel.service.AssetLinkLocalServiceUtil"] />
164<#assign layoutLocalService = staticUtil["com.liferay.portal.kernel.service.LayoutLocalServiceUtil"] />
165<#assign dlAppServiceUtil = staticUtil["com.liferay.document.library.kernel.service.DLAppServiceUtil"] />
166<#assign classNameUtil = staticUtil["com.liferay.portal.kernel.service.ClassNameServiceUtil"] />
167<#assign articleClassName = classNameUtil.fetchClassName("com.liferay.journal.model.JournalArticle") />
168<#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
169<#assign article = journalArticleService.fetchArticleByUrlTitle(groupId, urlTitle?url('UTF-8')) />
170
171<#assign assetEntry = assetEntryService.fetchEntry(articleClassName.getClassNameId(), article.getResourcePrimKey()) />
172<#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(assetEntry.getEntryId()) />
173
174<#assign document = saxReaderUtil.read(article.getContent()) />
175<#assign rootElement = document.getRootElement() />
176
177<#assign relationsNewsArray = []>
178<#assign imagensArray = []>
179<#assign telefonesArray = []>
180<#assign ficheirosArray = []>
181<#assign emailsArray = []>
182<#assign sitesArray = []>
183<#assign redesSociaisArray = []>
184<#assign sessoesArray = []>
185
186<#assign imagemEvento = "" />
187<#assign imageURL = "" />
188<#assign DataDoEvento = "" />
189<#assign titulo = "" />
190<#assign subtitulo = "" />
191<#assign corpoDoTexto = "" />
192<#assign hora = "" />
193<#assign entidadeOrganizadora = "" />
194<#assign sessaoString = "" />
195
196<#list rootElement.elements() as el>
197 <#list el.elements() as il>
198 <#if il.attributeValue("name")??>
199
200 <#if "DataDoEvento" == il.attributeValue("name")>
201 <#assign DataDoEvento = il.element("dynamic-content").getData() />
202 </#if>
203
204 <#if "Hora" == il.attributeValue("name")>
205 <#assign hora = il.element("dynamic-content").getData() />
206 </#if>
207
208 <#if "titulo" == il.attributeValue("name")>
209 <#assign titulo = il.element("dynamic-content").getData() />
210 </#if>
211
212 <#if "subtitulo" == il.attributeValue("name")>
213 <#assign subtitulo = il.element("dynamic-content").getData() />
214 </#if>
215
216 <#if "corpoDoTexto" == il.attributeValue("name")>
217 <#assign corpoDoTexto = il.element("dynamic-content").getData() />
218 </#if>
219
220 <#if "maisinformacaoFicheiro" == 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 <#if "imagemEvento" == il.attributeValue("name") && il.element("dynamic-content").getData()?has_content>
229 <#assign imagem = il.element("dynamic-content").getData()?eval />
230 <#assign imagensArray += [imagem] />
231 </#if>
232
233 <#if "entidadeOrganizadora" == il.attributeValue("name")>
234 <#assign entidadeOrganizadora = il.element("dynamic-content").getData() />
235 </#if>
236
237 <#if "telefone" == il.attributeValue("name")>
238 <#if il.element("dynamic-content").getData()?has_content>
239 <#assign telefonesArray += [il.element("dynamic-content").getData()] />
240 </#if>
241 </#if>
242
243 <#if "email" == il.attributeValue("name")>
244 <#if il.element("dynamic-content").getData()?has_content>
245 <#assign emailsArray += [il.element("dynamic-content").getData()] />
246 </#if>
247 </#if>
248
249
250
251 <#if "site" == il.attributeValue("name")>
252 <#if il.element("dynamic-content").getData()?has_content>
253 <#assign sitesArray += [il.element("dynamic-content").getData()] />
254 </#if>
255 </#if>
256
257 <#if "redesocial" == il.attributeValue("name")>
258 <#assign redeSocial = il.element("dynamic-content").getData() />
259 <#if redeSocial?has_content>
260 <#assign redesSociaisArray += [redeSocial]/>
261 </#if>
262 </#if>
263
264 <#if "dataInicioDoEvento" == il.attributeValue("name")>
265 <#if il.element("dynamic-content").getData()?has_content>
266 <#assign dataInicioDoEventoTemp = il.element("dynamic-content").getData() />
267 <#assign sessaoString += dataInicioDoEventoTemp?split("-")[2] + "/"+ dataInicioDoEventoTemp?split("-")[1] + "/" + dataInicioDoEventoTemp?split("-")[0] + "||" />
268 <#else>
269 <#assign sessaoString += "N/A||" />
270 </#if>
271
272 </#if>
273
274 <#if "horaInicio" == il.attributeValue("name")>
275 <#if il.element("dynamic-content").getData()?has_content>
276 <#assign sessaoString += il.element("dynamic-content").getData() + "||" />
277 <#else>
278 <#assign sessaoString += "N/A||" />
279 </#if>
280 </#if>
281
282 <#if "dataFimDoEvento" == il.attributeValue("name")>
283 <#if il.element("dynamic-content").getData()?has_content>
284 <#assign dataFimDoEventoTemp = il.element("dynamic-content").getData() />
285 <#assign sessaoString += dataFimDoEventoTemp?split("-")[2] + "/"+ dataFimDoEventoTemp?split("-")[1] + "/" + dataFimDoEventoTemp?split("-")[0] + "||" />
286 <#else>
287 <#assign sessaoString += "N/A||" />
288 </#if>
289 </#if>
290
291 <#if "horaFim" == il.attributeValue("name")>
292 <#if il.element("dynamic-content").getData()?has_content>
293 <#assign sessaoString += il.element("dynamic-content").getData() + "||" />
294 <#else>
295 <#assign sessaoString += "N/A||" />
296 </#if>
297 </#if>
298
299 <#if "localizacao" == il.attributeValue("name")>
300 <#if il.element("dynamic-content").getData()?has_content>
301 <#assign sessaoString += il.element("dynamic-content").getData() + "@@" />
302 <#else>
303 <#assign sessaoString += "N/A@@" />
304 </#if>
305 </#if>
306
307
308
309 </#if>
310 </#list>
311</#list>
312
313
314<div class="container-fluid">
315
316 <div class="container">
317
318 <div class="row">
319 <div class="col-12">
320 <nav class="breadcrumb-nav">
321 <ul class="breadcrumb-ul list-unstyled list-inline">
322 <li class="breadcrumb-element list-inline-item"><a href="/"><i class="fa fa-home"></i></a></li>
323 <li class="breadcrumb-element list-inline-item"><a href="/eventos">Eventos</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
330 <section id="event">
331
332 <div class="row conteudo">
333 <div class="col-md-12">
334 <h1>${titulo}</h1>
335 <h2>${subtitulo}</h2>
336 <h4>${entidadeOrganizadora}</h4>
337 <div class="data-criacao clearfix">
338 <div class="float-left">
339 <span><i class="fas fa-clock"></i>${DataDoEvento} <span
340 class="laranja">${hora}</span></span>
341 </div>
342 <div class="float-left">
343
344 <#list sessaoString?remove_ending("@@")?split("@@") as evento>
345 <p>
346 <#if evento??>
347 <#assign eventoSplitted = evento?split("||") />
348 <#if eventoSplitted?size gte 1 && !eventoSplitted[0]?contains("N/A")>${eventoSplitted[0]}</#if>
349 <#if eventoSplitted?size gte 2 && !eventoSplitted[1]?contains("N/A")><span class="laranja">${eventoSplitted[1]}</span></#if>
350 <#if eventoSplitted?size gte 3 && !eventoSplitted[2]?contains("N/A")>- ${eventoSplitted[2]}</#if>
351 <#if eventoSplitted?size gte 4 && !eventoSplitted[3]?contains("N/A")><span class="laranja">${eventoSplitted[3]}</span></#if>
352 <#if eventoSplitted?size == 5 && !eventoSplitted[4]?contains("N/A")>- ${eventoSplitted[4]}</#if>
353 </#if>
354 </p>
355
356 </#list>
357 </div>
358 </div>
359 </div>
360 </div>
361 <div class="row">
362 <div class="image-center">
363 <div id="carouselIndicators" class="carousel slide"
364 data-ride="carousel">
365 <ol class="carousel-indicators">
366 <#list imagensArray as item>
367 <#if item?is_first>
368 <li data-target="#carouselIndicators" data-slide-to="${item?index}"
369 class="active"></li>
370 <#else>
371 <li data-target="#carouselIndicators"
372 data-slide-to="${item?index}"></li>
373 </#if>
374 </#list>
375 </ol>
376 <div class="carousel-inner">
377 <#list imagensArray as item>
378 <#if item?is_first>
379 <div class="carousel-item active">
380 <#else>
381 <div class="carousel-item">
382 </#if>
383 <#assign imagemFileEntry = dlAppServiceUtil.getFileEntry(item.fileEntryId?number) />
384 <#if !shareImgFileEntry??>
385 <#assign shareImgFileEntry = imagemFileEntry />
386 </#if>
387 <@adaptive_media_image["img"] class="d-block w-100 container-image img-responsive" fileVersion=imagemFileEntry.getFileVersion() alt="${item.alt}"/>
388 </div>
389 </#list>
390 </div>
391
392 <a class="carousel-control-prev" href="#carouselIndicators" role="button"
393 data-slide="prev">
394 <span class="carousel-control-prev-icon" aria-hidden="true"></span>
395 <span class="sr-only">Previous</span>
396 </a>
397 <a class="carousel-control-next" href="#carouselIndicators" role="button"
398 data-slide="next">
399 <span class="carousel-control-next-icon" aria-hidden="true"></span>
400 <span class="sr-only">Next</span>
401 </a>
402 </div>
403 </div>
404
405 </div>
406
407 <div class="row">
408 <div class="col-12">
409 <div class="corpoDoTexto">
410 ${corpoDoTexto}
411 </div>
412 </div>
413 </div>
414 <#if ficheirosArray?has_content>
415
416 <div class="row conteudo">
417 <div class="col-12">
418 <h3>Mais Informações</h3>
419 </div>
420 <div class="col-12">
421 <ul>
422 <#list ficheirosArray as item>
423 <li><a class="laranja" target="_blank"
424 href="${item?split("|")?first}">${item?split("|")?last}</a>
425 </li>
426 </#list>
427 </ul>
428 </div>
429 </div>
430
431 </#if>
432
433 <#if telefonesArray?has_content || emailsArray?has_content || sitesArray?has_content || redesSociaisArray?has_content>
434 <div class="conteudo">
435
436 <h3>Contatos</h3>
437
438
439 <#if telefonesArray?has_content>
440 <div class="info-contato">
441 <div class="row">
442 <div class="col-md-2">
443 <b>Telefone</b>
444 </div>
445 <div class="col-md-10">
446 <#list telefonesArray as item>
447 <p>${item}</p>
448 </#list>
449 </div>
450 </div>
451 </div>
452 </#if>
453
454 <#if emailsArray?has_content>
455 <div class="info-contato">
456 <div class="row">
457 <div class="col-md-2">
458 <b>Email</b>
459 </div>
460 <div class="col-md-10">
461 <#list emailsArray as item>
462 <p>${item}</p>
463 </#list>
464 </div>
465 </div>
466 </div>
467 </#if>
468
469 <#if sitesArray?has_content>
470 <#assign portalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"] />
471 <#assign baseURL = portalUtil.getPortalURL(request) />
472 <div class="info-contato">
473 <div class="row">
474 <div class="col-md-2">
475 <b>Site</b>
476 </div>
477 <div class="col-md-10">
478
479 <#list sitesArray as item>
480 <p><a class="laranja" href="${item}" target="${item?starts_with(baseURL)?then('_self', '_blank')}">${item}</a></p>
481 </#list>
482 </div>
483 </div>
484 </div>
485 </#if>
486
487 <#if redesSociaisArray?has_content>
488 <div class="info-contato">
489 <div class="row">
490 <div class="col-md-2">
491 <b>Redes Sociais</b>
492 </div>
493 <div class="col-md-10">
494 <#list redesSociaisArray as item>
495 <#if item?contains("linked")>
496 <a href="${item}" target="_blank"><i
497 class="fab fa-linkedin fa-2x"></i></a>
498 </#if>
499 <#if item?contains("facebook")>
500 <a href="${item}" target="_blank"><i
501 class="fab fa-facebook-square fa-2x"></i></a>
502 </#if>
503 <#if item?contains("insta")>
504 <a href="${item}" target="_blank"><i
505 class="fab fa-instagram fa-2x"></i></a>
506 </#if>
507 <#if item?contains("twitter")>
508 <a href="${item}" target="_blank"><i
509 class="fab fa-twitter fa-2x"></i></a>
510 </#if>
511 <#if item?contains("youtube")>
512 <a href="${item}" target="_blank"><i
513 class="fab fa-youtube fa-2x"></i></a>
514 </#if>
515 </#list>
516 </div>
517 </div>
518 </div>
519 </#if>
520
521 </#if>
522
523 <div class="col-12 text-right">
524 <p style="color:#9e9797">Atualizado
525 em: ${ article.getModifiedDate()?string["dd/MM/yyyy"]}</p>
526 </div>
527
528 <div class="a2a_kit a2a_kit_size_32 a2a_default_style"
529 data-a2a-icon-color = "transparent, black">
530 <a class="a2a_button_facebook"></a>
531 <a class="a2a_button_twitter"></a>
532 <a class="a2a_button_whatsapp"></a>
533 <a class="a2a_button_facebook_messenger"></a>
534 <a class="a2a_button_email"></a>
535 <a class="a2a_button_copy_link"></a>
536 <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
537 </div>
538
539 <#if assetEntry.getTags()?has_content>
540 <#assign tags = [] />
541 <div class="col-12 mt-4">
542 <#list assetEntry.getTags() as tag>
543 <#assign tags += [tag.name] />
544 <a href="/pesquisa?q=${tag.name}" class="badge badge-pill badge-silver p-2">${tag.name}</a>
545 </#list>
546 </div>
547 </#if>
548
549 <@liferay_util["html-top"]>
550 <script crossorigin="anonymous" src="${themeDisplay.getPortalURL()}/documents/20123/259580/fontawesome.js"></script>
551 <script src="${themeDisplay.getPortalURL()}/documents/20123/259580/page.js"></script>
552 <meta property="og:title" content="${titulo}" />
553 <meta property="og:description" content="${subtitulo}" />
554 <meta property="og:type" content="article" />
555 <meta property="og:locale" content="${locale}" />
556 <meta property="og:site_name" content="${company.getName()}" />
557 <meta property="og:url" content="${themeDisplay.getPortalURL() + themeDisplay.getURLCurrent()}">
558 <#if tagsArray?has_content>
559 <meta property="article:tag" content="${tags?join(",")}" />
560 </#if>
561
562 <#if shareImgFileEntry??>
563 <meta property="og:image" itemprop="image" content="${themeDisplay.getURLPortal()}/o/adaptive-media/image/${shareImgFileEntry.getFileEntryId()}/thumbnail-600x0/${shareImgFileEntry.getFileName()}" />
564 </#if>
565 </@>
566 </div>
567
568
569 </section>
570 </div>
571
572 <div class="col-md-4">
573 <#if currentArticleRelatedLinks?has_content>
574 <aside id="relatedEvents">
575 <div class="container-fluid">
576 <div class="container">
577 <h2>Outros Eventos</h2>
578 <div class="row">
579 <#list currentArticleRelatedLinks as related>
580 <#assign assertRelated = assetEntryService.getEntry(related.getEntryId2()) />
581 <#assign assetRendererRelated = assertRelated.getAssetRenderer() />
582 <#assign articleRelated = assetRendererRelated.getArticle() />
583 <#assign documentRelated = saxReaderUtil.read(articleRelated.getContent()) />
584 <#assign rootElementRelated = documentRelated.getRootElement() />
585 <#assign assetRelatedUrlTitle = articleRelated.getUrlTitle(locale) />
586
587 <#assign imagensArrayRelated = []>
588 <#assign imagemURLRelated = "" />
589 <#assign tituloRelated = "" />
590 <#assign subtituloRelated = "" />
591
592 <#list rootElementRelated.elements() as el>
593 <#list el.elements() as il>
594 <#if "imagemEvento" == il.attributeValue("name") && il.element("dynamic-content").getData()?has_content>
595 <#assign imagemURLRelated = il.element("dynamic-content").getData()?eval />
596 <#assign imagensArrayRelated += [imagemURLRelated] />
597 </#if>
598
599 <#if "titulo" == il.attributeValue("name")>
600 <#assign tituloRelated = il.element("dynamic-content").getData() />
601 </#if>
602
603 <#if "subtitulo" == il.attributeValue("name")>
604 <#assign subtituloRelated = il.element("dynamic-content").getData() />
605
606 </#if>
607
608 </#list>
609 </#list>
610
611 <div class="col-md-12">
612 <div class="card"
613 style="background-color: white;">
614 <#if imagemURLRelated?has_content>
615 <@adaptive_media_image["img"] class="card-img-top" fileVersion=dlAppServiceUtil.getFileEntry(imagemURLRelated.fileEntryId?number).getFileVersion() alt="${imagemURLRelated.alt}"/>
616 </#if>
617 <div class="card-body" style="color: #3B3B3B">
618 <p class="card-text card-text-title laranja"> ${tituloRelated}</p>
619 <br/>
620 <p class="card-text card-text-subtitle"> ${subtituloRelated}</p>
621 <a href="/eventos/${assetRelatedUrlTitle}"
622 class="stretched-link"></a>
623 </div>
624 </div>
625 </div>
626 </#list>
627 </div>
628 </div>
629 </div>
630 </aside>
631 </#if>
632 </div>
633 </div>
634 </div>
635
636</div>
- --- NATIONAL ---
- AIDGLOBAL
- Erasmus + Youth in Action National Agency
- Association for Family Protection
- Sonha, Faz e Acontece Youth Association
- Santarém Special Sport Association
- National Youth Council
- European Intercultural Club
- DYPALL NETWORK
- Santarém Higher School of Sport
- AFS Interculture Portugal
- MOVIJOVEM - Youth Mobility
- REDE - Portuguese Network of Young People for Gender Equality
- --- INTERNATIONAL ---
- Council of Europe
- Directorate of Democratic Participation of the Council of Europe
- Directorate General of Democracy (“DGII”) of the Council of Europe
- Youth Department of the Council of Europe
- European Youth Centre Budapest
- European Youth Centre Strasbourg
- European Youth Foundation
- European Youth Forum
- Eurodesk
- European Youth Information and Counselling Agency
- European Youth Portal
- --- COUNCIL OF EUROPE QUALITY LABELLED YOUTH CENTRES ---
- Brežice Youth Centre
- CEULAJ - Centro Eurolatinoamericano de Juventud
- Destelheide Youth Centre
- De Hoge Rielen Youth Centre
- Ecocenter Radulovacki Youth Centre
- Killarney Youth Centre
- Marienthal Youth Centre
- Marttinen Youth Centre
- Plovdiv Youth Centre
- Stara Zagora Youth Centre
- Timisoara Youth House
- Villa Elba Youth Centre
- WannseeFORUM Youth Centre
SUBSCRIBE NEWSLETTER
Successfully subscribed newsletter Did not subscribe to the Newsletter. Please try again laterWe use cookies on our website to give you the best experience. By continuing to browse, you are authorize our use of these cookies. However, if you want to know more information, namely how to change your settings, see our Policy .