Une erreur s'est produite lors du traitement du modèle.
The following has evaluated to null or missing:
==> viePres.values.viePresentationDate [in template "com.liferay.portal.template.freemarker_7.0.59_CLASS_LOADER_CONTEXT_FTL_film.ftl" at line 40, column 54]
----
Tip: It's the step after the last dot that caused this error, not those before it.
----
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: #local viePresFull = viePresFull + [v... [in template "com.liferay.portal.template.freemarker_7.0.59_CLASS_LOADER_CONTEXT_FTL_film.ftl" in function "getFilmData" at line 40, column 17]
----
1<#assign
2dlAppLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppLocalService")
3dlURLHelper = serviceLocator.findService("com.liferay.document.library.util.DLURLHelper")
4
5objectEntryLocalService = serviceLocator.findService("com.liferay.object.service.ObjectEntryLocalService")
6objectRelationshipLocalService = serviceLocator.findService("com.liferay.object.service.ObjectRelationshipLocalService")
7objectDefinitionLocalService = serviceLocator.findService("com.liferay.object.service.ObjectDefinitionLocalService")
8
9listTypeDefinitionService = serviceLocator.findService("com.liferay.list.type.service.ListTypeDefinitionLocalService")
10listTypeEntryService = serviceLocator.findService("com.liferay.list.type.service.ListTypeEntryLocalService")
11/>
12
13<#assign searchUrl = (request.getParameter("searchUrl")?hasContent)?then("?searchUrl=" + request.getParameter("searchUrl")?url('UTF-8'), "")/>
14<#assign summary = garance.getSummaryContent("Film")>
15
16<#assign workID = ObjectEntry_objectEntryId.getData()
17workEntry = objectEntryLocalService.fetchObjectEntry(workID?number)
18filmID = workEntry.values.r_filmWork_c_filmId
19filmEntry = objectEntryLocalService.fetchObjectEntry(filmID?number)
20filmGroupID = filmEntry.getGroupId() />
21
22
23<#--------------------------------- Données communes films et variants (macro-library : FTL_film.ftl) -------------------------->
24<#assign filmData = film.getFilmData(filmEntry, workEntry, themeDisplay.getCompanyId()) />
25<#assign othTltsFull = filmData.othTltsFull />
26<#assign unitDocFull = filmData.unitDocFull />
27<#assign viePresFull = filmData.viePresFull />
28<#assign viesPresFullOut = filmData.viesPresFullOut />
29<#assign creditsProdFull = filmData.creditsProdFull />
30<#assign viesClassFull = filmData.viesClassFull />
31<#assign languesParlFull = filmData.languesParlFull />
32<#assign catalogues = filmData.catalogues />
33<#assign showIdentity = filmData.showIdentity />
34<#assign keywords = filmData.keywords />
35<#assign contentGenres = filmData.contentGenres />
36<#assign formesOeuvreAdaptee = filmData.formesOeuvreAdaptee />
37<#assign vocabulairesCinematographiques = filmData.vocabulairesCinematographiques />
38<#assign viesProduction = filmData.viesProduction />
39<#assign datesViesTournage = filmData.datesViesTournage />
40<#assign studiosTournage = filmData.studiosTournage />
41<#assign studiosEnreg = filmData.studiosEnreg />
42<#assign labs = filmData.labs />
43<#assign showDescription = filmData.showDescription />
44<#assign credRealsFull = filmData.credRealsFull />
45<#assign credEcritsFull = filmData.credEcritsFull />
46<#assign credMusicsFull = filmData.credMusicsFull />
47<#assign credTechsFull = filmData.credTechsFull />
48<#assign credProdsFull = filmData.credProdsFull />
49<#assign credIntersFull = filmData.credIntersFull />
50<#assign showGenerique = filmData.showGenerique />
51<#assign techColors = filmData.techColors />
52<#assign workSoundsFull = filmData.workSoundsFull />
53<#assign techniquesImageFull = filmData.techniquesImageFull />
54<#assign showTechnique = filmData.showTechnique />
55<#assign florileges = filmData.florileges />
56<#assign syntheses = filmData.syntheses />
57<#assign showPress = filmData.showPress />
58<#assign awardsFull = filmData.awardsFull />
59<#assign showAwards = filmData.showAwards />
60<#assign exploitationParis = filmData.exploitationParis />
61<#assign exploitationProvince = filmData.exploitationProvince />
62<#assign exploitationFrance = filmData.exploitationFrance />
63<#assign showExploitation = filmData.showExploitation />
64<#assign digitalRefs = filmData.digitalRefs />
65<#assign showBibliographie = filmData.showBibliographie />
66<#assign seriesFull = filmData.seriesFull />
67<#assign corpusFull = filmData.corpusFull />
68<#assign ensembleFull = filmData.ensembleFull />
69<#assign composingFull = filmData.composingFull />
70<#assign relatedFilmsFull = filmData.relatedFilmsFull />
71<#assign showRelatedFilms = filmData.showRelatedFilms />
72<#assign showCorpus = filmData.showCorpus />
73<#assign showSerie = filmData.showSerie />
74<#assign showEnsemble = filmData.showEnsemble />
75<#assign showComposingCorpus = filmData.showComposingCorpus />
76<#assign showComposingSerie = filmData.showComposingSerie />
77<#assign showComposingEnsemble = filmData.showComposingEnsemble />
78<#assign filmConsultationsFull = filmData.filmConsultationsFull />
79<#assign filmConsultationsNumériques = filmData.filmConsultationsNumériques />
80<#assign showConsultation = filmData.showConsultation />
81<#assign reproductionsImages = filmData.reproductionsImages />
82<#assign reproductionsVideos = filmData.reproductionsVideos />
83<#assign showMedia = filmData.showMedia />
84
85<#--------------------------------- Versions -------------------------->
86<#assign filmChildrenRel = objectRelationshipLocalService.getObjectRelationship(filmEntry.objectDefinitionId, "filmChildren")>
87<#assign filmChildren = objectEntryLocalService.getOneToManyObjectEntries(filmGroupID, filmChildrenRel.objectRelationshipId, filmID, true, null, -1, -1 ) />
88<#assign variantChildren = []>
89<#if filmChildren?hasContent>
90 <#assign variantChildren = filmChildren?filter(v -> v.values.descriptionLevel?hasContent && v.values.descriptionLevel == "VARIANT")>
91</#if>
92
93<#assign showVariant = variantChildren?hasContent>
94
95<#--------------------------------- Collections -------------------------->
96
97<#assign relatedObjectsRel = objectRelationshipLocalService.getObjectRelationship(filmEntry.objectDefinitionId, "filmRelatedObjects")>
98<#assign relatedObjects = objectEntryLocalService.getManyToManyObjectEntries(filmGroupID, relatedObjectsRel.objectRelationshipId, filmID, true, relatedObjectsRel.isReverse(), null, -1, -1 ) />
99<#assign relatedObjectsFull = garance.getRelatedObjects(relatedObjects, filmEntry, false)>
100
101<#assign showCollection = relatedObjectsFull?hasContent>
102
103
104<div class="notice notice--film js-notice">
105 <div class="notice-header tw:text-white tw:pt-[3.375rem] tw:pb-[2.5rem] tw:relative tw:overflow-hidden
106 tw:before:content-[''] tw:before:absolute tw:before:inset-0 tw:before:size-full tw:before:block tw:before:bg-text tw:before:opacity-90
107 tw:xl:pt-[9.5rem]">
108 <div class="page-wrapper tw:z-0 tw:relative">
109 <#if request.getParameter("searchContext")?hasContent>
110 <@garance.noticePagination request.getParameter("searchContext") filmID />
111 </#if>
112
113 <div class="tw:flex tw:gap-5 tw:items-start tw:flex-wrap tw:flex-col tw:z-0
114 tw:md:flex-row tw:lg:flex-nowrap
115 tw:xl:gap-[2.125rem]">
116 <div class="tw:order-2 tw:lg:order-1 tw:flex tw:flex-col tw:w-full tw:text-center
117 tw:md:w-fit tw:md:text-left">
118 <#if filmEntry.values.titleComplete?hasContent>
119 <h1 class="tw:order-1 tw:text-prim tw:mb-[0.625rem]">
120 ${filmEntry.values.titleComplete}
121 </h1>
122 </#if>
123 <#if !reproductionsImages?hasContent>
124 <p class="tw:order-0 tw:mb-5 tw:text-[0.75rem]/[1rem] tw:block tw:mx-auto tw:rounded-xs tw:w-fit tw:bg-[rgba(255,255,255,0.9)] tw:text-prim tw:uppercase tw:px-[0.625rem] tw:py-1
125 tw:md:mx-0">
126 Film
127 </p>
128 </#if>
129 <#if filmEntry.values.frenchTitle?hasContent>
130 <p class="tw:order-1 tw:font-title tw:text-[1.25rem]/[1.875rem] tw:font-medium">
131 <#if (filmEntry.values.frenchTitleArticle)?hasContent>
132 ${filmEntry.values.frenchTitleArticle}
133 </#if>
134 ${filmEntry.values.frenchTitle}
135 </p>
136 </#if>
137 <div class="tw:order-1 tw:relative tw:pt-5 tw:mt-5 tw:text-left
138 tw:before:block tw:before:content-[''] tw:before:absolute tw:before:top-0 tw:before:h-[0.0625rem] tw:before:w-full tw:before:bg-white tw:before:opacity-20
139 tw:md:before:w-[12.8125rem] ">
140 <#assign realisateursRel = objectRelationshipLocalService.getObjectRelationship(filmEntry.objectDefinitionId, "creditsRealisateur")>
141 <#assign realisateurs = objectEntryLocalService.getManyToManyObjectEntries(filmGroupID, realisateursRel.objectRelationshipId, filmID, true, realisateursRel.isReverse(), null, -1, -1 ) />
142 <#if realisateurs?hasContent>
143 <p class="tw:mb-[0.625rem]">
144 <#list realisateurs as realisateur>
145 <#assign realisateurData = garance.getPersonneDisplayData(realisateur.objectEntryId)>
146 <#if realisateurData.id?hasContent>
147 <a href="/l/${realisateurData.id}${searchUrl}"
148 class="tw:font-bold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.0625rem] tw:hover:bg-size-[0_0.0625rem]">
149 ${realisateurData.name}
150 </a>
151 <#else>
152 ${realisateurData.name}
153 </#if><#if !realisateur?isLast>, </#if>
154 </#list>
155 </p>
156 </#if>
157
158 <#if filmEntry.values.productionDateStart?hasContent>
159 <p class="tw:mb-[0.625rem]">
160 <span class="tw:font-bold">Année de production :</span>
161 <#if filmEntry.values.productionDateEnd?hasContent && filmEntry.values.productionDateStart != filmEntry.values.productionDateEnd>
162 ${[filmEntry.values.productionDateStart?string("yyyy"), filmEntry.values.productionDateEnd?string("yyyy")]?join(" - ")}
163 <#else>
164 ${filmEntry.values.productionDateStart?string("yyyy")}
165 </#if>
166 <#if getterUtil.getBoolean(filmEntry.values.anneeDeProdPresume)> (Présumé)</#if>
167 </p>
168 </#if>
169
170 <#assign countryID = filmEntry.values.r_productionCountry_c_thesaurusId>
171 <#if countryID != 0>
172 <#assign country = garance.getThesaurusByID(countryID)>
173 <#if country?hasContent>
174 <p class="tw:mb-[0.625rem]">
175 <span class="tw:font-bold">Pays de production :</span> ${country}
176 </p>
177 </#if>
178 </#if>
179 </div>
180 </div>
181 <#if reproductionsImages?hasContent>
182 <div class="tw:order-1 tw:lg:order-0 tw:w-full
183 tw:md:w-fit">
184 <div class="tw:m-auto tw:mx-auto tw:max-w-full tw:w-[15.625rem] tw:relative
185 tw:md:mx-0">
186 <p class="tw:absolute tw:top-[0.625rem] tw:left-[0.625rem] tw:text-[0.75rem]/[1rem] tw:block tw:rounded-xs tw:w-fit tw:bg-[rgba(255,255,255,0.9)] tw:text-prim tw:uppercase tw:px-[0.625rem] tw:py-1">
187 Film
188 </p>
189 <#assign thumbnail = reproductionsImages?first>
190 <#assign fileEntryDesktop = dlAppLocalService.getFileEntry(thumbnail.values.media?number) />
191 <#assign thumbnailURL = dlURLHelper.getPreviewURL(fileEntryDesktop, fileEntryDesktop.getFileVersion(),
192 null, "",
193 !fileEntryDesktop.getFileVersion().equals(fileEntryDesktop.getLatestFileVersion()), true) />
194
195 <figure class="tw:w-full">
196 <source media="(min-width: 480px)"
197 srcset="${thumbnailURL}"/>
198 <img class="tw:rounded-xs tw:object-cover tw:size-full" alt=""
199 src="${thumbnailURL}"/>
200 <#if thumbnail.values.reproductionNotes?hasContent || thumbnail.values.reproductionCopyright?hasContent>
201 <figcaption class="tw:ml-[0.625rem] tw:opacity-70 tw:text-[0.75rem]/[1rem] tw:font-medium tw:mt-[0.3125rem]
202 tw:md:ml-0">
203 ${[thumbnail.values.reproductionNotes, thumbnail.values.reproductionCopyright]?filter(v->v?hasContent)?join(" - ")}
204 </figcaption>
205 </#if>
206 </figure>
207 </div>
208 </div>
209 </#if>
210 <@garance.noticeTools />
211 </div>
212 </div>
213 </div>
214 <div class="notice-content">
215
216
217 <div class="tw:overflow-y-clip tw:py-10">
218 <div class="page-wrapper summary-ancres js-summary-ancres tw:group tw:fixed tw:w-full tw:overflow-hidden tw:h-fit tw:z-50 tw:top-[4.375rem] tw:bg-beige tw:max-lg:max-w-full!
219 tw:lg:top-[6.875rem] tw:lg:h-0 tw:lg:overflow-visible tw:lg:sticky
220 tw:xl:top-[8.85rem]">
221 <nav class="tw:bg-beige tw:lg:w-[14.25rem]" role="navigation" aria-labelledby="summary-title">
222 <button id="summary-title" class="js-summary-btn tw:text-h3 tw:font-title tw:flex tw:justify-between tw:items-center tw:py-[0.625rem] tw:w-full tw:max-sm:px-[calc(2.5rem/2)] tw:focus:outline-offset-[-0.125rem]
223 tw:max-lg:px-[calc(5rem/2)]
224 tw:lg:hidden" aria-label="Ouvrir/Fermer le sommaire" aria-expanded="false"
225 aria-controls="summary-list">
226 <span>Sommaire</span>
227 <span class="icon-chevron-down tw:text-prim tw:text-base tw:transition-all tw:outline-offset-[-0.125rem]
228 tw:group-[&.open]:rotate-180" aria-hidden="true"></span>
229 </button>
230 <div id="summary-list" class="tw:overflow-y-auto tw:bg-white tw:transition-all tw:max-sm:px-[calc(2.5rem/2)]
231 tw:max-lg:max-h-0 tw:max-lg:px-[calc(5rem/2)] tw:max-lg:max-w-full
232 tw:group-[&.open]:max-h-[calc(100vh-(4.375rem+3.125rem))]
233 tw:lg:max-h-[calc(100vh-12.5rem)] tw:lg:bg-transparent" tabindex="-1">
234 <ul class="tw:border-sommaire-border tw:border-l-[0.125rem] tw:my-2">
235 <#if showIdentity>
236 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
237 <a href="#identite" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
238 tw:[&.is-active]:border-prim" tabindex="-1">
239 <span>${summary["IdentiteFilm"]?hasContent?then(summary["IdentiteFilm"], "Identité")}</span>
240 </a>
241 </li>
242 </#if>
243 <#if showDescription>
244 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
245 <a href="#description" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
246 tw:[&.is-active]:border-prim" tabindex="-1">
247 <span>${summary["DescriptionFilm"]?hasContent?then(summary["DescriptionFilm"], "Description")}</span>
248 </a>
249 </li>
250 </#if>
251 <#if showGenerique>
252 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
253 <a href="#generique" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
254 tw:[&.is-active]:border-prim" tabindex="-1">
255 <span>${summary["GeneriqueFilm"]?hasContent?then(summary["GeneriqueFilm"], "Générique")}</span>
256 </a>
257 </li>
258 </#if>
259 <#if showTechnique>
260 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
261 <a href="#infos-techniques" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
262 tw:[&.is-active]:border-prim" tabindex="-1">
263 <span>${summary["InformationsTechniquesFilm"]?hasContent?then(summary["InformationsTechniquesFilm"], "Informations techniques")}</span>
264 </a>
265 </li>
266 </#if>
267 <#if showPress>
268 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
269 <a href="#presse" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
270 tw:[&.is-active]:border-prim" tabindex="-1">
271 <span>${summary["DansLaPresseFilm"]?hasContent?then(summary["DansLaPresseFilm"], "Dans la presse")}</span>
272 </a>
273 </li>
274 </#if>
275 <#if showAwards>
276 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
277 <a href="#recompenses" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
278 tw:[&.is-active]:border-prim" tabindex="-1">
279 <span>${summary["RecompensesEtNominationsFilm"]?hasContent?then(summary["RecompensesEtNominationsFilm"], "Récompenses et nominations")}</span>
280 </a>
281 </li>
282 </#if>
283 <#if showExploitation>
284 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
285 <a href="#exploitation" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
286 tw:[&.is-active]:border-prim" tabindex="-1">
287 <span>${summary["ExploitationFilm"]?hasContent?then(summary["ExploitationFilm"], "Exploitation")}</span>
288 </a>
289 </li>
290 </#if>
291 <#if showBibliographie>
292 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
293 <a href="#bibliographie" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
294 tw:[&.is-active]:border-prim" tabindex="-1">
295 <span>${summary["BibliographieEditorialeFilm"]?hasContent?then(summary["BibliographieEditorialeFilm"], "Bibliographie éditoriale")}</span>
296 </a>
297 </li>
298 </#if>
299 <#if showVariant>
300 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
301 <a href="#versions" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
302 tw:[&.is-active]:border-prim" tabindex="-1">
303 <span>${summary["VersionsDuFilmFilm"]?hasContent?then(summary["VersionsDuFilmFilm"], "Versions du film")}</span>
304 </a>
305 </li>
306 </#if>
307 <#if showSerie>
308 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
309 <a href="#series" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
310 tw:[&.is-active]:border-prim" tabindex="-1">
311 <span>Séries liées</span>
312 </a>
313 </li>
314 </#if>
315 <#if showComposingSerie>
316 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
317 <a href="#series-composing" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
318 tw:[&.is-active]:border-prim" tabindex="-1">
319 <span>Films composant la série</span>
320 </a>
321 </li>
322 </#if>
323 <#if showEnsemble>
324 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
325 <a href="#ensembles" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
326 tw:[&.is-active]:border-prim" tabindex="-1">
327 <span>Ensembles liés</span>
328 </a>
329 </li>
330 </#if>
331 <#if showComposingEnsemble>
332 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
333 <a href="#ensembles-composing" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
334 tw:[&.is-active]:border-prim" tabindex="-1">
335 <span>Films composant l'ensemble</span>
336 </a>
337 </li>
338 </#if>
339 <#if showRelatedFilms>
340 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
341 <a href="#relations" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
342 tw:[&.is-active]:border-prim" tabindex="-1">
343 <span>${summary["RelationAutreFilmFilm"]?hasContent?then(summary["RelationAutreFilmFilm"], "Relation autre film")}</span>
344 </a>
345 </li>
346 </#if>
347 <#if showCorpus>
348 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
349 <a href="#corpus" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
350 tw:[&.is-active]:border-prim" tabindex="-1">
351 <span>Corpus liés</span>
352 </a>
353 </li>
354 </#if>
355 <#if showComposingCorpus>
356 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
357 <a href="#corpuss-composing" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
358 tw:[&.is-active]:border-prim" tabindex="-1">
359 <span>Films composant le corpus</span>
360 </a>
361 </li>
362 </#if>
363 <#if showConsultation>
364 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
365 <a href="#consultation" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
366 tw:[&.is-active]:border-prim" tabindex="-1">
367 <span>${summary["ConsultationFilm"]?hasContent?then(summary["ConsultationFilm"], "Consultation")}</span>
368 </a>
369 </li>
370 </#if>
371 <#if showMedia>
372 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
373 <a href="#ressources" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
374 tw:[&.is-active]:border-prim" tabindex="-1">
375 <span>${summary["RessourcesMediaFilm"]?hasContent?then(summary["RessourcesMediaFilm"], "Ressources média")}</span>
376 </a>
377 </li>
378 </#if>
379 <#if showCollection>
380 <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]">
381 <a href="#collections" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem]
382 tw:[&.is-active]:border-prim" tabindex="-1">
383 <span>${summary["CollectionsLieesFilm"]?hasContent?then(summary["CollectionsLieesFilm"], "Collections liées")}</span>
384 </a>
385 </li>
386 </#if>
387 </ul>
388 </div>
389 </nav>
390 </div>
391
392 <#if showIdentity>
393 <div id="identite" class="js-summary-content" tabindex="-1"></div>
394 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:pb-10">
395 <h2 class="tw:text-prim tw:mb-5">${summary["IdentiteFilm"]?hasContent?then(summary["IdentiteFilm"], "Identité")}</h2>
396 <@film.displayOtherTitles othTltsFull=othTltsFull />
397 <@film.displayTypeOeuvre filmEntry=filmEntry />
398 <@film.displayTypeNotice filmEntry=filmEntry />
399 <@film.displayUnitDocumentaire unitDocFull=unitDocFull filmEntry=filmEntry />
400 <@film.displayCardinalite filmEntry=filmEntry />
401 <@film.displayReleaseDate filmEntry=filmEntry />
402 <#setting locale="fr_FR">
403 <@film.displayFranceReleaseDate viePresFull=viePresFull />
404 <@film.displayCreditsProd creditsProdFull=creditsProdFull />
405 <@film.displayRcaLinkNumber filmEntry=filmEntry />
406 <@film.displayViesClass viesClassFull=viesClassFull />
407 <@film.displayLanguesParl viesClassFull=viesClassFull />
408 <@film.displayCatalogues catalogues=catalogues />
409 <@film.displayViesPres viesPresFullOut=viesPresFullOut />
410 </div>
411 </#if>
412
413 <#if showDescription>
414 <div id="description" class="js-summary-content" tabindex="-1"></div>
415 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
416 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
417 <h2 class="tw:text-prim tw:mb-5">${summary["DescriptionFilm"]?hasContent?then(summary["DescriptionFilm"], "Description")}</h2>
418
419 <@film.displayDescription filmEntry=filmEntry />
420 <@film.displayKeywords keywords=keywords />
421 <@film.displayGenre filmEntry=filmEntry />
422 <@film.displayGenrePrecis contentGenres=contentGenres />
423 <@film.displayFormesOeuvreAdaptee formesOeuvreAdaptee=formesOeuvreAdaptee />
424 <@film.displayVocabulairesCinematographiques vocabulairesCinematographiques=vocabulairesCinematographiques />
425 <@film.displayViesProduction viesProduction=viesProduction />
426 <@film.displayDatesViesTournage datesViesTournage=datesViesTournage />
427 <@film.displayStudiosTournage studiosTournage=studiosTournage />
428 <@film.displayStudiosEnreg studiosEnreg=studiosEnreg />
429 <@film.displayLabs labs=labs />
430 <@film.displayNotes filmEntry=filmEntry />
431
432 </div>
433 </#if>
434
435 <#if showGenerique>
436 <div id="generique" class="js-summary-content" tabindex="-1"></div>
437 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
438 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
439 <h2 class="tw:text-prim tw:mb-5">${summary["GeneriqueFilm"]?hasContent?then(summary["GeneriqueFilm"], "Générique")}</h2>
440 <@film.displayCredReals credRealsFull=credRealsFull />
441 <@film.displayCredEcrits credEcritsFull=credEcritsFull />
442 <@film.displayCredMusics credMusicsFull=credMusicsFull />
443 <@film.displayCredTechs credTechsFull=credTechsFull />
444 <@film.displayCredProds credProdsFull=credProdsFull />
445 <@film.displayCredInters credIntersFull=credIntersFull />
446 </div>
447 </#if>
448
449 <#if showTechnique>
450 <div id="infos-techniques" class="js-summary-content" tabindex="-1"></div>
451 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
452 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
453 <h2 class="tw:text-prim tw:mb-5">${summary["InformationsTechniquesFilm"]?hasContent?then(summary["InformationsTechniquesFilm"], "Informations techniques")}</h2>
454
455 <@film.displayTypeDeMetrage filmEntry=filmEntry />
456 <@film.displayWorkVariantQuantity filmEntry=filmEntry />
457 <@film.displayWorkVariantMetrage filmEntry=filmEntry />
458 <@film.displayTechColors techColors=techColors />
459 <@film.displaySonore filmEntry=filmEntry />
460 <@film.displayWorkSounds workSoundsFull=workSoundsFull />
461 <@film.displayTechniquesImage techniquesImageFull=techniquesImageFull />
462 </div>
463 </#if>
464
465 <#if showPress>
466 <div id="presse" class="js-summary-content" tabindex="-1"></div>
467 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
468 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
469 <h2 class="tw:text-prim tw:mb-5">${summary["DansLaPresseFilm"]?hasContent?then(summary["DansLaPresseFilm"], "Dans la presse")}</h2>
470 <@film.displayFlorileges florileges=florileges />
471 <@film.displaySyntheses syntheses=syntheses />
472 </div>
473 </#if>
474
475 <#if showAwards>
476 <div id="recompenses" class="js-summary-content" tabindex="-1"></div>
477 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
478 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
479 <h2 id="awards"
480 class="tw:text-prim tw:mb-5">${summary["RecompensesEtNominationsFilm"]?hasContent?then(summary["RecompensesEtNominationsFilm"], "Récompenses et nominations")}</h2>
481 <@film.displayAwards awardsFull=awardsFull />
482 </div>
483 </#if>
484
485 <#if showExploitation>
486 <div id="exploitation" class="js-summary-content" tabindex="-1"></div>
487 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
488 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
489 <h2 class="tw:text-prim tw:mb-5">${summary["ExploitationFilm"]?hasContent?then(summary["ExploitationFilm"], "Exploitation")}</h2>
490 <#assign exploitRefs = {"salle": "salles",
491 "semaine": "semaines",
492 "entree": "entrées la première semaine",
493 "total": "entrées totales"
494 }>
495 <@film.displayExploitationParis exploitationParis=exploitationParis exploitRefs=exploitRefs />
496 <@film.displayExploitationProvince exploitationProvince=exploitationProvince exploitRefs=exploitRefs />
497 <@film.displayExploitationFrance exploitationFrance=exploitationFrance exploitRefs=exploitRefs />
498 </div>
499 </#if>
500
501 <#if showBibliographie>
502 <div id="bibliographie" class="js-summary-content" tabindex="-1"></div>
503 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
504 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
505 <h2 id="biblio"
506 class="tw:text-prim tw:mb-5">${summary["BibliographieEditorialeFilm"]?hasContent?then(summary["BibliographieEditorialeFilm"], "Bibliographie éditoriale")}</h2>
507 <@film.displayDigitalRefs digitalRefs=digitalRefs />
508 </div>
509 </#if>
510
511 <#if showVariant>
512 <div id="versions" class="js-summary-content" tabindex="-1"></div>
513 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
514 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
515 <h2 class="tw:text-prim tw:mb-5">${summary["VersionsDuFilmFilm"]?hasContent?then(summary["VersionsDuFilmFilm"], "Versions du film")}</h2>
516 <div class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]">
517 <p id="variant-tl" class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0">Type de version
518 :</p>
519 <div class="js-list-expand">
520 <ul aria-labelledby="variant-tl">
521 <#list variantChildren as variant>
522 <li <#if (variant?index > 4)>class="tw:hidden"</#if>><#if variant.values.typeOfVariant?hasContent>${garance.getPicklistItemName(variant.values.typeOfVariant, "picklistTypeOfVariant")}</#if>
523 - ${variant.values.titleComplete}<#if variant.values.varianteIdentificationNote?hasContent> - ${variant.values.varianteIdentificationNote}</#if></li>
524 </#list>
525 </ul>
526 <#if (variantChildren?size > 5)>
527 <button type="button"
528 class="js-expand tw:items-center tw:leading-[1.75rem] tw:group tw:flex tw:gap-[0.3125rem] tw:font-semibold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]">
529 <span>Voir plus</span>
530 <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0
531 tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span>
532 </button>
533 </#if>
534 <button id="popup-variant-toggle" role="button" class="btn btn-outline-primary tw:mt-5">
535 Afficher les
536 informations des versions
537 </button>
538 </div>
539 </div>
540 </div>
541 </#if>
542
543 <#if showSerie>
544 <div id="series" class="js-summary-content" tabindex="-1"></div>
545 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
546 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
547 <h2 id="serie" class="tw:text-prim tw:mb-5">Séries liées</h2>
548 <@film.displaySeries seriesFull=seriesFull />
549 </div>
550 </#if>
551
552 <#if showComposingSerie>
553 <div id="series-composing" class="js-summary-content" tabindex="-1"></div>
554 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
555 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
556 <h2 id="serie-composing"
557 class="tw:text-prim tw:mb-5">Films composant la série</h2>
558 <div class="wysiwyg js-list-expand">
559 <ul aria-labelledby="serie-composing">
560 <#list composingFull as composing>
561 <li <#if (composing?index > 4)>class="tw:hidden"</#if>>
562 <#if composing.id??>
563 <a href="/l/${composing.id}${searchUrl}"
564 class="tw:font-bold! tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]">
565 ${composing.title}</a>
566 <#else>${composing.title}</#if>
567 </li>
568 </#list>
569 </ul>
570 <#if (composingFull?size > 5)>
571 <button type="button"
572 class="js-expand tw:items-center tw:leading-[1.75rem] tw:group tw:flex tw:gap-[0.3125rem] tw:font-semibold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]">
573 <span>Voir plus</span>
574 <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0
575 tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span>
576 </button>
577 </#if>
578 </div>
579 </div>
580 </#if>
581
582 <#if showEnsemble>
583 <div id="ensemble" class="js-summary-content" tabindex="-1"></div>
584 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
585 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
586 <h2 id="ensemble"
587 class="tw:text-prim tw:mb-5">Ensembles liés</h2>
588 <div class="wysiwyg js-list-expand">
589 <ul aria-labelledby="ensemble">
590 <#list ensembleFull as ensemble>
591 <li <#if (ensemble?index > 4)>class="tw:hidden"</#if>>
592 <#if ensemble.id??>
593 <a href="/l/${ensemble.id}${searchUrl}"
594 class="tw:font-bold! tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]">
595 ${ensemble.title}</a>
596 <#else>${ensemble.title}</#if>
597 </li>
598 </#list>
599 </ul>
600 <#if (ensembleFull?size > 5)>
601 <button type="button"
602 class="js-expand tw:items-center tw:leading-[1.75rem] tw:group tw:flex tw:gap-[0.3125rem] tw:font-semibold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]">
603 <span>Voir plus</span>
604 <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0
605 tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span>
606 </button>
607 </#if>
608 </div>
609 </div>
610 </#if>
611
612 <#if showComposingEnsemble>
613 <div id="ensembles-composing" class="js-summary-content" tabindex="-1"></div>
614 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
615 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
616 <h2 id="ensemble-composing"
617 class="tw:text-prim tw:mb-5">Films composant l'ensemble</h2>
618 <div class="wysiwyg js-list-expand">
619 <ul aria-labelledby="ensemble-composing">
620 <#list composingFull as composing>
621 <li <#if (composing?index > 4)>class="tw:hidden"</#if>>
622 <#if composing.id??>
623 <a href="/l/${composing.id}${searchUrl}"
624 class="tw:font-bold! tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]">
625 ${composing.title}</a>
626 <#else>${composing.title}</#if>
627 </li>
628 </#list>
629 </ul>
630 <#if (composingFull?size > 5)>
631 <button type="button"
632 class="js-expand tw:items-center tw:leading-[1.75rem] tw:group tw:flex tw:gap-[0.3125rem] tw:font-semibold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]">
633 <span>Voir plus</span>
634 <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0
635 tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span>
636 </button>
637 </#if>
638 </div>
639 </div>
640 </#if>
641
642 <#if showRelatedFilms>
643 <div id="relations" class="js-summary-content" tabindex="-1"></div>
644 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
645 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
646 <h2 id="relatedF"
647 class="tw:text-prim tw:mb-5">${summary["RelationAutreFilmFilm"]?hasContent?then(summary["RelationAutreFilmFilm"], "Relation autre film")}</h2>
648 <@film.displayRelatedFilms relatedFilmsFull=relatedFilmsFull />
649 </div>
650 </#if>
651
652 <#if showCorpus>
653 <div id="corpus" class="js-summary-content" tabindex="-1"></div>
654 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
655 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
656 <h2 id="corpus-tl"
657 class="tw:text-prim tw:mb-5">Corpus liés</h2>
658 <@film.displayCorpus corpusFull=corpusFull />
659 </div>
660 </#if>
661
662 <#if showComposingCorpus>
663 <div id="corpuss-composing" class="js-summary-content" tabindex="-1"></div>
664 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
665 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
666 <h2 id="corpus-composing"
667 class="tw:text-prim tw:mb-5">Films composant le corpus</h2>
668 <div class="wysiwyg js-list-expand">
669 <ul aria-labelledby="corpus-composing">
670 <#list composingFull as composing>
671 <li <#if (composing?index > 4)>class="tw:hidden"</#if>>
672 <#if composing.id??>
673 <a href="/l/${composing.id}${searchUrl}"
674 class="tw:font-bold! tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]">
675 ${composing.title}</a>
676 <#else>${composing.title}</#if>
677 </li>
678 </#list>
679 </ul>
680 <#if (composingFull?size > 5)>
681 <button type="button"
682 class="js-expand tw:items-center tw:leading-[1.75rem] tw:group tw:flex tw:gap-[0.3125rem] tw:font-semibold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]">
683 <span>Voir plus</span>
684 <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0
685 tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span>
686 </button>
687 </#if>
688 </div>
689 </div>
690 </#if>
691
692 <#if showConsultation>
693 <div id="consultation" class="js-summary-content" tabindex="-1"></div>
694 <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10
695 tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40">
696 <h2 class="tw:text-prim tw:mb-5">${summary["ConsultationFilm"]?hasContent?then(summary["ConsultationFilm"], "Consultation")}</h2>
697 <@film.displayVieConservationEtat filmEntry=filmEntry />
698 <@film.displayFilmConsultation filmConsultationsFull=filmConsultationsFull />
699 <@film.displayFilmConsultationsNumeriques filmConsultationsNumériques=filmConsultationsNumériques />
700 </div>
701 </#if>
702 </div>
703 <#if showMedia>
704 <#assign medias = []>
705 <#if reproductionsVideos?hasContent>
706 <#assign medias = medias + [{
707 "type": "video",
708 "title": "Vidéos",
709 "reproductions": reproductionsVideos
710 }]>
711 </#if>
712 <#if reproductionsImages?hasContent>
713 <#assign medias = medias + [{
714 "type": "image",
715 "title": "Images",
716 "reproductions": reproductionsImages
717 }]>
718 </#if>
719 <div id="ressources" class="js-summary-content" tabindex="-1"></div>
720 <div class="page-wrapper tw:py-10">
721 <h2 id="ressources-tl"
722 class="tw:text-prim tw:mb-5">${summary["RessourcesMediaFilm"]?hasContent?then(summary["RessourcesMediaFilm"], "Ressources média")}</h2>
723 <@garance.displayMedia data=medias />
724 </div>
725 </#if>
726 <#if showCollection>
727 <div id="collections" class="js-summary-content" tabindex="-1"></div>
728 <div class="page-wrapper tw:py-10">
729 <h2 id="collections-tl"
730 class="tw:text-prim tw:mb-5">${summary["CollectionsLieesFilm"]?hasContent?then(summary["CollectionsLieesFilm"], "Collections liées")}</h2>
731 <@garance.displayCollection relatedObjectsFull />
732 </div>
733 <script type="module" async>
734 import('photoswipe')
735 import('photoswipe-lightbox')
736 </script>
737 </#if>
738 </div>
739</div>
740
741<#if showVariant>
742 <div id="popup-variant"
743 class="tw:hidden tw:[&.open]:flex tw:bg-beige tw:fixed tw:[&.open]:z-[989] tw:max-w-[64.25rem] tw:w-[calc(100vw-2.5rem)] tw:translate-x-[-50%] tw:[.open]:translate-y-[-50%] tw:inset-[50%] tw:h-fit tw:max-h-[calc(100vh-1.25rem)] tw:flex tw:flex-col">
744 <div class="tw:bg-prim tw:text-white tw:items-center tw:justify-between tw:px-10 tw:px-10 tw:py-[0.375rem] tw:flex">
745 <h3 class="tw:text-h2/[2.8125rem]">Versions pour ${filmEntry.values.titleComplete}</h3>
746 <button class="js-close-variant tw:group" type="button">
747 <span class="sr-only">Fermer</span>
748 <span class="icon-cross tw:block tw:transition-all tw:text-base tw:text-white tw:group-hover:-rotate-90"
749 aria-controls="popup-variant"></span>
750 </button>
751 </div>
752
753 <div class="tw:px-10 tw:py-5 tw:lg:px-20 tw:lg:py-10 tw:overflow-y-auto">
754 <#list variantChildren as variant>
755 <div class="accordion-variant tw:w-full tw:pt-10 tw:mb-10
756 <#if !variant?isFirst>tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40</#if>"
757 data-variant-id="${variant.objectEntryId}" data-loaded="false">
758 <button class="accordion-variant-expand tw:group tw:flex tw:justify-between tw:w-full tw:items-center tw:text-left"
759 aria-expanded="false" aria-controls="variant-content-${variant.objectEntryId}">
760 <h3>
761 <#if variant.values.typeOfVariant?hasContent>${garance.getPicklistItemName(variant.values.typeOfVariant, "picklistTypeOfVariant")}</#if>
762 - ${variant.values.titleComplete}<#if variant.values.varianteIdentificationNote?hasContent> - ${variant.values.varianteIdentificationNote}</#if></h3>
763 <span class="icon-chevron-down tw:transition-all tw:shrink-0 tw:text-prim tw:group-hover:rotate-180 tw:group-[&[aria-expanded=true]]:rotate-180"
764 aria-hidden="true"></span>
765 </button>
766 <div id="variant-content-${variant.objectEntryId}"
767 class="accordion-variant-content tw:hidden tw:[&.open]:block tw:pt-5">
768 <span class="custom-loader tw:mx-auto"></span>
769 <p class="sr-only">Chargement en cours</p>
770 </div>
771 </div>
772 </#list>
773 </div>
774 </div>
775</#if>