Extended Viewer

An error occurred while processing the template.
The following has evaluated to null or missing:
==> content  [in template "10159#10199#337660" at line 179, column 14]

----
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: ${content.getData()!}  [in template "10159#10199#337660" at line 179, column 12]
----
1<#-- 
2## Velocity Transform Template 
3## 
4## All dynamic elements in a structure can be accessed as a Velocity variable. 
5## 
6## The given structure: 
7## 
8## <root> 
9##   <dynamic-element name="main-text" type="text_area"> 
10##     <dynamic-element name="sub-image" type="image"></dynamic-element> 
11##     <dynamic-element name="sub-text" type="text"></dynamic-element> 
12##   </dynamic-element> 
13##   <dynamic-element name="more-text" type="text_area"></dynamic-element> 
14##   <dynamic-element name="ms-list" type="multi-list"> 
15##     <dynamic-element name="chocolate" type="Chocolate"></dynamic-element> 
16##     <dynamic-element name="strawberry" type="Strawberry"></dynamic-element> 
17##     <dynamic-element name="vanilla" type="Vanilla"></dynamic-element> 
18##   </dynamic-element> 
19## </root> 
20## 
21## The dynamic element "main-text" can be accessed in the following ways: 
22## 
23## $main-text.getName()     - The name "main-text" 
24## $main-text.getData()     - The data in the article for main-text 
25## $main-text.getType()     - The type "text-area" 
26## $main-text.getChildren() - A collection with two nodes (sub-image and 
27##                            sub-text) that can be used in the #foreach clause 
28## $main-text.getSiblings() - A collection of elements with the name 
29##                            "main-text". This will only return more than one 
30##                            element if this element is repeatable. 
31## 
32## One special accessor exists for elements of type "multi-list": 
33## 
34## $ms-list.getOptions() - A collection with up to three string entries 
35##                         (chocolate, strawberry, or vanilla) that can be used 
36##                         in the #foreach clause 
37## 
38## Another special accessor exists for elements of type "link_to_layout": 
39## 
40## $linkToPage.getUrl() - The URL that links to the selected page in the current 
41##                        site. 
42## 
43## The variable $journalTemplatesPath can be used to include another Journal 
44## template, e.g. #parse ("$journalTemplatesPath/LAYOUT-PARENT") 
45## 
46## The variable $viewMode specifies which mode the article is being viewed in. 
47## For example, if $viewMode evaluates to "print", that means the user clicked 
48## the print icon to view this article. 
49## --> 
50 
51 
52<#setting url_escaping_charset='ISO-8859-1'> 
53 
54<#assign isESG = false > 
55 
56<#assign user_Id = getterUtil.getLong(themeDisplay["user-id"]) > 
57<#assign renderFromSearch = false > 
58<#if request.getAttribute('RENDER_FROM_SEARCH')??> 
59    <#assign renderFromSearch = request.getAttribute('RENDER_FROM_SEARCH') > 
60</#if> 
61<#assign articleTool = journalArticleTool > 
62<#assign articleHelper = articleTool.getArticleHelper(.vars['reserved-article-id'].data) > 
63<#assign assetHelper = articleHelper.createAssetHelper() > 
64 
65<#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") > 
66<#assign journalLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") > 
67 
68<#assign site = groupLocalService.getGroup(getterUtil.getLong(themeDisplay.getScopeGroupId())) >  
69<#assign customFieldValues = site.getExpandoBridge().getAttribute("com.msci.webmasters.liferay.theme.sitename") > 
70<#list customFieldValues as cf > 
71	<#assign sitename = cf >	 
72</#list> 
73 
74<#if assetHelper??> 
75	<#if assetHelper.getFirstFile()??> 
76		<#assign firstFile = assetHelper.getFirstFile() >		 
77	</#if> 
78</#if> 
79 
80<#if firstFile?? > 
81	<#-- #assign preview = assetHelper.getPreviewInfo(assetHelper.getFirstFile()) --> 
82<#else> 
83	<#assign preview = false > 
84</#if> 
85 
86<div class="content-detailed-container"> 
87 
88	<#if renderFromSearch?? && ((renderFromSearch?is_boolean && renderFromSearch == true) || (!renderFromSearch?is_boolean && renderFromSearch == 'true')) > 
89	    
90	    <#assign viewURL = '#'> 
91	    <#if request.getAttribute('VIEW_URL')??> 
92		    <#assign viewURL = request.getAttribute('VIEW_URL') > 
93	    </#if> 
94	     
95	    <#assign queryTerms='' > 
96	    <#if request.getAttribute('SEARCH_KEYWORDS')??> 
97		    <#assign queryTerms=request.getAttribute('SEARCH_KEYWORDS') > 
98		</#if> 
99		 
100		<#assign selectedCategories='' > 
101		<#if request.getAttribute('categories')??> 
102		    <#assign selectedCategories=request.getAttribute('categories') > 
103		</#if> 
104 
105		<#if preview?? && preview?is_hash && preview.previewFileURL??> 
106		     
107			<img src="${preview.previewFileURL}1"  
108			style="width: 100px; float: left; border: 1px solid silver; -webkit-box-shadow: 0 3px 5px -3px rgba(0, 0, 0, 0.8); -moz-box-shadow: 0 3px 5px -3px rgba(0, 0, 0, 0.8); box-shadow: 0 3px 5px -3px rgba(0, 0, 0, 0.8);" /> 
109		<#else> 
110			<div  
111			style="width: 100px; float: left; border: 1px solid silver; -webkit-box-shadow: 0 3px 5px -3px rgba(0, 0, 0, 0.8); -moz-box-shadow: 0 3px 5px -3px rgba(0, 0, 0, 0.8); box-shadow: 0 3px 5px -3px rgba(0, 0, 0, 0.8); text-align: center; color: silver;" > 
112			<div style="padding: 10px;">No preview available</div> 
113			</div> 
114		</#if> 
115		<div style="margin: 0px 0px 0px 120px"> 
116			<#assign title = .vars['reserved-article-title'].getData() > 
117			<#assign title = htmlUtil.escape(title) > 
118			<#if queryTerms?is_enumerable> 
119			    <#assign title = stringUtil.highlight(title, queryTerms) > 
120			</#if> 
121			<h1><a href="${viewURL}">${title}</a></h1> 
122			<#if queryTerms?is_enumerable> 
123			    <p>${stringUtil.highlight(content.getData(), queryTerms)}</p> 
124			</#if> 
125			<p> 
126				<#assign categories=articleHelper.getCategories() > 
127				<#if categories?has_content > 
128					<b>Categories:</b> 
129					<#list articleHelper.getCategories() as cat > 
130						${cat.getTitle(locale)}<#if cat?has_next>,&nbsp; </#if> 
131					</#list> 
132				</#if> 
133			</p> 
134		</div> 
135		 
136	</#if> 
137 
138 
139 
140	<h1>${.vars['reserved-article-title'].getData()!}</h1> 
141 
142 
143	<#assign  last_modified_date_obj = dateUtil.parseDate("EEE, dd MMM yyyy hh:mm:ss Z", .vars['reserved-article-modified-date'].getData(), localeUtil.getSiteDefault()) > 
144	<#assign last_modified_date = dateUtil.getDate(last_modified_date_obj, "dd MMM yyyy z", locale) > 
145	<!-- 
146	<p> 
147		last modified by ${.vars['reserved-article-author-name'].getData()} 
148		on 
149		${last_modified_date} 
150	</p> 
151	--> 
152 
153 
154	<p > 
155		<#assign categories=articleHelper.getCategories() > 
156		<#if categories?has_content> 
157		<b>categories:</b> 
158		<#list articleHelper.getCategories() as cat > 
159	<#-- 
160			<#if !isESG && cat.getTitle(locale).contains("ESG") > 
161				<#assign isESG = true > 
162			</#if> 
163	--> 
164			${cat.getTitle(locale)}<#if cat?has_next>, </#if> 
165		</#list> 
166		</#if> 
167	</p> 
168	<p> 
169		<#assign tags=articleHelper.getVisibleTags() > 
170		<#if tags?has_content > 
171		<b>tags:</b> 
172		<#list tags as tag > 
173			${tag.getName()}<#if tag?has_content>, </#if> 
174		</#list> 
175		</#if> 
176	</p> 
177 
178 
179	<p>${content.getData()!}</p> 
180 
181	<#if preview?? && preview?is_boolean && preview == true > 
182		<script type="text/javascript"> 
183		AUI().use("liferay-preview", function() { 
184			new Liferay.Preview({ 
185							actionContent: '#${randomNamespace}_previewFileActions', 
186							baseImageURL: '${preview.previewFileURL}', 
187							boundingBox: '#${randomNamespace}_previewFile', 
188							contentBox: '#${randomNamespace}_previewFileContent', 
189							currentPreviewImage: '#${randomNamespace}_previewFileImage', 
190							imageListContent: '#${randomNamespace}_previewImagesContent', 
191							maxIndex: ${preview.previewFileCount}, 
192							previewFileIndexNode: '#${randomNamespace}_previewFileIndex', 
193							toolbar: '#${randomNamespace}_previewToolbar' 
194			}).render(); 
195		}); 
196		</script> 
197		<div class="lfr-preview-file" id="${randomNamespace}_previewFile"> 
198			<div class="lfr-preview-file-content" id="${randomNamespace}_previewFileContent"> 
199				<div class="lfr-preview-file-image-current-column"> 
200					<div class="lfr-preview-file-image-container"> 
201						<img class="lfr-preview-file-image-current" id="${randomNamespace}_previewFileImage" src="${preview.previewFileURL}1" /> 
202					</div> 
203					<span class="lfr-preview-file-actions aui-helper-hidden" id="${randomNamespace}_previewFileActions">  
204						<span class="lfr-preview-file-toolbar" id="${randomNamespace}_previewToolbar"></span>  
205						<span class="lfr-preview-file-info">  
206							<span class="lfr-preview-file-index" id="${randomNamespace}_previewFileIndex">1</span>  
207							of  
208							<span class="lfr-preview-file-count">${preview.previewFileCount}</span> 
209						</span> 
210					</span> 
211				</div> 
212 
213				<div class="lfr-preview-file-images" id="${randomNamespace}_previewImagesContent"> 
214								<div class="lfr-preview-file-images-content"></div> 
215				</div> 
216			</div> 
217		</div> 
218	</#if> 
219	<br> 
220 
221	<#-- init public_download --> 
222	<#assign public_download=false > 
223	<#list articleHelper.getTags() as tag > 
224			<#if tag.getName() == "--public_download" > 
225			    <#assign public_download=true> 
226			</#if> 
227	</#list> 
228 
229	<#if (assetHelper.getLinkedFiles()?size > 0) > 
230		<h3>Download file</h3> 
231		<#list assetHelper.getLinkedFiles() as file > 
232 
233			<#-- append Filename and Article to URL for GA tracking  --> 
234			<#assign filename = file.getTitle()?url > 
235			<#assign articleTitle = .vars['reserved-article-title'].getData()?url > 
236			 
237			<#-- support site => no pardot tracking --> 
238			 
239			<#if sitename == 'support.msci.com' > 
240				<#assign title = file.getTitle() > 
241				<#assign url   = themeDisplay.getPortalURL() + "/documents/" + file.getGroupId() + "/" + file.getUuid() + "?file=" + filename +"&article=" + articleTitle > 
242			<#-- public site, public document, not ESG => pardot tracking needed --> 
243			<#elseif sitename != 'support.msci.com' && public_download == true && !isESG > 
244				<#assign title = file.getTitle() > 
245				<#--original for pardot http://info.msci.com/l/36252/2015-05-05/r37kp --> 
246				<#assign url = themeDisplay.getPortalURL() + "/research-paper/download?doc=" + themeDisplay.getPathContext() + "/documents/" + file.getGroupId() + "/" + file.getUuid() + "&file= " + filename + "&article=" + articleTitle > 
247				 
248				<#--/research-paper registration form-->  
249				<#--<#assign portalUrl = "https://$themeDisplay.portal-url") --> 
250				<#--<#assign pageUrl = "/research-paper-registration/-/forms/action/checkUrl") --> 
251				<#--<#assign redirectw2l = "$portalUrl$pageUrl") --> 
252				<#--<#assign fileUrl = "$portalUrl/$themeDisplay.path-context/documents/${file.getGroupId()}/${file.getUuid()}?file=$filename&article=$articleTitle") --> 
253				<#--<#assign escapedUrl = $escapeTool.url($fileUrl)) --> 
254				<#--<#assign url = "$!redirectw2l?path=$!escapedUrl" ) --> 
255			<#-- public site, public document, is ESG => pardot tracking needed --> 
256			<#elseif sitename != 'support.msci.com' && public_download == true && isESG > 
257				<#assign title = file.getTitle() > 
258				<#assign url = themeDisplay.getPortalURL() + "/research-paper/download?doc=" + themeDisplay.path-context + "/documents/" + file.getGroupId() + "/" + file.getUuid() + "&file=" + filename + "&article=" + articleTitle > 
259				 
260				<#--/esg-paper registration form --> 
261				<#--<#assign portalUrl = "https://$themeDisplay.portal-url") --> 
262				<#--<#assign pageUrl = "/esg-registration/-/forms/action/checkUrl") --> 
263				<#--<#assign redirectw2l = "$portalUrl$pageUrl") --> 
264				<#--<#assign fileUrl = "$portalUrl/$themeDisplay.path-context/documents/${file.getGroupId()}/${file.getUuid()}?file=$filename&article=$articleTitle") --> 
265				<#--<#assign escapedUrl = $escapeTool.url($fileUrl)) --> 
266				<#--<#assign url = "$!redirectw2l?path=$!escapedUrl" ) --> 
267			<#-- public site, private document => no pardot tracking --> 
268			<#elseif sitename != 'support.msci.com' && public_download == false> 
269				<#assign title = "Full Download - Client Only"> 
270				<#assign url   = "https://support.msci.com/documents/" + file.getGroupId() + "/" + file.getUuid() > 
271			</#if> 
272			 
273			<a target="_blank" href="${url}">${title}</a><br/> 
274		</#list> 
275	</#if>	 
276 
277	<#if google_code?? && google_code.getData() != "" > 
278	    <div id="google-custom-code"> 
279	        ${google_code.getData()} 
280	    </div> 
281	</#if> 
282 
283</div>