Commission nationale d'aménagement cinématographique : décision de nomination du 30 janvier 2024
Une erreur s'est produite lors du traitement du gabarit.
The following has evaluated to null or missing:
==> urlListePublicationsDomaine  [in template "20116#20152#PUBLICATION" at line 202, column 116]

----
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: ${urlListePublicationsDomaine}  [in template "20116#20152#PUBLICATION" at line 202, column 114]
----
1<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
2<#assign httpServletRequest = serviceContext.getRequest()/> 
3<#assign themeDisplay = serviceContext.getThemeDisplay() /> 
4<#assign cncCategoriesService = serviceLocator.findService("fr.cnc.categories.api.CncCategoriesService") /> 
5<#assign cncTagsService = serviceLocator.findService("fr.cnc.tags.api.CncTagsService") /> 
6<#assign cncUrlService = serviceLocator.findService("fr.cnc.url.api.CncUrlService") /> 
7<#assign ArticleJournalId = .vars['reserved-article-id'].data> 
8<#assign categoriesDomainesList = cncCategoriesService.getDomaines(groupId, ArticleJournalId) /> 
9<#assign categoriesDomainesPrimairesList = cncCategoriesService.getDomainesPrimaires(groupId, ArticleJournalId) /> 
10<#assign tagEntries = cncTagsService.recupererTagsArticle(groupId, ArticleJournalId) /> 
11<#assign categoriesTypePublicationList = cncCategoriesService.recupererCategoriesArticleParVocabulaire(groupId, ArticleJournalId , "Type de publication") /> 
12 
13<#-- test si on vient d'une page de liste de contenu --> 
14<#assign siPagePrecedenteCorrespondPageListeContenu = cncUrlService.siPagePrecedenteCorrespondPageListeContenu(httpServletRequest) /> 
15<#assign categoryDomainePrimaireList = ""> 
16<#assign categoryList = ""> 
17 
18<#if categoriesDomainesPrimairesList?size != 0> 
19	<#assign categoryDomainePrimaireList = categoriesDomainesPrimairesList[0]> 
20</#if> 
21 
22<#if categoriesDomainesList?size != 0> 
23 
24	<#assign categoryList = categoriesDomainesList[0]> 
25 
26<#-- Calcul de l'url vers la page liste de publication filtrée sur le domaine--> 
27	<#if categoriesDomainesPrimairesList?size != 0> 
28		<#assign urlListePublicationsDomaine = cncUrlService.calculUrlPageListeDomainePublicationsTypeParArticleId(themeDisplay, journalArticleId, categoryDomainePrimaireList, null) /> 
29	</#if> 
30 
31<#-- Calcul de l'url vers la page liste de publication filtrer sur le domaine--> 
32	<#assign urlListePublicationsDomaine = cncUrlService.calculUrlPageListeDomainePublicationsTypeParArticleId(themeDisplay, ArticleJournalId, categoryList, null) /> 
33	<#assign categoriesSousDomainesList = cncCategoriesService.recupererCategoriesArticleParVocabulaire(groupId, ArticleJournalId , "Sous-domaine") /> 
34	<#if categoriesTypePublicationList?size != 0> 
35		<#assign type = categoriesTypePublicationList[0]> 
36	<#-- Calcul de l'url vers la page liste de publication filtrer sur le type--> 
37		<#assign urlListePublicationsType = cncUrlService.calculUrlPageListeDomainePublicationsTypeParArticleId(themeDisplay, ArticleJournalId, categoryList, type) /> 
38	</#if> 
39 
40	<#assign cncArticleRechercheService = serviceLocator.findService("fr.cnc.recherche.api.CncArticleRechercheService") /> 
41 
42	<#assign articlesMemesSujet = cncArticleRechercheService.recupererRenduDerniersArticlesMemeSujet(themeDisplay, ArticleJournalId, "PUBLICATION", categoriesDomainesList, categoriesSousDomainesList, "PUBLICATION-MEME-SUJET", 2) /> 
43 
44</#if> 
45 
46 
47<#setting locale=locale.toString()> 
48<#setting datetime_format="EEE, d MMM yyyy HH:mm:ss Z"> 
49 
50<style> 
51 
52	.news-downloads { 
53		display: flex; 
54		flex-direction: column; 
55		gap: 1rem; 
56		padding-top: 10px; 
57
58 
59	.news-downloads .news-download { 
60		display: flex; 
61
62 
63	.news-download .details { 
64		display: block; 
65
66 
67	.news-download-title { 
68		overflow: hidden; 
69		display: -webkit-box; 
70		-webkit-box-orient: vertical; 
71		-webkit-line-clamp: 2; 
72
73 
74</style> 
75 
76 
77<#if siPagePrecedenteCorrespondPageListeContenu> 
78	<div class="back"> 
79		<div class="container"> 
80			<div class="row"> 
81				<div class="col"> 
82					<div class="link-icon"> 
83						<a href="javascript:boutonRetour.goBack();" > 
84							<i class="icon icon-back"></i> 
85							<@liferay.language key="pages.liste.bouton.retour.a.la.liste" /> 
86						</a> 
87					</div> 
88				</div> 
89			</div> 
90		</div> 
91	</div> 
92</#if> 
93 
94<div class="single publication"> 
95	<div class="container"> 
96		<article> 
97			<div class="row justify-content-center"> 
98				<div class="col-12 col-lg-10"> 
99					<div class="article-head"> 
100						<div class="article-title"> 
101							<#assign ArticleJournalTitle = .vars['reserved-article-title'].data> 
102							<#if ArticleJournalTitle?has_content> 
103								<h1> 
104									${ArticleJournalTitle} 
105								</h1> 
106							</#if> 
107 
108							<#assign Templates_Path = templatesPath /> 
109							<#include "${Templates_Path}/BLOC-SHARETHIS"> 
110						</div> 
111					</div> 
112				</div> 
113			</div> 
114			<div class="article-content"> 
115				<div class="row"> 
116					<div class="col-12 col-lg-3" style="overflow: visible"> 
117						<div style="position: sticky; top: 100px"> 
118							<div class="picture"> 
119								<#if VisuelPrincipal?has_content && VisuelPrincipal.getData()?has_content && VisuelPrincipal.getData()?length gt 2> 
120									<#assign altVisuelPrincipalDefaut = VisuelPrincipal.getAttribute("name")?split(".")[0] /> 
121 
122									<#if VisuelPrincipal.getAttribute("alt")?has_content> 
123										<#assign altVisuelPrincipalDefaut = VisuelPrincipal.getAttribute("alt") /> 
124									</#if> 
125									<img data-fileentryid="${VisuelPrincipal.getAttribute("fileEntryId")}" 
126										 alt="${altVisuelPrincipalDefaut}" 
127										 src="${VisuelPrincipal.getData()}&thumb=cncThumb" /> 
128								</#if> 
129							</div> 
130							<div class="link-icon news-downloads" style="margin-top: 10px;"> 
131								<#if FichiersAssocies?has_content && FichiersAssocies.getData()?has_content> 
132									<#list FichiersAssocies.getSiblings() as cur_fichiersAssocies> 
133										<#assign counter = 0 > 
134										<#assign uuId = "" > 
135										<#list cur_fichiersAssocies.getData()?split("/") as x> 
136											<#if counter == 5> 
137												<#if x?split("?t")?has_content > 
138													<#assign uuId = x?split("?t")[0] > 
139												</#if> 
140											</#if> 
141											<#assign counter = counter+1 > 
142										</#list> 
143										<#assign fileEntry = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryService")> 
144										<#if uuId != ""> 
145											<#assign file = fileEntry.getFileEntryByUuidAndGroupId(uuId,groupId) > 
146										</#if> 
147										<#if file?has_content && uuId?has_content> 
148 
149											<#assign fileExtension = "" /> 
150											<#if file.getFileName()?has_content && file.getFileName()?split(".")?size gt 1> 
151												<#assign fileExtension = file.getFileName()?split(".")[1] /> 
152											</#if> 
153											<#if file.getFileName()?has_content && file.getFileName()?split(".")?size gt 1> 
154												<#assign fileExtension = file.getFileName()?split(".")[1] /> 
155											</#if> 
156											<#assign fileSize = 0 /> 
157 
158											<a href="${cur_fichiersAssocies.getData()}"  class="round news-download" target="_blank"> 
159												<div> 
160													<i class="icon icon-download"></i> 
161												</div> 
162												<div> 
163												<span class="news-download-title"> 
164													<#if cur_fichiersAssocies.LibelleDuFichier?has_content && cur_fichiersAssocies.LibelleDuFichier.getData()?has_content> 
165														${cur_fichiersAssocies.LibelleDuFichier.getData()} 
166													<#elseif LibelleDuFichier?has_content && LibelleDuFichier.getData()?has_content> 
167													<#-- Avant que le champ document devienne repetable le champ libelle n'etait pas un enfant du document. 
168													Tant que les contenus web n'ont pas étés re-publiés il faut chercher le contenu du libellé dans l'ancien champ, 
169													même si celui-ci n'est plus dans le json de la scruture--> 
170														${LibelleDuFichier.getData()} 
171													<#else> 
172														<@liferay.language key="article.publication.telechargement" /> 
173													</#if> 
174												</span> 
175 
176													<#if file.getSize()?has_content> 
177														<#assign fileSize = file.getSize()/1000 /> 
178														<span class="details"> 
179
180													<#if fileExtension?has_content && fileExtension?length gt 0 > 
181														<span class="extension"> 
182															${fileExtension?upper_case} 
183														</span> 
184													</#if> 
185														<span class="weight">${fileSize?int} Ko</span>) 
186													</span> 
187													</#if> 
188												</div> 
189											</a> 
190										</#if> 
191									</#list> 
192								</#if> 
193							</div> 
194						</div> 
195					</div> 
196					<div class="col-12 col-lg-8"> 
197						<div class="infos"> 
198							<#assign originalLocale = locale> 
199							<#setting locale = localeUtil.getDefault()> 
200							<#if categoriesDomainesPrimairesList?size != 0> 
201								<div class="category"> 
202									<#if locale.toString()!="en_US"><a href="${urlListePublicationsDomaine}"></#if> 
203										${categoryDomainePrimaireList.getTitle(locale)} 
204										<#if locale.toString()!="en_US"></a></#if> 
205								</div> 
206							</#if> 
207 
208							<#if tagEntries?has_content> 
209								<div class="tags"> 
210									<div class="title-tag"> 
211										<@liferay.language key="article.texte.tags" /> : 
212									</div> 
213									<ul class="list-unstyled"> 
214										<#list tagEntries as tagEntry> 
215											<#assign urlTags = cncUrlService.calculeUrlPageRechercheParTag(themeDisplay, tagEntry.getName()) /> 
216											<li> 
217												<#if locale.toString()!="en_US"><a href="${urlTags}" ></#if> 
218													${tagEntry.getName()} 
219													<#if locale.toString()!="en_US"></a></#if> 
220											</li> 
221										</#list> 
222									</ul> 
223								</div> 
224							</#if> 
225 
226							<ul class="list-unstyled simple"> 
227								<li> 
228									<strong><@liferay.language key="article.publication.type.publication" /></strong> : 
229									<#if categoriesTypePublicationList?size != 0 > 
230										<#list categoriesTypePublicationList as categoryTPList> 
231											<#if urlListePublicationsType?has_content && locale.toString()!="en_US"><a href="${urlListePublicationsType}"></#if> 
232											${categoryTPList.getTitle(locale)} 
233											<#if urlListePublicationsType?has_content && locale.toString()!="en_US"></a></#if> 
234										</#list> 
235									</#if> 
236								</li> 
237								<li> 
238									<strong><@liferay.language key="article.publication.date" /></strong> : 
239									<#assign originalLocale = locale> 
240									<#setting locale = localeUtil.getDefault()> 
241 
242									<#assign displaydate = .vars['reserved-article-display-date'].data> 
243									<#assign displaydate = displaydate?datetime("EEE, d MMM yyyy HH:mm:ss Z")> 
244									<#if displaydate?has_content> 
245										<#assign date_value = dateUtil.getDate(displaydate, "dd/MM/yyyy", locale)> 
246										<div class="date date-2" style="margin-top: auto;font-family: Arial;font-size: 1.4rem;color: #212529;">${date_value}</div> 
247									</#if> 
248									<#setting locale = originalLocale> 
249								</li> 
250							</ul> 
251							<#setting locale = originalLocale> 
252						</div> 
253						<p> 
254							<#if Resume?has_content> 
255								<div class="intro">${Resume.getData()}</div> 
256							</#if> 
257						</p> 
258						<p> 
259							<#if Contenu?has_content> 
260								${Contenu.getData()} 
261							</#if> 
262						</p> 
263 
264					</div> 
265				</div> 
266			</div> 
267		</article> 
268	</div> 
269	<hr/> 
270	<#if articlesMemesSujet?? && articlesMemesSujet?size != 0> 
271		<div class="rebound"> 
272			<div class="container"> 
273				<div class="related-publications"> 
274					<div class="row"> 
275						<div class="col-12 text-center"> 
276							<div class="section-title"><@liferay.language key="article.voir.aussi" /></div> 
277						</div> 
278					</div> 
279					<div class="row"> 
280						<#list articlesMemesSujet as articleMemeSujet> 
281							<div class="col-12 col-lg-6"> 
282								${articleMemeSujet} 
283							</div> 
284						</#list> 
285					</div> 
286				</div> 
287			</div> 
288		</div> 
289	</#if> 
290</div> 
291 
292<#if InformationComplementaire?has_content> 
293	<div class="footer-text"> 
294		<div class="container"> 
295			<div class="row"> 
296				<div class="col-12"> 
297					${InformationComplementaire.getData()} 
298				</div> 
299			</div> 
300		</div> 
301	</div> 
302</#if>