Události

Navigace kategoriemi

Agregátor obsahu

Při zpracování šablony došlo k chybě.
The string doesn't match the expected date/time/date-time format. The string to parse was: "". The expected format was: "ISO 8601 (subset) date".
The nested reason given follows:
The value didn't match the expected pattern: (-?[0-9]{4,})-([0-9]{2})-([0-9]{2}) or (-?[0-9]{4,}?)([0-9]{2})([0-9]{2})

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #local startWithDelay = dateDiff(star...  [in template "20116#20152#227094" in function "getEventEntries" at line 124, column 21]
----
1<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")/> 
2 
3<#assign 
4    currMonth = "" 
5    currYear = "" 
6    eventEntries = getEventEntries() 
7/> 
8 
9<div class="ponsse-events events-full"> 
10    <#list eventEntries?sort_by("start") as event> 
11        <#if validator.isNotNull(event.start)> 
12            <#assign 
13                startDate = dateUtil.parseDate("yyyy-MM-dd", event.start, locale) 
14                nextYear = startDate?string('yyyy') 
15                nextMonth = startDate?string('MM') 
16            /> 
17        </#if> 
18 
19        <#if (nextMonth != currMonth || (nextYear != currYear))> 
20            <#assign 
21                currMonth = nextMonth 
22                currYear = nextYear 
23            /> 
24            <div class="currentMonth"> 
25            <@liferay_ui["message"] key="ponsse.month.${currMonth}"/>, ${currYear}</div> 
26        </#if> 
27 
28        <div class="event-item"> 
29            <@getEditIcon event/> 
30            <a href="${event.viewURL}" class="event-link"> 
31                <div class="date"> 
32                    ${dateUtil.getDate(startDate, "dd.MM.yyyy", locale)} <#if startTime?has_content>- ${startTime}</#if> 
33                </div> 
34                <div class="event-type"> 
35                    <#if (event.eventType?has_content)> 
36                        <span>${event.eventType}</span> 
37                    </#if> 
38                </div> 
39                <div class="event-title">${event.entryTitle}</div> 
40                <div class="location"> 
41                    <#if event.location?has_content> 
42                        ${event.location} 
43                    </#if> 
44                </div> 
45            </a> 
46        </div> 
47    <#else> 
48        <#if !themeDisplay.isSignedIn()> 
49            ${renderRequest.setAttribute("PORTLET_CONFIGURATOR_VISIBILITY", true)} 
50        </#if> 
51 
52        <div class="alert alert-info"> 
53            <@liferay_ui["message"] key="there-are-no-results" /> 
54        </div> 
55    </#list> 
56</div> 
57 
58<#macro getEditIcon entry> 
59    <div class="pull-right"> 
60        <#if entry.allowEdit> 
61            <#if validator.isNotNull(entry.editPortletURL)> 
62                <#local title = languageUtil.format(locale, "edit-x", entry.entryTitle, false) /> 
63                <@liferay_ui["icon"] 
64                cssClass="icon-monospaced visible-interaction" 
65                icon="pencil" 
66                markupView="lexicon" 
67                message=title 
68                url="javascript:Liferay.Util.openWindow({id:'" + renderResponse.getNamespace() + "editAsset', title: '" + title + "', uri:'" + htmlUtil.escapeURL(entry.editPortletURL.toString()) + "'});" 
69                /> 
70            </#if> 
71        </#if> 
72    </div> 
73</#macro> 
74 
75<#function getEventEntries> 
76    <#local 
77        newEntries = [] 
78        now = .now?date?iso_utc 
79        redirectURL = renderResponse.createRenderURL() 
80    /> 
81    ${redirectURL.setParameter("mvcPath", "/add_asset_redirect.jsp")} 
82    ${redirectURL.setWindowState("pop_up")} 
83 
84    <#list entries as entry> 
85        <#local 
86            categories = entry.getCategories() 
87            assetRenderer = entry.getAssetRenderer() 
88            journalArticle = assetRenderer.getArticle() <#-- JournalArticleImpl --> 
89            document = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) 
90            rootElement = document.getRootElement() 
91            elements = rootElement.elements() 
92 
93            link = "" 
94            location = "" 
95            start = "" 
96            eventType = "" 
97            displayLocale = "" 
98            startWithDelay = "" 
99            endWithDelay = "" 
100            renderEvent = false 
101        /> 
102 
103        <#if categories?has_content> 
104            <#list categories as cat> 
105                <#if (cat.getVocabularyId()?long == 246344)> 
106                    <#local displayLocale = cat.getName()/> 
107                </#if> 
108                <#if (cat.getVocabularyId()?long == 227201)> 
109                    <#local eventType = cat.getTitle(locale)/> 
110                </#if> 
111            </#list> 
112        </#if> 
113 
114        <#if (!displayLocale?has_content)||(displayLocale == locale)> 
115            <#list elements as element> 
116                <#if "link" == element.attributeValue("name")> 
117                    <#local link = element.element("dynamic-content").getText() /> 
118                </#if> 
119                <#if "location" == element.attributeValue("name")> 
120                    <#local location = element.element("dynamic-content").getText() /> 
121                </#if> 
122                <#if "start" == element.attributeValue("name")> 
123                    <#local start = element.element("dynamic-content").getText() /> 
124                    <#local startWithDelay = dateDiff(start?date('iso'),-3)> 
125                </#if> 
126                <#if "end" == element.attributeValue("name") && element.element("dynamic-content").getText()?has_content> 
127                    <#local end = element.element("dynamic-content").getText() /> 
128                    <#local endWithDelay = dateDiff(end?date('iso'),-3)> 
129                </#if> 
130            </#list> 
131 
132            <#if endWithDelay?has_content> 
133                <#local renderEvent = (now?date('iso') <= endWithDelay)> 
134            <#elseif startWithDelay?has_content> 
135                <#local renderEvent = (now?date('iso') <= startWithDelay)> 
136            </#if> 
137 
138            <#if renderEvent> 
139                <#local 
140                    viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, entry, !stringUtil.equals(assetLinkBehavior, "showFullContent"))?split("?")[0] 
141                    editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)!"" 
142                    entryJson = { 
143                        "entryTitle": htmlUtil.escape(assetRenderer.getTitle(locale)), 
144                        "start": start, 
145                        "viewURL": viewURL, 
146                        "allowEdit": assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker()), 
147                        "editPortletURL": editPortletURL, 
148                        "eventType": eventType, 
149                        "location": location 
150
151                    newEntries = newEntries + [ entryJson ] 
152                /> 
153            </#if> 
154        </#if> 
155    </#list> 
156    <#return newEntries> 
157</#function> 
158 
159<#function dateDiff date days> 
160    <#local timeInMilliseconds = (1000 * 60 * 60 * 24 * days) > 
161    <#local aDate = date?long - timeInMilliseconds?long> 
162    <#return aDate?number_to_date> 
163</#function>