Agrégateur de contenus

Une erreur s'est produite lors du traitement du gabarit.
The following has evaluated to null or missing:
==> entry  [in template "20116#20160#2532134" at line 4, column 22]

----
Tip: If the failing expression is known to 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: #assign currEntry = entry.getAssetRen...  [in template "20116#20160#2532134" at line 4, column 1]
----
1<!-- DETAIL D'UN PROJET - ENTETE --> 
2 
3<#setting locale = locale /> 
4<#assign currEntry = entry.getAssetRenderer().getProject() /> 
5 
6<#assign timelines = currEntry.getProjectTimelines()> 
7 
8<#if timelines?first??> 
9  <#assign firstTimeLine = currEntry.getProjectTimelines()?first> 
10  <#assign lastTimeLine = currEntry.getProjectTimelines()?last> 
11</#if> 
12 
13<header> 
14 
15	<!--  --> 
16    <figure class="fit-cover"> 
17	    <img src="${currEntry.imageURL}?imagePreview=1" loading="lazy" alt="" width="1600" height="600" style="opacity:${currEntry.opacityImage}"> 
18    </figure> 
19    <div class="container caption"> 
20        <div class="pro-bloc-display"><span class="pro-surtitre">${currEntry.getProjectStatus(locale)}</span></div> 
21        <h1>${currEntry.title}</h1> 
22        <div class="pro-bloc-display"><span class="pro-soustitre"><@liferay_ui.message key="placit.information.territoire" /> <strong>${currEntry.getDistrictLabel(locale)}</strong></span></div> 
23        <div class="pro-bloc-display-desc"><p>${currEntry.description}</p></div> 
24    </div> 
25 
26 
27    <#if timelines?size gt 0> 
28	    <!-- Start slider timeline wrapper --> 
29	    <div class="container pro-slider-timeline"> 
30 
31	        <!-- Navigation - Input range / S'il y a par exemple 5 éléments alors inscrire la value est égale à 3. --> 
32	        <div class="pro-navigation"> 
33	            <div class="pro-extreme-date"> 
34	                <span>Début</span> 
35	                <span class="pro-datetime">${firstTimeLine.getDate()?string[firstTimeLine.getFreeMarkerFormatDate()]}</span> 
36	            </div> 
37	            <div class="pro-slidecontainer"> 
38	                <input type="range" min="1" max="${timelines?size}" value="${timelines?size - 2}" class="slider" id="myRange"> 
39	            </div> 
40	            <div class="pro-extreme-date"> 
41	                <span>Fin</span> 
42	                <span class="pro-datetime">${lastTimeLine.getDate()?string[lastTimeLine.getFreeMarkerFormatDate()]}</span> 
43	            </div> 
44	            <span>Navigation</span> 
45	        </div> 
46 
47	        <div class="owl-carousel owl-timeline"> 
48 
49	        	<#list currEntry.getProjectTimelines() as timeline> 
50		            <div class="pro-item"> 
51		                <div class="pro-small-jalon"> 
52			                <#switch timeline.getFreeMarkerFormatDate()> 
53			                    <#case "dd/MM/yyyy"> 
54			                    	<span class="pro-day-month">${timeline.getDate()?string["dd MMMM"]}</span> 
55	                    			<span class="pro-year">${timeline.getDate()?string["yyyy"]}</span> 
56			                      	<#break> 
57			                    <#case "MM/yyyy"> 
58									<span class="pro-day-month">${timeline.getDate()?string["MMMM"]}</span> 
59	                    			<span class="pro-year">${timeline.getDate()?string["yyyy"]}</span> 
60			                      	<#break> 
61			                    <#case "yyyy"> 
62			                    	<span class="pro-day-month"></span> 
63	                    			<span class="pro-year">${timeline.getDate()?string["yyyy"]}</span> 
64			                      	<#break> 
65			                </#switch> 
66		                </div> 
67		                <a href="${timeline.getLink()}" class="pro-jalon-hover"> 
68		                    <div class="pro-wrapper-date"> 
69		                        <div> 
70		                            <#switch timeline.getFreeMarkerFormatDate()> 
71					                    <#case "dd/MM/yyyy"> 
72					                    	<span class="pro-day-month">${timeline.getDate()?string["dd MMMM"]}</span> 
73			                    			<span class="pro-year">${timeline.getDate()?string["yyyy"]}</span> 
74					                      	<#break> 
75					                    <#case "MM/yyyy"> 
76											<span class="pro-day-month">${timeline.getDate()?string["MMMM"]}</span> 
77			                    			<span class="pro-year">${timeline.getDate()?string["yyyy"]}</span> 
78					                      	<#break> 
79					                    <#case "yyyy"> 
80					                    	<span class="pro-day-month"></span> 
81			                    			<span class="pro-year">${timeline.getDate()?string["yyyy"]}</span> 
82					                      	<#break>			                       
83					                </#switch> 
84		                        </div> 
85		                    </div> 
86		                    <div class="pro-txt-jalon"> 
87		                        <p>${timeline.getTitle()}</p> 
88		                    </div> 
89		                </a> 
90		            </div> 
91		        </#list> 
92 
93	        </div> 
94	    </div> 
95	</#if> 
96 
97</header> 
98 
99<style> 
100.pro-page-detail.pro-page-detail-projet section.portlet{ 
101margin : 0px; 
102
103</style> 

Agrégateur de contenus

Une erreur s'est produite lors du traitement du gabarit.
The following has evaluated to null or missing:
==> entry  [in template "20116#20160#2532189" at line 3, column 24]

----
Tip: If the failing expression is known to 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: #assign currProject = entry.getAssetR...  [in template "20116#20160#2532189" at line 3, column 1]
----
1<!-- DETAIL D'UN PROJET - TIMELINE --> 
2 
3<#assign currProject = entry.getAssetRenderer().getProject()> 
4 
5<#assign timelines = currProject.getProjectTimelines()> 
6 
7<#if timelines?first??> 
8  <#assign firstTimeLine = currProject.getProjectTimelines()?first> 
9</#if> 
10 
11<div class="pro-timeline"> 
12 
13  <div class="pro-jalon pro-first"> 
14      <div> 
15          <div class="pro-date"> 
16              <div> 
17                  <#if !firstTimeLine??> 
18                    <span>${entry.getPublishDate()?string["dd/MM"]}</span> 
19                    <span class="pro-year">${entry.getPublishDate()?string["yyyy"]}</span> 
20                  <#else> 
21                    <span>${firstTimeLine.getDate()?string["dd/MM"]}</span> 
22                    <span class="pro-year">${firstTimeLine.getDate()?string[firstTimeLine.getFreeMarkerFormatDate()]}</span> 
23                  </#if> 
24              </div> 
25          </div> 
26      </div> 
27  </div> 
28 
29  <#if firstTimeLine??> 
30    <#list currProject.getProjectTimelines() as timeline> 
31 
32      <#if dateUtil.compareTo(.now, timeline.getDate()) gt 0> 
33          <#assign css = "pro-past"/> 
34      <#else> 
35          <#assign css = ""/> 
36      </#if> 
37 
38      <#if firstTimeLine != timeline> 
39         <a <#if timeline.link?has_content> href="${timeline.link}" </#if> class="pro-jalon ${css}"> 
40             <div style="padding-top: ${timeline.getSpacing()}px;"> 
41                 <div class="pro-date"> 
42                     <div> 
43                         <span class="pro-day">Jour</span> 
44                         <span class="pro-day-more">J+${timeline.startDay}</span> 
45                     </div> 
46                 </div> 
47                 <div class="pro-titre"> 
48                     <span>Le <time datetime="2017-02-14">${timeline.getDate()?string[timeline.getFreeMarkerFormatDate()]}</time></span> 
49                     <h4>${timeline.title}</h4> 
50                 </div> 
51             </div> 
52         </a> 
53      </#if> 
54 
55    </#list> 
56   </#if>  
57 
58 
59</div> 
60<style> 
61.pro-page-detail.pro-page-detail-projet section .pro-timeline{ 
62    position : relative; 
63
64</style> 

Détail Entité

Entité inconnue

Extension de la ligne F du tramway à Koenigshoffen

Cette extension permettra améliorer les déplacements des habitants entre les quartiers Gare (secteur Porte Blanche), Koenigshoffen et l’hyper centre de la ville, densifier le maillage du réseau cyclable, et embellir le paysage avec une plateforme engazonnée et de nouvelles plantations d’arbres adaptés au tissu urbain.

La desserte tramway de l’axe ouest de l’agglomération strasbourgeoise est inscrite dans le Schéma Directeur des Transports Collectifs de l’Eurométropole de Strasbourg.

L’extension démarre à l’intersection de la rue Saint-Michel avec la rue du Faubourg National pour rejoindre le boulevard de Nancy. Au carrefour Porte Blanche / Rue de Wasselonne / Boulevard de Lyon, le tracé bifurque sur la droite en direction de la rue de Koenigshoffen en passant sous les voies SNCF et l’autoroute A35. Ce tracé qui s’inscrit au mieux dans les emprises existantes traverse ensuite l’entrée du quartier de Koenigshoffen via la route des Romains pour aboutir à son terminus provisoire au droit du carrefour avec l’allée des Comtes.

La nouvelle infrastructure propose un itinéraire en site propre central. Au droit du Boulevard de Nancy, l’infrastructure sera conçue en tant que plateforme multimodale permettant d’accueillir à la fois des lignes de tramway et de bus dans une logique de mutualisation des investissements ainsi que des modalités d’exploitation sur ce tronçon. Cette traversée du territoire par le tram offre la possibilité d’une végétalisation de la plateforme sur une partie de son linéaire, souvent accompagnée de plantations d’arbres et doublée, tout le long, de pistes cyclables et de trottoirs. Une partie du stationnement est préservée en fonction des contraintes d’insertion.

Dans le cadre du projet, il est prévu de dévier la bretelle A35/A351 au droit de la rue de l’Abbé Lemire. Ce dévoiement permettra d’assurer un accès direct au quartier de Koenigshoffen depuis l’A351 et l’A35, ainsi que l’accès au parking relais de la Porte des Romains qui sera positionné à proximité immédiate.

Cette bretelle sera équipée d’un couloir bus d’approche aux feux facilitant ainsi la circulation des bus du réseau 67. Des quais bus y seront également associés pour permettre les correspondances avec le réseau tram.

Ce parking-relais comprendra 200 places (auxquelles pourront s’ajouter 150 places en phase 2) et sera associé à la station tram « Porte des Romains ». Il sera situé à proximité de l’échangeur A35/A351 reconfiguré et pourra ainsi offrir une opportunité de report modal aux automobilistes arrivant des territoires périurbains de l’agglomération. Le parking sera également accessible depuis la rue de Koenigshoffen.