angle-left Scienze e Tecnologie Biologiche e Ambientali
An error occurred while processing the template.
Java method "com.sun.proxy.$Proxy524.getLatestArticle(long)" threw an exception when invoked on com.sun.proxy.$Proxy524 object "com.liferay.journal.service.impl.JournalArticleLocalServiceImpl@1dbdf134"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: article = JournalArticleLocalService...  [in template "20116#20152#COURSE-TEMPLATE" at line 437, column 13]
	- Reached through: #assign-container  [in template "20116#20152#COURSE-TEMPLATE" at line 434, column 9]
----
1<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
2<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") /> 
3<#assign  
4    serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() 
5    themeDisplay = serviceContext.getThemeDisplay() 
6    group_id = themeDisplay.getScopeGroupId()                     
7    JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")     
8
9<#assign AssetTagLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService")> 
10<#assign currentCyclePK =""/> 
11 
12 
13<div class="course-details"> 
14<div class="row"> 
15    <div class="col-xs-12 mb-4"> 
16        <div class="course-title"> 
17            <h2>${Titolo.getData()}</h2> 
18            <div class="decorator"></div> 
19        </div> 
20        </div> 
21        <div class="col-xs-12 mb-4"> 
22        <div class="presentation"> 
23            <h4>Presentazione del corso</h4> 
24        </div> 
25        </div> 
26        <div class="col-xs-12 mb-4"> 
27            <div class="text-with-image"> 
28                <p> 
29                <#if Immagine?has_content> 
30                    <img src="${Immagine.getData()}"/> 
31                </#if> 
32                ${Contenuto.getData()} 
33                </p> 
34            </div> 
35        </div> 
36        <div class="col-xs-12 mb-4"> 
37            <div class="location-wrapper"> 
38                <h4 class="title">Sede</h4> 
39                <div class="location-content"> 
40                    <i class="fal fa-map-marker-alt d-none d-md-block"></i> 
41                    <span>${Sede.getData()}</span> 
42                </div> 
43            </div> 
44        </div> 
45         
46        <div class="col-xs-12 mb-4"> 
47            <div class="cycle-infos d-block d-sm-flex"> 
48                <#if Ciclo.getSiblings()?has_content> 
49                 
50        	        <#list Ciclo.getSiblings() as cur_Ciclo> 
51        	         
52        		        <#assign  
53                            cur_Ciclo_map = cur_Ciclo.getData()?eval 
54                            cur_Ciclo_classPK = cur_Ciclo_map.classPK 
55                            ciclo = JournalArticleLocalService.getLatestArticle(cur_Ciclo_classPK?number) 
56                            ciclo_id = ciclo.articleId 
57                            ciclo_content = JournalArticleLocalService.getArticleContent(group_id, ciclo_id, null, locale, themeDisplay) 
58
59                        <#assign document = saxReaderUtil.read(ciclo.getContent()) /> 
60                        <#assign rootElement = document.getRootElement() /> 
61                        <#assign Attivo = "" /> 
62                        <#assign AttivoxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='isActive']") /> 
63                        <#if AttivoxPathSelector??> 
64                            <#assign AttivoObj = AttivoxPathSelector.selectSingleNode(rootElement)!""/> 
65                            <#if AttivoObj?has_content> 
66                                <#assign Attivo = AttivoObj.getStringValue()/> 
67                            </#if> 
68                        </#if> 
69                        <#if Attivo?trim=='true'> 
70                            <!--<#assign currentCyclePK = cur_Ciclo_classPK?trim/> 
71                            <#assign CicloTitle = "" /> 
72                            <#assign CicloTitlexPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='CycleNumber']") /> 
73                            <#if CicloTitlexPathSelector??> 
74                                <#assign CicloTitleObj = CicloTitlexPathSelector.selectSingleNode(rootElement)!""/> 
75                                <#if CicloTitleObj?has_content> 
76                                    <#assign CicloTitle = CicloTitleObj.getStringValue()/>  
77                                    <div class="w-auto mb-3 mb-sm-0"> 
78                                    <span class="title">${CicloTitle}</span> 
79                                    </div> 
80                                </#if> 
81                            </#if>--> 
82                             
83                            <#assign CicloLink = "" /> 
84                            <#assign CicloLinkxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='LinkToPage']") /> 
85                            <#if CicloLinkxPathSelector??> 
86                                <#assign CicloLinkObj = CicloLinkxPathSelector.selectSingleNode(rootElement)!""/> 
87                                <#if CicloLinkObj?has_content> 
88                                    <#assign CicloLink = CicloLinkObj.getStringValue()/>  
89                                    <#assign layout_id = CicloLink?split("@")?first?trim?number /> 
90                                    <#assign group_id = CicloLink?split("@")?last?trim?number /> 
91                                    <#assign page_layout = layoutLocalService.getLayout(group_id, false, layout_id) /> 
92                                    <#assign portalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"]> 
93                                    <#assign friendly_page_link = portalUtil.getLayoutFriendlyURL(page_layout, themeDisplay)> 
94                                    <span class="title"> 
95                                    <a href="${friendly_page_link}" class="w-auto title"> 
96                                        <!--<i class="fal fa-file-spreadsheet"></i> ${page_layout.getName(locale)} <i class="fal fa-long-arrow-right"></i> --> 
97                                       <i class="fal fa-file-spreadsheet"></i> Dottorandi <i class="fal fa-long-arrow-right"></i>  
98                                    </a> 
99                                    </span> 
100                                </#if> 
101                            </#if> 
102                        </#if> 
103        	        </#list> 
104                </#if> 
105            </div> 
106        </div> 
107        <#if ((ModuliSpecificiDelDottorato.getSiblings()?size > 1) || (ModuliUtiliPerAggiungereCrediti.getSiblings()?size > 1))> 
108        <div class="col-xs-12 mb-4"> 
109            <div class="presentation"> 
110                <h4>Moduli formativi</h4> 
111            </div> 
112        </div> 
113        </#if> 
114        <div class="col-xs-12 mb-4"> 
115            <div class="row"> 
116                <#if (ModuliSpecificiDelDottorato.getSiblings()?size > 1)> 
117                    <div class="col-xs-12 mb-2 modules-cat"> 
118                        <h4>Moduli specifici del dottorato</h4> 
119                    </div> 
120                    <#list ModuliSpecificiDelDottorato.getSiblings() as cur_webContent> 
121						<#if cur_webContent.getData()?has_content> 
122                        <div class="col-xs-12 col-sm-6 col-xl-4 mb-3"> 
123                        <div class="col-xs-12 h-100 p-0"> 
124                        <div class="module h-100"> 
125                	    <#assign  
126                        cur_webContent_map = cur_webContent.getData()?eval 
127                        cur_webContent_classPK = cur_webContent_map.classPK 
128                        article = JournalArticleLocalService.getLatestArticle(cur_webContent_classPK?number) 
129                        article_id = article.articleId 
130                        article_content = JournalArticleLocalService.getArticleContent(group_id, article_id, null, locale, themeDisplay) 
131
132                    <#assign document = saxReaderUtil.read(article.getContentByLocale(locale)) /> 
133                    <#assign rootElement = document.getRootElement() /> 
134                    <#assign InPresenza = ""/> 
135                    <#assign InPresenzaxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='InPresenza']") /> 
136                    <#if InPresenzaxPathSelector??> 
137                        <#assign InPresenzaObj = InPresenzaxPathSelector.selectSingleNode(rootElement)!""/> 
138                        <#if InPresenzaObj?has_content> 
139                            <#assign InPresenza = InPresenzaObj.getStringValue()/> 
140                        </#if> 
141                    </#if> 
142                    <#assign ELearning =""/> 
143                    <#assign ELearningxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='OnLine']") /> 
144                    <#if ELearningxPathSelector??> 
145                        <#assign ELearningObj = ELearningxPathSelector.selectSingleNode(rootElement)!""/> 
146                        <#if ELearningObj?has_content> 
147                            <#assign ELearning = ELearningObj.getStringValue()/> 
148                        </#if> 
149                    </#if> 
150                    <#assign Title = ""/> 
151                    <#assign TitlexPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Name']") /> 
152                    <#if TitlexPathSelector??> 
153                        <#assign TitleObj = TitlexPathSelector.selectSingleNode(rootElement)!""/> 
154                        <#if TitleObj?has_content> 
155                            <#assign Title = TitleObj.getStringValue()/> 
156                            <div class="title h-100"> 
157                                <p>${Title}</p> 
158                                <#if InPresenza?trim != ""> 
159                                <span><i class="fas fa-chalkboard-teacher"></i> IN PRESENZA</span> 
160                                </#if> 
161                                <#if ELearning?trim != ""> 
162                                <span><i class="fal fa-desktop-alt"></i> E-LEARNING</span> 
163                                </#if> 
164                                <#assign DocentexPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Docente']") /> 
165                                 
166                                <#if DocentexPathSelector??> 
167                                    <#assign DocenteObj = DocentexPathSelector.selectSingleNode(rootElement)!""/> 
168                                    <#if DocenteObj?has_content> 
169                                        <#assign Docente = DocenteObj.getStringValue()/> 
170                                        <#if Docente?trim?has_content> 
171                                            <#assign  
172                                                cur_Docente_map = Docente?trim?eval 
173                                                Docente_classPK = cur_Docente_map.classPK 
174                                                Docente_article = JournalArticleLocalService.getLatestArticle(Docente_classPK?number) 
175                                                Docente_article_id = Docente_article.articleId 
176                                                Docente_article_content = JournalArticleLocalService.getArticleContent(group_id, Docente_article_id, null, locale, themeDisplay) 
177
178                                            <#assign Docente_document = saxReaderUtil.read(Docente_article.getContentByLocale(locale)) /> 
179                                            <#assign Docente_rootElement = Docente_document.getRootElement() /> 
180                                            <#assign  
181                                            Docente_Nome = "" 
182                                            Docente_Cognome = "" 
183                                            Docente_Titolo = "" 
184                                            Docente_Link = "" 
185                                            /> 
186                                            <#assign Docente_NomexPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Nome']") /> 
187                                            <#if Docente_NomexPathSelector??> 
188                                                <#assign Docente_NomeObj = Docente_NomexPathSelector.selectSingleNode(Docente_rootElement)!""/> 
189                                                 
190                                                <#if Docente_NomeObj?has_content> 
191                                                    <#assign Docente_Nome = Docente_NomeObj.getStringValue()/> 
192                                                </#if> 
193                                            </#if> 
194                                            <#assign Docente_CognomexPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Cognome']") /> 
195                                            <#if Docente_CognomexPathSelector??> 
196                                                <#assign Docente_CognomeObj = Docente_CognomexPathSelector.selectSingleNode(Docente_rootElement)!""/> 
197                                                 
198                                                <#if Docente_CognomeObj?has_content> 
199                                                    <#assign Docente_Cognome = Docente_CognomeObj.getStringValue()/> 
200                                                </#if> 
201                                            </#if> 
202                                            <#assign Docente_TitoloxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Titolo']") /> 
203                                            <#if Docente_TitoloxPathSelector??> 
204                                                <#assign Docente_TitoloObj = Docente_TitoloxPathSelector.selectSingleNode(Docente_rootElement)!""/> 
205                                                 
206                                                <#if Docente_TitoloObj?has_content> 
207                                                    <#assign Docente_Titolo = Docente_TitoloObj.getStringValue()/> 
208                                                </#if> 
209                                            </#if> 
210                                            <#assign Docente_LinkxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='LinkMenzione']") /> 
211                                            <#if Docente_LinkxPathSelector??> 
212                                                <#assign Docente_LinkObj = Docente_LinkxPathSelector.selectSingleNode(Docente_rootElement)!""/> 
213                                                 
214                                                <#if Docente_LinkObj?has_content> 
215                                                    <#assign Docente_Link = Docente_LinkObj.getStringValue()/> 
216                                                </#if> 
217                                            </#if> 
218                                            <p class="pt-3"> 
219                                                <#if Docente_Link?has_content> 
220                                                    <a target="_blank" href="${Docente_Link}"> 
221                                                </#if> 
222                                                ${Docente_Titolo} ${Docente_Cognome} ${Docente_Nome}  
223                                                <#if Docente_Link?has_content> 
224                                                    <i class="fas fa-external-link-alt"></i></a> 
225                                                </#if> 
226                                            </p> 
227                                        </#if> 
228                                         
229                                    </#if> 
230                                </#if> 
231                                <#assign ProgrammaxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Programma']") /> 
232                                 
233                                <#if ProgrammaxPathSelector??> 
234                                    <#assign ProgrammaObj = ProgrammaxPathSelector.selectSingleNode(rootElement)!""/> 
235                                    <#if ProgrammaObj?has_content> 
236                                        <#assign Programma = ProgrammaObj.getStringValue()/> 
237                                        <#if Programma?trim?has_content> 
238                                            <p><a target="_blank" href="${Programma}"><i class="fal fa-download"></i> Scarica il programma</a></p> 
239                                        </#if> 
240                                    </#if> 
241                                </#if> 
242                            </div> 
243                        </#if> 
244                    </#if> 
245                    <#assign  
246                        Hours = "" 
247                    /> 
248                    <#assign HoursxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Ore']") /> 
249                    <#if HoursxPathSelector??> 
250                        <#assign HoursObj = HoursxPathSelector.selectSingleNode(rootElement)!""/> 
251                        <#if HoursObj?has_content> 
252                            <#assign Hours = HoursObj.getStringValue()/> 
253                            <div class="hours h-100"> 
254                                <span>ORE </br> <span classs="tot">${Hours}</span></span> 
255                            </div> 
256                        </#if> 
257                    </#if> 
258                    </div> 
259                    </div> 
260                    </div> 
261					</#if> 
262            	</#list> 
263                </#if> 
264            </div> 
265        </div> 
266        <div class="col-xs-12 mb-4"> 
267            <div class="row"> 
268                <#if (ModuliUtiliPerAggiungereCrediti.getSiblings()?size > 1)> 
269                    <div class="col-xs-12 mb-2 modules-cat"> 
270                        <h4>Moduli utili per aggiungere crediti</h4> 
271                    </div> 
272                    <#list ModuliUtiliPerAggiungereCrediti.getSiblings() as cur_webContent> 
273					 
274						<#if cur_webContent.getData()?has_content> 
275                        <div class="col-xs-12 col-sm-6 col-xl-4 mb-3"> 
276                        <div class="col-xs-12 h-100 p-0"> 
277                        <div class="module h-100"> 
278                	    <#assign  
279                        cur_webContent_map = cur_webContent.getData()?eval 
280                        cur_webContent_classPK = cur_webContent_map.classPK 
281                        article = JournalArticleLocalService.getLatestArticle(cur_webContent_classPK?number) 
282                        article_id = article.articleId 
283                        article_content = JournalArticleLocalService.getArticleContent(group_id, article_id, null, locale, themeDisplay) 
284
285                    <#assign document = saxReaderUtil.read(article.getContentByLocale(locale)) /> 
286                    <#assign rootElement = document.getRootElement() /> 
287                    <#assign  
288                        Title = "" 
289                    /> 
290                    <#assign TitlexPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Name']") /> 
291                    <#if TitlexPathSelector??> 
292                        <#assign TitleObj = TitlexPathSelector.selectSingleNode(rootElement)!""/> 
293                        <#if TitleObj?has_content> 
294                            <#assign Title = TitleObj.getStringValue()/> 
295                            <div class="title h-100"> 
296                                <p>${Title}</p> 
297                                <span><i class="fal fa-desktop-alt"></i> E-LEARNING</span> 
298                                <#assign DocentexPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Docente']") /> 
299                                 
300                                <#if DocentexPathSelector??> 
301                                    <#assign DocenteObj = DocentexPathSelector.selectSingleNode(rootElement)!""/> 
302                                    <#if DocenteObj?has_content> 
303                                        <#assign Docente = DocenteObj.getStringValue()/> 
304                                        <#if Docente?trim?has_content> 
305                                            <#assign  
306                                                cur_Docente_map = Docente?trim?eval 
307                                                Docente_classPK = cur_Docente_map.classPK 
308                                                Docente_article = JournalArticleLocalService.getLatestArticle(Docente_classPK?number) 
309                                                Docente_article_id = Docente_article.articleId 
310                                                Docente_article_content = JournalArticleLocalService.getArticleContent(group_id, Docente_article_id, null, locale, themeDisplay) 
311
312                                            <#assign Docente_document = saxReaderUtil.read(Docente_article.getContentByLocale(locale)) /> 
313                                            <#assign Docente_rootElement = Docente_document.getRootElement() /> 
314                                            <#assign  
315                                            Docente_Nome = "" 
316                                            Docente_Cognome = "" 
317                                            Docente_Titolo = "" 
318                                            Docente_Link = "" 
319                                            /> 
320                                            <#assign Docente_NomexPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Nome']") /> 
321                                            <#if Docente_NomexPathSelector??> 
322                                                <#assign Docente_NomeObj = Docente_NomexPathSelector.selectSingleNode(Docente_rootElement)!""/> 
323                                                 
324                                                <#if Docente_NomeObj?has_content> 
325                                                    <#assign Docente_Nome = Docente_NomeObj.getStringValue()/> 
326                                                </#if> 
327                                            </#if> 
328                                            <#assign Docente_CognomexPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Cognome']") /> 
329                                            <#if Docente_CognomexPathSelector??> 
330                                                <#assign Docente_CognomeObj = Docente_CognomexPathSelector.selectSingleNode(Docente_rootElement)!""/> 
331                                                 
332                                                <#if Docente_CognomeObj?has_content> 
333                                                    <#assign Docente_Cognome = Docente_CognomeObj.getStringValue()/> 
334                                                </#if> 
335                                            </#if> 
336                                            <#assign Docente_TitoloxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Titolo']") /> 
337                                            <#if Docente_TitoloxPathSelector??> 
338                                                <#assign Docente_TitoloObj = Docente_TitoloxPathSelector.selectSingleNode(Docente_rootElement)!""/> 
339                                                 
340                                                <#if Docente_TitoloObj?has_content> 
341                                                    <#assign Docente_Titolo = Docente_TitoloObj.getStringValue()/> 
342                                                </#if> 
343                                            </#if> 
344                                            <#assign Docente_LinkxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='LinkMenzione']") /> 
345                                            <#if Docente_LinkxPathSelector??> 
346                                                <#assign Docente_LinkObj = Docente_LinkxPathSelector.selectSingleNode(Docente_rootElement)!""/> 
347                                                 
348                                                <#if Docente_LinkObj?has_content> 
349                                                    <#assign Docente_Link = Docente_LinkObj.getStringValue()/> 
350                                                </#if> 
351                                            </#if> 
352                                            <p class="pt-3"> 
353                                                <#if Docente_Link?has_content> 
354                                                    <a target="_blank" href="${Docente_Link}"> 
355                                                </#if> 
356                                                ${Docente_Titolo} ${Docente_Cognome} ${Docente_Nome}  
357                                                <#if Docente_Link?has_content> 
358                                                    <i class="fas fa-external-link-alt"></i></a> 
359                                                </#if> 
360                                            </p> 
361                                        </#if> 
362                                         
363                                    </#if> 
364                                </#if> 
365                                <#assign ProgrammaxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Programma']") /> 
366                                 
367                                <#if ProgrammaxPathSelector??> 
368                                    <#assign ProgrammaObj = ProgrammaxPathSelector.selectSingleNode(rootElement)!""/> 
369                                    <#if ProgrammaObj?has_content> 
370                                        <#assign Programma = ProgrammaObj.getStringValue()/> 
371                                        <#if Programma?trim?has_content> 
372                                            <p><a target="_blank" href="${Programma}"><i class="fal fa-download"></i> Scarica il programma</a></p> 
373                                        </#if> 
374                                    </#if> 
375                                </#if> 
376                            </div> 
377                        </#if> 
378                    </#if> 
379                    <#assign  
380                        Hours = "" 
381                    /> 
382                    <#assign HoursxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Ore']") /> 
383                    <#if HoursxPathSelector??> 
384                        <#assign HoursObj = HoursxPathSelector.selectSingleNode(rootElement)!""/> 
385                        <#if HoursObj?has_content> 
386                            <#assign Hours = HoursObj.getStringValue()/> 
387                            <div class="hours h-100"> 
388                                <span>ORE </br> <span classs="tot">${Hours}</span></span> 
389                            </div> 
390                        </#if> 
391                    </#if> 
392                    </div> 
393                    </div> 
394                    </div> 
395					</#if> 
396            	</#list> 
397                </#if> 
398                </div> 
399        </div> 
400        <#if (Allegato.getSiblings()?size > 1)> 
401         
402        <div class="col-xs-12 mb-4"> 
403            <div class="presentation"> 
404                <h4>Documentazione</h4> 
405            </div> 
406        </div> 
407	    <#list Allegato.getSiblings() as cur_Allegato> 
408	        <div class="link mb-4"> 
409		    <a href="${cur_Allegato.getData()}"> 
410		        <#list cur_Allegato.getData()?split("/") as x>     
411		            <#if x?counter ==3> 
412                        <#assign groupId = x> 
413                    </#if> 
414                    <#if x?counter ==6> 
415                        <#assign uuId = x> 
416                    </#if> 
417                </#list> 
418                <#assign dlFileEntry = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>  
419                <#if (uuId??) && (groupId??)> 
420                    <#assign file = dlFileEntry.getFileEntryByUuidAndGroupId(uuId,groupId?number) >   
421                </#if> 
422                <#if file?has_content> 
423                <div class="link-name">${file.getFileName()}<i class="fal fa-long-arrow-right"></i></div> 
424                <i class="fal fa-file-download"></i> 
425                </#if> 
426		    </a> 
427		    </div> 
428	    </#list> 
429	    </#if> 
430 
431        <#if Coordinatore.getSiblings()?has_content> 
432                    <#list Coordinatore.getSiblings() as cur_webContent> 
433					 
434    	<#assign  
435            cur_webContent_map = cur_webContent.getData()?eval 
436            cur_webContent_classPK = cur_webContent_map.classPK 
437            article = JournalArticleLocalService.getLatestArticle(cur_webContent_classPK?number) 
438            article_id = article.articleId 
439
440        <#assign document = saxReaderUtil.read(article.getContentByLocale(locale)) /> 
441        <#assign rootElement = document.getRootElement() /> 
442        <#assign  
443            Name = "" 
444        /> 
445        <#assign NamexPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Nome']") /> 
446        <#if NamexPathSelector??> 
447            <#assign NameObj = NamexPathSelector.selectSingleNode(rootElement)!""/> 
448            <#if NameObj?has_content> 
449                <#assign Name = NameObj.getStringValue()/> 
450            </#if> 
451        </#if> 
452        <#assign  
453            Surname = "" 
454        /> 
455        <#assign SurnamexPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Cognome']") /> 
456        <#if SurnamexPathSelector??> 
457            <#assign SurnameObj = SurnamexPathSelector.selectSingleNode(rootElement)!""/> 
458            <#if SurnameObj?has_content> 
459                <#assign Surname = SurnameObj.getStringValue()/> 
460         
461            </#if> 
462        </#if> 
463        <#assign  
464            Title = "" 
465        /> 
466        <#assign TitlexPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Titolo']") /> 
467        <#if TitlexPathSelector??> 
468            <#assign TitleObj = TitlexPathSelector.selectSingleNode(rootElement)!""/> 
469            <#if TitleObj?has_content> 
470                <#assign Title = TitleObj.getStringValue()/> 
471         
472            </#if> 
473        </#if> 
474        <#assign  
475            Description = "" 
476        /> 
477        <#assign DescriptionxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='BreveDescrizione']") /> 
478        <#if DescriptionxPathSelector??> 
479            <#assign DescriptionObj = DescriptionxPathSelector.selectSingleNode(rootElement)!""/> 
480            <#if DescriptionObj?has_content> 
481                <#assign Description = DescriptionObj.getStringValue()/> 
482         
483            </#if> 
484        </#if> 
485        <div class="col-xs-12"> 
486                <div class="wrapper coordinator"> 
487                    <div class="presentation mb-4"> 
488                        <h4>Coordinatore dottorato</h4> 
489                    </div> 
490                    <div class="name"> 
491                        <p>${Title} ${Name} ${Surname}</p> 
492                    </div> 
493                    <div class="description"> 
494                        <p>${Description}</p> 
495                    </div> 
496                </div> 
497            </div> 
498            </#list> 
499            </#if> 
500         
501        <div class="col-xs-12"> 
502            <div class="teachers-wrapper"> 
503                <div class="row"> 
504                    <div class="col-xs-12 mb-4 accordion"> 
505                        <div class="presentation "> 
506                            <h4>Collegio docenti</h4> 
507                            <i class="fal fa-angle-down"></i> 
508                        </div> 
509                    </div> 
510                    <div class="col-xs-12 tab-content"> 
511                        <#if DocenteOrdinario.getSiblings()?has_content> 
512                            <#assign teacherMapList = []> 
513                            <#list DocenteOrdinario.getSiblings() as cur_webContent> 
514                                <#if cur_webContent.getData()?has_content> 
515                                    <#assign  
516                                        cur_webContent_map = cur_webContent.getData()?eval 
517                                        cur_webContent_classPK = cur_webContent_map.classPK 
518                                        article = JournalArticleLocalService.getLatestArticle(cur_webContent_classPK?number) 
519                                        article_id = article.articleId 
520                                    /> 
521                                    <#assign document = saxReaderUtil.read(article.getContentByLocale(locale)) /> 
522                                    <#assign rootElement = document.getRootElement() /> 
523                                    <#assign teacherMap = {}/> 
524                                    <#assign Name = ""/> 
525                                    <#assign NamexPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Nome']") /> 
526                                    <#if NamexPathSelector??> 
527                                        <#assign NameObj = NamexPathSelector.selectSingleNode(rootElement)!""/> 
528                                        <#if NameObj?has_content> 
529                                            <#assign Name = NameObj.getStringValue()/> 
530                                            <#assign teacherMap = teacherMap + {"name": Name}> 
531                                        </#if> 
532                                    </#if> 
533                                    <#assign Surname = ""/> 
534                                    <#assign SurnamexPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Cognome']") /> 
535                                    <#if SurnamexPathSelector??> 
536                                        <#assign SurnameObj = SurnamexPathSelector.selectSingleNode(rootElement)!""/> 
537                                        <#if SurnameObj?has_content> 
538                                            <#assign Surname = SurnameObj.getStringValue()/> 
539                                            <#assign teacherMap = teacherMap + {"surname": Surname}> 
540                                        </#if> 
541                                    </#if> 
542                                    <#assign Title = ""/> 
543                                    <#assign TitlexPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Titolo']") /> 
544                                    <#if TitlexPathSelector??> 
545                                        <#assign TitleObj = TitlexPathSelector.selectSingleNode(rootElement)!""/> 
546                                        <#if TitleObj?has_content> 
547                                            <#assign Title = TitleObj.getStringValue()/> 
548                                            <#assign teacherMap = teacherMap + {"title": Title}> 
549                                        </#if> 
550                                    </#if> 
551                                    <#assign Description = ""/> 
552                                    <#assign DescriptionxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='BreveDescrizione']") /> 
553                                    <#if DescriptionxPathSelector??> 
554                                        <#assign DescriptionObj = DescriptionxPathSelector.selectSingleNode(rootElement)!""/> 
555                                        <#if DescriptionObj?has_content> 
556                                            <#assign Description = DescriptionObj.getStringValue()/> 
557                                            <#assign teacherMap = teacherMap + {"description": Description}> 
558                                        </#if> 
559                                    </#if> 
560                                    <#assign Link = ""/> 
561                                    <#assign LinkxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='LinkMenzione']") /> 
562                                    <#if LinkxPathSelector??> 
563                                        <#assign LinkObj = LinkxPathSelector.selectSingleNode(rootElement)!""/> 
564                                        <#if LinkObj?has_content> 
565                                            <#assign Link = LinkObj.getStringValue()/> 
566                                            <#assign teacherMap = teacherMap + {"link": Link}> 
567                                        </#if> 
568                                    </#if> 
569                                    <#assign teacherMapList = teacherMapList + [teacherMap]> 
570                                </#if> 
571                            </#list> 
572                            <#list teacherMapList?sort_by("surname") as teacher> 
573                                <div class="col-xs-12 mt-2"> 
574                                    <#if teacher.link?? && teacher.link?trim != ""> 
575                                        <div class="wrapper ordinary"> 
576                                            <a class="link" href="${teacher.link}" target="_blank">   
577                                                <div class="name"> 
578                                                    <p>${teacher.title} ${teacher.name} ${teacher.surname}</p> 
579                                                </div> 
580                                                <div class="description"> 
581                                                    <p>${teacher.description}</p> 
582                                                    <i class="fal fa-long-arrow-right"></i> 
583                                                </div> 
584                                            </a> 
585                                        </div> 
586                                    <#else> 
587                                        <div class="wrapper ordinary">   
588                                            <div class="name"> 
589                                                <p>${teacher.title} ${teacher.name} ${teacher.surname}</p> 
590                                            </div> 
591                                            <div class="description"> 
592                                                <p>${teacher.description}</p> 
593                                            </div> 
594                                        </div> 
595                                    </#if> 
596                                </div> 
597                            </#list> 
598                        </#if> 
599                    </div> 
600	            </div> 
601	        </div> 
602         
603        <#if dottorando??> 
604            <#if (dottorando.getSiblings()?size > 1)> 
605                <#assign studentMapList = []/> 
606                <div class="row students-wrapper"> 
607                    <div class="col-xs-12 mb-4"> 
608                        <div class="presentation accordion"> 
609                            <h4>Dottorandi</h4> 
610                            <i class="fal fa-angle-down"></i> 
611                        </div> 
612                        <div class="tab-content"> 
613                            <#list dottorando.getSiblings() as cur_webContent> 
614                                <#if cur_webContent.getData()?has_content> 
615                                    <#assign  
616                                    cur_webContent_map = cur_webContent.getData()?eval 
617                                    cur_webContent_classPK = cur_webContent_map.classPK 
618                                    article = JournalArticleLocalService.getLatestArticle(cur_webContent_classPK?number) 
619                                    article_id = article.articleId 
620                                    article_content = JournalArticleLocalService.getArticleContent(group_id, article_id, null, locale, themeDisplay) 
621
622                                    <#assign studentMap = {}> 
623                                    <#assign studentTag="" /> 
624                                    <#list AssetTagLocalService.getTags(cur_webContent_map.className, cur_webContent_classPK?number) as tag> 
625                                        <#assign studentTag = tag.name/> 
626                                        <#assign studentMap = studentMap + {"cycle", studentTag}/> 
627                                    </#list> 
628                                    <#assign document = saxReaderUtil.read(article.getContentByLocale(locale)) /> 
629                                    <#assign rootElement = document.getRootElement() /> 
630                                    <#assign StudentCycle = "" /> 
631                                    <#assign CyclexPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Ciclo']") /> 
632                                    <#if CyclexPathSelector??> 
633                                        <#assign CycleObj = CyclexPathSelector.selectSingleNode(rootElement)!""/> 
634                                        <#if CycleObj?has_content> 
635                                            <#assign  
636                                                cycle = CycleObj.getStringValue()  
637                                                cyclePK = cycle?eval.classPK  
638                                                cycleArticle = JournalArticleLocalService.getLatestArticle(cyclePK?number)  
639                                                cycleId = cycleArticle.articleId  
640                                                cycleContent = JournalArticleLocalService.getArticleContent(group_id, cycleId, null, locale, themeDisplay) 
641                                            /> 
642                                        </#if> 
643                                    </#if> 
644                                    <#assign Name = ""/> 
645                                    <#assign NamexPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Nome']") /> 
646                                    <#if NamexPathSelector??> 
647                                        <#assign NameObj = NamexPathSelector.selectSingleNode(rootElement)!""/> 
648                                        <#if NameObj?has_content> 
649                                            <#assign Name = NameObj.getStringValue()/> 
650                                            <#assign studentMap = studentMap + {"name", Name}/> 
651                                        </#if> 
652                                    </#if> 
653                                    <#assign Surname = ""/> 
654                                    <#assign SurnamexPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Cognome']") /> 
655                                    <#if SurnamexPathSelector??> 
656                                        <#assign SurnameObj = SurnamexPathSelector.selectSingleNode(rootElement)!""/> 
657                                        <#if SurnameObj?has_content> 
658                                            <#assign Surname = SurnameObj.getStringValue()/> 
659                                            <#assign studentMap = studentMap + {"surname", Surname}/> 
660                                        </#if> 
661                                    </#if> 
662                                    <#assign Email = ""/> 
663                                    <#assign EmailxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Email']") /> 
664                                    <#if EmailxPathSelector??> 
665                                        <#assign EmailObj = EmailxPathSelector.selectSingleNode(rootElement)!""/> 
666                                        <#if EmailObj?has_content> 
667                                            <#assign Email = EmailObj.getStringValue()/> 
668                                            <#assign studentMap = studentMap + {"email", Email}/> 
669                                        </#if> 
670                                    </#if> 
671                                    <#assign  Project = ""/> 
672                                    <#assign ProjectxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='ProgettoDiRicerca']") /> 
673                                    <#if ProjectxPathSelector??> 
674                                        <#assign ProjectObj = ProjectxPathSelector.selectSingleNode(rootElement)!""/> 
675                                        <#if ProjectObj?has_content> 
676                                            <#assign Project = ProjectObj.getStringValue()/> 
677                                            <#assign studentMap = studentMap + {"project", Project}/> 
678                                        </#if> 
679                                    </#if> 
680                                    <#assign StudentCurriculum = "" /> 
681                                    <#assign StudentCurriculumxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Curriculum']") /> 
682                                    <#if StudentCurriculumxPathSelector??> 
683                                        <#assign StudentCurriculumObj = StudentCurriculumxPathSelector.selectSingleNode(rootElement)!""/> 
684                                        <#if StudentCurriculumObj?has_content> 
685                                            <#assign StudentCurriculum = StudentCurriculumObj.getStringValue()/> 
686                                            <#assign studentMap = studentMap + {"curriculum", StudentCurriculum}/> 
687                                        </#if> 
688                                    </#if> 
689                                    <#assign StudentLocation = "" /> 
690                                    <#assign StudentLocationxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Sede']") /> 
691                                    <#if StudentLocationxPathSelector??> 
692                                        <#assign StudentLocationObj = StudentLocationxPathSelector.selectSingleNode(rootElement)!""/> 
693                                        <#if StudentLocationObj?has_content> 
694                                            <#assign StudentLocation = StudentLocationObj.getStringValue()/> 
695                                            <#assign studentMap = studentMap + {"location", StudentLocation}/> 
696                                        </#if> 
697                                    </#if> 
698                                    <#assign Attachment = "" /> 
699                                    <#assign AttachmentxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Allegato']") /> 
700                                    <#if AttachmentxPathSelector??> 
701                                        <#assign AttachmentObj = AttachmentxPathSelector.selectSingleNode(rootElement)!""/> 
702                                        <#if AttachmentObj?has_content> 
703                                            <#assign Attachment = AttachmentObj.getStringValue()/> 
704                                            <#assign studentMap = studentMap + {"attachment", Attachment}/> 
705                                            <#list Attachment?split("/") as x>   
706                                                <#if x?counter ==3> 
707                                                    <#assign groupId = x?trim> 
708                                                </#if> 
709                                                <#if x?counter ==6> 
710                                                    <#assign uuId = x?trim> 
711                                                </#if> 
712                                            </#list> 
713                                            <#assign dlFileEntry = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryService")> 
714                                            <#if (uuId??) && (groupId??)> 
715                                                <#assign file = dlFileEntry.getFileEntryByUuidAndGroupId(uuId,groupId?number) >   
716                                                <#assign studentMap = studentMap + {"file", file}/> 
717                                            </#if>  
718                                        </#if> 
719                                    </#if> 
720                                    <#assign studentMapList = studentMapList + [studentMap]> 
721                                </#if>  
722                            </#list> 
723                            <#assign studentMapList = studentMapList?sort_by("surname")?reverse/> 
724                            <#list studentMapList?sort_by("cycle")?reverse as student> 
725                                <div class="student"> 
726                                    <#if student.cycle?? && student.cycle?trim?has_content> 
727                                        <div class="mb-2 mt-2"><span style="background:#f0cb00;font-weight:600;padding:6px">${student.cycle}° Ciclo</span></div> 
728                                    </#if> 
729                                    <span class="name"><strong>Nome: </strong>${student.name} ${student.surname}</span> 
730                                    <div> 
731                                        <span><strong>Email: </strong>${student.email}</span> 
732                                    </div> 
733                                    <#if student.attachment?? && student.attachment?trim != "" && student.file?? && student.file?trim?has_content> 
734                                        <div> 
735                                            <div class="link-name"> 
736                                                <span><strong>Progetto di ricerca: </strong><a href="${student.attachment}" target="_blank"> ${student.project}<i class="fal fa-long-arrow-right"></i> </a> 
737                                            </div> 
738                                        </div> 
739                                    <#else> 
740                                        <div> 
741                                        <span><strong>Progetto di ricerca: </strong>${student.project}</span> 
742                                    </div> 
743                                    </#if> 
744                                    <#if student.curriculum?? && student.curriculum?trim != "" > 
745                                        <div> 
746                                            <span><strong>Curriculum: </strong>${StudentCurriculum}</span> 
747                                        </div> 
748                                    </#if> 
749                                    <#if student.location?? && student.location?trim != ""> 
750                                        <div> 
751                                            <span><strong>Sede di svolgimento: </strong>${StudentLocation}</span> 
752                                        </div> 
753                                    </#if> 
754                                </div> 
755                                <div class="separator"></div> 
756                            </#list> 
757                        </div> 
758                    </div> 
759                </div> 
760            </#if> 
761        </#if> 
762             
763                <!-- Finanziamenti --> 
764                <div class="teachers-wrapper"> 
765                     
766                <#if finanziamento??> 
767                        <#assign showFin = false/> 
768                    <#if (finanziamento.getSiblings()?size >= 1)> 
769                        <#assign showFin = true/> 
770                    </#if> 
771                    <#if showFin> 
772                    <div class="row"> 
773                        <#list finanziamento.getSiblings() as cur_finanziamento> 
774                            <#if cur_finanziamento.getData()?has_content> 
775                                <#assign  
776                                    cur_finanziamento_map = cur_finanziamento.getData()?eval 
777                                    cur_finanziamento_classPK = cur_finanziamento_map.classPK 
778                                    article = JournalArticleLocalService.getLatestArticle(cur_finanziamento_classPK?number) 
779                                    article_id = article.articleId 
780                                    article_content = JournalArticleLocalService.getArticleContent(group_id, article_id, null, locale, themeDisplay) 
781
782                                <#assign document = saxReaderUtil.read(article.getContentByLocale(locale)) /> 
783                                <#assign rootElement = document.getRootElement() /> 
784                                <#assign  
785                                    FinTitle = "" 
786                                /> 
787                                <#assign FinTitlexPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Titolo']") /> 
788                                <#if FinTitlexPathSelector??> 
789                                    <#assign FinTitleObj = FinTitlexPathSelector.selectSingleNode(rootElement)!""/> 
790                                    <#if FinTitleObj?has_content> 
791                                        <#assign FinTitle = FinTitleObj.getStringValue()/> 
792                                    </#if> 
793                                </#if> 
794                                <#assign  
795                                    FinDescription = "" 
796                                /> 
797                                <#assign FinDescriptionxPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Contenuto']") /> 
798                                <#if FinDescriptionxPathSelector??> 
799                                    <#assign FinDescriptionObj = FinDescriptionxPathSelector.selectSingleNode(rootElement)!""/> 
800                                    <#if FinDescriptionObj?has_content> 
801                                        <#assign FinDescription = FinDescriptionObj.getStringValue()/> 
802                                    </#if> 
803                                </#if> 
804                                <div class="col-xs-12 mb-4 accordion"> 
805                                    <div class="presentation"> 
806                                        <h4>${FinTitle}</h4> 
807                                        <i class="fal fa-angle-down"></i> 
808                                    </div> 
809                                </div> 
810                                <div class="col-xs-12 tab-content"> 
811                                    ${FinDescription} 
812                                     
813                                </div> 
814                            </#if> 
815            	        </#list> 
816            	        </div> 
817            	    </#if> 
818                </#if> 
819            </div>  
820                <!-- End Finanziamenti --> 
821                <!-- Contatti--> 
822                <#if contacts??> 
823                 
824                    <#if contacts.getData()?has_content> 
825                        <div class="row"> 
826                            <div class="col-xs-12"> 
827                                <div class="wrapper"> 
828                                    <div class="presentation mb-4"> 
829                                        <h4>Informazioni contatto</h4> 
830                                    </div> 
831                                    <div class="description"> 
832                                        ${contacts.getData()} 
833                                    </div> 
834                                </div> 
835                            </div> 
836                        </div> 
837                     
838                    </#if> 
839                </#if> 
840                <!-- End contatti--> 
841            </div> 
842        </div> 
843	 
844    </div> 
845</div> 
846</div> 
847 
848<script> 
849 
850Liferay.on( 
851'allPortletsReady', 
852function(){ 
853    var acc = document.getElementsByClassName("accordion"); 
854    var i; 
855     
856    for (i = 0; i < acc.length; i++) { 
857     
858      acc[i].addEventListener("click", function() { 
859        this.classList.toggle("active"); 
860        var panel = this.nextElementSibling; 
861        if (panel.style.display === "block") { 
862          panel.style.display = "none"; 
863        } else { 
864          panel.style.display = "block"; 
865
866      }); 
867
868         
869     
870
871
872 
873</script>