Official website of World Wetlands Day by Ramsar - 2 February - WWD2023
World Wetlands Day Messages and Statements
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> renderer.getDisplayDate [in template "10157#10197#1137899" at line 47, column 33]
----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to 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 Date = renderer.getDisplayDate() [in template "10157#10197#1137899" at line 47, column 17]
----
1<#-- ADT - Story List -->
2<#if entries?has_content>
3 <#setting locale = locale.toString() />
4 <#setting datetime_format = "dd MMMM yyyy" />
5 <#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()>
6 <#assign themeDisplay = serviceContext.getThemeDisplay() />
7 <#assign showFullContent = assetLinkBehavior != "showFullContent" />
8 <#assign cpt=0 />
9 <div class="row">
10 <#list entries as curEntry>
11
12 <#assign renderer = curEntry.getAssetRenderer() />
13 <#assign className = renderer.getClassName() />
14 <#assign userName = stringUtil.split(renderer.getUserName(), ' ') />
15
16 <#if renderer.getArticle()?? && className == "com.liferay.journal.model.JournalArticle" >
17 <#assign journalArticle = renderer.getArticle() />
18
19 <#assign document = saxReaderUtil.read(journalArticle.getContent()) />
20 <#assign rootElement = document.getRootElement() />
21 <#assign resourcePrimKey = journalArticle.getResourcePrimKey()/>
22 <#-- StoryTitle -->
23 <#assign StoryTitle = "" />
24 <#assign xPathSelectorItem = saxReaderUtil.createXPath("dynamic-element[@name='StoryTitle']") >
25 <#if xPathSelectorItem.selectSingleNode(rootElement)?? >
26 <#assign ItemNode = xPathSelectorItem.selectSingleNode(rootElement).selectSingleNode("dynamic-content") >
27 <#assign StoryTitle = ItemNode.getStringValue() >
28 </#if>
29
30 <#-- Text -->
31 <#assign Text = "" />
32 <#assign xPathSelectorItem = saxReaderUtil.createXPath("dynamic-element[@name='Description']") >
33 <#if xPathSelectorItem.selectSingleNode(rootElement)?? >
34 <#assign ItemNode = xPathSelectorItem.selectSingleNode(rootElement).selectSingleNode("dynamic-content") >
35 <#assign Text = ItemNode.getStringValue() >
36 </#if>
37
38 <#-- Image -->
39 <#assign Image = "" />
40 <#assign xPathSelectorItem = saxReaderUtil.createXPath("dynamic-element[@name='Image']") >
41 <#if xPathSelectorItem.selectSingleNode(rootElement)?? >
42 <#assign ItemNode = xPathSelectorItem.selectSingleNode(rootElement).selectSingleNode("dynamic-content") >
43 <#assign Image = ItemNode.getStringValue() >
44 </#if>
45
46 <#-- Date -->
47 <#assign Date = renderer.getDisplayDate() />
48 <#assign xPathSelectorItem = saxReaderUtil.createXPath("dynamic-element[@name='Date']") >
49 <#if xPathSelectorItem.selectSingleNode(rootElement)?? >
50 <#assign ItemNode = xPathSelectorItem.selectSingleNode(rootElement).selectSingleNode("dynamic-content") >
51 <#assign Date = ItemNode.getStringValue() />
52 <#assign Date = dateUtil.parseDate("yyyy-MM-dd", Date, locale) />
53 </#if>
54
55 <#-- View URL -->
56 <#assign viewURL= "${themeDisplay.getScopeGroup().getDisplayURL(themeDisplay)}/story/-/detail/${journalArticle.getUrlTitle()}?redirect=${themeDisplay.getURLCurrent()}"/>
57 <#if cpt != 0 && cpt % 3 == 0>
58 </div>
59 <div class="row">
60 </#if>
61
62 <div class="col-md-4">
63 <div class="block-white">
64 <div class="story-list-block">
65 <#if Image!="" >
66 <figure>
67 <a href="${viewURL}" class="img">
68 <img class="story-list-img" src="${Image}" alt="Image" role="presentation" />
69 <span>${languageUtil.get(locale, "story-list.more")}</span>
70 </a>
71 </figure>
72 </#if>
73 <div class="story-list-content">
74 <h4 class="story-list-title"><a href="${viewURL}">${StoryTitle}</a></h4>
75 <div class="story-list-date"><a href="${viewURL}">${Date?datetime}</a></div>
76 <div class="story-list-description">
77 <a href="${viewURL}">
78 ${stringUtil.shorten(Text,150)}
79
80 <p><strong>${languageUtil.get(locale, "story-list.more")}</strong></p>
81 </a>
82 </div>
83 </div>
84 </div>
85 </div>
86 </div>
87 <#assign cpt = cpt+1 />
88 </#if>
89 </#list>
90 </div>
91</#if>
"Pitch for the Grant" 2023
Convocatoria de ideas de proyectos en Humedales
Enviaz solicitudes del 2 de febrero al 2 de marzo de 2023 para tener la opportunidad de recebir 10'000 euros proporcionados por Danone.

Humedales
Zona de la superficie terrestre que está temporal o permanentemente inundada.
Humedales continentales:
Marismas, lagos, ríos, llanuras de inundación, tuberas y pantanos
Humedales costeros:
Marismas de agua salada, estuarios, manglares, lagunas y arrecifes de coral
Humedales artificiales:
Estanques piscícolas, arrozales y salinas

