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
تم تعديل منذ 3 سنوات.
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
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 .