escapedSiteName:Guest
errorType:
errorCode:
errorMsg:
hasLayoutCustomizePermission: false
hasLayoutUpdatePermission:false
refererPlid: 0
backURL:
toggleControlsState:visible
showAddControls:false
showEditControls: false
showPreviewControls: false
showToggleControls: false
userSetupComplete: false
showAdminLinks: false
portalMessageUseAnimation: true
hasLayoutCustomizePermission: false
setHasLayoutUpdatePermission: false
toggleControlsState: visible
openSiteMapUrl: https://www.atl.biella.it/fr/mountain-bike/valessesera-in-mtb?p_p_id=145&p_p_lifecycle=0&p_p_state=pop_up&p_p_mode=view&_145_stateMaximized=true&_145_selPlid=1935300&_145_struts_action=%2Fdockbar%2Fadd_panel&_145_closeRedirect=%2Fsuggesto-gui-portlet%2Fhtml%2Fclosewindow.html
openEditPageUrl: https://www.atl.biella.it/fr/mountain-bike/valessesera-in-mtb?p_p_id=145&p_p_lifecycle=0&p_p_state=pop_up&p_p_mode=view&_145_selPlid=1935300&_145_struts_action=%2Fdockbar%2Fedit_layout_panel&_145_closeRedirect=%2Fsuggesto-gui-portlet%2Fhtml%2Fclosewindow.html
Une erreur s'est produite en traitant le calibre.
Error on line 14, column 1 in 1882933#1882971#2016813
serviceLocator.findService("suggesto-gui-portlet","eu.suggesto.suggestogui.service.suggestoGuiLocalService") is undefined.
It cannot be assigned to suggestoAPI
1<#-- 
2  ATL_ARTICOLO_BASE.ftl 
3  eCTRLSolutions 
4  2018 
5--> 
6 
7 
8<#assign journalServiceAPI = serviceLocator.findService("com.liferay.portlet.journal.service.JournalArticleLocalService") /> 
9<#assign JSONFactoryUtil = staticUtil["com.liferay.portal.kernel.json.JSONFactoryUtil"]> 
10<#assign pathpage=""> 
11 
12<#assign dlService = serviceLocator.findService("com.liferay.portlet.documentlibrary.service.DLFileEntryLocalService")> 
13<#assign fileEntry = staticUtil["com.liferay.portlet.documentlibrary.service.DLFileEntryLocalServiceUtil"]> 
14<#assign suggestoAPI = serviceLocator.findService("suggesto-gui-portlet","eu.suggesto.suggestogui.service.suggestoGuiLocalService")> 
15<#assign SuggestoMarketspaceAPI = serviceLocator.findService("suggesto-mksp-portlet","eu.suggesto.marketspace.service.MkspDomainLocalService")> 
16<#assign domainName = "domainLiferay" > 
17<#assign defLng = "it_IT" >  
18<#assign homeName = i18n("home")> 
19<#assign articleId = .vars['reserved-article-id'].data> 
20 
21<#assign mapviewLabel= suggestoAPI.msg(companyId,groupId,"vedi-su-mappa",locale,"it",localeUtil.fromLanguageId("it_IT"))> 
22<#assign webLabel= suggestoAPI.msg(companyId,groupId,"sito-web",locale,"it",localeUtil.fromLanguageId("it_IT"))> 
23<#assign contattiLabel= suggestoAPI.msg(companyId,groupId,"contatti",locale,"it",localeUtil.fromLanguageId("it_IT"))> 
24<#assign chiediinfoLabel= suggestoAPI.msg(companyId,groupId,"richiedi-info",locale,"it",localeUtil.fromLanguageId("it_IT"))> 
25<#assign privacPolicy= suggestoAPI.msg(companyId,groupId,"privacy-policy",locale,"it",localeUtil.fromLanguageId("it_IT"))> 
26 
27 
28 
29 
30<#assign szname = ""> 
31<#if name ??> 
32    <#if name.getData()?has_content && name.getData() != "modello-atl-articolo-base-non-cancellare">   
33  
34        <#assign szname=name.getData()>  
35 
36    <#elseif locale.language != "it"> 
37            <#assign journalArticle = journalServiceAPI.getLatestArticle(groupId?number,articleId)/> 
38            <#assign document = saxReaderUtil.read(journalArticle.getContent())> 
39            <#assign rootElement = document.getRootElement()> 
40            <#assign szname = getLiferayDocSingleField(rootElement,"name","it_IT")>  
41    </#if> 
42</#if>   
43 
44<#assign szclaimText = ""> 
45<#if claimText ??> 
46<#if claimText.getData()?has_content>    
47    <#assign szclaimText=claimText.getData()>     
48</#if> 
49</#if>   
50 
51<#if request['theme-display'] ??> 
52    <#assign themeDisplay = request['theme-display']>  
53</#if> 
54 
55<#assign cdnHost = ""> 
56<#if request['theme-display'] ??> 
57    <#assign cdnHost = request['theme-display']['cdn-host'] > 
58</#if> 
59 
60<#assign noImageflag = "false"> 
61<#if noImages??> 
62   <#if noImages.getData()?has_content> 
63        <#if noImages.getData() == "true"> 
64        <#assign noImageflag = "true"> 
65        </#if> 
66    </#if> 
67</#if> 
68 
69<#assign thereareLink="false">  
70<#if  titleLink??  > 
71    <#if titleLink.getSiblings()?has_content>   
72        <#list titleLink.getSiblings() as cur_i> 
73            <#if cur_i.getData()?has_content> 
74            <#assign thereareLink="true">  
75            </#if> 
76        </#list> 
77    </#if>     
78</#if> 
79<#assign thereareDownload="false">  
80<#if  download??  > 
81    <#if download.getSiblings()?has_content>   
82        <#list download.getSiblings() as cur_i> 
83            <#if cur_i.getData()?has_content> 
84            <#assign thereareDownload="true">  
85            </#if> 
86        </#list> 
87    </#if>     
88</#if> 
89<#assign geoRefValue = ""> 
90<#assign lat = ""> 
91<#assign lng = ""> 
92<#if geoRef ??> 
93  <#if geoRef.getData()?has_content  > 
94    <#assign ldata = geoRef.getData() !> 
95    <#assign adata=ldata?split(",")>  
96    <#assign lat=adata[0] >  
97    <#assign lng=adata[1] > 
98    <#assign geoRefValue = lat+","+lng> 
99  </#if> 
100</#if> 
101 
102<#assign dateFormat = "dd MMM yyyy" articoloDateStr = ""> 
103<#if articoloDate??> 
104   <#if articoloDate.getData()?has_content> 
105       <#assign articoloDate_DateObj = dateUtil.newDate(getterUtil.getLong(articoloDate.getData()))> 
106       <#if articoloDate_DateObj??> 
107           <#assign articoloDateStr = dateUtil.getDate(articoloDate_DateObj, dateFormat, locale)> 
108       </#if> 
109   </#if> 
110</#if> 
111     
112 
113<#assign 
114    serviceContext = staticUtil["com.liferay.portal.service.ServiceContextThreadLocal"].getServiceContext() 
115    browserSniffer = staticUtil["com.liferay.portal.kernel.servlet.BrowserSnifferUtil"] 
116    themeDisplay = serviceContext.getThemeDisplay() 
117    request = serviceContext.getRequest() 
118    curURL = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent()    
119    siteUrl = themeDisplay.getURLPortal()?replace("://", ".") 
120    baseUrl = "https://doiw017p65fbl.cloudfront.net/o/d40/img/" 
121/> 
122 
123 
124<#if browserSniffer.isMobile(request)> 
125    <#assign width = 600> 
126    <#assign height = 400> 
127<#else> 
128    <#assign width = 700> 
129    <#assign height = 450> 
130</#if> 
131 
132<#assign prefix = baseUrl + "w_" + width + ",h_" + height + "/" + siteUrl> 
133 
134<style> 
135    #detail p font strong{ 
136        color: #d21a4c; 
137
138</style> 
139 
140 
141 
142 
143<#assign contactEmailStr = ""> 
144<#if contactEmail??> 
145    <#if contactEmail.getData()?has_content> 
146        <#assign contactEmailStr = contactEmail.getData()> 
147    </#if> 
148</#if> 
149 
150<#--  ADDITIONALJSONPARAM invio a referente offerta e in copia a atlbiella --> 
151<#if contactEmailStr != ""> 
152    <#assign emailTo = contactEmailStr> 
153<#else> 
154    <#assign emailTo = "infobiella@terrealtopiemonte.it"> 
155</#if> 
156 
157<div class="d-none">emailTo ${emailTo}</div> 
158 
159<#assign emailCC= "infobiella@terrealtopiemonte.it"> 
160 
161<script> 
162    var additionalJsonParam={"emailTo":"${emailTo}", "emailCC":"${emailCC}"}; 
163    var destinatario="${emailTo}"; 
164</script> 
165 
166 
167 
168<!-- HTML DETTAGLIO ARTICOLO--> 
169<section id="detail"> 
170    <div class="container-fluid-big py-5"> 
171        <h1 class="text-uppercase slim mt-0 mt-md-5 mb-3"> 
172            <#if szclaimText != "" >${szclaimText}<br/></#if><span class="bold-dark">${szname}</span> 
173        </h1> 
174        <#-- Breadcrumb --> 
175        <#include "${templatesPath}/2118663"> 
176        <div class="dropdown-divider my-2 pb-4"></div> 
177 
178        <div class="row"> 
179            <#-- sidebar --> 
180            <div class="col-12 col-lg-3 back-gray h-25 mb-5 mb-lg-0" data-aos='fade'> 
181 
182                <!-- sezione navigazione sottopagine --> 
183                <#include "${templatesPath}/1932613"> 
184                 
185                <a href="/info-e-contatti" class="btn btn-dark btn-block small text-left text-uppercase rounded-0 font-weight-bold my-4">${chiediinfoLabel}</a> 
186                <div class="informations"> 
187 
188 
189                    <#assign  thereIsLocation="false">  
190                    <@testingLocation/> 
191                    <#if thereIsLocation == "true">  
192                    <div> 
193                    <#if locationName ?? > 
194                       <#if locationName.getData()?has_content  > 
195                            <p class="mb-0">${locationName.getData()} </p>  
196                       </#if> 
197                    </#if> 
198                    <#if locationAddress ??>  
199                        <#if locationAddress.getData()?has_content  >  
200                        <p class="mb-0">${locationAddress.getData()}</p> 
201                        </#if> 
202                    </#if> 
203                    <#if locationCAP ??  || locationPlace ??>  
204                    <p class="mb-0"> 
205                        <#if locationCAP ??> 
206                            <#if locationCAP.getData()?has_content  >  
207                            ${locationCAP.getData()}  
208                            </#if> 
209                        </#if>     
210                        <#if locationPlace ??> 
211                            <#if locationPlace.getData()?has_content  >    
212                                ${locationPlace.getData()} 
213                                <#if locationSign ??> 
214                                    <#if locationSign.getData()?has_content  >    
215                                        (${locationSign.getData()}) 
216                                    </#if> 
217                                </#if> 
218                            </#if> 
219                        </#if>  
220                    </p>      
221                    </#if> 
222                    </div> 
223                    </#if> 
224                </div> 
225                <#-- mappa  --> 
226                <#if geoRefValue != ""> 
227                <script> 
228                    //Google maps 
229                    function initMap(){ 
230                        var coords = {lat: ${lat}, lng: ${lng}}; 
231                         
232                        var map = new google.maps.Map(document.getElementById('map-container'), { 
233                                zoom: 12, 
234                            center: coords, 
235                            zoomControl: true, 
236                            disableDefaultUI: true 
237                        }); 
238                         
239                        var marker = new google.maps.Marker({ 
240                            position: coords, 
241                            map: map, 
242                                title: "${szname?js_string}" 
243                        }); 
244
245                </script> 
246                <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyC6bquYa2AzdUrts2olPvErVqO6V5efSd0&callback=initMap" async defer></script> 
247                <div id="map-container"> 
248                </div> 
249                </#if> 
250                <#-- end mappa  --> 
251 
252 
253                <#if geoRefValue != ""> 
254                <#-- bottone vedi su mappa  --> 
255                <form action="http://maps.google.com/maps" method="get" target="_blank" rel="noopener" id="linktomap"> 
256                    <input type="hidden" name="daddr" value="${geoRefValue}"> 
257                    <span class="fa-stack fa-lg text-white float-left"> <i class="fa fa-square fa-stack-2x text-dark"></i> <i class="fa fa-compass fa-stack-1x"></i> </span>  
258                    <button type="submit" value="vedi su mappa">${mapviewLabel}</button> 
259                </form> 
260                 <#-- end bottone vedi su mappa  --> 
261                 </#if> 
262 
263                <@infosection /> 
264 
265                <!-- sidebar boxes--> 
266                <#include "${templatesPath}/1934586" > 
267 
268                <@linklist /> 
269 
270                <@downloadlist /> 
271 
272                <!-- se pagine della sezione trakking aggiunge il link alla rete sentieristica --> 
273                <#if curURL?contains("/trekking")> 
274                <div class="insights"> 
275                    <p class="text-uppercase font-weight-bold border-bottom border-dark mt-5"><a class="attachfancybox fancybox.iframe" href="http://cdn.atl.biella.it/misura313/mappa.html" style="color: #666" target="_blank">rete sentieristica</a></p> 
276                    <div class="content_block_sidebar"> 
277                        <a href="http://cdn.atl.biella.it/misura313/mappa.html" target="_blank" class="attachfancybox fancybox.iframe btn btn-purple btn-block small text-left text-uppercase rounded-0 font-weight-bold mt-4">Itinerari Trekking</a> 
278 
279                        <div class="highlights "> 
280                            <a class="attachfancybox fancybox.iframe" href="http://cdn.atl.biella.it/misura313/mappa.html" style="color: #666" target="_blank"> 
281                            <img class="img-fluid" alt="Rete Sentieristica" src="/documents/1882959/2325040/rete-sentieristica.jpg/95ceb31d-055d-4099-9804-729c2b0e44b6?t=1587643008041" ></a> 
282                        </div>  
283                    </div> 
284                </div> 
285                </#if> 
286 
287 
288            </div> 
289            <#-- end sidebar --> 
290		 
291            <#-- main -->     
292            <div class="col-12 col-lg-7 offset-lg-1" data-aos='fade'> 
293                 
294                <#if noImageflag != "true" > 
295                    <#if previewImage ??> 
296                        <#if previewImage.getData()?has_content>    
297                           <img src="${prefix}${previewImage.getData()}" class="img-fluid">     
298                        </#if> 
299                    </#if>  
300                <#else> 
301                    <@gallery /> 
302                </#if> 
303 
304                <!-- video--> 
305                <#assign thereisvideo="false">  
306                <#if video ??> 
307                    <#if video.getSiblings()?has_content>    
308                        <#assign thereisvideo="true">     
309                    </#if> 
310                </#if>   
311                <#if thereisvideo == "true"> 
312                    <#list video.getSiblings() as cur_video> 
313                        <div style="padding-bottom:1%;padding-top:3%;text-align:center;" class="videoframe"> 
314                        ${cur_video.embedCodeVideo.getData()}<br/> 
315                        ${cur_video.getData()} 
316                        </div> 
317                    </#list>     
318                </#if> 
319                <!-- end video--> 
320 
321                <div class="mt-5"> 
322                    <#if longDesc ?? > 
323                        <#if longDesc.getData()?has_content  >                            
324                                ${longDesc.getData()} 
325                        <#elseif locale.language != "it"> 
326                            <#assign journalArticle = journalServiceAPI.getLatestArticle(groupId?number,articleId)/> 
327                            <#assign document = saxReaderUtil.read(journalArticle.getContent())> 
328                            <#assign rootElement = document.getRootElement()> 
329                            <#assign desc = getLiferayDocSingleField(rootElement,"longDesc","it_IT")> 
330                            ${desc} 
331                        </#if> 
332                    </#if> 
333                    <div class="dropdown-divider"></div> 
334                </div> 
335 
336                <!--  row_section_descriptions  --> 
337                <#include "${templatesPath}/2202617" > 
338 
339                <#if articoloDateStr != "" > 
340                    <p  content="${articoloDateStr}" class="mb-0">${articoloDateStr}</p>              
341                </#if> 
342            </div> 
343             
344            <#-- end main --> 
345        </div> 
346    </div> 
347</section> 
348 
349 
350<#macro gallery> 
351<#assign hasContentSlider = false > 
352<#assign curGallery = 0> 
353<#if mainImageFolder ??> 
354    <#if mainImageFolder.getData() != ""> 
355        <#assign mainImage = mainImageFolder.getData()> 
356        <#if mainImage ??> 
357            <#assign startFrom=mainImage?last_index_of("/")+1> 
358 
359            <#assign endTo=mainImage?last_index_of("?")-1> 
360 
361            <#if endTo gt 0 >                           
362                <#assign mainImageUid = mainImage[startFrom..endTo]> 
363                <#assign curGallery = dlService.getFileEntryByUuidAndGroupId(mainImageUid,groupId).folderId?number>                             
364                <#assign hasContentSlider = true > 
365            </#if> 
366        </#if> 
367    </#if> 
368</#if> 
369 
370<#if hasContentSlider == true> 
371    <#if curGallery !=0> 
372        <#assign dlFiles = dlService.getFileEntries(groupId, curGallery)> 
373        <#assign defImage=""> 
374        <#assign counterimg= 0 > 
375        <div id="slideshow" class="carousel slide" data-ride="carousel"> 
376            <div class="carousel-inner"> 
377                <#list dlFiles as dlFile >    
378                    <#assign defImage=""> 
379                    <#if dlFile.getFileVersion().status == 0> 
380                        <#if dlFile.getFileVersion().description != "HIDE"> 
381                            <#assign uet = httpUtil.encodeURL(htmlUtil.unescape(dlFile.getTitle()))> 
382                             
383                            <#if defImage==""> 
384                              <#assign defImage="${cdnHost}/documents/${groupId}/${curGallery}/${uet}"> 
385                              <#assign defImage=defImage+"?width=700&height=450"> 
386                               
387                               
388                            </#if> 
389                             
390                            <#if counterimg == 0> 
391                            <div class="carousel-item active"> 
392                                <img src="${defImage}"  class="w-100" alt=""> 
393                            </div> 
394                            <#else> 
395                            <div class="carousel-item"> 
396                                <img src="${defImage}"  class="w-100" alt=""> 
397                            </div> 
398                            </#if> 
399                            <#assign counterimg= counterimg+1> 
400                        </#if> 
401                    </#if>    
402                </#list>   
403            </div>     
404            <#if (counterimg >= 0)> 
405            <div class="carousel-controls d-flex w-100 position-absolute"> 
406                <div class="btn view-mode btn-dark rounded-0 ml-auto m-1" data-target="#slideshow" data-slide="prev"> 
407                    <i class="fa fa-chevron-left text-white"></i> 
408                </div> 
409                <div class="btn view-mode btn-dark rounded-0 m-1" data-target="#slideshow" data-slide="next"> 
410                    <i class="fa fa-chevron-right text-white"></i> 
411                </div> 
412            </div>  
413            </#if>  
414        </div>     
415    </#if> 
416</#if> 
417</#macro>      
418 
419<#macro infosection> 
420<#if contactPhone?? || contactFax?? || contactEmail?? || contactWeb?? || contactFacebook??> 
421<#if contactPhone.getData()?has_content || contactFax.getData()?has_content || contactEmail.getData()?has_content || contactWeb.getData()?has_content || contactFacebook.getData()?has_content>  
422    <div class="social-contacts"> 
423       <p class="text-uppercase font-weight-bold border-bottom border-dark mt-5">${contattiLabel}</p> 
424        <#if contactPhone ??>  
425            <#if contactPhone.getData()?has_content  >  
426            <div class="row"> 
427                <div class="col-auto px-0"> 
428                    <span class="fa-stack fa-lg text-white"> 
429                        <i class="fa fa-square fa-stack-1x text-dark"></i> 
430                        <i class="fa fa-phone fa-stack-1x smaller"></i> 
431                    </span> 
432                </div> 
433                <div class="col d-flex align-items-center pl-0"> 
434                   <a href="tel:${contactPhone.getData()}" class="small mb-0">${i18n("tel")}: ${contactPhone.getData()}</a> 
435                </div> 
436            </div>		 
437            </#if> 
438        </#if>  
439        <#if contactFax ??>  
440            <#if contactFax.getData()?has_content  >  
441            <div class="row"> 
442                <div class="col-auto px-0"> 
443                    <span class="fa-stack fa-lg text-white"> 
444                        <i class="fa fa-square fa-stack-1x text-dark"></i> 
445                        <i class="fa fa-fax fa-stack-1x smaller"></i> 
446                    </span> 
447                </div> 
448                <div class="col d-flex align-items-center pl-0"> 
449                   <a href="fax:${contactFax.getData()}" class="small mb-0">Fax: ${contactFax.getData()}</a> 
450                </div> 
451            </div>		 
452            </#if> 
453        </#if> 
454        <#if contactEmail ??>    
455            <#if contactEmail.getData()?has_content  > 
456                <div class="row"> 
457                    <div class="col-auto px-0"> 
458                        <span class="fa-stack fa-lg text-white"> 
459                            <i class="fa fa-square fa-stack-1x text-dark"></i> 
460                            <i class="fa fa-envelope fa-stack-1x smaller"></i> 
461                        </span> 
462                    </div> 
463                    <div class="col d-flex align-items-center pl-0"> 
464                        <a href="mailto:${contactEmail.getData()}" class="mail-contact small mb-0">${contactEmail.getData()}</a> 
465                    </div> 
466                </div> 
467                <div class="row"> 
468                    <div class="col-auto px-0"> 
469                        <span class="fa-stack fa-lg text-white"> 
470                            <i class="fa fa-square fa-stack-1x text-dark"></i> 
471                            <i class="fa fa-lock fa-stack-1x smaller"></i> 
472                        </span> 
473                    </div> 
474                    <div class="col d-flex align-items-center pl-0"> 
475                        <a href="/privacy-policy" class="mail-contact small mb-0">${i18n("leggi-informativa-privacy")}</a> 
476                    </div> 
477                </div> 
478            </#if>  
479        </#if> 
480        <#if contactWeb ??> 
481            <#if contactWeb.getData()?has_content>   
482                <#if contactWeb.getData()?starts_with("http://") || contactWeb.getData()?starts_with("https://") > 
483                    <#assign weblink = contactWeb.getData()>  
484                <#else>  
485                    <#assign weblink = "http://"+ contactWeb.getData()> 
486                </#if>               
487                <div class="row"> 
488                    <div class="col-auto px-0"> 
489                    <span class="fa-stack fa-lg text-white"> 
490                        <i class="fa fa-square fa-stack-1x text-dark"></i> 
491                        <i class="fa fa-globe fa-stack-1x smaller"></i> 
492                    </span> 
493                </div> 
494                <div class="col d-flex align-items-center pl-0"> 
495                   <p class="small mb-0"><a href="${weblink}" class="weblink" title="${contactWeb.getData()}">${i18n("sito-web")} </a></p> 
496                </div> 
497            </div> 
498            </#if>  
499        </#if>  
500        <#if contactFacebook ??> 
501            <#if contactFacebook.getData()?has_content>   
502            <div class="row"> 
503                <div class="col-auto px-0"> 
504                    <span class="fa-stack fa-lg text-white"> 
505                        <i class="fa fa-square fa-stack-1x text-dark"></i> 
506                        <i class="fa fa-facebook fa-stack-1x smaller"></i> 
507                    </span> 
508                </div> 
509                <div class="col d-flex align-items-center pl-0"> 
510                    <p class="small mb-0"><a href="${contactFacebook.getData()}" title="${contactFacebook.getData()}">Facebook</a></p> 
511                </div> 
512            </div> 
513            </#if>  
514        </#if>  
515    </div> 
516</#if> 
517</#if> 
518</#macro> 
519 
520<#macro linklist> 
521<#if thereareLink == "true"> 
522<div class="informations">  
523<p class="text-uppercase font-weight-bold border-bottom border-dark mt-5">${i18n("altri-link-utili")}</p> 
524    <div class="row section-mode1">                             
525        <div class="col-md-12">    
526            <#list titleLink.getSiblings() as item>  
527                <#if item.getData()?has_content> 
528                    <#if item.urlLink.getData()?starts_with("http://") || item.urlLink.getData()?starts_with("https://")> 
529                        <#assign urlLink = item.urlLink.getData()>  
530                    <#else>  
531                        <#assign urlLink = "http://"+ item.urlLink.getData()> 
532                    </#if>                                        
533                    <#assign testoLink = item.getData()> 
534                    <a href="${urlLink}"><i class=" icon-link"></i>${testoLink}</a> 
535                    <br/> 
536                </#if>     
537             </#list> 
538        </div> 
539    </div> 
540</div> 
541</#if> 
542 
543</#macro> 
544 
545<#macro downloadlist> 
546<#if thereareDownload == "true"> 
547<div class="informations">  
548<p class="text-uppercase font-weight-bold border-bottom border-dark mt-5">Download</p> 
549    <div class="row section-mode1">                             
550        <div class="col-md-12">    
551            <#list download.getSiblings() as item>  
552                <#if item.getData()?has_content> 
553                    <#assign urlDownload = item.getData()>  
554                    <#assign doctitle = "" > 
555                    <#assign fileType = "">  
556                    <#assign counter = 0 > 
557 
558                     
559 
560                    <!-- informazioni sul file --> 
561                    <#list urlDownload?split("/") as x> 
562                        <#if counter == 2> 
563                        <#assign groupIDdoc = x?number > 
564                        </#if> 
565                        <#if counter == 4> 
566                        <#assign filename = x > 
567                        </#if> 
568                        <#if counter == 5> 
569                        <#assign uuId  = x > 
570                        </#if> 
571                        <#assign counter = counter+1 > 
572                    </#list> 
573                    <#assign start=urlDownload?last_index_of("/")+1> 
574                    <#assign end=urlDownload?last_index_of("?")-1> 
575                    <#if end  != -2> 
576                        <#assign mainDocUid = urlDownload[start..end]> 
577                        <#assign file=fileEntry.getFileEntryByUuidAndGroupId(mainDocUid, groupIDdoc) > 
578                    <#else> 
579                        <#assign file=fileEntry.getFileEntryByUuidAndGroupId(uuId, groupIDdoc) > 
580                    </#if> 
581                    <#assign fileType = file.getMimeType()> <!--tipo di file ---> 
582 
583                    <#if item.downloadTitle.getData()?has_content> 
584                        <#assign doctitle = item.downloadTitle.getData()>  
585                    <#else> 
586                        <#assign doctitle = urlDownload> 
587                    </#if> 
588                    <a href="${urlDownload}" title="${doctitle}" ><i class="icon_cloud-download_alt"></i>${doctitle}</a> 
589                    <br/> 
590               </#if> 
591            </#list>    
592        </div> 
593    </div> 
594</div> 
595</#if> 
596</#macro> 
597 
598<#macro testingLocation> 
599<#if locationName?? > 
600<#if locationName.getData()?has_content  > 
601<#assign  thereIsLocation="true">   
602</#if> 
603</#if> 
604<#if locationAddress?? > 
605<#if locationAddress.getData()?has_content  > 
606<#assign  thereIsLocation="true">   
607</#if> 
608</#if>   
609<#if locationPlace?? > 
610<#if locationPlace.getData()?has_content  > 
611<#assign  thereIsLocation="true">   
612</#if> 
613</#if>                       
614</#macro> 
615<#function i18n labelId> 
616    <#assign ret = labelId> 
617    <#assign ret=SuggestoMarketspaceAPI.msgAll(groupId?string,domainName,labelId,locale.toString(),defLng) > 
618    <#return ret> 
619</#function> 
620<#function getLiferayDocSingleField rootEl fieldName localeToRead> 
621    <#assign stringSelector = "dynamic-element[@name='${fieldName}']/dynamic-content[@language-id = '" + localeToRead+ "']"> 
622    <#assign xPathSelector = saxReaderUtil.createXPath(stringSelector)> 
623    <#assign ret = ""> 
624    <#if xPathSelector.selectSingleNode(rootEl)??> 
625        <#assign ret = xPathSelector.selectSingleNode(rootEl).getStringValue()> 
626 
627    </#if> 
628    <#return ret> 
629</#function> 
Une erreur s'est produite en traitant le calibre.
Error on line 8, column 1 in 1882933#1882971#2159108
serviceLocator.findService("suggesto-gui-portlet", "eu.suggesto.suggestogui.service.suggestoGuiLocalService") is undefined.
It cannot be assigned to suggestoAPI
1<#-- 
2  ADT itinerari.ftl 
3  ADT eCTRLSolutions 
4--> 
5<#assign liferay_ui = taglibLiferayHash["/WEB-INF/tld/liferay-ui.tld"]> 
6 
7 
8<#assign suggestoAPI = serviceLocator.findService("suggesto-gui-portlet", "eu.suggesto.suggestogui.service.suggestoGuiLocalService")> 
9<#assign suggestoMkspAPI = serviceLocator.findService("suggesto-mksp-portlet","eu.suggesto.marketspace.service.MkspDockbarLocalService")> 
10<#assign SuggestoMarketspaceAPI = serviceLocator.findService("suggesto-mksp-portlet","eu.suggesto.marketspace.service.MkspDomainLocalService")> 
11<#assign defLocale = localeUtil.fromLanguageId("it_IT")> 
12<#assign serverName = request.getServerName()> 
13<#assign serverName = ""> 
14<#assign domainName = "domainLiferay" > 
15<#assign defLng = "it_IT" > 
16 
17<#function getPrefix img width height> 
18    <#assign 
19        baseUrl = "https://d28r45jypu6nt9.cloudfront.net/o/d40/img/" 
20        siteUrl = themeDisplay.getURLPortal()?replace("://", ".") 
21        w = width 
22        h = height 
23    /> 
24    <#if height?is_string> 
25        <#assign prefix = baseUrl + "w_" + w + "/" + siteUrl> 
26    <#else> 
27        <#assign prefix = baseUrl + "w_" + w + ",h_" + h + "/" + siteUrl> 
28    </#if> 
29     
30    <#if !img?contains("/documents/")> 
31        <#assign prefix = ""> 
32    </#if> 
33     
34    <#return prefix + img> 
35</#function> 
36 
37<style> 
38    @media screen and (min-width: 768px){ 
39        .card .card-head{ 
40            min-width: 25%; 
41
42        .card .card-head img{ 
43            object-fit: cover; 
44
45        .card .card-body{ 
46            width: 50%; 
47
48        .card .card-footer{ 
49            width: 25%; 
50
51    }   
52     
53</style> 
54 
55<#if entries?has_content> 
56    <#assign results = 0> 
57    <#list entries as entry> 
58        <#assign results = results + 1> 
59    </#list> 
60    <section id="accomodation"> 
61        <div class="container-fluid-big py-5"> 
62            <div class="row justify-content-center"> 
63                <div class="col-12 col-xl-10 mb-5"> 
64                    <p class="mb-0">${results} ${i18n("risultati")}</p> 
65                </div> 
66                <#list entries as entry> 
67                    <#assign entry = entry> 
68                    <#assign assetRenderer = entry.getAssetRenderer()> 
69                    <#assign className = assetRenderer.getClassName()> 
70                    <#assign customTitle = "">       
71                    <#assign previewImage = ""> 
72                    <#assign uphillDifference = ""> 
73                    <#assign pathLength = ""> 
74                    <#assign itineraryTime = ""> 
75                    <#assign desc = ""> 
76                    <#assign telefono = ""> 
77                    <#assign viewURL = ""> 
78                     
79                    <#if className == "com.liferay.portlet.journal.model.JournalArticle"> 
80                        <#assign journalArticle = assetRenderer.getArticle()> 
81                        <#assign document = saxReaderUtil.read(journalArticle.getContent())> 
82                        <#assign rootElement = document.getRootElement()> 
83                        <#assign title = htmlUtil.escape(assetRenderer.getTitle(locale))> 
84                         
85                        <#assign stringSelector = "dynamic-element[@name='name']/dynamic-content[@language-id = '" + locale + "']"> 
86                        <#assign xPathSelector = saxReaderUtil.createXPath(stringSelector)>  
87                        <#if xPathSelector.selectSingleNode(rootElement)??> 
88                            <#assign customTitle = xPathSelector.selectSingleNode(rootElement).getStringValue()>  
89                        </#if> 
90                         
91                        <#assign stringSelector = "dynamic-element[@name='previewImage']/dynamic-content[@language-id = '" + defLocale + "']"> 
92                        <#assign xPathSelector = saxReaderUtil.createXPath(stringSelector)>  
93                        <#if xPathSelector.selectSingleNode(rootElement)??> 
94                            <#assign image1 = xPathSelector.selectSingleNode(rootElement).getStringValue()> 
95                        </#if> 
96                         
97                        <#assign stringSelector = "dynamic-element[@name='image2']/dynamic-content[@language-id = '" + defLocale + "']"> 
98                        <#assign xPathSelector = saxReaderUtil.createXPath(stringSelector)>  
99                        <#if xPathSelector.selectSingleNode(rootElement)??> 
100                            <#assign image2 = xPathSelector.selectSingleNode(rootElement).getStringValue()> 
101                        </#if> 
102                         
103                        <#assign stringSelector = "dynamic-element[@name='image3']/dynamic-content[@language-id = '" + defLocale + "']"> 
104                        <#assign xPathSelector = saxReaderUtil.createXPath(stringSelector)>  
105                        <#if xPathSelector.selectSingleNode(rootElement)??> 
106                            <#assign image3 = xPathSelector.selectSingleNode(rootElement).getStringValue()> 
107                        </#if> 
108                         
109                        <#assign stringSelector = "dynamic-element[@name='image4']/dynamic-content[@language-id = '" + defLocale + "']"> 
110                        <#assign xPathSelector = saxReaderUtil.createXPath(stringSelector)>  
111                        <#if xPathSelector.selectSingleNode(rootElement)??> 
112                            <#assign image4 = xPathSelector.selectSingleNode(rootElement).getStringValue()> 
113                        </#if> 
114                         
115                         <#assign stringSelector = "dynamic-element[@name='uphillDifference']/dynamic-content[@language-id = '" + defLocale + "']"> 
116                        <#assign xPathSelector = saxReaderUtil.createXPath(stringSelector)>  
117                        <#if xPathSelector.selectSingleNode(rootElement)??> 
118                            <#assign uphillDifference = xPathSelector.selectSingleNode(rootElement).getStringValue()>  
119                        </#if> 
120 
121                         <#assign stringSelector = "dynamic-element[@name='pathLength']/dynamic-content[@language-id = '" + defLocale + "']"> 
122                        <#assign xPathSelector = saxReaderUtil.createXPath(stringSelector)>  
123                        <#if xPathSelector.selectSingleNode(rootElement)??> 
124                            <#assign pathLength = xPathSelector.selectSingleNode(rootElement).getStringValue()>  
125                        </#if> 
126 
127                         <#assign stringSelector = "dynamic-element[@name='itineraryTime']/dynamic-content[@language-id = '" + defLocale + "']">  
128                        <#assign xPathSelector = saxReaderUtil.createXPath(stringSelector)>  
129                        <#if xPathSelector.selectSingleNode(rootElement)??> 
130                            <#assign itineraryTime = xPathSelector.selectSingleNode(rootElement).getStringValue()>  
131                        </#if> 
132 
133                        <#assign viewURL = suggestoMkspAPI.getArticleUrl(groupId,serverName,journalArticle.articleId,localeUtil.fromLanguageId(locale.toString()),localeUtil.fromLanguageId("it_IT"),"/xyz")> 
134                        <#assign regioni = ""> 
135                        <@categorie /> 
136 
137                        <#-- Choose preview image --> 
138                         
139                        <#if image2?has_content> 
140                            <#assign previewImage = image2> 
141                        <#elseif image3?has_content> 
142                            <#assign previewImage = image3> 
143                        <#elseif image4?has_content> 
144                            <#assign previewImage = image4> 
145                        <#else> 
146                            <#assign previewImage = "/documents/1882959/1886834/placeholder.jpg"> 
147                        </#if> 
148                         
149                         
150                        <div class="col-12 col-xl-10 mb-5"> 
151                            <div class="card flex-md-row rounded-0 border-0"> 
152                                <div class="card-head float-md-left position-relative"> 
153                                    <a href="${viewURL}" class="card-zoom position-relative d-block w-100 h-100"> 
154                                        <div class="text-overlay middle-top position-absolute w-100 h-100"></div> 
155                                        <img class="card-img-top rounded-0 w-100 h-100" src="${getPrefix(previewImage, 400, 250)}"> 
156                                    </a> 
157                                </div> 
158                                <div class="card-body float-md-left back-gray"> 
159                                    <#if regioni != ""> <p class="catamaran mb-0">${regioni}</p></#if>  
160                                    <h6 class="font-weight-bold">${customTitle}</h6> 
161                                    <#if catItinerariTipo != ""> <p class="catamaran mb-0">${i18n("tipo-di-itinerario")}: ${catItinerariTipo}</p></#if> 
162                                    <#if catItinerariMezzo != ""> <p class="catamaran mb-0">${i18n("mezzo-di-trasporto")}: ${catItinerariMezzo}</p></#if> 
163                                    <#if pathLength != ""> <p class="catamaran mb-0">${i18n("lunghezza")} (km): ${pathLength}</p></#if> 
164                                    <#if uphillDifference != ""> <p class="catamaran mb-0">${i18n("dislivello-in-salita")}: ${uphillDifference}</p></#if> 
165                                    <#if itineraryTime != ""> <p class="catamaran mb-0"><@itineraryTimeFormat /></p></#if> 
166                                    <#if catItinerariDifficolta != ""> <p class="catamaran mb-0">${i18n("difficolta")}: ${catItinerariDifficolta}</p></#if> 
167                                </div> 
168                                <div class="card-footer justify-content-center flex-wrap flex-column float-md-left d-flex text-center rounded-0">  
169                                    <i class="fa fa-2x fa-map-marker align-middle purple"></i> 
170                                    <a href="#" target="_blank" rel="noopener noreferrer" class="btn text-dark btn-link px-0">${i18n("vedi-su-mappa")}</a> 
171                                    <a href="${viewURL}" class="btn btn-lg btn-purple rounded-0 text-uppercase">${i18n("dettagli")}</a> 
172                                </div> 
173                            </div> 
174                        </div> 
175                    </#if> 
176                </#list> 
177            </div> 
178        </div> 
179    </section> 
180</#if> 
181 
182<#macro categorie> 
183    <#assign groupedCategories=""> 
184    <#assign groupedCategories=suggestoMkspAPI.getGroupedArticleCategories(groupId, journalArticle.articleId, locale, defLocale)>  
185     
186     
187    <#if (groupedCategories.length() > 0)> 
188        <#list 0..groupedCategories.length()-1 as i> 
189            <#assign gc = groupedCategories.getJSONObject(i)> 
190            <#assign gcCat = gc.getJSONArray("categories")> 
191            <#assign vocabularyName = gc.getString("vocabularyName")> 
192            <#assign vocabularyID = gc.getString("vocabularyId")> 
193     
194            <!-- lista regioni e comuni  --> 
195            <#include "${templatesPath}/2116615" > 
196 
197            <#-- vocabolario itinerari --> 
198            <#if vocabularyID== "1924897" >  
199                    <#assign catItinerariTipo = "">  
200                    <#assign catItinerariMezzo = ""> 
201                    <#assign catItinerariDifficolta = ""> 
202                    <#assign catItinerariLunghezza = ""> 
203                    <#assign catItinerariTratta = ""> 
204                    <#assign sep1 = ""> 
205                    <#assign sep2 = ""> 
206                    <#assign sep3 = ""> 
207                    <#assign sep4 = ""> 
208                    <#assign sep5 = ""> 
209                    <#assign sep6 = ""> 
210 
211                    <#list 0..gcCat.length()-1 as y> 
212                        <#assign sCatTC = gcCat.getJSONObject(y)> 
213 
214                        <#assign  categoryName=sCatTC.getString("name")> 
215                        <#assign  pathById=sCatTC.getString("pathById") > 
216                        <#assign  pathByName=sCatTC.getString("pathByName")> 
217                        <#assign  pathByIcon=sCatTC.getString("icon")> 
218 
219                        <#if sCatTC.getString("parentCategoryId") == "1924898" > 
220                            <#assign catItinerariTipo = catItinerariTipo+sep1+categoryName> 
221                            <#assign sep1 = ", ">   
222                        </#if>     
223                        <#if sCatTC.getString("parentCategoryId") == "1924907">   
224                            <#assign catItinerariMezzo = catItinerariMezzo+sep2+categoryName> 
225                            <#assign sep2 = ", "> 
226                        </#if>       
227                        <#if sCatTC.getString("parentCategoryId") == "1924915">  
228                            <#assign catItinerariDifficolta = catItinerariDifficolta+sep4+categoryName>  
229                            <#assign sep4 = ", "> 
230                        </#if>   
231                        <#if sCatTC.getString("parentCategoryId") == "1924911">   
232                            <#assign catItinerariLunghezza = catItinerariLunghezza+sep5+categoryName> 
233                            <#assign sep5 = ", "> 
234                        </#if> 
235                        <#if sCatTC.getString("parentCategoryId") == "2018043">   
236                            <#assign catItinerariTratta = catItinerariTratta+sep6+categoryName> 
237                            <#assign sep6 = ", "> 
238                        </#if> 
239                    </#list>           
240            </#if> 
241 
242        </#list> 
243    </#if> 
244 
245     
246</#macro> 
247 
248<#function i18n labelId> 
249    <#assign ret = labelId> 
250    <#assign ret = SuggestoMarketspaceAPI.msgAll(groupId?string,domainName,labelId,locale.toString(),defLng)> 
251    <#return ret> 
252</#function> 
253 
254 
255<#macro itineraryTimeFormat> 
256<#if itineraryTime??> 
257    <#if itineraryTime?has_content> 
258        <#assign timeNoformat = itineraryTime> 
259        <#assign hours = ""> 
260        <#assign minTot = ""> 
261 
262        <#if (timeNoformat?length > 0)> 
263            <#if timeNoformat?contains(".")> 
264                <#assign pv = timeNoformat?last_index_of(".")> 
265                <#assign hours = timeNoformat?substring(0, pv)> 
266                <#assign mymin = timeNoformat?substring(pv)> 
267                <#assign mymin = mymin?substring(1)> 
268 
269                <#assign minInt = mymin?number> 
270 
271                <#assign minTot = (minInt * 60)/100> 
272                <#assign minTot = minTot?round> 
273                <!-- #assign minTot = ((minTot + 2)/5) * 5 --> 
274            <#else> 
275                <#assign hours = ""> 
276                <#assign minTot = timeNoformat> 
277            </#if> 
278            <p class="catamaran mb-0">${i18n("tempo-di-percorrenza")}:            
279                <#if hours == "" || hours == "0"> 
280                                        ${minTot} ${i18n("minuti")} 
281                <#elseif hours == "1"> 
282                                        ${hours} ${i18n("ora")}  <#if minTot gt 0> ${minTot} ${i18n("minuti")}</#if > 
283                <#else> 
284                                        ${hours} ${i18n("ore")} <#if minTot gt 0> ${minTot} ${i18n("minuti")}</#if > 
285                </#if > 
286            </p> 
287        </#if> 
288    </#if>  
289</#if> 
290</#macro> 

Voulez-vous recevoir notre Newsletter?

Pour tout savoir, inscris-toi à notre newsletter.