Gewinnzahlen Adventskalender - Ratingen
Gewinnliste Adventskalender 2023
The string doesn't match the expected date/time/date-time format. The string to parse was: "". The expected format was: "dd.MM.y". The nested reason given follows: Unparseable date: "" ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign gewinnDatum = cellValue?trim?... [in template "10154#10194#50250808" at line 99, column 21] ----
1<#-- -------------------------------------------------------------------- -->
2
3<#-- Diese Funktion dient dazu eine Gewinliste für einen -->
4<#-- Adventskalender zu veröffentlichen -->
5<#-- Sie gibt eine im Feld Gewinnzahlen als "/t" sepatierte Liste -->
6<#-- als Tabelle aus, wobei Zeieln, in denen im ersten Element ein -->
7<#-- in der Zukunft liegendes Datum steht nut angezeigt werden. -->
8<#-- Zählfehler der Treffer korrigiert -->
9<#-- 01.12.2020 Armin J. Gaul -->
10
11<#-- -------------------------------------------------------------------- -->
12
13
14<#setting locale="de_DE">
15<#setting time_zone="Europe/Berlin">
16
17<#assign
18 httpComponentsUtil = staticUtil["com.liferay.portal.kernel.util.HttpComponentsUtil"]
19 vergleichsDatum = .now?datetime
20 gewinnTabelle = Gewinnzahlen.getData()
21 url= themeDisplay.getURLCurrent()
22 basisurl= themeDisplay.getURLCurrent()?keep_before("?")
23
24 suche = false
25 quotation = false
26 suchstring = httpComponentsUtil.getParameter(url, "search", false)
27
28 <#-- START übergebenes Datum nutzen -->
29 anzahlTreffer = 0
30 anzeigedatumtext = httpComponentsUtil.getParameter(url, "date", false)
31/>
32
33<#if anzeigedatumtext?? && anzeigedatumtext?matches('\\d\\d\\.\\d\\d\\.\\d\\d\\d\\d') >
34 <#assign anzeigedatum = anzeigedatumtext?date>
35</#if>
36<#if anzeigedatumtext?? && anzeigedatumtext == "today">
37 <#assign anzeigedatum = .now?date>
38</#if>
39<#if ZeitversatzVeröffentlichung?? >
40 <#assign stundenOffset = ZeitversatzVeröffentlichung.getData() >
41<#else>
42 <#assign stundenOffset = 0 >
43</#if>
44<#-- ENDE übergebenes Datum nutzen -->
45
46
47<div class="article article_main">
48 <div class="article_headline">
49 <h2 id="tablestart">
50 ${.vars['reserved-article-title'].data}
51 </h2>
52 </div>
53
54 <p style="text-align: right;"><input id="neuerSuchstring" value="${suchstring}" placeholder="Gewinn suchen..." type="search"></p>
55
56
57 <#if suchstring != "" >
58 <#assign suche = true >
59 <p>Suchergebnis für Suchbegriff "${suchstring}"</p>
60 </#if>
61
62 <table width="100%" border="1" cellpadding="5" cellspacing="0">
63 <#list gewinnTabelle?split("\n") as lineValue>
64
65
66
67 <#if !quotation>
68 <#assign
69 istDatum = false
70 treffer = false
71 lineText="<tr>"
72 />
73 </#if>
74
75 <#list lineValue?split("\t") as cellValue>
76
77 <#list cellValue?replace("\"","")?split(",") as testWert >
78 <#attempt>
79 <#if testWert?trim != "" && testWert?trim?replace(suchstring,"","r") == "" >
80 <#assign treffer = true >
81 </#if>
82 <#recover>
83 </#attempt>
84 </#list>
85
86 <#if cellValue?index == 0 && !quotation>
87 <#if cellValue?trim?replace("\\d\\d\\.\\d\\d\\.\\d\\d\\d\\d","","r") == "" >
88 <#assign istDatum = true>
89 <#else>
90 <#-- Überschrift -->
91 <#assign anzeigen = true >
92 <#assign treffer = true >
93 </#if>
94 </#if>
95
96 <#if (cellValue?index == 0) && istDatum && !quotation>
97
98
99 <#assign gewinnDatum = cellValue?trim?date + ', ${stundenOffset}:01:00'>
100 <#assign lineText=lineText+"<td>"+gewinnDatum?date+"</td>" >
101 <#assign anzeigen = (gewinnDatum?datetime?iso_utc?date("yyyy-MM-dd'T'HH:mm:ss") <= vergleichsDatum?datetime?iso_utc?date("yyyy-MM-dd'T'HH:mm:ss")) >
102
103 <#if anzeigedatum?? && !anzeigedatum?date?matches(gewinnDatum?date)>
104 <#assign anzeigen = false >
105 </#if>
106
107
108 <#else>
109
110 <#if !quotation>
111 <#assign lineText=lineText+"<td>">
112 </#if>
113
114 <#if !istDatum && !quotation>
115 <#assign lineText=lineText+"<b>"+cellValue?replace("\"\"",""")?replace("\"","")?trim+"</b>">
116 <#else>
117 <#assign lineText=lineText+cellValue?replace("\"\"",""")?replace("\"","")?trim>
118 </#if>
119
120
121 <#--
122 <#if cellValue?contains("\"") >
123 <#if !quotation>
124 <#assign quotation=true >
125 <#else>
126 <#assign quotation=false >
127 </#if>
128 </#if>
129 -->
130
131 <#if cellValue?replace("\"\"","")?starts_with("\"") && !quotation >
132 <#assign quotation=true >
133 </#if>
134
135 <#if cellValue?replace("\"\"","")?ends_with("\"") && quotation >
136 <#assign quotation=false >
137 </#if>
138
139
140 <#if !quotation>
141 <#assign lineText=lineText+"</td>">
142 </#if>
143
144
145
146 </#if>
147 </#list>
148
149 <#if !quotation>
150 <#assign lineText=lineText+"</tr>">
151 <#else>
152 <#assign lineText=lineText+"<br>">
153 </#if>
154
155 <#if anzeigen && (!suche || treffer) && !quotation>
156 ${lineText}
157 <#if istDatum>
158 <#assign anzahlTreffer = anzahlTreffer + 1 >
159 </#if>
160 </#if>
161 </#list>
162 </table>
163
164 <#if anzahlTreffer == 0 >
165 <#if !suche>
166 <div class="portlet-msg-alert"><h1>Aktuell sind zu diesem Datum noch keine Gewinne veröffentlicht,
167 weshalb wir Sie noch um ein wenig Geduld bitten. Vielen Dank!</h1></div>
168 <#else>
169 <div class="portlet-msg-alert"><h1>Aktuell sind zu dieser Suche keine Gewinne veröffentlicht.</h1>
170 </div>
171 </#if>
172 </#if>
173
174</div>
175<p>
176</p>
177<script>
178 document.getElementById("neuerSuchstring")
179 .addEventListener("keyup", function (event) {
180 event.preventDefault();
181 if (event.keyCode === 13) {
182 doSearch();
183 }
184 });
185
186 function doSearch() {
187 str = document.getElementById("neuerSuchstring").value;
188 window.location.replace("${basisurl}" + "?search=" + str + "#tablestart");
189 }
190
191</script>
Lions Cookie Disclaimer
Cookie-Einstellungen
Auf unserer Webseite setzen wir Cookies ein, um Informationen über Ihren Besuch zu speichern.
Cookies, darunter die von Drittanbietern, helfen uns, unsere Website zu verbessern, um Ihren Besuch auf unserer Webseite zum einen so komfortabel wie möglich zu gestalten, und zum anderen Ihnen auf Ihre Interessen zugeschnittene Angebote zu unterbreiten.
Detaillierte Informationen zu unserem Einsatz von Cookies erhalten Sie durch einen Klick auf „Details anzeigen“ oder in unserer Datenschutzerklärung – hier geben wir Ihnen auch Hinweise, wie Sie die Einstellungen gemäß Ihren Vorstellungen verwalten können. Unsere Kontaktdaten finden Sie im Impressum.
Notwendig
Diese Cookies sind für den Betrieb der Seite unbedingt notwendig.
Externe Inhalte
Diese Option ermöglicht es Ihnen, extern eingebundene Inhalte z.B. von Youtube unmittelbar abrufen zu können.