Services & Solutions

Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing:
==> slide.headline_color_mobile  [in template "10154#10192#258512164" at line 56, column 102]

----
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 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: ${slide.headline_color_mobile.getData()}  [in template "10154#10192#258512164" in macro "stageslide" at line 56, column 100]
	- Reached through: @stageslide cur_slide, aspect_ratio.g...  [in template "10154#10192#258512164" at line 94, column 17]
----
1<#-- 
2    cut string after n characters and ellipsis 
3--> 
4<#function ellipsis string length=150> 
5    <#local ellipsed = string > 
6 
7    <#if (string?length > length) > 
8        <#local ellipsed = ellipsed[0..length] > 
9        <#local ellipsed = ellipsed + "..." > 
10    </#if> 
11 
12    <#return ellipsed > 
13</#function> 
14 
15<#function hasData var> 
16    <#if (var.getData())?? && var.getData() != ""> 
17        <#return true> 
18    </#if> 
19    <#return false> 
20</#function> 
21 
22<#macro stageslideButton linktext ref color target anker> 
23    <a role="button" class="c-stageslide__button c-stageslide__button--${color} o-button" href="${ref}${anker}" target="${target}"> 
24        ${linktext} 
25    </a> 
26</#macro> 
27 
28<#macro stageslide slide aspect_ratio counter> 
29    <div class="c-stageslide"> 
30 
31        <#local modifier = ""> 
32        <#if getterUtil.getBoolean(slide.media.filter.getData())> 
33            <#local modifier = "c-stageslide__media--filter"> 
34        </#if> 
35 
36        <div class="c-stageslide__media c-stageslide__media--${aspect_ratio} ${modifier}"> 
37            <div class="c-stageslide__media-content"> 
38             
39                <#if slide.media.videoId.getData()?? && slide.media.videoId.getData() != ""> 
40                	<#assign videoId = slide.media.videoId.getData() /> 
41                    <#assign namspace = "vm_video-" + videoId + counter > 
42                    <div class="c-stageslide__video" id="${namspace}"></div> 
43                    <script> 
44                        window.addEventListener('nexxplay.ready', (event) => {_play.control.addPlayer("${namspace}", "${videoId}", "video");}); 
45                    </script> 
46                <#elseif (slide.media.image.getData())?? && slide.media.image.getData() != ""> 
47                    <img data-fileentryid="${slide.media.image.getAttribute("fileEntryId")}" alt="${slide.media.image.getAttribute("alt")}" src="${slide.media.image.getData()}" /> 
48                </#if> 
49                 
50            </div> 
51        </div>  
52 
53        <div class="c-stageslide__content"> 
54            <#if (slide.getData())?? && slide.getData() != ""> 
55                <h2 class="hidden-xs c-stageslide__headline c-stageslide__headline--${slide.headline_color.getData()} o-super-heading">${ellipsis(slide.getData(), 100)}</h2> 
56                <h2 class="visible-xs c-stageslide__headline_mobile c-stageslide__headline_mobile--${slide.headline_color_mobile.getData()} o-super-heading">${ellipsis(slide.getData(), 100)}</h2> 
57            </#if> 
58            <#if hasData(slide.subline) > 
59                <h3 class="hidden-xs c-stageslide__subline c-stageslide__subline--${slide.subline.subline_color.getData()}">${ellipsis(slide.subline.getData(), 200)}</h3> 
60                <#if (slide.subline.show_mobile.getData())?? && slide.subline.show_mobile.getData() != ""> 
61                    <h3 class="visible-xs c-stageslide__subline_mobile c-stageslide__subline_mobile--${slide.subline.subline_color_mobile.getData()}">${ellipsis(slide.subline.getData(), 200)}</h3> 
62                </#if> 
63            </#if> 
64            <#if hasData(slide.link) >            
65                <#if (slide.link.ref_internal.anker.getData())?? && slide.link.ref_internal.anker.getData() != "" > 
66                    <#assign anker = slide.link.ref_internal.anker.getData() /> 
67                <#else> 
68                    <#assign anker = "" /> 
69                </#if> 
70                <#if (slide.link.ref_internal.getFriendlyUrl())?? && slide.link.ref_internal.getFriendlyUrl() != "" > 
71                    <@stageslideButton slide.link.getData() slide.link.ref_internal.getFriendlyUrl() slide.link.btn_background_color.getData() "_self" anker /> 
72                <#elseif slide.link.ref_external?? && slide.link.ref_external.getData() != ""> 
73                    <@stageslideButton slide.link.getData() slide.link.ref_external.getData() slide.link.btn_background_color.getData() "_blank" anker /> 
74                <#elseif slide.link.ref_mailto?? && slide.link.ref_mailto.getData() != ""> 
75                    <@stageslideButton slide.link.getData() "mailto:${slide.link.ref_mailto.getData()}" slide.link.btn_background_color.getData() "_self" "" /> 
76                </#if> 
77            </#if> 
78        </div> 
79 
80    </div> 
81</#macro> 
82 
83<div id="stage-${.vars['reserved-article-url-title'].data}" class="o-lp-templates c-stage"> 
84 
85    <div class="c-stage__spinner o-spinner"> 
86        <div class="bounce1"></div> 
87        <div class="bounce2"></div> 
88        <div class="bounce3"></div> 
89    </div> 
90 
91    <#if slide.getSiblings()?has_content> 
92        <div class="c-stage__slides"> 
93            <#list slide.getSiblings() as cur_slide > 
94                <@stageslide cur_slide aspect_ratio.getData() cur_slide?index /> 
95            </#list> 
96        </div> 
97    </#if> 
98 
99</div> 
100 
101<script type="text/javascript"> 
102    window.Hays = window.Hays || {}; 
103    /* Slider Settings from structure */ 
104    <#if getterUtil.getBoolean(autoplay.getData())> 
105        var autoplay = true; 
106    <#else> 
107        var autoplay = false; 
108    </#if> 
109 
110    <#if (autoplay.speed.getData())?? && autoplay.speed.getData() != ""> 
111        var speed = parseInt(${autoplay.speed.getData()}); 
112    <#else> 
113        var speed = 300; 
114    </#if> 
115 
116    /* remove stage on error */ 
117    document.addEventListener("STAGE:FAILED", function(event) { 
118        $("#stage-${.vars['reserved-article-url-title'].data}").remove(); 
119        console.error('Error loading Slick: ', event.detail.jqxhr); 
120    }); 
121    /* init Slider */ 
122    document.addEventListener("STAGE:LOADED", function() { 
123        var $stage = $("#stage-${.vars['reserved-article-url-title'].data}"), 
124            $spinner = $stage.find('.c-stage__spinner'), 
125            $slider = $stage.find('.c-stage__slides'); 
126 
127        if ($slider.hasClass('slick-initialized')) { 
128            if (typeof $slider.slick === 'function') { 
129                $slider.slick('unslick'); 
130
131
132 
133        $slider.on('init', function() { 
134            $spinner.remove(); 
135        }); 
136 
137        if (typeof $slider.slick === 'function') { 
138            $slider.slick({ 
139                dots: true, 
140                infinite: true, 
141                speed: speed, 
142                autoplay: autoplay, 
143                slidesToShow: 1, 
144                draggable: false 
145            }); 
146            $slider.slick('next'); 
147        }; 
148    }); 
149 
150    /* load script on demand */ 
151    if (!window.slick && !window.Hays.SlickLoading) { 
152        var baseUrl = Liferay.ThemeDisplay.getPathThemeRoot(); 
153 
154        if ((typeof define !== 'undefined') && define.hasOwnProperty('amd')) { 
155            define._amd = define.amd; 
156            define.amd = false; 
157
158        window.Hays.SlickLoading = true; 
159 
160        $.getScript(baseUrl + '/js/lp-modules/slick.min.js') 
161            .done(function() {document.dispatchEvent(new CustomEvent("STAGE:LOADED", {}));}) 
162            .fail(function(jqxhr) {document.dispatchEvent(new CustomEvent("STAGE:FAILED", {detail:{jqxhr:jqxhr}}));}) 
163            .always(function() { 
164                if ((typeof define !== 'undefined') && define.hasOwnProperty('_amd')) { 
165                    define.amd = define._amd; 
166
167            }) 
168    } else { 
169        document.dispatchEvent(new CustomEvent("STAGE:LOADED", {})); 
170
171</script> 
172 
173<script type="text/javascript"> 
174    window.Hays = window.Hays || {}; 
175    /* Slider Settings from structure */ 
176    <#if getterUtil.getBoolean(autoplay.getData())> 
177        var autoplay = true; 
178    <#else> 
179        var autoplay = false; 
180    </#if> 
181 
182    <#if (autoplay.speed.getData())?? && autoplay.speed.getData() != ""> 
183        var speed = parseInt(${autoplay.speed.getData()}); 
184    <#else> 
185        var speed = 300; 
186    </#if> 
187 
188    /* remove stage on error */ 
189    document.addEventListener("STAGE:FAILED", function(event) { 
190        $("#stage-${.vars['reserved-article-url-title'].data}").remove(); 
191        console.error('Error loading Slick: ', event.detail.jqxhr); 
192    }); 
193    /* init Slider */ 
194    document.addEventListener("STAGE:LOADED", function() { 
195        var $stage = $("#stage-${.vars['reserved-article-url-title'].data}"), 
196            $spinner = $stage.find('.c-stage__spinner'), 
197            $slider = $stage.find('.c-stage__slides'); 
198 
199        if ($slider.hasClass('slick-initialized')) { 
200            if (typeof $slider.slick === 'function') { 
201                $slider.slick('unslick'); 
202
203
204 
205        $slider.on('init', function() { 
206            $spinner.remove(); 
207        }); 
208 
209        if (typeof $slider.slick === 'function') { 
210            $slider.slick({ 
211                dots: true, 
212                infinite: true, 
213                speed: speed, 
214                autoplay: autoplay, 
215                slidesToShow: 1, 
216                draggable: false 
217            }); 
218            $slider.slick('next'); 
219        }; 
220    }); 
221 
222    /* load script on demand */ 
223    if (!window.slick && !window.Hays.SlickLoading) { 
224        var baseUrl = Liferay.ThemeDisplay.getPathThemeRoot(); 
225 
226        if ((typeof define !== 'undefined') && define.hasOwnProperty('amd')) { 
227            define._amd = define.amd; 
228            define.amd = false; 
229
230        window.Hays.SlickLoading = true; 
231 
232        $.getScript(baseUrl + '/js/lp-modules/slick.min.js') 
233            .done(function() {document.dispatchEvent(new CustomEvent("STAGE:LOADED", {}));}) 
234            .fail(function(jqxhr) {document.dispatchEvent(new CustomEvent("STAGE:FAILED", {detail:{jqxhr:jqxhr}}));}) 
235            .always(function() { 
236                if ((typeof define !== 'undefined') && define.hasOwnProperty('_amd')) { 
237                    define.amd = define._amd; 
238
239            }) 
240    } else { 
241        document.dispatchEvent(new CustomEvent("STAGE:LOADED", {})); 
242
243</script> 
244 
245<script> 
246   /* Pause all videos on click prev,next */ 
247   $(document).ready(function() { 
248        $("button.slick-next.slick-arrow").bind( "click", function() { 
249                _play.control.pauseAll(); 
250                console.log("stopped"); 
251            }); 
252        $("button.slick-prev.slick-arrow").bind( "click", function() { 
253                _play.control.pauseAll(); 
254                 console.log("stopped"); 
255            }); 
256         $("#slick-slide-control00,#slick-slide-control01,#slick-slide-control02,#slick-slide-control03").bind( "click", function() { 
257                _play.control.pauseAll(); 
258                 console.log("stopped"); 
259        }); 
260    }); 
261</script> 

Unsere Leistungen

  • Individuelle und umfassende Beratung
  • Abwicklung von Projekten in einer eigenständigen Projektorganisation
  • Konzeption, Aufbau und Übernahme von Betriebsaufgaben und -unterstützung
  • Projektdurchführung und Leistungserbringung mit hochqualifizierten Hays-Mitarbeitern
  • Competence Center bei Ihnen vor Ort (onsite) oder in unseren eigenen Räumen (offsite)

So profitieren Sie von uns als Partner

  • Wir liefern nach Ihren Bedürfnissen. Nach der gemeinsamen Analyse, offerieren wir Ihnen ein passendes Angebot.
  • Bei uns werden Sie aus einer Hand betreut. So profitieren Sie von einem zentralen Ansprechpartner.
  • Mit uns haben Sie den Durchblick. Sie reduzieren Ihre Betriebsrisiken durch höhere Transparenz und messbare Ergebnisse.
  • Wir schaffen Ihnen Freiräume. Durch unsere Unterstützung erhalten Sie freie Kapazitäten, um den Fokus wieder auf Ihr Kerngeschäft legen zu können.
  • Wir beraten Sie herstellerneutral. Als herstellerunabhängiger Dienstleister bieten wir die jeweils für Sie passende Lösung, um Sie in der Erreichung Ihre Geschäftsziele zu unterstützen.
  • Mit unserer Flexibilität bleibt Ihr Projekt auf Kurs. Dank unserer flexiblen Struktur sind wir jederzeit in der Lage, ein laufendes Projekt an neue Anforderungen oder veränderte Konstellationen anzupassen.
  • Wir finden auch für Ihr Projekt das passenden Know-how. Als weltweit führender IT-Personaldienstleister haben wir Zugriff auf internationale Top-Spezialisten.
  • Mit uns sind Sie auf der sicheren Seite. Aufgrund unserer jahrelangen Erfahrung können Sie sich jederzeit auf qualitätsgesicherte Prozesse verlassen.

Wir erbringen Services & Solutions aktuell in den folgenden Fachgebieten

Mein Ansprechpartner

  • Niklaus Haage,
  • Senior Key Account Manager Contracting
  • Niederlassungen: Basel und Zürich
  • Region: Schweiz
Niklaus Haage
Ansprechpartner für Services & Solutions
Niklaus Haage