Header MALS
Alsatian Museum
Breadcrumb
Info pratiques MALS
Practical information
From 7 July 2025, the Musée Alsacien will close for roof renovation work .
See you in 2027 to discover a museum with a revamped itinerary, showcasing traditional and contemporary Alsace in all its diversity !
Accroche MALS
With its discreet façades overlooking the banks of the Ill, the Alsatian Museum is a real invitation to lose yourself amidst its typical half-timbered architecture dating from around 1600.
What does it mean to be Alsatian, from the 18th century to the present day? Do you know the stories behind all these everyday objects that look as ordinary as a chair, a headdress or a wine jug? What is the meaning of the rituals of the shiva, the Christmas tree, the hunt for 'hamez or the baptismal wishes?
In an atmosphere that is both familiar and astonishing, the visitor discovers, one after the other, faithful or idealised reconstructions of a stùb (living room), a kitchen, a pharmacy, etc. A museum trail spanning three buildings reveals the witnesses of everyday life and surprising objects from yesterday and today.
The Alsatian Museum sees itself as a reflection of the region's population: multicultural and in constant evolution. It offers exhibitions throughout the year and a dynamic programme for all audiences, creating a link between tradition and modernity.
Asset Publisher
The following has evaluated to null or missing:
==> alt [in template "20116#20160#450079371" at line 32, column 59]
----
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: ${alt?html} [in template "20116#20160#450079371" at line 32, column 57]
----
1<#setting locale = locale />
2<#setting datetime_format="iso">
3<#if !themeDisplay.scopeGroup.publicLayoutSet.virtualHostname?has_content || themeDisplay.scopeGroup.isStagingGroup()>
4 <#assign homeURL = "/web${layout.group.friendlyURL}/" />
5<#else>
6 <#assign homeURL = "/" />
7</#if>
8<#assign portletHelper = serviceLocator.findService("eu.strasbourg.utils.api.PortletHelperService") />
9
10<section id="oeuvre">
11 <div class="content container">
12 <div class="infos">
13 <h2>${portletHelper.getPortletTitle('eu.museum.collection', renderRequest)}</h2>
14 <p><@liferay_ui.message key="eu.museum.collection.description" /></p>
15 <a href="https://musees-strasbourg.skin-web.org/" target="_blank" class="button1" aria-label="<@liferay_ui.message key="eu.museum.all-collection" /> (<@liferay_ui.message key="eu.new-window" />)" title="<@liferay_ui.message key="eu.museum.all-collection" /> (<@liferay_ui.message key="eu.new-window" />)"><@liferay_ui.message key="eu.museum.all-collection" /></a>
16 </div>
17 <#if entries?has_content>
18 <div id="listCollections" class="list">
19 <div class="gutter-sizer"></div>
20 <#list entries as curEntry>
21 <#if curEntry?has_content && curEntry.getAssetRenderer()?has_content && curEntry.getAssetRenderer().getArticle()?has_content>
22 <#assign content = strasbourg.buildFieldValues(curEntry.getClassPK()) />
23 <#assign image = content.image />
24 <#assign imageURL ="" />
25 <#if image?has_content>
26 <#assign imageURL = image.contentUrl />
27 <#assign alt = image.description />
28 </#if>
29 <#assign title = content.title />
30 <#assign link = content.link />
31 <a href="${link}" target="_blank" aria-label="${title?html} (<@liferay_ui.message key="eu.new-window" />)" title="${title?html} (<@liferay_ui.message key="eu.new-window" />)" class="oeuvre-thumbnail">
32 <img src="${imageURL}" alt="${alt?html}" title="${alt?html}" />
33 <div class="info">
34 <div class="title">
35 <span>${title}</span>
36 </div>
37 <div class="museums">
38 <#if curEntry.categories?first?has_content>
39 <#assign vocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
40 <span>
41 <#assign nbMusees = 0 />
42 <#list curEntry.categories as category>
43 <#assign vocabulary = vocabularyLocalService.getVocabulary(category.vocabularyId) />
44 <#if vocabulary.name == "Musées">
45 <#if nbMusees gt 0 >
46 ,
47 </#if>
48 ${category.getTitle(locale)}
49 <#assign nbMusees++ />
50 </#if>
51 </#list>
52 </span>
53 </#if>
54 </div>
55 </div>
56 </a>
57 </#if>
58 </#list>
59 </div>
60 </#if>
61 </div>
62</section>