Typ
Dienst
Jahr
Fehler bei der Verarbeitung der Vorlage.
Java method "com.liferay.portal.json.JSONFactoryImpl.createJSONObject(String)" threw an exception when invoked on com.liferay.portal.json.JSONFactoryImpl object "com.liferay.portal.json.JSONFactoryImpl@79bc3d89"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign imgJson = jsonFactoryUtil.cre...  [in template "10155#10193#14104459" at line 130, column 49]
----
1<#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")> 
2<#assign dLAppLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppLocalService")> 
3 
4 
5<#assign dlAppServiceUtil = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService") />  
6 
7<#assign assetCategoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryService")> 
8<#assign assetVocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyService")> 
9 
10<#setting url_escaping_charset='ISO-8859-1'> 
11<#assign backLink = currentURL?url/>  
12<#assign liferay_ui = taglibLiferayHash["/META-INF/liferay-ui.tld"] /> 
13<#assign strLang="Fr" />  
14<#if locale.getLanguage()?lower_case == "de"> 
15	<#assign strLang = "De" /> 
16</#if> 
17<#-- AP Block Title--> 
18<#assign apBlockTitle= "" /> 
19<#if portletPreferences["blockTitle"+strLang]?? && portletPreferences["blockTitle"+strLang][0]?? > 
20	<#assign apBlockTitle= portletPreferences["blockTitle"+strLang][0]> 
21</#if> 
22<#-- AP Block SubTitle --> 
23<#assign apBlockSubTitle= "" /> 
24<#if portletPreferences["blockSubTitle"+strLang]?? && portletPreferences["blockSubTitle"+strLang][0]?? > 
25	<#assign apBlockSubTitle= portletPreferences["blockSubTitle"+strLang][0]> 
26</#if> 
27<#-- AP Link Title --> 
28<#assign apLinkTitle= "" /> 
29<#if portletPreferences["linkTitle"+strLang]?? && portletPreferences["linkTitle"+strLang][0]?? > 
30	<#assign apLinkTitle= portletPreferences["linkTitle"+strLang][0]> 
31</#if> 
32<#-- AP Link URL --> 
33<#assign apLinkURL= "" /> 
34<#if portletPreferences["linkURL"+strLang]?? && portletPreferences["linkURL"+strLang][0]?? > 
35	<#assign apLinkURL= portletPreferences["linkURL"+strLang][0]> 
36</#if> 
37<#-- AP Link Sub Title--> 
38<#assign apLinkSubTitle= "" /> 
39<#if portletPreferences["linkSubTitle"+strLang]?? && portletPreferences["linkSubTitle"+strLang][0]?? > 
40	<#assign apLinkSubTitle= portletPreferences["linkSubTitle"+strLang][0]> 
41</#if> 
42 
43 
44<#assign plusButton = "PLUS D’ACTUALITÉS"/> 
45<#if locale = "de_DE"> 
46	<#assign local_back = "MEHR NEWS"/> 
47</#if> 
48 
49 
50<style> 
51.newsbackground{ 
52	background-color:#F3F3F2; 
53
54 
55.summaryTxt2{ 
56	display: -webkit-box; 
57	-webkit-line-clamp: 9; 
58	-webkit-box-orient: vertical; 
59	-webkit-box-align: top; 
60	overflow: hidden; 
61	text-overflow: ellipsis; 
62
63 
64.plusButton{ 
65	background-color:#E22B28; 
66	text-align:center; 
67	padding-top:10px; 
68	padding-bottom: 10px; 
69	color:#ffffff; 
70
71 
72.plusButton:hover{ 
73	color:#ffffff; 
74	background-color:#E22B28; 
75
76 
77.card-com-preview:hover { 
78    box-shadow: rgba(0, 0, 0, 0.24) 0px 5px 10px 
79
80 
81.card-com-preview h3 > a {color: black;} 
82.card-com-preview h3 > a:hover {color: inherit;} 
83 
84.card-com-preview h3 { 
85	    font-size: 1.1em; 
86	    font-family: "Source Sans Pro", sans-serif; 
87	    line-height: 1.2; 
88	    font-weight: 700; 
89
90 
91</style> 
92 
93 
94 
95<div class="container rounded-0 p-0"> 
96	<div class="row"> 
97		<#list entries as curEntry> 
98		  <#if curEntry.getAssetRenderer()??> 
99			<#assign renderer = curEntry.getAssetRenderer() /> 
100			<#assign className = renderer.getClassName() /> 
101			<#if className == "com.liferay.journal.model.JournalArticle" &&  renderer.getArticle()?? > 
102				<#assign journalArticle = renderer.getArticle() > 
103				<#assign Title = journalArticle.getTitle(locale) /> 
104				<#assign entryTitle = htmlUtil.escape(renderer.getTitle(locale)) /> 
105				<#assign document = saxReaderUtil.read(journalArticle.getContent()) > 
106				<#assign rootElement = document.getRootElement() > 
107				<#assign viewURL = "/web/communication/detail?groupId=${curEntry.getGroupId()}&articleId=${journalArticle.getArticleId()}&redirect=${backLink}" /> 
108				<#-- image --> 
109				<#assign xPathSelectorItem = saxReaderUtil.createXPath("dynamic-element[@name='Image']") > 
110				<#if xPathSelectorItem.selectSingleNode(rootElement)?? > 
111					<#--<#assign  ItemNode = xPathSelectorItem.selectSingleNode(rootElement).selectSingleNode("dynamic-content") > 
112					<#assign  Image = ItemNode.getStringValue() >--> 
113					 
114					 
115					 
116					 
117					<#attempt> 
118						<#assign imagevalue = getStructureValue("Image",rootElement) /> 
119						<#if imagevalue != "">  
120							<#assign  Image = imagevalue.getData() /> 
121						</#if> 
122					<#recover> 
123						<#assign  Image = "" /> 
124					</#attempt> 
125				 
126					 
127					 
128					<#assign noImage = 0 /> 
129					<#if Image != ""> 
130						<#assign  imgJson = jsonFactoryUtil.createJSONObject(Image)> 
131						<#assign  Image = "/documents/"+ imgJson.groupId +"/" + imgJson.uuid > 
132					</#if> 
133				<#else> 
134					<#assign  Image = "" > 
135					<#assign noImage = 1 /> 
136				</#if> 
137				<#if Image ==""> 
138					<#assign  Image = "${themeDisplay.getPathThemeCss()}/../assets/img/default/default-news.jpg" /> 
139					<#assign noImage = 1 /> 
140				<#else> 
141					<#assign  Image = Image + "?imagePreview=1" > 
142				</#if> 
143				<#-- Type & Categories --> 
144				<#assign strCategories = ""> 
145				<#assign Type = "" /> 
146				<#assign categoryList = curEntry.getCategories() /> 
147				<#list categoryList as category> 
148					<#assign vocabulary = assetVocabularyService.getVocabulary(category.vocabularyId)> 
149					<#if vocabulary.name = "020 Typologies"> 
150						<#if category.getTitle(locale) != "News-Accueil"> 
151							<#assign Type= category.getTitle(locale) /> 
152						</#if> 
153					</#if> 
154					<#if vocabulary.name = "010 Pouvoirs"> 
155						<#assign strCategories = category.getDescription(locale) /> 
156					</#if> 
157				</#list> 
158				 
159				<div class="col-lg-4 col-md-6"> 
160				  <div class="card card-com-preview border-0 rounded-0 newsbackground mb-4 " onclick="window.open('${viewURL}');"> 
161					<div class="card-body  pb-0"  style="cursor:pointer;"> 
162						<div class="row" style="min-height:20px;"> 
163							<div class="col-6"> 
164								<p class="m-0 card-text"><small class="text-muted">${Type}</small></p> 
165							</div> 
166							<div class="col-6 text-right"> 
167								<p class="m-0 card-text"><small class="text-muted">${dateUtil.getDate(curEntry.getPublishDate(), "dd.MM.yyyy", locale)}</small></p> 
168							</div> 
169						</div> 
170						<div class="row" style="min-height:45px;"> 
171							<div class="col-12"> 
172								<p class="m-0 card-text text-danger">${strCategories}</p> 
173							</div> 
174						</div> 
175						<div class="row" style="min-height:50px;"> 
176							<div class="col-12" style="min-height:90px;"> 
177								 
178									<h3 class="mt-3" style="hyphens: auto;"><a href="${viewURL}" class="" target="_blank">${Title}</a></h3> 
179								 
180							</div> 
181						</div> 
182					</div> 
183							<#if noImage==0> 
184								<div class="card-footer m-0 p-0 border-0 newsbackground" style="height:220px;overflow:hidden;"> 
185									 
186										<#if imgJson?? && imgJson.uuid??> 
187										<#attempt> 
188											<#assign imageFileEntry = dlFileEntryLocalService.getFileEntryByUuidAndGroupId(imgJson.uuid?string,imgJson.groupId?number) /> 
189											<#assign imageFileVersion = imageFileEntry.getFileVersion().getFileVersionId()> 
190											<#assign imageFile = dLAppLocalService.getFileVersion(imageFileVersion)> 
191											<img data-fileentryid="${imageFile.fileEntryId}" alt="${imageFile.description}" src="${Image}" class="img-fluid" style="cursor: pointer;"/> 
192											 
193										<#recover> 
194										</#attempt> 
195										 </#if> 
196									 
197							<#else> 
198								<div class="card-footer pb-0 border-0 newsbackground align-top mb-2" style="min-height:200px;cursor:pointer;" onclick="window.open('${viewURL}');"> 
199									<div class="summaryTxt2"> 
200										${curEntry.getSummary(locale)} 
201									</div> 
202							</#if> 
203					</div> 
204						<#if renderer.hasEditPermission(themeDisplay.getPermissionChecker())> 
205								<@getIvsEditIcon/> 
206						</#if> 
207 
208				  </div> 
209				</div> 
210			</#if> 
211		  </#if> 
212		</#list> 
213	</div> 
214</div> 
215 
216<#macro getIvsEditIcon > 
217	<#if renderer.hasEditPermission(themeDisplay.getPermissionChecker())> 
218		<#assign redirectURL = renderResponse.createRenderURL() /> 
219 
220		${redirectURL.setParameter("mvcPath", "/add_asset_redirect.jsp")} 
221		${redirectURL.setWindowState("pop_up")} 
222 
223		<#assign editPortletURL = renderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)!"" /> 
224 
225		<#if validator.isNotNull(editPortletURL)> 
226			<div style="position:absolute;bottom:3px;right:3px;background:#f3f3f2ba;padding:5px 10px 5px 10px;border-radius: 3px;color:#343a40"> 
227				<#assign url="javascript:Liferay.Util.openWindow({id:'" + renderResponse.getNamespace() + "editAsset', title: 'Edit', uri:'" + htmlUtil.escapeURL(editPortletURL.toString()) + "'});" /> 
228				<a href="${url}"><i class="icon-pencil"></i></a> 
229			</div> 
230			 
231		</#if> 
232	</#if> 
233</#macro> 
234 
235 
236<#function getStructureValue elementName xmlContent> 
237    <#assign availableLanguagesXPathSelector = saxReaderUtil.createXPath("/*/@available-locales") /> 
238     <#assign available = "" /> 
239    <#if availableLanguagesXPathSelector.selectSingleNode(xmlContent)?? > 
240        <#assign available = availableLanguagesXPathSelector.selectSingleNode(xmlContent) /> 
241    </#if> 
242    <#if available?contains(locale.toString())> 
243        <#assign curElementXPath = "dynamic-element[@name='"+elementName+"']/dynamic-content[@language-id='" + locale + "']" />  
244    <#elseif available?contains("fr_FR")> 
245        <#assign curElementXPath = "dynamic-element[@name='"+elementName+"']/dynamic-content[@language-id='fr_FR']" /> 
246    <#else> 
247        <#assign curElementXPath = "dynamic-element[@name='"+elementName+"']/dynamic-content[@language-id='" + entry.getDefaultLanguageId() + "']" /> 
248    </#if> 
249    <#assign xPathSelector = saxReaderUtil.createXPath(curElementXPath) /> 
250    <#if xPathSelector.selectSingleNode(xmlContent)?? > 
251        <#assign structureValue = xPathSelector.selectSingleNode(xmlContent) /> 
252    <#else> 
253        <#assign structureValue = "" /> 
254    </#if> 
255    <#return structureValue/>                    
256</#function>