New safety video
An immersive journey into moroccan craftsmanship
An immersive journey into moroccan craftsmanship
An error occurred while processing the template.
The following has evaluated to null or missing:
==> ramUtils.getCurrentMarket(httpServletRequest) [in template "64899143380625#20119#26025" at line 108, column 27]
----
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 market = ramUtils.getCurrentM... [in template "64899143380625#20119#26025" at line 108, column 9]
----
1<#assign startTag = "img_id=" />
2<#assign endTag = "&" />
3<#assign imageUrl = ImageFieldSet.Image.getData() />
4<#assign result = "" />
5
6
7<#if (imageUrl?contains(startTag))>
8 <#assign startIndex = imageUrl?indexOf(startTag + startTag?length) />
9 <#assign endIndex = imageUrl?indexOf(endTag + startIndex) />
10
11 <#if (endIndex > startIndex)>
12 <#assign result = imageUrl?substring(startIndex, endIndex) />
13 <#else>
14 <#assign result = imageUrl?substring(startIndex) />
15 </#if>
16<#else>
17 <#assign result = "default" />
18</#if>
19
20
21
22
23<style>
24.youtube-popup > div {
25 position: absolute;
26 width: 100%; /* equal to the iframe width */
27 height: 100%; /* equal to the iframe height */
28 top: 0;
29 z-index: 100;
30}
31
32#div-image-$result {
33 background-image: url($Image.getData());
34 background-size: cover;
35 width: 65%;
36}
37
38</style>
39
40<#if getterUtil.getBoolean(Mirror.getData())>
41
42 <section id="our-crew-flightattendances">
43 <div class="container">
44 <div class="figure-text-overlapped">
45 <#if VideoLink.getData() != "" && VideoLink.getData() != "null">
46 <div class="figure-overlapped">
47 <#assign videoId = (VideoLink.getData()?split("="))[1]!"" />
48 <iframe allow="autoplay; encrypted-media" allowfullscreen="" frameborder="0" src="https://www.youtube.com/embed/${videoId}?controls=0&rel=0" ></iframe>
49 </div>
50 <#else>
51 <div class="figure-overlapped-reverse">
52 <div id="div-image-${result}" class="image-background">
53 <img alt="${ImageFieldSet.Image.getAttribute("alt")}" src="${ImageFieldSet.Image.getData()}" >
54 </div>
55 </div>
56 </#if>
57
58 <div class="text-overlapped">
59 <h2 class="text-overlapped-title">${Intro.getData()}</h2>
60 <h3 class="text-overlapped-heading">${Subtitle.getData()}</h3>
61 <div class="text-overlapped-description">${Description.getData()}</div>
62 <#if (Select6393.getData()=="button")>
63 <div class="text-overlapped-button">
64 <a href="${LinkUrLFieldSet.LinkUrLFieldSetFieldSet.page_url.getData()}">
65 <button class="btn btn-danger"> ${LinkUrLFieldSet.LinkUrLFieldSetFieldSet.Link_texte.getData()}</button>
66 </a>
67 </div>
68 <#elseIf (Select6393.getData()=="link")>
69 <a href="${LinkUrLFieldSet.LinkUrLFieldSetFieldSet.page_url.getData()}">${LinkUrLFieldSet.LinkUrLFieldSetFieldSet.Link_texte.getData()}</a>
70 </#if>
71 </div>
72 </div>
73 </div>
74</section>
75<#else>
76
77<section id="our-crew-flightattendances">
78 <div class="container">
79 <div class="figure-text-overlapped figure-text-overlapped-reversed">
80 <#if VideoLink.getData() != "" && VideoLink.getData()??>
81 <div class="figure-overlapped">
82 <#assign videoId = (VideoLink.getData()?split("="))[1]!"" />
83 <iframe allow="autoplay; encrypted-media" allowfullscreen="" frameborder="0" src="https://www.youtube.com/embed/${videoId}?controls=0&rel=0" ></iframe>
84 </div>
85 <#else>
86 <div class="figure-overlapped">
87 <div id="div-image-${result}" class="image-background">
88 <img alt="${ImageFieldSet.Image.getAttribute("alt")}" src="${ImageFieldSet.Image.getData()}" >
89 </div>
90 </div>
91 </#if>
92
93
94 <div class="text-overlapped">
95 <h2 class="text-overlapped-title">${Intro.getData()}</h2>
96 <h3 class="text-overlapped-heading">${Subtitle.getData()}</h3>
97 <div class="text-overlapped-description">${Description.getData()}</div>
98 <#--
99 <#if (Description.getData()?length < 400)>
100 <div class="text-overlapped-description">${Description.getData()}</div>
101 <#else>
102 <#assign desc = Description.getData()?substring(0, 400) />
103 <div class="text-overlapped-description">${desc}</div>
104 </#if>
105 -->
106
107 <#assign httpServletRequest = themeDisplay.getRequest()>
108 <#assign market = ramUtils.getCurrentMarket(httpServletRequest)/>
109 <#assign locale = themeDisplay.getLocale().getLanguage() />
110
111<#if (LinkUrLFieldSet.LinkUrLFieldSetFieldSet.Link_texte.getData())??>
112 ${LinkUrLFieldSet.LinkUrLFieldSetFieldSet.Link_texte.getData()}
113</#if>
114
115 <#assign href = "/"+market+"-"+locale+LinkUrLFieldSet.LinkUrL.getData() />
116 <#if (Select6393.getData()=="button")>
117 <div class="text-overlapped-button">
118 <#if (LinkUrLFieldSet.LinkUrLFieldSetFieldSet.Link_texte.getData()?length > 1)>
119 <a href="${LinkUrLFieldSet.LinkUrLFieldSetFieldSet.Link_texte.getData()}">
120 <button class="btn btn-danger"> ${LinkUrLFieldSet.LinkUrLFieldSetFieldSet.Link_texte.getData()}</button>
121 </a>
122 <#else>
123 <a href="${href}">
124 <button class="btn btn-danger"> ${LinkUrLFieldSet.LinkUrLFieldSetFieldSet.Link_texte.getData()}</button>
125 </a>
126 </#if>
127 </div>
128 <#elseIf (Select6393.getData()=="link")>
129 <a class="red red-link" href="${href}"> ${LinkUrLFieldSet.LinkUrLFieldSetFieldSet.Link_texte.getData()} </a>
130
131 </#if>
132
133
134
135 </div>
136 </div>
137 </div>
138</section>
139
140
141
142</#if>
A vibrant tribute to Morocco and its craftsmanship
Bold in its colors; aesthetics and originality, this video is a living tribute to the tradition and authenticity of our kingdom, which elevates the safety demonstration into an immersive, sensorial journey that transforms the flight experience.
A sensorial journey through Morocco’s iconic cities
A people-driven story
Beyond the landscapes and meticulous design, this project is, above all, a human adventure. It is our flight crew who have put their faces and their passion into this project. Their involvement reflects the soul of Royal Air Maroc: a united company, driven by the desire to share the best of Morocco and Africa with the world. This film is an ode to our heritage, but also to the future. It's a new way of telling our story, of showcasing Morocco, and of accompanying our passengers on a unique experience that is both cultural and emotional.