From the Price transmission case study:

Fresh mussel in the EU

Price structure in the supply chain

Download:

 

Turbot in the EU

Price structure in the supply chain

Download:

 

From the Monthly Highlights:

An error occurred while processing the template.
The following has evaluated to null or missing:
==> document.selectSingleNode("/root/dynamic-element[@name='publication']/dynamic-content")  [in template "20155#20187#22338" at line 16, column 47]

----
Tip: If the failing expression is known to be 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: #assign imgLinkNode = document.select...  [in template "20155#20187#22338" at line 16, column 25]
----
1<#if entries?has_content> 
2<div class="section publication"> 
3	<#assign DLAppService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService")/> 
4		 
5			<table class="table document"> 
6		  	<tbody> 
7			    <#list entries as curEntry> 
8			  <#assign renderer =curEntry.getAssetRenderer()> 
9              <#assign className = renderer.getClassName()> 
10		<#if className == "com.liferay.journal.model.JournalArticle"> 
11	 
12			<#assign issuuNode =""/> 
13			<#assign issuu =""/> 
14			<#assign journalArticle =renderer.getArticle()/> 
15			<#assign document =saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString()))/> 
16			<#assign imgLinkNode =document.selectSingleNode("/root/dynamic-element[@name='publication']/dynamic-content")/> 
17			<#assign imgLink = imgLinkNode.getText()/> 
18			 
19			<#assign imgLinkProva = imgLink?eval /> 
20		   <#list imgLinkProva?values as v> 
21             	<#assign uuid2 = v /> 
22               </#list> 
23					  <#assign type =  "" /> 
24					   <#assign groupId =  "" /> 
25					    <#assign title =  "" /> 
26						 <#assign classPK =  "" /> 
27						  <#assign uuid =  "" /> 
28						   <#assign titleParsed = "" /> 
29					 <#assign keys = imgLinkProva?keys /> 
30             <#list keys as key> 
31			  
32			 	<#if key == "type"> 
33				  <input type="hidden" name="type" value="${imgLinkProva[key]}" /> 
34				<#assign type = imgLinkProva[key] /> 
35				 </#if> 
36				 <#if key == "groupId"> 
37				  <input type="hidden" name="groupId" value="${imgLinkProva[key]}" /> 
38					<#assign groupId = imgLinkProva[key] /> 
39				 </#if> 
40				 <#if key == "title"> 
41				  <input type="hidden" name="title" value="${imgLinkProva[key]}" /> 
42				  
43				   <#assign title = imgLinkProva[key] /> 
44				    <#assign titleParsed = title?replace(" ", "+") /> 
45				 </#if> 
46				 	 <#if key == "classPK"> 
47				  <input type="hidden" name="classPK" value="${imgLinkProva[key]}" /> 
48				  <#assign classPK = imgLinkProva[key] /> 
49				   <#assign fileEntry = DLAppService.getFileEntry(classPK)  /> 
50				 </#if> 
51				  
52				 	 <#if key == "uuid"> 
53				  <input type="hidden" name="uuid" value="${imgLinkProva[key]}" /> 
54				 
55				 </#if> 
56		 
57		 
58			 </#list> 
59<#assign StringPool = staticUtil["com.liferay.portal.kernel.util.StringPool"] /> 
60    <#assign slash = StringPool.SLASH /> 
61	 <#if fileEntry?has_content > 
62     <#assign imgUrl = slash+"documents"+slash+groupId+slash+fileEntry.getFolderId()+slash+titleParsed /> 
63	<#else>  <#assign imgUrl = slash+"documents"+slash+groupId+slash+titleParsed /> 
64	</#if>			  
65			 
66			 
67			<#assign descriptionNode = document.selectSingleNode("/root/dynamic-element[@name='Description']/dynamic-content")/> 
68			<#assign description = descriptionNode.getText()/> 
69			<#assign publicationDateNode = document.selectSingleNode("/root/dynamic-element[@name='Publication_Date']/dynamic-content")/> 
70			<#assign publicationDate = publicationDateNode.getText()/> 
71		 
72			<#assign issuuNode = document.selectSingleNode("/root/dynamic-element[@name='ISSUU_embed']/dynamic-content")/> 
73			<#assign issuu = issuuNode.getText()/> 
74		 
75			 
76		<#assign date = dateUtil.getDate(publicationDate?datetime("yyyy-MM-dd"), "dd/MM/yyyy", locale)/> 
77			<#assign artTitle = journalArticle.getTitle(locale)/> 
78			<#assign  bodyText= artTitle + " (" + date + ") <br/>" +  description/> 
79			 
80						<tr> 
81						<td class="title"> 
82						 <#if issuu?length gt 0 > 
83                                <a href="${imgUrl}" data-target="#clayFullScreenModalIframe" id="pdfModalIframeUrl" popupTitle="${artTitle}" class="trigger issuu" data-toggle="modal" oncl> 
84                                    <img class="previewImg" src="${imgUrl}?documentThumbnail=1" style="max-height:75px;max-width:75px"/> 
85                                </a> 
86                                <div class="issuu-embed" style="display:none">${escapeTool}.html(${issuu})</div> 
87                            <#else> 
88                                <a href="${imgUrl}" data-target="#clayFullScreenModalIframe" id="pdfModalIframeUrl" popupTitle="${artTitle}" class="trigger" data-toggle="modal"> 
89                                    <img class="previewImg" src="${imgUrl}?documentThumbnail=1" style="max-height:75px;max-width:75px"/> 
90                               </a> 
91                           </#if> 
92						</td> 
93							 
94						<td class="description-brdrless">${bodyText}</td> 
95		 
96					</tr> 
97				</#if> 
98	   </#list>      
99	  
100			</tbody> 
101		</table> 
102 
103		 
104	</div> 
105 
106 </#if>