Frontpage banner Ponsse Studio Manager 2.0

Ponsse Products Carousel

Nejnovější technologie

NEJNOVĚJŠÍ TECHNOLOGIE VÍCE INFORMACÍ
NEJNOVĚJŠÍ TECHNOLOGIE VÍCE INFORMACÍ

Agregátor obsahu

Při zpracování šablony došlo k chybě.
Java method "com.liferay.portal.kernel.util.DateUtil_IW.parseDate(String, String, Locale)" threw an exception when invoked on com.liferay.portal.kernel.util.DateUtil_IW object "com.liferay.portal.kernel.util.DateUtil_IW@6bb1a178"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: eventDate = dateUtil.parseDate("yyyy-...  [in template "20116#20152#30915" in function "getEventEntries" at line 123, column 25]
----
1<#assign  
2    showEvents = 8 
3    count = 0  
4    dateFormat = "dd.MM.yyyy " 
5    eventsLink = themeDisplay.getThemeSetting("ponsse.events-link") 
6    homeName = portalUtil.getLayoutFriendlyURL(layout, themeDisplay)?keep_after_last("/") 
7    eventEntries = getEventEntries() 
8/> 
9 
10<div class="ponsse-events"> 
11    <div class="header"> 
12        <div class="title"><@liferay_ui["message"] key="ponsse.events" /></div> 
13        <div class="all-events-text"> 
14            <a href=${themeDisplay.getThemeSetting("ponsse.events-link")}> 
15                <i class="fas fa-arrow-right"></i> 
16                <@liferay_ui["message"] key="ponsse.view-all-events" /> 
17            </a> 
18        </div> 
19    </div> 
20 
21    <div class="content" id="ponsse-events-content"> 
22        <div class="arrow-left" id="ponsse-events-left-arrow" onclick="scrollEventsContent(false)"> 
23            <i class="fas fa-chevron-left"></i> 
24        </div> 
25        <div class="arrow-right" id="ponsse-events-right-arrow" onclick="scrollEventsContent(true)"> 
26            <i class="fas fa-chevron-right"></i> 
27        </div> 
28 
29        <#list eventEntries?sort_by("eventDate") as event> 
30            <#if (count < showEvents) > 
31                <div class="asset-abstract event-link"> 
32                    <@getEditIcon event/> 
33 
34                    <a href="${event.viewURL}"> 
35                        <div class="event-image"> 
36                            <img src="${event.imageURL}"/> 
37                        </div> 
38 
39                        <div class="event-details"> 
40                            <div class="event-title">${event.entryTitle}</div> 
41                            <span class="event-date"> 
42                                ${dateUtil.getDate(event.eventDate, dateFormat, locale)} 
43                            </span> 
44                        </div> 
45                    </a> 
46                </div> 
47                <#assign count = count + 1/> 
48                <#if (count == showEvents)><#break></#if> 
49            </#if> 
50        <#else> 
51            <#if !themeDisplay.isSignedIn()> 
52                ${renderRequest.setAttribute("PORTLET_CONFIGURATOR_VISIBILITY", true)} 
53            </#if> 
54 
55            <div class="alert alert-info"> 
56                <@liferay_ui["message"] key="there-are-no-results" /> 
57            </div> 
58        </#list> 
59    </div> 
60</div> 
61 
62<#macro getEditIcon entry> 
63    <div class="pull-right"> 
64        <#if entry.allowEdit> 
65            <#if validator.isNotNull(entry.editPortletURL)> 
66                <#local title = languageUtil.format(locale, "edit-x", entry.entryTitle, false) /> 
67                <@liferay_ui["icon"] 
68                cssClass="icon-monospaced visible-interaction" 
69                icon="pencil" 
70                markupView="lexicon" 
71                message=title 
72                url="javascript:Liferay.Util.openWindow({id:'" + renderResponse.getNamespace() + "editAsset', title: '" + title + "', uri:'" + htmlUtil.escapeURL(entry.editPortletURL.toString()) + "'});" 
73                /> 
74            </#if> 
75        </#if> 
76    </div> 
77</#macro> 
78 
79<#function getEventEntries> 
80    <#local 
81        newEntries = [] 
82        currentDate = dateUtil.newDate() 
83        now = .now?date?iso_utc 
84        redirectURL = renderResponse.createRenderURL() 
85    /> 
86    ${redirectURL.setParameter("mvcPath", "/add_asset_redirect.jsp")} 
87    ${redirectURL.setWindowState("pop_up")} 
88 
89    <#list entries as entry> 
90        <#local 
91            entry = entry 
92            categories = entry.getCategories() 
93            assetRenderer = entry.getAssetRenderer() 
94            journalArticle = assetRenderer.getArticle() 
95            structureKey = journalArticle.getDDMStructureKey() 
96            document = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) 
97            rootElement = document.getRootElement() 
98            elements = rootElement.elements() 
99 
100            eventDate = "" 
101            displayLocales = "" 
102            imageContent = "" 
103            startWithDelay = "" 
104            endWithDelay = "" 
105            renderEvent = false 
106        /> 
107 
108        <#if categories?has_content> 
109            <#list categories as cat> 
110                <#if (cat.getVocabularyId()?long == 246344)> 
111                    <#local displayLocales = cat.getName() + ", " + displayLocales/> 
112                </#if> 
113            </#list> 
114        </#if> 
115 
116        <#if ( !displayLocales?has_content || displayLocales?contains(locale) || ( stringUtil.equals("227085", structureKey) && displayLocales?contains("en_US") ) )> 
117            <#list elements as element> 
118                <#if "eventImage" == element.attributeValue("name")> 
119                    <#local imageContent = element.element("dynamic-content").getText() /> 
120                </#if> 
121                <#if "start" == element.attributeValue("name")> 
122                    <#local 
123                        eventDate = dateUtil.parseDate("yyyy-MM-dd", element.element("dynamic-content").getText(), locale) 
124                        startWithDelay = dateDiff(eventDate,-3) 
125                    /> 
126                </#if> 
127                <#if "end" == element.attributeValue("name")> 
128                    <#local endValue = element.element("dynamic-content").getText() /> 
129                    <#if ( endValue?has_content )> 
130                        <#local endWithDelay = dateDiff(endValue?date('iso'),-3) /> 
131                    </#if> 
132                </#if> 
133            </#list> 
134 
135            <#if endWithDelay?has_content> 
136                <#local renderEvent = (now?date('iso') <= endWithDelay)> 
137            <#elseif startWithDelay?has_content> 
138                <#local renderEvent = (now?date('iso') <= startWithDelay)> 
139            </#if> 
140 
141            <#if renderEvent> 
142                <#local 
143                    editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)!"" 
144                    entryJson = { 
145                        "entryTitle": htmlUtil.escape(entry.getTitle(locale)), 
146                        "eventDate": eventDate, 
147                        "viewURL": getViewUrl(entry), 
148                        "imageURL": getImageUrl(imageContent), 
149                        "allowEdit": assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker()), 
150                        "editPortletURL": editPortletURL 
151
152                    newEntries = newEntries + [ entryJson ] 
153                /> 
154            </#if> 
155        </#if> 
156    </#list> 
157  <#return newEntries> 
158</#function> 
159 
160<#function getViewUrl entry> 
161    <#local 
162        viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry.getAssetRenderer(), entry, !stringUtil.equals(assetLinkBehavior, "showFullContent")) 
163        newViewUrl = viewURL?split("?")[0]?replace("/wjLB97Rb0Lbu/", "/z0VqGisibkho/")?replace("/${homeName}/", "/${eventsLink}/") 
164    /> 
165    <#return newViewUrl> 
166</#function> 
167 
168<#function getImageUrl content> 
169    <#local imageURL = "/o/ponsse-theme/images/default-thumbnail-ponsse-304x171.jpg" /> 
170    <#if content?has_content> 
171        <#local 
172            imageUUID = jsonFactoryUtil.createJSONObject(content).getString("uuid") 
173            siteId =  themeDisplay.getSiteGroupId() 
174            imageURL = "/documents/${siteId}/${imageUUID}" 
175        /> 
176    </#if> 
177    <#return imageURL> 
178</#function> 
179 
180<#function dateDiff date days> 
181    <#assign timeInMilliseconds = (1000 * 60 * 60 * 24 * days) > 
182    <#assign aDate = date?long - timeInMilliseconds?long> 
183    <#return aDate?number_to_date> 
184</#function> 
185 
186<script> 
187        var cachebuster = Math.round(new Date().getTime() / 1000); 
188        var path = "/o/ponsse-theme/js/utils.js?cb=" + cachebuster; 
189        document.write("<script type='text/javascript' src='"+ path + "'><\/scr" + "ipt>"); 
190</script> 
191 
192<script> 
193    function hideArrowsEventArrows(e) { 
194        var target = e.target; 
195        var scrollWidth = target.scrollWidth; 
196        var offsetWidth = target.offsetWidth; 
197        var scrollLeft = target.scrollLeft; 
198        var scrollDistance = scrollWidth - offsetWidth; 
199        var scrollPosition = scrollDistance - scrollLeft; 
200        var leftArrow = document.getElementById('ponsse-events-left-arrow') 
201        var rightArrow = document.getElementById('ponsse-events-right-arrow') 
202 
203        if (scrollPosition === scrollDistance) { 
204            leftArrow.style.display = "none"; 
205        } else { 
206            leftArrow.style.display = "flex"; 
207
208        if (scrollPosition === 0) { 
209            rightArrow.style.display = "none"; 
210        } else { 
211            rightArrow.style.display = "flex"; 
212
213
214 
215    dragToScrollHorizontal('ponsse-events-content', 'event-link', function (e) { 
216        hideArrowsEventArrows(e); 
217    }) 
218 
219 
220    function scrollEventsContent(left) { 
221        var content = document.getElementById('ponsse-events-content'); 
222        smooth_scroll_to_horizontal(content, content.scrollLeft + 310 * (left ? 1 : -1), 400) 
223
224</script> 

Ponsse-frontpage-banner-split-1440-620

PONSSE SERVICES S Ponsse získáte kompletní a profesionální zákaznickou podporu VÍCE INFORMACÍ

ponsse-frontpage-video-banner-minimalistic

Ponsse-frontpage-banner-split

JSME RODINA PONSSE Ponsse je rodinný podnik s kořeny, které sahají hluboko na finský venkov. VÍCE INFORMACÍ

Agregátor obsahu

CTL_Frontpage

SOUSTŘEĎUJEME SE NA TĚŽBU ŘEZEM NA DÉLKU Metoda řezu na délku je moderní, k přírodě šetrná metoda těžby dřeva. VÍCE INFORMACÍ
SOUSTŘEĎUJEME SE NA TĚŽBU ŘEZEM NA DÉLKU Metoda řezu na délku je moderní, k přírodě šetrná metoda těžby dřeva. VÍCE INFORMACÍ

ponsse-frontpage-subscribe-banner

BUĎTE S PONSSE V KONTAKTU Přihlaste se k odběru našeho newsletteru, časopisu Ponsse News a výroční zprávy VÍCE INFORMACÍ