Data
Dal
Al

Pubblicazioni

Filtri
Si è verificato un errore nell'elaborarazione del modello.
Java method "com.sun.proxy.$Proxy85.getDLFileEntryByUuidAndGroupId(String, long)" threw an exception when invoked on com.sun.proxy.$Proxy85 object "com.liferay.portlet.documentlibrary.service.impl.DLFileEntryLocalServiceImpl@9c66cf5"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign dlFileEntry = dlFileEntryLoca...  [in template "20099#20135#52257" at line 79, column 25]
----
1<#assign dlFileEntryLocalService = serviceLocator.findService( 
2	"com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
3<#assign assetEntryLocalService = serviceLocator.findService( 
4	"com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
5<#assign LayoutService = serviceLocator.findService( 
6	"com.liferay.portal.kernel.service.LayoutService") /> 
7<#assign dlAppLocalService = serviceLocator.findService( 
8	"com.liferay.document.library.kernel.service.DLAppLocalService") /> 
9<#assign DLUtil = 
10	staticUtil["com.liferay.document.library.kernel.util.DLUtil"] /> 
11 
12<#assign imagePathTheme = themeDisplay.getPathThemeImages() /> 
13 
14<#setting locale = themeDisplay.locale /> 
15 
16<#if !entries?has_content> 
17    <#if !themeDisplay.isSignedIn()> 
18        ${renderRequest.setAttribute("PORTLET_CONFIGURATOR_VISIBILITY", true)} 
19    </#if> 
20 
21	<div class="alert alert-info"> 
22        <@liferay_ui["message"] key="there-are-no-results" /> 
23	</div> 
24</#if> 
25 
26<div class="publication-list" id="pubblicazioniList${randomNamespace}"> 
27    <#assign portlet_display = portletDisplay /> 
28    <#assign portlet_title = htmlUtil.escape(portlet_display.getTitle()) /> 
29    <#assign portlet_display_name = htmlUtil.escape(portlet_display.getPortletDisplayName()) /> 
30 
31    <#if portlet_title != portlet_display_name> 
32        <h3 class="section-title"> 
33            ${portlet_title} 
34        </h3> 
35    </#if> 
36	<div class="publication-list-container justify-content-center"> 
37		<#list entries as entry> 
38            <#assign assetRenderer = entry.assetRenderer /> 
39            <#assign entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale)) /> 
40            <#assign viewURL = assetPublisherHelper.getAssetViewURL( 
41                renderRequest, renderResponse, assetRenderer, entry, 
42                !stringUtil.equals(assetLinkBehavior, "showFullContent")) /> 
43 
44            <#assign title = "" /> 
45            <#assign date = "" /> 
46            <#assign customSummary = "" /> 
47            <#assign hashtags = ""> 
48            <#assign urlDoc = "" /> 
49            <#assign docType = "" /> 
50            <#assign doc = "" /> 
51            <#assign link = "" /> 
52            <#assign urlMedia = "" /> 
53            <#assign mediaType = "" /> 
54            <#assign media = "" /> 
55 
56            <#if (entry.className = "com.liferay.journal.model.JournalArticle")> 
57                <#assign journalArticle = assetRenderer.getArticle() > 
58                <#assign document = saxReaderUtil.read(journalArticle.getContentByLocale(themeDisplay.languageId)) /> 
59                <#assign rootElement = document.getRootElement() /> 
60 
61                <#assign displayDate= journalArticle.getDisplayDate()?date /> 
62 
63                <#if validator.isNotNull(displayDate)> 
64                    <#assign dateString = getterUtil.getString(displayDate?string.long)> 
65                <#else> 
66                    <#assign dateString = ""> 
67                </#if> 
68 
69                <#assign docTypePath = "//dynamic-element[@name='documento']" /> 
70                <#if rootElement.selectSingleNode(docTypePath)?? && rootElement.selectSingleNode(docTypePath) != ""> 
71                    <#assign doc = rootElement.selectSingleNode(docTypePath).getStringValue() ! "" /> 
72                    <#if doc?trim?has_content> 
73                        <#assign doc = doc?trim /> 
74                        <#assign docJson = jsonFactoryUtil.createJSONObject(doc) /> 
75 
76                        <#assign groupId = docJson.getLong("groupId") /> 
77                        <#assign uuId = docJson.getString("uuid") /> 
78 
79                        <#assign dlFileEntry = dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId( 
80                            uuId, groupId?number) /> 
81                        <#assign assetEntry = assetEntryLocalService.getEntry( 
82                            "com.liferay.document.library.kernel.model.DLFileEntry", dlFileEntry.fileEntryId) /> 
83                        <#assign assetRenderer = assetEntry.assetRenderer /> 
84                        <#assign classPK = assetEntry.getClassPK() /> 
85                        <#assign fileEntry = dlAppLocalService.getFileEntry(classPK) /> 
86                        <#assign fileVersion = fileEntry.getFileVersion() /> 
87                        <#assign urlDoc = DLUtil.getPreviewURL(fileEntry, fileVersion, themeDisplay, "") /> 
88                        <#assign docType = dlFileEntry.getExtension() /> 
89                    </#if> 
90                </#if> 
91 
92                <#assign mediaTypePath = "//dynamic-element[@name='podcast']" /> 
93                <#if rootElement.selectSingleNode(mediaTypePath)?? && rootElement.selectSingleNode(mediaTypePath) != ""> 
94                    <#assign media = rootElement.selectSingleNode(mediaTypePath).getStringValue() ! "" /> 
95                    <#if media?trim?has_content> 
96                        <#assign media = media?trim /> 
97                        <#assign docJson = jsonFactoryUtil.createJSONObject(media) /> 
98 
99                        <#assign groupId = docJson.getLong("groupId") /> 
100                        <#assign uuId = docJson.getString("uuid") /> 
101 
102                        <#assign dlFileEntry = dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId( 
103                            uuId, groupId?number) /> 
104                        <#assign assetEntry = assetEntryLocalService.getEntry( 
105                            "com.liferay.document.library.kernel.model.DLFileEntry", dlFileEntry.fileEntryId) /> 
106                        <#assign assetRenderer = assetEntry.assetRenderer /> 
107                        <#assign classPK = assetEntry.getClassPK() /> 
108                        <#assign fileEntry = dlAppLocalService.getFileEntry(classPK) /> 
109                        <#assign fileVersion = fileEntry.getFileVersion() /> 
110                        <#assign urlMedia = DLUtil.getPreviewURL(fileEntry, fileVersion, themeDisplay, "") /> 
111                        <#assign mediaType = dlFileEntry.getExtension() /> 
112                    </#if> 
113                </#if> 
114 
115                <#assign linkPath = "//dynamic-element[@name='linkEsterno']" /> 
116                <#if rootElement.selectSingleNode(linkPath)?? && rootElement.selectSingleNode(linkPath) != ""> 
117                    <#assign link = rootElement.selectSingleNode(linkPath).getStringValue() ! "" /> 
118                <#else> 
119                    <#assign link = "" /> 
120                </#if> 
121 
122                <#assign titlePath = "//dynamic-element[@name='titolo']" /> 
123                <#if rootElement.selectSingleNode(titlePath)?? && rootElement.selectSingleNode(titlePath) != ""> 
124                    <#assign title = rootElement.selectSingleNode(titlePath).getStringValue() ! "" /> 
125                <#else> 
126                    <#assign title = "" /> 
127                </#if> 
128 
129                <#assign customSummaryPath = "//dynamic-element[@name='testo']" /> 
130                <#if rootElement.selectSingleNode(customSummaryPath)?? && rootElement.selectSingleNode(customSummaryPath) != ""> 
131                    <#assign customSummary = rootElement.selectSingleNode(customSummaryPath).getStringValue() ! ""/> 
132                <#else> 
133                    <#assign customSummary = "" /> 
134                </#if> 
135 
136                <#assign hashtagsPath = "//dynamic-element[@name='hashtag']" /> 
137                <#if rootElement.selectSingleNode(hashtagsPath)?? && rootElement.selectSingleNode(hashtagsPath)?has_content> 
138                    <#assign hashtags = (rootElement.selectNodes(hashtagsPath))! ""> 
139                <#else> 
140                    <#assign hashtags = "" /> 
141                </#if> 
142 
143	            <div class="publication-card"> 
144 
145		            <div class="content-card"> 
146                        <#if urlMedia?has_content> 
147                            <audio class="audio" preload="auto"> 
148                                <source src="${urlMedia?trim}" /> 
149                            </audio> 
150                        </#if> 
151                        <#if urlDoc?? && urlDoc?trim != ""> 
152 
153                            <#if docType != "pdf" && 
154	                             docType != "xls" && 
155	                             docType != "xlsx" && 
156	                             docType != "zip" && 
157	                             docType != "rar" && 
158	                             docType != "7z" 
159
160                                <#assign docType = "generic_file" /> 
161                            </#if> 
162 
163                            <a 
164                                class="btn btn-primary card-icon download-button" 
165                                href="${urlDoc?html}" 
166                                target="blank" 
167
168                                Apri 
169                                <#if docType != "generic_file"> 
170                                    <img 
171                                        alt="${docType}" 
172                                        class="media-type-icon " 
173                                        src="${imagePathTheme}/vendor/files/${docType}.svg" 
174                                        width="20" 
175                                    /> 
176                                </#if> 
177                            </a> 
178                        </#if> 
179 
180                        <#if link?? && link?trim != ""> 
181                            <a 
182                                class="btn btn-primary card-icon download-button" 
183                                href="${link?html}" 
184                                target="blank" 
185
186                                Apri 
187                                <img 
188                                    alt="link" 
189                                    class="media-type-icon" 
190                                    src="/o/ania-theme/images/vendor/files/link.svg" 
191                                    width="20" 
192                                /> 
193                            </a> 
194                        </#if> 
195 
196			            <p class="card-date data-card">${dateString}</p> 
197                        <#if media?? && media?trim != ""> 
198                            <a class="link-to-detail" href="${viewURL}"> 
199			                    <h4 class="card-title titolo">${title}</h4> 
200                            </a> 
201                        <#else> 
202			                <h4 class="card-title titolo">${title}</h4> 
203                        </#if> 
204 
205			            <#--  <div class="card-summary"> 
206				            <article> 
207					            ${customSummary} 
208				            </article> 
209			            </div>  --> 
210                        <#assign cutter="treerow"/> 
211                        <#if media?? && media?trim != ""> 
212                            <#assign cutter="onerow"/> 
213                        </#if> 
214                        <div class="cardcontent"> 
215                            <div class="summary"> 
216                                <article class="${cutter}"><p>${customSummary}<p></article> 
217                            </div> 
218                            <#if media?? && media?trim != ""> 
219                                <div class="player"> 
220                                    <div class="audio-title"><span>Ascolta e scarica il podcast</span></div> 
221                                    <img  class="audio-button open-modal-audio" data-media-url="${urlMedia?trim}" src="/o/ania-theme/images/play.png" alt="play"/> 
222                                    <a href="${urlMedia?html}"> 
223                                        <img class="audio-button audio-download" src="/o/ania-theme/images/download.png"/> 
224                                    </a> 
225                                </div> 
226                            </#if> 
227                            <p class="duration"></p> 
228                        </div> 
229 
230		            </div> 
231		            <div class="footer-card"> 
232			            <div class="text hashtags"> 
233				            <#if hashtags?has_content> 
234                                <#list hashtags as hashtag> 
235                                    <#if (hashtag.getStringValue()?trim)!=""> 
236							            #${hashtag.getStringValue()?trim} 
237                                    </#if> 
238                                </#list> 
239				            </#if> 
240			            </div> 
241			            <div class="card-social-links"> 
242                            <@getSocialBookmarks /> 
243			            </div> 
244		            </div> 
245	            </div> 
246            </#if> 
247        </#list> 
248 
249	</div> 
250</div> 
251<div id="overlay"> 
252    <div class="close"></div> 
253    <div class="overlay-content"></div> 
254</div> 
255 
256<#macro getSocialBookmarks> 
257    <@liferay_social_bookmarks["bookmarks"] 
258	    className=entry.getClassName() 
259	    classPK=entry.getClassPK() 
260	    displayStyle="${socialBookmarksDisplayStyle}" 
261	    target="_blank" 
262	    title=entry.getTitle(locale) 
263	    url=viewURL 
264 
265    /> 
266 
267</#macro> 
268<script> 
269;(function() { 
270 
271    var $pubblicazioniCardAudio = $("#pubblicazioniList${randomNamespace} .publication-card audio"); 
272    var $openModalAudioButtons = $("#pubblicazioniList${randomNamespace} .open-modal-audio"); 
273 
274    $openModalAudioButtons.each(function() { 
275        var $button = $(this); 
276        var audioUrl = $button.data("media-url"); 
277        $button.click(function(e) { 
278            e.preventDefault(); 
279            openModalAudio(audioUrl); 
280        }); 
281    }); 
282 
283    $(document).ready(function(){ 
284        var countAudio = 0; 
285        $pubblicazioniCardAudio.each(function(){ 
286            $(this).attr("id","audio-"+countAudio); 
287            countAudio=countAudio+1; 
288            var $this = $(this); 
289            var audioElement = $this[0]; 
290            if (audioElement.readyState > 3) { 
291                var duration = audioElement.duration; 
292                var minutes = Math.floor(duration / 60); 
293                var seconds = duration - minutes * 60; 
294                seconds= parseInt(seconds, 10) 
295                $(this).parents(".publication-card").find(".duration").html(minutes+":"+seconds); 
296
297        }); 
298 
299        $pubblicazioniCardAudio.on("canplay canplaythrough",function(){ 
300            var id = $(this).attr("id"); 
301            var duration = document.getElementById(id).duration; 
302            var minutes = Math.floor(duration / 60); 
303            var seconds = duration - minutes * 60; 
304            seconds= parseInt(seconds, 10) 
305            $(this).parents(".publication-card").find(".duration").html(minutes+":"+seconds); 
306        }); 
307    }); 
308 
309     
310 
311    function openModalAudio(audioId) { 
312        var audioHtml = '<audio controls autoplay><source src=' + audioId.toString() + '></audio>'; 
313        var overlay = $('#overlay .overlay-content'); 
314 
315        var overlayParent = $('#overlay'); 
316        var overlay = overlayParent.find('.overlay-content'); 
317 
318        overlay.append(audioHtml); 
319 
320        overlayParent.addClass('show'); 
321 
322        var btnClose = $('#overlay .close'); 
323            btnClose.click(function() { 
324            overlayParent.removeClass('show'); 
325            overlay.empty(); 
326        }); 
327
328})(); 
329</script>