Gewinnzahlen Adventskalender - Ratingen
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 92, 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<#assign vergleichsDatum = .now?datetime>
17<#assign gewinnTabelle = Gewinnzahlen.getData() >
18<#assign url= themeDisplay.getURLCurrent() >
19<#assign basisurl= themeDisplay.getURLCurrent()?keep_before("?") >
20
21<#assign suche = false >
22<#assign quotation = false >
23<#assign suchstring = httpUtil.getParameter(url, "search", false)>
24
25<#-- START übergebenes Datum nutzen -->
26<#assign anzahlTreffer = 0 >
27<#assign anzeigedatumtext = httpUtil.getParameter(url, "date", false)>
28<#if anzeigedatumtext?? && anzeigedatumtext?matches('\\d\\d\\.\\d\\d\\.\\d\\d\\d\\d') >
29 <#assign anzeigedatum = anzeigedatumtext?date>
30</#if>
31<#if anzeigedatumtext?? && anzeigedatumtext == "today">
32 <#assign anzeigedatum = .now?date>
33</#if>
34<#if ZeitversatzVeröffentlichung?? >
35 <#assign stundenOffset = ZeitversatzVeröffentlichung.getData() >
36<#else>
37 <#assign stundenOffset = 0 >
38</#if>
39<#-- ENDE übergebenes Datum nutzen -->
40
41
42<div class="article article_main">
43 <div class="article_headline">
44 <h2 id="tablestart">
45 ${.vars['reserved-article-title'].data}
46 </h2>
47 </div>
48
49 <p style="text-align: right;"><input id="neuerSuchstring" value="" placeholder="Gewinn suchen..." type=search / ></p>
50
51
52 <#if suchstring != "" >
53 <#assign suche = true >
54 Suchergebnis für Suchbegriff "${suchstring}"
55 </#if>
56
57 <table width="100%" border="1" cellpadding="5" cellspacing="0">
58 <#list gewinnTabelle?split("\n") as lineValue>
59
60
61
62 <#if !quotation>
63 <#assign istDatum = false>
64 <#assign treffer = false>
65 <#assign lineText="<tr>" >
66 </#if>
67
68 <#list lineValue?split("\t") as cellValue>
69
70 <#list cellValue?replace("\"","")?split(",") as testWert >
71 <#attempt>
72 <#if testWert?trim != "" && testWert?trim?replace(suchstring,"","r") == "" >
73 <#assign treffer = true >
74 </#if>
75 <#recover>
76 </#attempt>
77 </#list>
78
79 <#if cellValue?index == 0 && !quotation>
80 <#if cellValue?trim?replace("\\d\\d\\.\\d\\d\\.\\d\\d\\d\\d","","r") == "" >
81 <#assign istDatum = true>
82 <#else>
83 <#-- Überschrift -->
84 <#assign anzeigen = true >
85 <#assign treffer = true >
86 </#if>
87 </#if>
88
89 <#if (cellValue?index == 0) && istDatum && !quotation>
90
91
92 <#assign gewinnDatum = cellValue?trim?date + ', ${stundenOffset}:01:00'>
93 <#assign lineText=lineText+"<td>"+gewinnDatum?date+"</td>" >
94 <#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")) >
95
96 <#if anzeigedatum?? && !anzeigedatum?date?matches(gewinnDatum?date)>
97 <#assign anzeigen = false >
98 </#if>
99
100
101 <#else>
102
103 <#if !quotation>
104 <#assign lineText=lineText+"<td>">
105 </#if>
106
107 <#if !istDatum && !quotation>
108 <#assign lineText=lineText+"<b>"+cellValue?replace("\"\"",""")?replace("\"","")?trim+"</b>">
109 <#else>
110 <#assign lineText=lineText+cellValue?replace("\"\"",""")?replace("\"","")?trim>
111 </#if>
112
113
114 <#--
115 <#if cellValue?contains("\"") >
116 <#if !quotation>
117 <#assign quotation=true >
118 <#else>
119 <#assign quotation=false >
120 </#if>
121 </#if>
122 -->
123
124 <#if cellValue?replace("\"\"","")?starts_with("\"") && !quotation >
125 <#assign quotation=true >
126 </#if>
127
128 <#if cellValue?replace("\"\"","")?ends_with("\"") && quotation >
129 <#assign quotation=false >
130 </#if>
131
132
133 <#if !quotation>
134 <#assign lineText=lineText+"</td>">
135 </#if>
136
137
138
139 </#if>
140 </#list>
141
142 <#if !quotation>
143 <#assign lineText=lineText+"</tr>">
144 <#else>
145 <#assign lineText=lineText+"<br>">
146 </#if>
147
148 <#if anzeigen && (!suche || treffer) && !quotation>
149 ${lineText}
150 <#if istDatum>
151 <#assign anzahlTreffer = anzahlTreffer + 1 >
152 </#if>
153 </#if>
154 </#list>
155 </table>
156
157 <#if anzahlTreffer == 0 >
158 <#if !suche>
159 <div class="portlet-msg-alert"><h1>Aktuell sind zu diesem Datum noch keine Gewinne veröffentlicht, weshalb wir Sie noch um ein wenig Geduld bitten. Vielen Dank!</h1></div>
160 <#else>
161 <div class="portlet-msg-alert"><h1>Aktuell sind zu dieser Suche keine Gewinne veröffentlicht.</h1></div>
162 </#if>
163 </#if>
164
165</div>
166<p>
167</p>
168<script>
169 document.getElementById("neuerSuchstring")
170 .addEventListener("keyup", function(event) {
171 event.preventDefault();
172 if (event.keyCode === 13) {
173 doSearch();
174 }
175 });
176
177 function doSearch() {
178 str=document.getElementById("neuerSuchstring").value;
179 window.location.replace("${basisurl}"+"?search="+str+"#tablestart");
180 }
181
182</script>
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.