frontpage-banner-hero

Ponsse Products Carousel

Laster inn ...
Laster inn ...
Se alle produkter

ponsse-frontpage-usp-1

MODERNE TEKNOLOGI LES MER
MODERNE TEKNOLOGI LES MER

Ressurspublisering

Ponsse-frontpage-banner-split-1440-620

PONSSETJENESTER Med Ponsse får du komplett og profesjonell kundestøtte LES MER

ponsse-frontpage-video-banner-minimalistic

Ponsse-frontpage-banner-split

LOGGING TOGETHER WORLDWIDE Ponsse er et familieselskap med røtter dypt i den finske landsbygda. LES MER

Ressurspublisering

En feil oppsto under behandling av malen.
The following has evaluated to null or missing:
==> assetRenderer.getArticle  [in template "1812923#1812963#1814626" at line 48, column 34]

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

ponsse-frontpage-ctl

DEDIKERT TIL KORTVIRKESHOGST Kortvirkesmetoden er en moderne og naturvennlig hogstmetode. LES MER
DEDIKERT TIL KORTVIRKESHOGST Kortvirkesmetoden er en moderne og naturvennlig hogstmetode. LES MER

ponsse-frontpage-subscribe-banner

HOLD KONTAKTEN MED PONSSE Abonner på vårt nyhetsbrev, Ponsse News og årsrapport Abonner