Se ha producido un error al procesar la plantilla.
Java method "jdk.proxy3.$Proxy149.getFolder(long, long, String)" threw an exception when invoked on jdk.proxy3.$Proxy149 object "com.liferay.portlet.documentlibrary.service.impl.DLFolderLocalServiceImpl@6955bf53"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign folderId = dLFolderLocalServi... [in template "10157#10197#1137782" at line 6, column 1]
----
1<#assign groupLocalServiceUtil = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")>
2<#assign dLFolderLocalServiceUtil = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFolderLocalService")>
3<#assign dLFileEntryLocalServiceUtil = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
4
5<#assign groupId = themeDisplay.getScopeGroup().getGroupId() />
6<#assign folderId = dLFolderLocalServiceUtil.getFolder(groupId, 0, FolderName.getData()).getFolderId() />
7<#assign files = dLFileEntryLocalServiceUtil.getFileEntries(groupId, folderId) />
8
9<#assign size = files?size />
10
11<script>
12 var images=[];
13 <#assign imageAdd= "/o/wwday-theme/images/add.png" />
14 <#assign cpt = 0 />
15 <#list files as fileEntry >
16 images[${cpt}]="/documents/${groupId}/${folderId}/${fileEntry.getTitle()}/${fileEntry.getUuid()}";
17 <#assign cpt=cpt+1 />
18 </#list>
19</script>
20
21
22<div class="HomeGetInvolved imageTable">
23 <h1 style="font-weight:700">${TableTitle.getData()}</h1>
24
25 <table style="width:100%" border="0">
26 <tr>
27 <td colspan="2" rowspan="2" style="width:33.3333%;background-image:url('${getRandomURL(files, 0.12)}')" id="img-1" > </td>
28 <td style="width:16.6666%;background-image:url('${getRandomURL(files, 0.93)}')" id="img-2" > </td>
29 <td style="width:16.6666%;background-image:url('${getRandomURL(files, 0.45)}')" id="img-3"> </td>
30 <td style="width:16.6666%;background-image:url('${getRandomURL(files, 0.67)}')" id="img-4"> </td>
31 <td style="width:16.6666%;background-image:url('${getRandomURL(files, 0.31)}')" id="img-5"> </td>
32 </tr>
33 <tr>
34 <td style="width:16.6666%;background-image:url('${imageAdd}')"><a href="${themeDisplay.getScopeGroup().getDisplayURL(themeDisplay)+AddPhotoURL.getData()}"><img src="${imageAdd}" ></a></td>
35 <td colspan="2" rowspan="2" style="width:33.3333%;background-image:url('${getRandomURL(files, 0.24)}')" id="img-6"> </td>
36 <td style="width:16.6666%;background-image:url('${getRandomURL(files, 0.53)}')" id="img-7"> </td>
37 </tr>
38 <tr>
39 <td style="width:16.6666%;background-image:url('${getRandomURL(files, 0.39)}')" id="img-8"> </td>
40 <td style="width:16.6666%;background-image:url('${getRandomURL(files, 0.83)}')" id="img-9"> </td>
41 <td style="width:16.6666%;background-image:url('${getRandomURL(files, 0.11)}')" id="img-10"> </td>
42 <td style="width:16.6666%;background-image:url('${getRandomURL(files, 0.49)}')" id="img-11"> </td>
43 </tr>
44 </table>
45
46 <br><a href="${LinkURL.getData()}" class="btn btn-default">${LinkTitle.getData()}</a>
47</div>
48
49
50<script>
51 function changeAllImages(){
52 for( var i=1; i<12; i++){
53 var index = (i % ${size});
54 $("#img-"+i).css("background-image","url('"+images[index]+"')");
55 $("#img-"+i).css("height",$("#img-"+i).width()+'px');
56 }
57 }
58
59 function changeImage(){
60 var i = Math.floor((Math.random() * 11) + 1);
61 var index = Math.floor((Math.random() * ${size}) + 1);
62 $("#img-"+i).fadeOut(500, function() {
63 $("#img-"+i).css("background-image","url('"+images[index]+"')");
64 }).fadeIn(400);
65 }
66 changeAllImages();
67 setInterval(changeImage, 4000);
68</script>
69<style>
70 .imageTable img{
71 width: 100%;
72
73 }
74 .imageTable td{
75 background-repeat:no-repeat;
76 background-size:cover;
77 padding: 2px;
78 background-position:center;
79 border: solid 2px #ffffff;
80 }
81</style>
82
83
84
85
86
87
88
89<#function getRandomURL files rnd>
90 <#assign nb = rand(1, files?size-1, rnd)>
91 <#assign cpt= 0>
92 <#list files as fileEntry >
93 <#if cpt == nb >
94 <#return "/documents/"+groupId+"/"+folderId+"/"+fileEntry.getTitle()+"/"+fileEntry.getUuid() />
95 </#if>
96 <#assign cpt = cpt +1 />
97 </#list>
98 <#return "" />
99</#function>
100
101<#function rand min max rnd>
102
103 <#local now = .now?long?c />
104 <#local randomNum = rnd +
105 ("0." + now?substring(now?length-1) + now?substring(now?length-2))?number />
106 <#if (randomNum > 1)>
107 <#assign _rand = randomNum % 1 />
108 <#else>
109 <#assign _rand = randomNum />
110 </#if>
111 <#return (min + ((max - min) * _rand))?round />
112</#function>


