Agrégateur de contenus

Une erreur s'est produite lors du traitement du gabarit.
Denied access to method or field getParameter of class org.apache.catalina.core.ApplicationHttpRequest

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #if request.getParameter("link")??  [in template "10153#10191#1442541" at line 5, column 1]
----
1<#assign liferay_ui = taglibLiferayHash["/META-INF/liferay-ui.tld"] /> 
2<#assign liferay_portlet = taglibLiferayHash["/META-INF/liferay-portlet.tld"] /> 
3<#assign id = themeDisplay.getPortletDisplay().getId() /> 
4 
5<#if request.getParameter("link")??> 
6	<#assign requestParam = request.getParameter('link')?html /> 
7	<#if requestParam == "immobilier"> 
8		<#assign offresTerritoireOpen = 1 /> 
9	<#elseif requestParam == "touristique"> 
10		<#assign offresTerritoireOpen = 2 />	 
11	<#elseif requestParam == "entreprise"> 
12		<#assign offresTerritoireOpen = 3 /> 
13	<#elseif requestParam == "commerce"> 
14		<#assign offresTerritoireOpen = 4 /> 
15	</#if> 
16<#else> 
17	<#assign offresTerritoireOpen = 1 > 
18</#if> 
19 
20<#setting number_format="computer"> 
21 
22<#if entries?has_content> 
23	<style type="text/css"> 
24		#adt-offres-territoire .tabHeader > h2 > a[aria-expanded="true"]{ 
25			background-color: #f4751d; 
26			color: black!important; 
27
28		#adt-offres-territoire .tabHeader > h2 > a[aria-expanded="false"]{ 
29			background-color: #1f262d; 
30			color:white!important; 
31
32		#adt-offres-territoire .tabHeader > h2 > a[aria-expanded="true"]:hover, 
33		#adt-offres-territoire .tabHeader > h2 > a[aria-expanded="true"]:active, 
34		#adt-offres-territoire .tabHeader > h2 > a[aria-expanded="true"]:focus, 
35		#adt-offres-territoire .tabHeader > h2 > a[aria-expanded="false"]:hover, 
36		#adt-offres-territoire .tabHeader > h2 > a[aria-expanded="false"]:active, 
37		#adt-offres-territoire .tabHeader > h2 > a[aria-expanded="false"]:focus{ 
38			text-decoration:none; 
39
40		.webContentTitle { 
41			background-color:#1f262d;  
42			color:white; 
43			padding: 10px; 
44			text-transform: uppercase; 
45
46		.webContentPrice { 
47			background-color:#ffc107; 
48			padding: 10px 0; 
49			text-align:center; 
50
51		.webContentTitle > b, .webContentPrice > b{ 
52			font-size:16px; 
53
54		.webContentImgNCritere { 
55			background-color:#e4e8e7; 
56			padding-top:15px; 
57			padding-bottom:15px; 
58
59		.webContentImgNCritere > .webContentImg{ 
60			padding-left:0; 
61
62		.webContentTitle, .webContentPrice, .webContentImgNCritere, .webContentImgNCritere img, .infosContact span, .infosContact a{ 
63			border:1px solid #1f262d;  
64
65		#adt-offres-territoire .webContentPrice { 
66			border-bottom: none; 
67
68		.hide-bullets { 
69			list-style:none; 
70			margin-left: -40px; 
71			margin-top:20px; 
72			justify-content: center; 
73			display: flex; 
74			flex-wrap: wrap; 
75
76		#adt-offres-territoire .webContentImg >.row{ 
77			margin-left:0; 
78			margin-right:0; 
79
80		#adt-offres-territoire .ddl{ 
81			padding-right:0; 
82
83		#adt-offres-territoire .ddl .ddl-icon{ 
84			margin-right:0!important; 
85
86	</style> 
87 
88 
89    <div id="adt-offres-territoire"> 
90		<div class="panel-group text-police-2" id="accordion-${id}" role="tablist" aria-multiselectable="true"> 
91			<#assign cptEntry = 1 /> 
92			<#assign cptAsset = 1 /> 
93			<#list entries as curEntry> 
94				<#assign assetRenderer = curEntry.getAssetRenderer() /> 
95				<#assign className = assetRenderer.getClassName() /> 
96				 
97				<#if className == "com.liferay.journal.model.JournalArticle" > 
98				 
99					<!------- initialisation des champs structure ----------------> 
100					<#assign formFieldValues = assetRenderer.getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValues() /> 
101					 
102					<#list formFieldValues as curFormField> 
103						<#assign FieldName = curFormField.getName() /> 
104						 
105						<#if FieldName == "Titre" > 
106							<#assign fieldTitre = curFormField.getValue().getString(local) /> 
107						<#elseif FieldName == "SousTitre" > 
108							<#assign fieldSousTitre = curFormField.getValue().getString(local) /> 
109						<#elseif FieldName == "Description" > 
110							<#assign fieldDescription = curFormField.getValue().getString(local) /> 
111						<#elseif FieldName == "Telephone" > 
112							<#assign fieldTelephone = curFormField.getValue().getString(local) /> 
113						<#elseif FieldName == "Tag" > 
114							<#assign fieldTag = curFormField.getValue().getString(local) /> 
115						</#if> 
116					</#list> 
117					<#if cptEntry != 1> 
118						<div class="py-2"></div> 
119					</#if> 
120					 <div class="panel panel-default"> 
121						<div class="panel-heading tabHeader" role="tab" id="heading${cptEntry}"> 
122							<div class="panel-title background-couleur-4 pb-3 px-3 pt-3"> 
123								<div class="container"> 
124									<div class="component-paragraph pb-0 text-couleur-5 text-hover-couleur-2 text-center text-45px text-police-2 background-pas-de-couleur background-hover-pas-de-couleur border-0 border-radius-0 border-pas-de-couleur border-hover-pas-de-couleur text-break"> 
125										<div class="mb-4 mt-4"> 
126											<strong> 
127												<a role="button" data-toggle="collapse" data-parent="#accordion-${id}" href="#collapse-${id}-${cptEntry}" aria-expanded="false" aria-controls="collapse-${id}-${cptEntry}" <#if cptEntry != offresTerritoireOpen >class="collapsed"</#if>> 
128													${fieldTitre} 
129												</a> 
130											</strong> 
131										</div> 
132									</div> 
133								</div> 
134							</div> 
135						</div> 
136						 
137						<div id="collapse-${id}-${cptEntry}" class="panel-collapse collapse	<#if cptEntry == offresTerritoireOpen >in</#if>" role="tabpanel" aria-labelledby="heading${cptEntry}"> 
138							<div class="panel-body"> 
139								<div class="container"> 
140					            	<div class="py-3"></div> 
141									<#if fieldSousTitre?has_content> 
142										<h3 class="text-35px pt-3"><strong>${fieldSousTitre}</strong></h3> 
143									</#if> 
144									<#if fieldDescription?has_content> 
145										<p>${fieldDescription}</p> 
146									</#if> 
147									 
148									<!------- Affichage des contenu web (using tag)----------------> 
149									<#if fieldTag?has_content> 
150										<#assign  
151											tagServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetTagServiceUtil"] 
152											tags = tagServiceUtil.getGroupTags(themeDisplay.getScopeGroupId()) 
153
154										<#if tags?has_content> 
155											<#list tags as tag> 
156												<#if tag.getName()?trim?lower_case == fieldTag?remove_ending('"]')?remove_beginning('["')?trim?lower_case> 
157													<#assign tagId = tag.getTagId() > 
158												</#if> 
159											</#list> 
160											<#if tagId?has_content> 
161												<#assign  
162													assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")  
163													webContentAssets = assetEntryLocalService.getAssetTagAssetEntries(tagId) 
164
165												<#if webContentAssets?has_content> 
166													<#list webContentAssets as webContentAsset> 
167														<#if webContentAsset.isVisible() && webContentAsset.getAssetRenderer()??> 
168														<#assign  
169															webContentFormFieldAssetRenderer = webContentAsset.getAssetRenderer() 
170															webContentDDMFormValuesReader = webContentFormFieldAssetRenderer.getDDMFormValuesReader() 
171															webContentDDMFormValues = webContentDDMFormValuesReader.getDDMFormValues() 
172															webContentFormFieldValue = webContentDDMFormValues.getDDMFormFieldValues() 
173															/> 
174														<#if webContentFormFieldValue?has_content> 
175															<#assign  
176																webCFieldTitreDeLAnnonce = "" 
177																webCFieldDescription = "" 
178																webCFieldDestination = "" 
179																webCFieldSurface = "" 
180																webCFieldLieu = "" 
181																webCFieldPrix = [] 
182																webCFieldTourisme = "" 
183																webCFieldSubventionsPotentielles = "" 
184																webCFieldImage = [] 
185																webCFieldPDFDeLAnnonce = "" 
186																/> 
187															<#list webContentFormFieldValue as webCField> 
188																<#assign webCFieldInstanceId =  webCField.getInstanceId() /> 
189																<#switch webCField.getName()> 
190																	<#case "TitreDeLAnnonce"> 
191																		<#assign webCFieldTitreDeLAnnonce = webCField.getValue().getString(local) /> 
192																		<#break> 
193																	<#case "Description"> 
194																		<#assign webCFieldDescription = webCField.getValue().getString(local) /> 
195																		<#break> 
196																	<#case "Destination"> 
197																		<#assign webCFieldDestination = webCField.getValue().getString(local) /> 
198																		<#break> 
199																	<#case "Surface"> 
200																		<#assign webCFieldSurface = webCField.getValue().getString(local) /> 
201																		<#break> 
202																	<#case "Lieu"> 
203																		<#assign webCFieldLieu = webCField.getValue().getString(local) /> 
204																		<#break> 
205																	<#case "Prix"> 
206																		<#assign webCFieldPrix = webCFieldPrix + ["${webCField.getValue().getString(local)}"] /> 
207																		<#break> 
208																	<#case "Tourisme"> 
209																		<#assign webCFieldTourisme = webCField.getValue().getString(local) /> 
210																		<#break> 
211																	<#case "SubventionsPotentielles"> 
212																		<#assign webCFieldSubventionsPotentielles = webCField.getValue().getString(local) /> 
213																		<#break> 
214																	<#case "Image"> 
215																		<#assign  
216																			imageJson = jsonFactoryUtil.createJSONObject(webCField.getValue().getString(local)) 
217																			imgUuid = imageJson.getString("uuid") 
218																			imgGroupId = imageJson.getLong("groupId") 
219																			webCFieldImage = webCFieldImage + ["/c/document_library/get_file?uuid=${imgUuid}&groupId=${imgGroupId}"] 
220																		/> 
221																		<#break> 
222																	<#case "PDFDeLAnnonce"> 
223																		<#assign  
224																			pdfJson = jsonFactoryUtil.createJSONObject(webCField.getValue().getString(local)) 
225																			imgUuid = pdfJson.getString("uuid") 
226																			imgGroupId = pdfJson.getLong("groupId") 
227																		/> 
228																		<#if imgUuid?has_content && imgGroupId?has_content > 
229																			<#assign webCFieldPDFDeLAnnonce = "/c/document_library/get_file?uuid=${imgUuid}&groupId=${imgGroupId}" />																		 
230																		</#if> 
231																		<#break> 
232																	<#default> 
233																		${webCField.getName()} 
234																		<#break> 
235																</#switch> 
236															</#list> 
237															 
238															<div class="row" style="margin:20px 0 40px 0"> 
239																<div class="col-md-10 webContentTitle"><b>${webCFieldTitreDeLAnnonce}</b></div> 
240																<div class="col-md-2 webContentPrice"><b>${webCFieldPrix?first}</b></div> 
241																<div class="col-md-12 webContentImgNCritere"> 
242																	<div class="col-md-6 webContentImg"> 
243																		<#if webCFieldImage?has_content > 
244																		<!------------------ carousel -----------------------> 
245																		<div class="row"> 
246																			<div class="carousel slide" id="myCarousel-${webCFieldInstanceId}"> 
247																				<div class="carousel-inner"> 
248																					<#assign imgCpt = 0 /> 
249																					<#list webCFieldImage as imgUrl> 
250																						<#if imgCpt == 0>  
251																							<div class="active item" data-slide-number="0"> 
252																						<#else> 
253																							<div class="item" data-slide-number="${imgCpt}"> 
254																						</#if> 
255																							<img src="${imgUrl}" style="width:100%"> 
256																						</div> 
257																					<#assign imgCpt = imgCpt + 1 /> 
258																					</#list> 
259																					 
260																				</div> 
261																			</div> 
262																		</div> 
263																		 
264																		<div class="row" id="slider-thumbs"> 
265																			<!-- Bottom switcher of slider --> 
266																			<ul class="hide-bullets"> 
267																				<#if imgCpt != 1> 
268																					<#assign imgCpt = 0 /> 
269																					<#list webCFieldImage as imgUrl> 
270																						<li class="col-sm-3 col-xs-4"> 
271																							<a class="thumbnail" id="carousel-selector-${webCFieldInstanceId}-${imgCpt}"><img src="${imgUrl}"></a> 
272																						</li> 
273																						<#assign imgCpt = imgCpt + 1 /> 
274																					</#list> 
275																				</#if> 
276																			</ul> 
277																		</div> 
278																		 
279																		 
280																		</#if> 
281																	</div> 
282																	<#if webCFieldDescription?has_content && webCFieldDestination?has_content> 
283																		<#assign fullDescription = webCFieldDescription + "<p>" + webCFieldDestination + "</p>" > 
284																	<#elseif webCFieldDescription?has_content > 
285																		<#assign fullDescription = webCFieldDescription >																	 
286																	</#if> 
287																	 
288																	<div class="col-md-6"> 
289																		<#if fullDescription?replace('<[^>]+>','','r')?length &lt; 200 > 
290																			<b>Description :</b>																			 
291																			${fullDescription} 
292																		<#else> 
293																			<div id="lowDescription${cptAsset}"> 
294																				<b>Description :</b> 
295																				<p style="margin:0;">${fullDescription?replace('<[^>]+>','','r')?substring(0,199)} ...</p> 
296																				<p id="linkDescriptionPlus${cptAsset}" style="text-align:right;color: #007bff;cursor:pointer">Voir plus</p> 
297																			</div> 
298																			<div id="fullDescription${cptAsset}"  style="display: none"> 
299																				<b>Description :</b> 
300																				${fullDescription} 
301																				<p id="linkDescriptionMoins${cptAsset}" style="text-align:right;color: #007bff;cursor:pointer">Voir moins</p> 
302																			</div> 
303																			<script> 
304																				$( '#linkDescriptionPlus${cptAsset}' ).click(function() { 
305																				  $( '#lowDescription${cptAsset}' ).toggle(); 
306																				  $( '#fullDescription${cptAsset}' ).toggle(); 
307																				}); 
308																				$( '#linkDescriptionMoins${cptAsset}' ).click(function() { 
309																				  $( '#lowDescription${cptAsset}' ).toggle(); 
310																				  $( '#fullDescription${cptAsset}' ).toggle(); 
311																				}); 
312																			</script> 
313																		</#if> 
314																		 
315																		<#if webCFieldSurface?has_content > 
316																			<b>Surface :</b> 
317																			<p>${webCFieldSurface}</p> 
318																		</#if> 
319																		 
320																		<#if webCFieldLieu?has_content > 
321																			<b>Localisation :</b> 
322																			${webCFieldLieu} 
323																		</#if> 
324																		 
325																		<#if webCFieldPrix?has_content > 
326																			<#if webCFieldTourisme == "true" > 
327																				<b>Détails financiers :</b>	 
328																			<#else> 
329																				<b>Prix :</b>	 
330																			</#if> 
331																			 
332																			<p> 
333																			<#list webCFieldPrix as unPrix> 
334																				${unPrix}<br /> 
335																			</#list> 
336																			</p> 
337																		</#if>	 
338 
339																		<#if webCFieldSubventionsPotentielles?has_content > 
340																			<b>Subventions potentielles</b> 
341																			<p>${webCFieldSubventionsPotentielles}</p> 
342																		</#if>	 
343																	</div> 
344																</div> 
345																	<!-- lien page de contact --> 
346																	<#assign layoutGc = themeDisplay.getLayout() > 
347																	<#if layoutGc?has_content> 
348																		<#assign  
349																			url = layoutGc.getRegularURL(request) 
350																			pageName = themeDisplay.getLayoutFriendlyURL(layoutGc) 
351																			urlContact = url?replace(pageName, "/contact") 
352
353																	</#if> 
354																<div class="col-md-12 mt-4 text-right ddl"> 
355																	<a href="${urlContact}" class=" text-right text-police-5 text-16px border-1px border-couleur-4 px-3 py-2 text-couleur-4 text-couleur-hover-4 background-hover-couleur-2">Contactez-nous</a>																	 
356																	<#if webCFieldPDFDeLAnnonce?has_content > 
357																		<a href="${webCFieldPDFDeLAnnonce}" class="text-16px text-couleur-4 px-3 py-2 border-1px mx-3 text-couleur-hover-4 background-hover-couleur-2 ddl-icon" target="_blank" title="Télécharger le pdf de l'annonce"><i class="fas fa-download"></i></a> 
358																	</#if> 
359																</div> 
360															</div> 
361															 
362														</#if>					 
363														<#assign cptAsset = cptAsset + 1 /> 
364														</#if> 
365													</#list> 
366												</#if> 
367											</#if> 
368										</#if> 
369									</#if> 
370								 
371								</div> 
372							</div> 
373						</div> 
374					</div> 
375					<#assign  
376						cptEntry = cptEntry + 1  
377						fieldTitre = "" 
378						fieldContenuWeb = "" 
379						fieldSousTitre = "" 
380						fieldDescription = "" 
381						fieldTelephone = "" 
382						fieldTag = "" 
383					/>  
384				</#if> 
385			</#list> 
386		</div> 
387	</div> 
388	<script> 
389		jQuery(document).ready(function(jQuery) { 
390			//set here the speed to change the slides in the carousel 
391			jQuery('[id^=myCarousel-]').carousel({ 
392				interval: false 
393			}); 
394	  
395			//Handles the carousel thumbnails 
396		   jQuery('[id^=carousel-selector-]').click( function(){ 
397				var id = this.id.substr(this.id.lastIndexOf("-") + 1); 
398				var id = parseInt(id); 
399				var instanceId = this.id.substr(18,this.id.lastIndexOf("-")-18); 
400				$('#myCarousel-' + instanceId).carousel(id); 
401			}); 
402			 
403		}); 
404	</script> 
405<#else> 
406	${renderRequest.setAttribute("PORTLET_CONFIGURATOR_VISIBILITY", true)} 
407</#if> 
Responsive Image