#Meet_RoyalAirMaroc_Services
Des produits à la carte qui élèvent votre expérience de voyage.

Royal Air Maroc vous invite à plonger dans une expérience inédite à travers une série de capsules vidéos inspirantes, incarnées par l’artiste Hanane El Fadili. Avec son humour unique, elle vous dévoile, étape par étape, les produits & services qui peuvent transformer votre expérience de voyage — avant, pendant et après le vol. Préparer son départ, personnaliser son confort, gagner en liberté ou en tranquillité d’esprit : chaque vidéo vous ouvre les portes d’un service pensé pour vous. Laissez-vous guider, et choisissez les options qui feront toute la différence.

Open in a new window

Une erreur s'est produite lors du traitement du modèle.
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> 

Hanane El Fadili : une égérie proche de vous, au service d’une expérience client plus fluide.

Pour vous faire découvrir nos services autrement, Royal Air Maroc a choisi une artiste de renom, qui a marqué plusieurs générations : Hanane El Fadili.
Connue pour son humour, sa proximité avec le public et sa capacité à incarner mille visages, elle donne vie à chaque situation du voyage avec légèreté, spontanéité et sincérité.
À travers ses multiples personnages et sa touche bien à elle, Hanane réussit à parler à chacun d’entre vous, avec ce ton humain et naturel qui fait toute la différence. Grâce à elle, chaque vidéo devient un moment de partage, de rires… et de découvertes.
Chaque vidéo est pensée comme un mini-guide pratique : Un format court, didactique, accessible… mais surtout rythmé par le rire et l’authenticité, pour mieux comprendre les produits et les services de Royal Air Maroc. Une invitation à voyager avec plus de liberté, de confort… et toujours le sourire.

Open in a new window