MTK esitys 1: Vaikuttavat panostukset biotalouden TKI-toimintaan
Virhe tapahtui prosessoidessa esitysmallia.
Java method "com.sun.proxy.$Proxy662.getLatestArticle(long)" threw an exception when invoked on com.sun.proxy.$Proxy662 object "com.liferay.journal.service.impl.JournalArticleLocalServiceImpl@183427e5"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #local relatedArticle = JournalArticl... [in template "43867" in macro "getWebContentHTML" at line 269, column 9] - Reached through: @ch5.getWebContentHTML main_author [in template "20116#20152#45323" at line 153, column 33] ----
1<#-- Artikkeli -->
2<#-- 04/04/2019-->
3<#-- INIT -->
4<#assign dlAppServiceUtil = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService") />
5<#-- Import common variables, functions & macros -->
6<#import "${templatesPath}/43867" as ch5>
7
8<#assign title = ch5.getTitle() />
9<#assign summary = ch5.getSummary()/>
10<#assign date = ch5.getDisplayDate()/>
11<#assign contentType = ch5.getStructureName() />
12<#assign membersOnly = extra.getSiblings()!"">
13<#assign youtubeURL = video.source.youtubeURL.getData() >
14<#assign dreambrokerURL = video.source.dreambrokerURL.getData() >
15<#assign caption = video.videoCaption.getData() >
16<#assign bodyText = body.getData() />
17<#assign attachments = attachment.getSiblings()!"">
18<#-- Get article type category from a specific vocabulary. User can select multiple categories from the UI, but only one is shown to the user -> output only the first selected category. -->
19<#assign articleTypeList = ch5.getCategoryNames(articleTypeVocabularyId) />
20<#assign articleType = articleTypeList?first!"" />
21<script >
22 ( function() { var youtube = document.querySelectorAll( ".youtube" ); for (var i = 0; i < youtube.length; i++) { var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg"; var image = new Image(); image.src = source; image.addEventListener( "load", function() { youtube[ i ].appendChild( image ); }( i ) ); youtube[i].addEventListener( "click", function() { var iframe = document.createElement( "iframe" ); iframe.setAttribute( "frameborder", "0" ); iframe.setAttribute( "allowfullscreen", "" ); iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" ); this.innerHTML = ""; this.appendChild( iframe ); } ); }; } )();
23</script>
24<#--------------- doby trigger --------------->
25<#if Tekstilaatikkohfrr.getSiblings()?has_content>
26 <#list Tekstilaatikkohfrr.getSiblings() as nbox>
27 <#assign nostolaatikko = ''>
28 <#assign nostolaatikko += '<div class="card nostokortti" ><div><h5 class="card-title nostokorttiotsikko">${nbox.getData()}</h5></div> '>
29 <#if nbox.Tekstilaatikko7cq1.getSiblings()?has_content>
30 <#assign nostolaatikko += '<div class="card-body"> <div class="container"> '>
31 <#list nbox.Tekstilaatikko7cq1.getSiblings() as row>
32 <#assign nostolaatikko += '
33 <div class="row nostokorttirivi">
34 <div class="col-sm">
35 <h5 class="nostokorttirivitextarvo font-weight-bold">${row.getData()}</h5>
36 <p class="nostokorttirivitextarvo">${row.Tekstilaatikkob7rx.getData()}</p>
37 </div>
38 <div class="col-sm">
39 <div class="nostokorttiriviicon">
40 <div class="nostokorttiriviiconkehys">
41 <i class="${row.Tekstilaatikko61hk.getData()}" style="color: ${row.Tekstilaatikko61hk.Vri980u.getData()};"></i>
42 </div>
43 <div class="nostokorttirivitext">
44 <p class="nostokorttirivitextnum" style="color: ${row.Tekstilaatikko61hk.Vri980u.getData()};">${row.Tekstilaatikko61hk.Tekstilaatikko356z.getData()}</p>
45 <p>${row.Tekstilaatikko61hk.Tekstilaatikkofbiq.getData()}</p>
46 </div>
47 </div>
48 </div>
49 <div class="col-sm">
50 <div class="nostokorttiriviicon">
51 <div class="nostokorttiriviiconkehys">
52 <i class="${row.Tekstilaatikkoj1w6.getData()}" style="color: ${row.Tekstilaatikkoj1w6.Vri2xek.getData()};"></i>
53 </div>
54 <div class="nostokorttirivitext">
55 <p class="nostokorttirivitextnum" style="color: ${row.Tekstilaatikkoj1w6.Vri2xek.getData()};">${row.Tekstilaatikkoj1w6.Tekstilaatikkobp7i.getData()}</p>
56 <p>${row.Tekstilaatikkoj1w6.Tekstilaatikkohnae.getData()}</p>
57 </div>
58 </div>
59 </div>
60 </div>
61 '>
62 </#list>
63 <#assign nostolaatikko += '</div></div>'>
64 </#if>
65 <#assign nostolaatikko += '</div>'>
66 <#assign bodyText = "${bodyText?replace('[[info]]', nostolaatikko, 'f')}">
67 </#list>
68</#if>
69<#assign bodyText = "${bodyText?replace('[[info]]', '')}">
70 <#if Tekstilaatikkoj4bk.getSiblings()?has_content>
71 <#list Tekstilaatikkoj4bk.getSiblings() as cur_Tekstilaatikkoj4bk>
72 <#assign Lainausnoste = '
73 <div class="container" style="margin-left: 18px;">
74 <div class="mtkartikkeliLainausnostetext">
75 <div class="sitaattiteksti">${cur_Tekstilaatikkoj4bk.getData()} </div>
76 </div>
77 </div>
78 '>
79 <#assign bodyText = "${bodyText?replace('[[lainaus]]', Lainausnoste, 'f')}">
80 </#list>
81 </#if>
82 <#assign bodyText = "${bodyText?replace('[[lainaus]]', '')}">
83 <#if Teksti3wcx.getSiblings()?has_content>
84 <#list Teksti3wcx.getSiblings() as cur_Teksti3wcx>
85 <#assign nostolaatikkohtml = '
86 <div class="card nostokortti" >
87 <div>
88 <h5 class="card-title nostokorttiotsikko">${cur_Teksti3wcx.getData()}</h5>
89 </div>
90 <div class="card-body">
91 <div class="container">${cur_Teksti3wcx.HTML3qzk.getData()}</div>
92 </div>
93 </div>
94 '>
95 <#assign bodyText = "${bodyText?replace('[[nosto]]', nostolaatikkohtml, 'f')}">
96 </#list>
97
98 </#if>
99<#assign bodyText = "${bodyText?replace('[[nosto]]', '')}">
100<#--------------- OUTPUT --------------->
101<div class="container" style="">
102 <div class="row">
103 <div class="col">
104
105 <#if articleType?has_content>
106 <p>${contentType} – ${articleType}</p>
107 <#else>
108 <p>${contentType}</p>
109 </#if>
110
111 <h1>${title}</h1>
112 <#if main_author?? && main_author?has_content>
113 <p class="text-muted">${date}</p>
114 <#else>
115 <p class="text-muted">${date} ${author.getData()}</p>
116 </#if>
117 <#if summary?has_content>
118 <div class="font-weight-light article-intro">${htmlUtil.render(summary)}</div>
119 </#if>
120 </div>
121 <div class="col-1">
122
123 </div>
124 </div>
125 <div class="row">
126 <div class="col-11" >
127 <#if youtubeURL?? && youtubeURL != "">
128 ${ch5.getVideoEmbed(youtubeURL, caption)}
129 <#elseif dreambrokerURL?? && dreambrokerURL != "">
130 ${ch5.getVideoEmbed(dreambrokerURL, caption)}
131 <#elseif image.getData()?? && image.getData() != "">
132 <@ch5.getadatiivinemediaimage image />
133 </#if>
134 </div>
135 <div style="" class="col-11 col-md-1">
136 <#assign GroupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")>
137 <#assign mtkpaagroup = GroupLocalService.fetchGroup(groupId) >
138 <div class="artikkelisomelista">
139 <ul class="list-unstyled " style="height: 0;">
140 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://${mtkpaagroup.getPublicLayoutSet().getVirtualHostname()}/-/${.vars['reserved-article-url-title'].data}" target="_blank" class="fab fa-facebook-f fimtkteemaartikkelilistasosiaalinenmedia fimtkteemaartikkelilistasosiaalinenmediafacebook ml-3 mt-0" ></a></li>
141 <li><a href="https://twitter.com/intent/tweet?url=https://${mtkpaagroup.getPublicLayoutSet().getVirtualHostname()}/-/${.vars['reserved-article-url-title'].data}" target="_blank" class="fab fa-twitter fimtkteemaartikkelilistasosiaalinenmedia fimtkteemaartikkelilistasosiaalinenmediatwitter ml-3"></a></li>
142 <li><a href="whatsapp://send?text=https://${mtkpaagroup.getPublicLayoutSet().getVirtualHostname()}/-/${.vars['reserved-article-url-title'].data}" data-action="share/whatsapp/share" target="_blank" class="fab fa-whatsapp fimtkteemaartikkelilistasosiaalinenmedia fimtkteemaartikkelilistasosiaalinenmediawhatsapp ml-3"></a></li>
143 </ul>
144 </div>
145 </div>
146 <div class="col-11" >
147 ${bodyText}
148 <@ch5.memberInfo membersOnly />
149 <#if attachments?has_content>
150 <@ch5.listAttachments attachments />
151 </#if>
152 <#if main_author?? && main_author?has_content>
153 <@ch5.getWebContentHTML main_author />
154 </#if>
155
156 <#if contactPerson1?has_content><#assign contact1 = contactPerson1.getData()></#if>
157 <#if contactPerson2?has_content><#assign contact2 = contactPerson2.getData()></#if>
158 <#if contactPerson3?has_content><#assign contact3 = contactPerson3.getData()></#if>
159
160 <#if contact1?has_content>
161 <@ch5.getWebContentHTML contactPerson1 />
162 </#if>
163 <#if contact2?has_content>
164 <@ch5.getWebContentHTML contactPerson2 />
165 </#if>
166 <#if contact3?has_content>
167 <@ch5.getWebContentHTML contactPerson3 />
168 </#if>
169
170 <#-- <#if article_author?? && article_author?has_content>
171 <#assign contact = article_author.getData()>
172 </#if>
173 <#if contact?has_content>
174 <@ch5.getWebContentHTML article_author />
175 </#if> -->
176
177 <#--<@ch5.listRelatedArticles/>-->
178
179 <#attempt>
180 <p><@ch5.listTags tagBaseUrl="/artikkelit/-/tag/"/><p>
181 <#recover>
182 <pre>
183 ${.error}
184 </pre>
185 </#attempt>
186 </div>
187
188 </div>
189</div>
190
191<#assign url = "https://${mtkpaagroup.getPublicLayoutSet().getVirtualHostname()}/-/${.vars['reserved-article-url-title'].data}">
192<@ch5.getogptags title summary url />