APF – Associação para a Promoção da Família - APF – Associação para a Promoção da Família
null APF – Associação para a Promoção da Família
Test Test
Modified 3 Years ago.
Ocorreu um erro ao processar o template.
The following has evaluated to null or missing: ==> journalArticleService.fetchArticleByUrlTitle(groupId, themeDisplay.getURLCurrent()?replace('/-/', '')) [in template "33911#33938#41602" at line 179, 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#41602" at line 179, 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 #campaign {
77 padding-bottom: 50px;
78 }
79
80 h3 {
81 border-bottom: 2px solid #E2E2E2;
82 padding-bottom: 10px;
83 }
84
85 #relatedCampaign {
86 color: #A1BB15;
87 }
88
89 #relatedCampaign h2 {
90 font-size: 1rem;
91 padding-bottom: 20px;
92 text-transform: uppercase;
93 letter-spacing: 5px;
94 word-spacing: 10px;
95 }
96
97 .verde, a.verde:hover {
98 color: #A1BB15;
99 }
100
101 .info-contato {
102 padding: 0.5rem 0;
103 }
104
105 .card-img-top {
106 width: 100%;
107 height: auto;
108 }
109
110 .card-text-title {
111 font-size: 1.125rem;
112 }
113
114 .a2a_kit {
115 z-index: 1000;
116 }
117
118 .stretched-link::after {
119 z-index: 0 !important;
120 }
121
122 .badge-silver {
123 background-color: #e0e0e0;
124 color: #272833;
125 font-size: 1rem;
126 letter-spacing: 0.09rem;
127 }
128
129 .badge-silver:hover {
130 background-color: #c3c3c3;
131 color: #272833;
132 }
133
134.fa-linkedin {
135 color: #0e76a8;
136}
137
138.fa-twitter-square {
139 color: #00acee;
140}
141
142.fa-youtube-square {
143 color: #c4302b;
144}
145
146.fa-instagram-square {
147 color: black;
148}
149
150
151</style>
152
153<#-- <#assign urlTitle = themeDisplay.getURLCurrent()?replace('/-/', '') />
154
155Usar a marreta para multilingua se precisar-->
156<#assign urlTitle = themeDisplay.getURLCurrent()/>
157<#assign lang = themeDisplay.getLanguageId() />
158
159<#if urlTitle[0..3] == '/web'>
160 <#assign urlTitle = urlTitle?replace('/web/guest/-/', '') />
161<#else>
162 <#if lang == 'en_US'>
163 <#assign urlTitle = urlTitle?replace('/en/web/guest/-/', '') />
164 <#else>
165 <#assign urlTitle = urlTitle?replace('/pt/web/guest/-/', '') />
166 </#if>
167</#if>
168
169
170<#assign dlAppServiceUtil = staticUtil["com.liferay.document.library.kernel.service.DLAppServiceUtil"] />
171
172<#assign assetEntryService = staticUtil["com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil"] />
173<#assign assetLinkLocalService = staticUtil["com.liferay.asset.kernel.service.AssetLinkLocalServiceUtil"] />
174<#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
175
176<#assign classNameUtil = staticUtil["com.liferay.portal.kernel.service.ClassNameServiceUtil"] />
177<#assign articleClassName = classNameUtil.fetchClassName("com.liferay.journal.model.JournalArticle") />
178
179<#assign article = journalArticleService.fetchArticleByUrlTitle(groupId, themeDisplay.getURLCurrent()?replace('/-/', '')) />
180<#assign assetEntry = assetEntryService.fetchEntry(articleClassName.getClassNameId(), article.getResourcePrimKey()) />
181<#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(assetEntry.getEntryId()) />
182
183<#assign document = saxReaderUtil.read(article.getContent()) />
184<#assign rootElement = document.getRootElement() />
185
186<#assign imagensArray = []>
187<#assign telefonesArray = []>
188<#assign ficheirosArray = []>
189<#assign emailsArray = []>
190<#assign sitesArray = []>
191<#assign redesSociaisArray = []>
192
193<#assign data = "" />
194<#assign imagem = "" />
195<#assign imageURL = "" />
196<#assign subtitulo = "" />
197<#assign titulo = "" />
198<#assign corpoDoTexto = "" />
199<#assign entidadeOrganizadora = "" />
200<#assign formatoData = "dd/MM/yyyy" />
201
202<#list rootElement.elements() as el>
203 <#list el.elements() as il>
204
205 <#if "titulo" == il.attributeValue("name")>
206 <#assign titulo = il.element("dynamic-content").getData() />
207 </#if>
208
209 <#if "data" == il.attributeValue("name") && il.element("dynamic-content").getData()?has_content>
210 <#assign data = il.element("dynamic-content").getData()?date("yyyy-MM-dd") />
211 <#assign data = data?string[formatoData] />
212 </#if>
213 <#if "subtitulo" == il.attributeValue("name") && il.element("dynamic-content")?has_content>
214 <#assign subtitulo = il.element("dynamic-content").getData() />
215 </#if>
216
217 <#if "corpoDoTexto" == il.attributeValue("name") && il.element("dynamic-content")?has_content>
218 <#assign corpoDoTexto = il.element("dynamic-content").getData() />
219 </#if>
220
221 <#if "EntidadeOrganizadora" == il.attributeValue("name") && il.element("dynamic-content")?has_content>
222 <#assign entidadeOrganizadora = il.element("dynamic-content").getData() />
223 </#if>
224
225 <#if "imagensLink" == il.attributeValue("name")>
226 <#if il.element("dynamic-content").getData()?has_content >
227 <#assign imagem = il.element("dynamic-content").getData()?eval />
228 <#assign imagensArray += [imagem] />
229 </#if>
230 </#if>
231
232 <#if "maisinformacaoFicheiro" == il.attributeValue("name")>
233 <#assign ficheiro = il.element("dynamic-content").getData() />
234 <#if ficheiro?has_content>
235 <#assign ficheiro = ficheiro?eval />
236 <#assign ficheirosArray += ["/c/document_library/get_file?uuid=" + ficheiro.uuid + "&groupId=" + ficheiro.groupId + "|" + ficheiro.title] />
237 </#if>
238 </#if>
239
240
241 <#if "telefone" == il.attributeValue("name")>
242 <#if il.element("dynamic-content").getData()?has_content>
243 <#assign telefonesArray += [il.element("dynamic-content").getData()] />
244 </#if>
245 </#if>
246
247 <#if "email" == il.attributeValue("name")>
248 <#if il.element("dynamic-content").getData()?has_content>
249 <#assign emailsArray += [il.element("dynamic-content").getData()] />
250 </#if>
251 </#if>
252
253 <#if "site" == il.attributeValue("name")>
254 <#if il.element("dynamic-content").getData()?has_content>
255 <#assign sitesArray += [il.element("dynamic-content").getData()] />
256 </#if>
257 </#if>
258
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 </#list>
267</#list>
268
269
270<div class="container-fluid">
271
272 <div class="container">
273
274 <div class="row">
275 <div class="col-12">
276 <nav class="breadcrumb-nav">
277 <ul class="breadcrumb-ul list-unstyled list-inline">
278 <li class="breadcrumb-element list-inline-item"><a href="/"><i class="fa fa-home"></i></a></li>
279 <li class="breadcrumb-element list-inline-item"><a href="/parceiros">Parceiros</a></li>
280 <li class="breadcrumb-element list-inline-item active">${titulo}</li>
281 </ul>
282 </nav>
283 </div>
284 <div class="col-md-8">
285
286 <section id="campaign">
287
288 <div class="row conteudo">
289 <div class="col-md-12">
290 <h1>${titulo}</h1>
291 <h2>${subtitulo}</h2>
292 <#if data?has_content >
293 <div class="data-criacao">
294 <span><i class="fas fa-clock"></i>${data}</span>
295 </div>
296 </#if>
297 </div>
298 </div>
299 <div class="row">
300 <div class="col-6 offset-3">
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"
326 fileVersion=imagemFileEntry.getFileVersion()
327 alt="${item.alt}"/>
328 </div>
329 </#list>
330 </div>
331
332 <a class="carousel-control-prev" href="#carouselIndicators" role="button"
333 data-slide="prev">
334 <span class="carousel-control-prev-icon" aria-hidden="true"></span>
335 <span class="sr-only">Previous</span>
336 </a>
337 <a class="carousel-control-next" href="#carouselIndicators" role="button"
338 data-slide="next">
339 <span class="carousel-control-next-icon" aria-hidden="true"></span>
340 <span class="sr-only">Next</span>
341 </a>
342 </div>
343 </div>
344
345 </div>
346
347 <div class="row">
348 <div class="col-12">
349 <div class="corpoDoTexto">
350 ${corpoDoTexto}
351 </div>
352 </div>
353 </div>
354 <#if ficheirosArray?has_content>
355
356 <div class="row conteudo">
357 <div class="col-12">
358 <h3>Mais Informações</h3>
359 </div>
360 <div class="col-12">
361 <ul>
362 <#list ficheirosArray as item>
363 <li><a class="verde" target="_blank"
364 href="${item?split("|")?first}">${item?split("|")?last}</a>
365 </li>
366 </#list>
367 </ul>
368 </div>
369 </div>
370
371 </#if>
372
373 <#if telefonesArray?has_content || emailsArray?has_content || sitesArray?has_content || redesSociaisArray?has_content>
374 <div class="conteudo">
375
376 <h3>Contatos</h3>
377
378
379 <#if telefonesArray?has_content>
380 <div class="info-contato">
381 <div class="row">
382 <div class="col-md-2">
383 <b>Telefone</b>
384 </div>
385 <div class="col-md-10">
386 <#list telefonesArray as item>
387 <p>${item}</p>
388 </#list>
389 </div>
390 </div>
391 </div>
392 </#if>
393
394 <#if emailsArray?has_content>
395 <div class="info-contato">
396 <div class="row">
397 <div class="col-md-2">
398 <b>Email</b>
399 </div>
400 <div class="col-md-10">
401 <#list emailsArray as item>
402 <p>${item}</p>
403 </#list>
404 </div>
405 </div>
406 </div>
407 </#if>
408
409 <#if sitesArray?has_content>
410 <div class="info-contato">
411 <div class="row">
412 <div class="col-md-2">
413 <b>Site</b>
414 </div>
415 <div class="col-md-10">
416
417 <#list sitesArray as item>
418 <p><a class="verde" href="${item}">${item}</a></p>
419 </#list>
420 </div>
421 </div>
422 </div>
423 </#if>
424
425 <#if redesSociaisArray?has_content>
426 <div class="info-contato">
427 <div class="row">
428 <div class="col-md-2">
429 <b>Redes Sociais</b>
430 </div>
431 <div class="col-md-10">
432 <#list redesSociaisArray as item>
433 <#if item?contains("linked")>
434 <a href="${item}"><i
435 class="fab fa-linkedin fa-2x"></i></a>
436 </#if>
437 <#if item?contains("facebook")>
438 <a href="${item}"><i
439 class="fab fa-facebook-square fa-2x"></i></a>
440 </#if>
441 <#if item?contains("twitter")>
442 <a href="${item}"><i
443 class="fab fa-twitter-square fa-2x"></i></a>
444 </#if>
445 <#if item?contains("youtube")>
446 <a href="${item}"><i
447 class="fab fa-youtube-square text-danger fa-2x"></i></a>
448 </#if>
449 <#if item?contains("instagram")>
450 <a href="${item}"><i
451 class="fab fa-instagram-square fa-2x"></i></a>
452 </#if>
453 </#list>
454 </div>
455 </div>
456 </div>
457 </#if>
458
459 </#if>
460
461 <div class="col-12 text-right">
462 <p style="color:#9e9797">Atualizado
463 em: ${ article.getModifiedDate()?string["dd/MM/yyyy"]}</p>
464 </div>
465
466 <div class="a2a_kit a2a_kit_size_32 a2a_default_style"
467 data-a2a-icon-color = "transparent, black">
468 <a class="a2a_button_facebook"></a>
469 <a class="a2a_button_twitter"></a>
470 <a class="a2a_button_whatsapp"></a>
471 <a class="a2a_button_facebook_messenger"></a>
472 <a class="a2a_button_email"></a>
473 <a class="a2a_button_copy_link"></a>
474 <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
475 </div>
476
477 <#if assetEntry.getTags()?has_content>
478 <div class="col-12 mt-4">
479 <#list assetEntry.getTags() as tag>
480 <a href="/pesquisa?q=${tag.name}" class="badge badge-pill badge-silver p-2">${tag.name}</a>
481 </#list>
482 </div>
483 </#if>
484
485 <@liferay_util["html-top"]>
486 <script crossorigin="anonymous" src="${themeDisplay.getPortalURL()}/documents/20123/259580/fontawesome.js"></script>
487 <script src="${themeDisplay.getPortalURL()}/documents/20123/259580/page.js"></script>
488 <meta property="og:title" content="${titulo}" />
489 <meta property="og:description" content="${subtitulo}" />
490 <meta property="og:type" content="article" />
491 <meta property="og:locale" content="${locale}" />
492 <meta property="og:site_name" content="${company.getName()}" />
493 <meta property="og:url" content="${themeDisplay.getPortalURL() + themeDisplay.getURLCurrent()}">
494 <#if tagsArray?has_content>
495 <meta property="article:tag" content="${tags?join(",")}" />
496 </#if>
497
498 <#if shareImgFileEntry??>
499 <meta property="og:image" itemprop="image" content="${themeDisplay.getURLPortal()}/o/adaptive-media/image/${shareImgFileEntry.getFileEntryId()}/thumbnail-600x0/${shareImgFileEntry.getFileName()}" />
500 </#if>
501 </@>
502 </div>
503
504
505 </section>
506 </div>
507
508 <div class="col-md-4">
509 <#if currentArticleRelatedLinks?has_content>
510 <aside id="relatedCampaign">
511 <div class="container-fluid">
512 <div class="container">
513 <h2>Outras Campanhas</h2>
514 <div class="row">
515 <#list currentArticleRelatedLinks as related>
516 <#assign assertRelated = assetEntryService.getEntry(related.getEntryId2()) />
517 <#assign assetRendererRelated = assertRelated.getAssetRenderer() />
518 <#assign articleRelated = assetRendererRelated.getArticle() />
519 <#assign documentRelated = saxReaderUtil.read(articleRelated.getContent()) />
520 <#assign rootElementRelated = documentRelated.getRootElement() />
521 <#assign assetRelatedUrlTitle = articleRelated.getUrlTitle(locale) />
522
523 <#assign imagemURLRelated = "" />
524 <#assign tituloRelated = "" />
525 <#assign subtituloRelated = "" />
526
527 <#list rootElementRelated.elements() as el>
528 <#list el.elements() as il>
529 <#if "imagensLink" == il.attributeValue("name") && il.attributeValue("name")?has_content>
530 <#assign imagemURLRelated = il.element("dynamic-content").getData()?eval />
531 </#if>
532
533 <#if "titulo" == il.attributeValue("name") && il.attributeValue("name")?has_content>
534 <#assign tituloRelated = il.element("dynamic-content").getData() />
535 </#if>
536
537 <#if "subtitulo" == il.attributeValue("name") && il.attributeValue("name")?has_content>
538 <#assign subtituloRelated = il.element("dynamic-content").getData() />
539 </#if>
540
541 </#list>
542 </#list>
543
544 <div class="col-md-12">
545 <div class="card"
546 style="background-color: white;">
547 <#if imagemURLRelated?has_content>
548 <@adaptive_media_image["img"] class="card-img-top"
549 fileVersion=dlAppServiceUtil.getFileEntry(imagemURLRelated.fileEntryId?number).getFileVersion()
550 alt="${imagemURLRelated.alt}" />
551 </#if>
552 <div class="card-body" style="color: #3B3B3B">
553 <p class="card-text card-text-title verde"> ${tituloRelated}</p>
554 <br/>
555 <p class="card-text card-text-subtitle"> ${subtituloRelated}</p>
556 <a href="/campanhas/${assetRelatedUrlTitle}"
557 class="stretched-link"></a>
558 </div>
559
560 </div>
561 </div>
562 </#list>
563 </div>
564 </div>
565 </div>
566 </aside>
567 </#if>
568 </div>
569 </div>
570 </div>
571
572</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 .