Une erreur s'est produite lors du traitement du gabarit.
The following has evaluated to null or missing:
==> Contenu  [in template "20116#20152#DETAIL-DISPOSITIF" at line 207, column 31]

----
Tip: If the failing expression is known to be 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: ${Contenu.getData()}  [in template "20116#20152#DETAIL-DISPOSITIF" at line 207, column 29]
----
1<#assign cncCategoriesService = serviceLocator.findService("fr.cnc.categories.api.CncCategoriesService") /> 
2<#assign cncRenduArticles = serviceLocator.findService("fr.cnc.rendu.articles.api.CncRenduArticlesService") /> 
3<#assign cncArticleRechercheService = serviceLocator.findService("fr.cnc.recherche.api.CncArticleRechercheService") /> 
4<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
5<#assign httpServletRequest = serviceContext.getRequest()/> 
6<#assign themeDisplay = serviceContext.getThemeDisplay() /> 
7<#assign cncUrlService = serviceLocator.findService("fr.cnc.url.api.CncUrlService") /> 
8<#assign ArticleJournalUtil = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
9<#assign ArticleJournalId = .vars['reserved-article-id'].data> 
10<#assign ArticleJournalTitle = .vars['reserved-article-title'].data> 
11<#assign categoriesListDispositif = cncCategoriesService.recupererCategoriesArticleParVocabulaire(groupId, ArticleJournalId , "Dispositif") /> 
12 
13<#-- recupere le premier element de la liste --> 
14<#if categoriesListDispositif?size !=0> 
15	<#assign categoryDispo = categoriesListDispositif[0]> 
16	<#assign rechercheResultats = cncArticleRechercheService.rechercheDernierResultatsCommission(themeDisplay, "RESULTATS-COMMISSION", categoryDispo.getName()) /> 
17	<#assign rechercheCommissions = cncArticleRechercheService.rechercheAgendaCommissionTriees(themeDisplay, "AGENDA-COMMISSION", categoryDispo.getName()) /> 
18	<#assign rechercheCompositionCommissions = cncArticleRechercheService.rechercheCompositionCommission(themeDisplay, "COMPOSITION-COMMISSION", categoryDispo.getName()) /> 
19	<#assign rechercheDecisionsNomination = cncArticleRechercheService.recherchePublications(themeDisplay, "PUBLICATION", categoryDispo.getName(), "Décisions de nomination") /> 
20</#if> 
21<#assign categoriesListDomaine = cncCategoriesService.getDomaines(groupId, ArticleJournalId) /> 
22<#assign categoriesListSecteur = cncCategoriesService.recupererCategoriesArticleParVocabulaire(groupId, ArticleJournalId , "Secteur") /> 
23<#assign categoriesListPhaseprojet = cncCategoriesService.recupererCategoriesArticleParVocabulaire(groupId, ArticleJournalId , "Phase du projet") /> 
24<#assign categoriesListTypeAide = cncCategoriesService.recupererCategoriesArticleParVocabulaire(groupId, ArticleJournalId , "Type de dispositif") /> 
25<#assign categoriesListTypeSoutien = cncCategoriesService.recupererCategoriesArticleParVocabulaire(groupId, ArticleJournalId , "Type de soutien") /> 
26<#assign categoriesListDemandeur = cncCategoriesService.recupererCategoriesArticleParVocabulaire(groupId, ArticleJournalId , "Demandeur") /> 
27 
28<#if categoriesListDomaine?size != 0> 
29 
30	<#-- recupere le premier element de la liste --> 
31	<#assign categoriesSousDomainesList = cncCategoriesService.recupererCategoriesArticleParVocabulaire(groupId, ArticleJournalId , "Sous-domaine") /> 
32 
33	<#assign cncArticleRechercheService = serviceLocator.findService("fr.cnc.recherche.api.CncArticleRechercheService") /> 
34	<#assign articlesLies = cncArticleRechercheService.recupererRenduDerniersArticlesMemeSujet(themeDisplay, ArticleJournalId, "ARTICLE-EDITORIAL", categoriesListDomaine, categoriesSousDomainesList, "ARTICLE-EDITORIAL-LIE", 3) /> 
35</#if> 
36 
37<#-- test si on vient d'une page de liste de contenu --> 
38<#assign siPagePrecedenteCorrespondPageListeContenu = cncUrlService.siPagePrecedenteCorrespondPageListeContenu(httpServletRequest) /> 
39 
40<#if siPagePrecedenteCorrespondPageListeContenu> 
41	<div class="back"> 
42	    <div class="container"> 
43	        <div class="row"> 
44	            <div class="col"> 
45	                <div class="link-icon"> 
46	                    <a href="javascript:boutonRetour.goBack();" > 
47	                        <i class="icon icon-back"></i> 
48	                        <@liferay.language key="pages.liste.bouton.retour.a.la.liste" /> 
49	                    </a> 
50	                </div> 
51	            </div> 
52	        </div> 
53	    </div> 
54	</div> 
55</#if> 
56 
57<section class="single dispositif"> 
58    <div class="container"> 
59        <article> 
60            <section class="article-content"> 
61                <div class="row position-relative"> 
62                    <nav id="sticky-article-nav" class="sticky-nav col-xl-3 d-none d-xl-block position-absolute top-0 start-0"> 
63                        <ul class="list-unstyled" role="tablist"> 
64							<#--stickyMenu chargé en javacript via la méthode sticky.initH2() --> 
65                        </ul> 
66                    </nav> 
67                    <div class="col-12 col-xl-8"> 
68                        <div class="article-content-scroll"> 
69                            <div class="article-head"> 
70                                <div class="article-title" style="margin: 0px 0px 30px"> 
71                                    <h1 style="margin: 0"> 
72                                    <#if ArticleJournalTitle?has_content> 
73							         	${ArticleJournalTitle} 
74							        </#if> 
75                                    </h1> 
76                                    <#if DateMiseAJour?has_content> 
77                                        <#assign DateMiseAJour_Data = getterUtil.getString(DateMiseAJour.getData())> 
78                                        <#if DateMiseAJour_Data?has_content> 
79                                            <#assign DateMiseAJour_DateObj = dateUtil.parseDate("yyyy-MM-dd", DateMiseAJour_Data, locale)> 
80                                            <#assign dateMajDispositif = dateUtil.getDate(DateMiseAJour_DateObj, "dd/MM/yyyy", locale)> 
81                                            <div><@liferay.language key="article.dispositif.maj" /> ${dateMajDispositif}</div> 
82                                        </#if> 
83                                    </#if> 
84									<#if categoriesListDispositif?size != 0> 
85 
86								<#-- recupere le premier element de la liste --> 
87								<#assign categoryDispo = categoriesListDispositif[0]> 
88                                
89								<#-- calcul url --> 
90								<#assign UrlPagePublicationsTypeDecisionsNominationParIdCategorieDispositif = cncUrlService.calculUrlPagePublicationsTypeDecisionsNominationParIdCategorieDispositif(themeDisplay, categoryDispo.getCategoryId()) /> 
91 
92									</#if> 
93                                    <#assign Templates_Path = templatesPath /> 
94		                    		<#include "${Templates_Path}/BLOC-SHARETHIS"> 
95                                </div> 
96                            </div> 
97                            <#if Resume?has_content> 
98                                <div class="intro">${Resume.getData()}</div> 
99							</#if> 
100                            <ul class="list-unstyled simple"> 
101                            	<#assign originalLocale = locale> 
102	    						<#setting locale = localeUtil.getDefault()> 
103                                <li> 
104                                    <strong><@liferay.language key="article.dispositif.domaine" /></strong> : 
105                                    <#if categoriesListSecteur?has_content> 
106                                    	<#assign urlControlleurMoteurAide = cncUrlService.calculUrlPageParKeyUrlRelative(themeDisplay, "cnc.friendly.url.recherche.aides") /> 
107										<#assign urlForSecteur = urlControlleurMoteurAide + "?secteur="/> 
108										<#list categoriesListSecteur as categoryListSecteur> 
109										 	<a href="${urlForSecteur}${categoryListSecteur.getName()}" >${categoryListSecteur.getTitle(locale)}</a><#if !categoryListSecteur?is_last> - </#if> 
110										</#list> 
111									</#if> 
112                                </li> 
113                                <li> 
114                                    <strong><@liferay.language key="article.dispositif.phase.projet" /></strong> : 
115                                    <#list categoriesListPhaseprojet as categoryListPhaseprojet> 
116        								${categoryListPhaseprojet.getTitle(locale)}<#if !categoryListPhaseprojet?is_last>, </#if> 
117                                    </#list> 
118                                </li> 
119                                <li> 
120                                    <strong><@liferay.language key="article.dispositif.type.soutien" /></strong> : 
121                                    <#list categoriesListTypeSoutien as categoryListTypeSoutien> 
122        								${categoryListTypeSoutien.getTitle(locale)}<#if !categoryListTypeSoutien?is_last>, </#if> 
123                                    </#list> 
124                                </li> 
125                                <li> 
126                                    <strong><@liferay.language key="article.dispositif.type.aide" /></strong> : 
127                                    <#list categoriesListTypeAide as categoryListTypeAide> 
128        								${categoryListTypeAide.getTitle(locale)}<#if !categoryListTypeAide?is_last>, </#if> 
129                                    </#list> 
130                                </li> 
131                                <li> 
132                                    <strong><@liferay.language key="article.dispositif.demandeur" /></strong> : 
133                                    <#list categoriesListDemandeur as categoryListDemandeur> 
134        								${categoryListDemandeur.getTitle(locale)}<#if !categoryListDemandeur?is_last>, </#if> 
135                                    </#list> 
136                                </li> 
137                                <#if NonCumul?has_content> 
138                                <li> 
139                                	<#if NonCumul?has_content> 
140                                    ${NonCumul.getData()} 
141                                    </#if> 
142                                </li> 
143	                            </#if> 
144	                            <#setting locale = originalLocale> 
145                            </ul> 
146                            <#if Alerte?has_content> 
147                                <div>${Alerte.getData()}</div> 
148                            </#if> 
149							<!-- Si il y a des fichiers à télécharger on affiche --> 
150                                <#if FichiersAssocies?has_content && FichiersAssocies.getSiblings()?size gt 0 && FichiersAssocies.getSiblings()?first.getData()?has_content> 
151                            <div class="download-block"> 
152                                <div class="title"><@liferay.language key="article.dispositif.telechargement" /> 
153                                </div> 
154                                	<#list FichiersAssocies.getSiblings() as cur_FichiersAssocies> 
155                                	    <#assign counter = 0 > 
156                                	    <#assign uuId = "" > 
157                                        <#list cur_FichiersAssocies.getData()?split("/") as x> 
158                                            <#if counter == 5> 
159                                                <#if x?split("?t")?has_content > 
160                                                    <#assign uuId = x?split("?t")[0] > 
161                                                </#if> 
162                                            </#if> 
163                                            <#assign counter = counter+1 > 
164                                        </#list> 
165                                        <#assign fileEntry = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryService")> 
166                                        <#if uuId?has_content && fileEntry?has_content> 
167                                            <#assign file = fileEntry.getFileEntryByUuidAndGroupId(uuId,groupId) > 
168                                        </#if> 
169                                        <#if file?has_content && uuId?has_content> 
170                                <div class="link-icon light"> 
171                                	<a href="${cur_FichiersAssocies.getData()}"  class="round"  target="_blank"> 
172                                	    <i class="icon icon-download"></i> 
173                                    	    <#assign fileName = "" /> 
174                                    		<#if file.getFileName()?has_content> 
175                                    		    <#assign fileName = file.getFileName()?split(".")[0] /> 
176                                    		</#if> 
177                                    	    ${fileName} 
178                                    	<span class="details"> 
179                                    		<#assign fileExtension = file.getFileName()?split(".")[1] /> 
180                                    		<#assign fileSize = 0 /> 
181                                    		<#if file.getSize()?has_content> 
182                                    		    <#assign fileSize = file.getSize()/1000 /> 
183                                            (<span class="extension">${fileExtension?upper_case}</span> 
184                                            <span class="weight">${fileSize?int}ko</span>) 
185                                            </#if> 
186                                        </span> 
187                                	</a> 
188                                </div> 
189                                        </#if> 
190                                	</#list> 
191                            </div> 
192                                </#if> 
193                            <hr> 
194                        </div> 
195                    </div> 
196                </div> 
197            </section> 
198        </article> 
199    </div> 
200    <div class="container"> 
201        <article> 
202            <div class="article-content"> 
203                <div class="row"> 
204                	<div class="col-xl-3 d-none d-xl-block"></div> 
205                    <div class="col-12 col-xl-8"> 
206                        <div class="article-content-scroll"> 
207                            ${Contenu.getData()} 
208                        </div> 
209                        <#if InformationsProchainesCommissions?has_content && InformationsProchainesCommissions.getData()?has_content && !rechercheCommissions?has_content> 
210                        	<hr> 
211	                        <h2 id="prochaines-commissions"><@liferay.language key="article.dispositif.prochaines.commissions" /></h2> 
212                            ${InformationsProchainesCommissions.getData()} 
213                            <br> 
214		                    <br> 
215                        <#elseif rechercheCommissions?has_content> 
216	                        <hr> 
217	                        <h2 id="prochaines-commissions"><@liferay.language key="article.dispositif.prochaines.commissions" /></h2> 
218	                        <#if InformationsProchainesCommissions?has_content> 
219		                        ${InformationsProchainesCommissions.getData()} 
220	                        </#if> 
221	                        <br> 
222		                    <br> 
223	                        <table class="table table-striped table-responsive"> 
224	                            <thead> 
225	                                <tr> 
226	                                    <th scope="col"><@liferay.language key="article.dispositif.date.depot" /></th> 
227	                                    <th scope="col"><@liferay.language key="article.dispositif.date.commission" /></th> 
228	                                </tr> 
229	                            </thead> 
230	                            <tbody id="tableau-dispositif-agenda-commission"> 
231									<#assign compteurRenduAgenda = 1 /> 
232									<#list rechercheCommissions as rechercheCommission> 
233									<tr id="agenda-commission-${compteurRenduAgenda}"> 
234										<#assign compteurRenduAgenda ++ /> 
235										${rechercheCommission} 
236									</tr> 
237									</#list> 
238 
239									<script> 
240										jQuery(document).ready(function() { 
241											cncGenererRenduHtmlCalendrierAgendaCommissionDispositif('#tableau-dispositif-agenda-commission tr'); 
242										}); 
243									</script> 
244	                           	</tbody> 
245	                        </table> 
246							<#if InformationsComplementairesProchainesCommissions?has_content && InformationsComplementairesProchainesCommissions.getData()?has_content> 
247		                        <div class="focus"> 
248		                            <h3><@liferay.language key="article.dispositif.a.noter" /></h3> 
249		                            <div class="text"> 
250		                                ${InformationsComplementairesProchainesCommissions.getData()} 
251		                            </div> 
252		                        </div> 
253	                        </#if> 
254                        </#if> 
255                        <#if rechercheCompositionCommissions?has_content> 
256 
257							<#if categoriesListDispositif?size != 0> 
258 
259								<#-- recupere le premier element de la liste --> 
260								<#assign categoryDispo = categoriesListDispositif[0]> 
261 
262								<#-- calcul url --> 
263								<#assign UrlPagePublicationsTypeDecisionsNominationParIdCategorieDispositif = cncUrlService.calculUrlPagePublicationsTypeDecisionsNominationParIdCategorieDispositif(themeDisplay, categoryDispo.getCategoryId()) /> 
264 
265 
266							<hr> 
267							<div> 
268		                        <h2 id="composition-des-commissions" class="inline"><@liferay.language key="composition.commission.titre" /></h2> 
269								<#if rechercheDecisionsNomination?has_content> 
270									<a href="${UrlPagePublicationsTypeDecisionsNominationParIdCategorieDispositif}" title="" class="button button-outline float-right"><@liferay.language key="composition.commission.lien.decisions.nomination" /></a> 
271								</#if> 
272							</div> 
273							 
274							</#if> 
275							 
276							<#list rechercheCompositionCommissions as rechercheCompositionCommission> 
277								${rechercheCompositionCommission} 
278							</#list> 
279						</#if> 
280 
281                        <#if rechercheResultats?has_content> 
282							<#if categoriesListDispositif?size != 0> 
283 
284								<#-- recupere le premier element de la liste --> 
285								<#assign categoryDispo = categoriesListDispositif[0]> 
286 
287								<#-- calcul url --> 
288								<#assign urlListeResultats = cncUrlService.calculUrlResultatsCommisionDispositif(themeDisplay, categoryDispo.getName()) /> 
289 
290							<hr> 
291							<div class="clearfix"> 
292								<h2 id="resultats-des-commissions" class="inline"><@liferay.language key="article.dispositif.resultats.composition.titre" /></h2> 
293								<#assign originalLocale = locale> 
294								<#setting locale = localeUtil.getDefault()> 
295								<#if locale.toString()!="en_US"> 
296									<a href="${urlListeResultats}" title="" class="button button-outline float-right"><@liferay.language key="article.dispositif.resultats.commission.voir" /></a> 
297								</#if> 
298							</div> 
299							 
300							</#if> 
301							<br /> 
302							${rechercheResultats} 
303                        </#if> 
304 
305                        <#if Contacts?has_content && Contacts.getSiblings()?size gt 0 && Contacts.getSiblings()?first.getData()?has_content> 
306                        <hr> 
307                        <h2 id="contacts"><@liferay.language key="article.dispositif.contacts" /></h2> 
308                        <#if InformationsContacts?has_content> 
309                        	<p>${InformationsContacts.getData()}</p> 
310                        </#if> 
311                        <#if DirectionEtService?has_content> 
312                        <div class="focus"> 
313                            <div class="text"> 
314                                <p> 
315                                    ${DirectionEtService.getData()} 
316                                </p> 
317                            </div> 
318                        </div> 
319                        </#if> 
320                        <div class="row"> 
321							<#assign renduConcacts = cncRenduArticles.recupererRenduContactsContrib(themeDisplay, Contacts.getSiblings(), "CONTACT", 0) /> 
322							<#if renduConcacts?has_content> 
323								<#list renduConcacts as renduConcact> 
324									${renduConcact} 
325								</#list> 
326							</#if> 
327                        </div> 
328                        </#if> 
329                        <#if articlesLies?has_content> 
330                        <hr> 
331                        <h2 id="articles-lies"><@liferay.language key="article.dispositif.articles.lies" /></h2> 
332                        <div class="list-articles"> 
333                            <div class="row"> 
334                                	<#list articlesLies as cur_Articleslies> 
335                                <div class="col-12 col-lg-4"> 
336                                    <article> 
337                                        ${cur_Articleslies} 
338                                    </article> 
339                                </div> 
340                                	</#list> 
341                            </div> 
342                        </div> 
343						</#if> 
344                    </div> 
345                </div> 
346            </div> 
347        </article> 
348    </div> 
349    <div class="ankle"></div> 
350    <#if DispositifsSimilaires?has_content && DispositifsSimilaires.getSiblings()?size gt 0 && DispositifsSimilaires.getSiblings()?first.getData()?has_content> 
351		<#assign counter = 0> 
352    <div> 
353        <hr style="margin: 0px"> 
354        <div class="cnc-likes"> 
355            <div class="container"> 
356                <div class="row position-relative"> 
357					<div class="article-content-scroll mx-auto"> 
358						<div class="col-12"> 
359							<div class="section-title"><@liferay.language key="article.dispositif.articles.aides.similaires" /></div> 
360						</div> 
361						<#assign renduAides = cncRenduArticles.recupererRenduArticlesContrib(themeDisplay, DispositifsSimilaires.getSiblings(), "DISPOSITIF-AIDE-SIMILAIRE", 3) /> 
362						<#if renduAides?has_content> 
363							<#list renduAides as renduAide> 
364							<div class="col-12"> 
365								<div class="cnc-like-item"> 
366									${renduAide} 
367								</div> 
368							</div> 
369							</#list> 
370						</#if> 
371					</div> 
372				</div> 
373			</div> 
374		</div> 
375	</div> 
376    </#if> 
377</section> 
378<#if InformationComplementaires?has_content && InformationComplementaires.getSiblings()?size gt 0 && InformationComplementaires.getSiblings()?first.getData()?has_content> 
379<section class="footer-text"> 
380    <div class="container"> 
381        <div class="row"> 
382            <div class="col-12"> 
383				<div class="article-content-scroll"> 
384					${InformationComplementaires.getData()} 
385				</div> 
386           	</div> 
387        </div> 
388    </div> 
389</section> 
390</#if> 
11 septembre 2025

Le CNC au Festival de la fiction TV de la Rochelle 2025

La 27e édition du Festival de la fiction TV, rendez-vous majeur de la rentrée audiovisuelle, se tient du 16 au 21 septembre à La Rochelle. Une cinquantaine d’œuvres françaises et internationales y seront...