FAQ formation

Une erreur s'est produite lors du traitement du modèle.
Java method "com.sun.proxy.$Proxy600.getDirectLinks(long)" threw an exception when invoked on com.sun.proxy.$Proxy600 object "com.liferay.asset.link.service.impl.AssetLinkLocalServiceImpl@18845bec"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign currentArticleRelatedLinks = ...  [in template "20101#20127#CONTENU_ACCORDEON" at line 18, column 1]
----
1<#-- 
2Web content templates are used to lay out the fields defined in a web 
3content structure. 
4 
5Please use the left panel to quickly add commonly used variables. 
6Autocomplete is also available and can be invoked by typing "${". 
7--> 
8<#-- Récupération des services --> 
9<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") > 
10<#assign journalArticleResourceLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService") /> 
11<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.link.service.AssetLinkLocalService") > 
12 
13<#-- Récupération du contenu relatif  --> 
14<#assign journalArticleId = .vars['reserved-article-id'].data> 
15<#assign articleResourcePK = journalArticleResourceLocalService.getArticleResourcePrimKey(groupId, journalArticleId)/> 
16<#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", articleResourcePK) /> 
17<#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() /> 
18<#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) /> 
19<#-- Boolean pour la deuxième colonne --> 
20<#assign hasBlockWithData = false /> 
21<#-- Retourne TRUE si un bloc de la 2ème colonne contient des données --> 
22<#if TitreDeLaZoneDeLien.getSiblings()?has_content > 
23    <#list TitreDeLaZoneDeLien.getSiblings() as titre > 
24        <#if ((titre.LienLaPagee700.getSiblings()?size gt 0 && titre.LienLaPagee700.getData() !="") || (titre.LienExterne.getSiblings()?size gt 0 && titre.LienExterne.getData() !="")) && titre.getData()?has_content> 
25                <#assign hasBlockWithData = true /> 
26        </#if> 
27    </#list> 
28</#if> 
29<#assign isBlocRightVisible = (<#-- TitreDeLaZoneDesContenusRelatifs.getData()?has_content && --> currentArticleRelatedLinks?size gt 0) || hasBlockWithData  /> 
30 
31<div class="row"> 
32	<#if Image8lqa.getData()?? && Image8lqa.getData() != ""> 
33		<div class="col-md-12 articleStandartHeader"> 
34			<h2>${TitreDeLaPage.getData()}</h2> 
35			<div> 
36				<img alt="${Image8lqa.getAttribute('alt')}" data-fileentryid="${Image8lqa.getAttribute('fileEntryId')}" src="${Image8lqa.getData()}" /> 
37			</div> 
38		</div> 
39	<#else> 
40		<div class="col-md-12"> 
41			<h2>${TitreDeLaPage.getData()}</h2> 
42			<div></div> 
43		</div> 
44	</#if> 
45</div> 
46 
47<div class="row"> 
48	<div class="${isBlocRightVisible?then('col-md-8','col-md-12')} accordeonArticle"> 
49		<#if descriptionDeLaPage.getData()?has_content> 
50			<div class="accordeonDesc">${descriptionDeLaPage.getData()}</div> 
51		</#if> 
52		<div class="accordion" id="accordionCHD"> 
53			<#if TitreDeBloc.getSiblings()?has_content> 
54				<#list TitreDeBloc.getSiblings() as cur_TitreDeBloc>  
55					<#if cur_TitreDeBloc.getData() != "" && cur_TitreDeBloc.getData()?has_content> 
56						<div class="card"> 
57							<div class="card-header" id="heading-${cur_TitreDeBloc?counter}"> 
58								<h5 class="mb-0"> 
59									<button class="btn btn-link accordeonBtn" data-toggle="collapse" data-target="#collapse-${cur_TitreDeBloc?counter}" aria-expanded="false" aria-controls="collapse-${cur_TitreDeBloc?counter}"> 
60										<div>${cur_TitreDeBloc.getData()}</div> 
61										<i class="upDown fas fa-chevron-right"></i> 
62									</button> 
63								</h5> 
64							</div> 
65							<div id="collapse-${cur_TitreDeBloc?counter}" class="collapse" aria-labelledby="heading-${cur_TitreDeBloc?counter}" data-parent="#accordionCHD"> 
66								<div class="card-body">${cur_TitreDeBloc.ContenuDuBloc.getData()} 
67									<#if cur_TitreDeBloc.Image7lr1.getSiblings()?has_content> 
68										<#list cur_TitreDeBloc.Image7lr1.getSiblings() as ilustration> 
69											<#if ilustration.getData()?? && ilustration.getData() != ""> 
70												<img alt="${ilustration.getAttribute('alt')}"  
71													data-fileentryid="${ilustration.getAttribute('fileEntryId')}"  
72													src="${ilustration.getData()}" 
73													class="img-fluid"/> 
74											</#if> 
75										</#list> 
76									</#if> 
77									<#if cur_TitreDeBloc.DocumentsEtMdiasiuvz.getSiblings()?has_content> 
78										<#list cur_TitreDeBloc.DocumentsEtMdiasiuvz.getSiblings() as doc> 
79											<#if doc.getData()?has_content> 
80												<#assign attachmentUrl="${doc.getData()}"?replace("?", "/") > 
81												<#list "${attachmentUrl}"?split("/") as x> 
82													<#if x?counter == 5><#assign groupId = x?number ></#if> 
83													<#if x?counter == 8><#assign uuid = x?string></#if> 
84												</#list> 
85												<#attempt> 
86													<#assign dlFileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")> 
87													<#assign file = dlFileEntryService.getFileEntryByUuidAndGroupId("${uuid}",groupId) > 
88													<#if file.getMimeType() == "video/mp4"> 
89														<video controls width="600" src="${doc.getData()}"></video> 
90													<#elseif file.getMimeType() == "image/jpeg" || file.getMimeType() == "image/png" || file.getMimeType() == "image/jpeg" > 
91														<img src="${doc.getData()}" class="img-fluid"> 
92													<#else> 
93														<a href="${doc.getData()}"> ${languageUtil.format(locale, "download-x", "Documents et médias", false)} </a> 
94													</#if> 
95												<#recover> 
96												</#attempt> 
97											</#if> 
98										</#list> 
99									</#if> 
100								</div> 
101							</div> 
102						</div> 
103					</#if> 
104				</#list> 
105			</#if> 
106		</div> 
107	</div> 
108    <#if isBlocRightVisible == true > 
109		<div class="col-md-4"> 
110			<#-- Zone de contenu relatifs--> 
111			<div class="articleAsset"> 
112				<#if TitreDeLaZoneDesContenusRelatifs.getData()?has_content && currentArticleRelatedLinks?size gt 0> 
113					<h5 id="related-source-title"><i class="fas fa-wave-square"></i>${TitreDeLaZoneDesContenusRelatifs.getData()}</h5> 
114					<br> 
115					<#if TitreDeLaZoneDesContenusRelatifs.DescriptionDuContenuRelatif.getData()?has_content> 
116						${TitreDeLaZoneDesContenusRelatifs.DescriptionDuContenuRelatif.getData()} 
117						<br> 
118					</#if> 
119				</#if> 
120				<#list currentArticleRelatedLinks as related_entry> 
121					<#assign relatedAssetEntryId = related_entry.getEntryId2() /> 
122					<#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) /> 
123					<#assign url = "/c/document_library/get_file?uuid=" + relatedAssetEntry.getClassUuid() + "&groupId=" + relatedAssetEntry.getGroupId()> 
124					<a href="${url}">${relatedAssetEntry.getTitle()}</a><br> 
125				</#list> 
126			</div> 
127			<#if TitreDeLaZoneDeLien.getSiblings()?has_content> 
128				<#list TitreDeLaZoneDeLien.getSiblings() as titre> 
129					<#if ((titre.LienLaPagee700.getSiblings()?size gt 0 && titre.LienLaPagee700.getData() !="") || (titre.LienExterne.getSiblings()?size gt 0 && titre.LienExterne.getData() !="")) && titre.getData()?has_content> 
130						<#-- Zone de lien --> 
131						<div class="articleAsset"> 
132							<#if titre.getData()?has_content> 
133								<h5 id="related-source-title"><i class="fas fa-link"></i>${titre.getData()}</h5> 
134							</#if> 
135							<br> 
136							<#if titre.DescriptionDeLaZoneDeLien.getData()?has_content> 
137								<p>${titre.DescriptionDeLaZoneDeLien.getData()?replace("\n", "<br>")}</p> 
138							</#if> 
139							<#if titre.LienLaPagee700.getSiblings()?has_content> 
140								<#list titre.LienLaPagee700.getSiblings() as lien> 
141									<#if lien.getFriendlyUrl()?has_content> 
142										<a href="${lien.getFriendlyUrl()}">  
143											<#if lien.TexteDuLien.getData()?has_content> 
144												${lien.TexteDuLien.getData()} 
145											<#else> 
146												lien interne 
147											</#if> 
148										</a> 
149										<br> 
150									</#if> 
151								</#list> 
152							</#if> 
153							<#if titre.LienExterne.getSiblings()?has_content> 
154								<#list titre.LienExterne.getSiblings() as lien> 
155									<#if lien.getData()?has_content> 
156										<a href="${lien.getData()}"> 
157											<#if lien.TexteDuLienExterne.getData()?has_content> 
158												${lien.TexteDuLienExterne.getData()} 
159											<#else> 
160												lien externe 
161											</#if> 
162										</a> 
163										<br> 
164									</#if> 
165								</#list> 
166							</#if> 
167						</div> 
168					</#if> 
169				</#list> 
170			</#if> 
171		</div> 
172	</#if> 
173</div>