CEMEX CZ
  • Produkty a služby
    • Produkty
      • Beton
      • Cement
      • Kamenivo
      • Lité směsi a potěrový beton pro realizaci podlah
      • Stavební přísady Cemex Admixtures
    • Řešení
      • Podlahy
      • Pro architekty a projektanty
      • Vertua | Náš závazek udržitelným cílům
    • Služby
      • Doprava a čerpání betonu
      • Technologický servis a kvalita produktů
    • Ostatní
      • Kalkulačka betonu
      • Náš závazek zákazníkům
      • Obchodní podmínky
      • Dokumenty ke stažení
      • Referenční stavby
      • BIM knihovny CEMEX
      • Betonárny
  • Provozovny
  • Cenová nabídka
    • Poptávkové formuláře
      • Beton
      • Lité podlahy
      • Pěnobeton Poroflow
      • Zdící malta
      • Cement
      • Kamenivo a písek
      • Průmyslové podlahy
  • Cemex Go
    • CEMEX Go registrace
      • Přejít do CEMEX Go
      • CEMEX Go Digitální Integrace
    • Časté dotazy
    • Bezpapírové faktury
  • Udržitelný rozvoj
    • CEMEX a životní protředí
      • Životní prostředí a biodiverzita
      • Udržitelná výstavba
      • Měříme náš pokrok
      • Strategie
    • Bezpečnost a ochrana zdraví
      • Základy bezpečnosti
      • Politika bezpečnosti práce CEMEX
      • Základy ochrany zdraví
      • Safety Annex - pro dodavatele
    • Společenská odpovědnost firmy
      • Pracujeme jako společensky odpovědná firma
      • Komunitní investiční pilíře
      • Partnerství a ocenění
      • Dobrovolnický program CEMEX UNITE
      • Naše projekty
    • Future In Action
      • Zavázáni k nulovým emisím
      • Udržitelné výrobky a řešení
      • Dekarbonizace našich operací
      • Inovace a partnerství
      • Propagace zelené ekonomiky
    • Vertua
      • Přehled
      • Projekty
      • Produkty
  • Média
    • Tiskové zprávy
      • Tiskové zprávy 2025
      • Tiskové zprávy 2024
      • Tiskové zprávy 2023
      • Tiskové zprávy 2022
      • Tiskové zprávy 2021
      • Tiskové zprávy 2020
      • Tiskové zprávy 2019
      • Tiskové zprávy 2018
      • Tiskové zprávy 2017
    • Ke stažení
      • Corporate Identity
      • Dokumenty ke stažení
      • EPD
    • Soutěže
      • Förderpreis Beton
  • Kariéra
    • Kariéra v CEMEXu
      • Proč pracovat v CEMEXU
      • Volné pozice
      • Vzdělávání a rozvoj
      • Diverzita
  • Kontakt
    • Kontaktní údaje
    • Kontaktní formulář
    • Zpětná vazba
    • Žádost o vytvoření zákaznického účtu
  • O Cemexu
    • Cemex v ČR
      • Profil společnosti CEMEX
      • Hodnoty společnosti
      • Naše vize
      • Etika našeho podnikání
      • Historie společnosti
      • Řízení kvality v CEMEXu
      • Referenční stavby CEMEX
      • Evropské dotační programy
      • Výběrové řízení
    • Dodavatelé
      • Registrujte se zde
      • Veřejné události
  • Produkty a služby
    • Produkty
      • Beton
      • Cement
      • Kamenivo
      • Lité směsi a potěrový beton pro realizaci podlah
      • Stavební přísady Cemex Admixtures
    • Řešení
      • Podlahy
      • Pro architekty a projektanty
      • Vertua | Náš závazek udržitelným cílům
    • Služby
      • Doprava a čerpání betonu
      • Technologický servis a kvalita produktů
    • Ostatní
      • Kalkulačka betonu
      • Náš závazek zákazníkům
      • Obchodní podmínky
      • Dokumenty ke stažení
      • Referenční stavby
      • BIM knihovny CEMEX
      • Betonárny
    Kalkulačka objemu betonu Kalkulačka objemu betonu
  • Provozovny
  • Cenová nabídka
    • Poptávkové formuláře
      • Beton
      • Lité podlahy
      • Pěnobeton Poroflow
      • Zdící malta
      • Cement
      • Kamenivo a písek
      • Průmyslové podlahy
  • Cemex Go
    • CEMEX Go registrace
      • Přejít do CEMEX Go
      • CEMEX Go Digitální Integrace
    • Časté dotazy
    • Bezpapírové faktury
    Sledování zásilek Více o aplikaci
  • Udržitelný rozvoj
    • CEMEX a životní protředí
      • Životní prostředí a biodiverzita
      • Udržitelná výstavba
      • Měříme náš pokrok
      • Strategie
    • Bezpečnost a ochrana zdraví
      • Základy bezpečnosti
      • Politika bezpečnosti práce CEMEX
      • Základy ochrany zdraví
      • Safety Annex - pro dodavatele
    • Společenská odpovědnost firmy
      • Pracujeme jako společensky odpovědná firma
      • Komunitní investiční pilíře
      • Partnerství a ocenění
      • Dobrovolnický program CEMEX UNITE
      • Naše projekty
    • Future In Action
      • Zavázáni k nulovým emisím
      • Udržitelné výrobky a řešení
      • Dekarbonizace našich operací
      • Inovace a partnerství
      • Propagace zelené ekonomiky
    • Vertua
      • Přehled
      • Projekty
      • Produkty
    Udržitelná výstavba Udržitelná výstavba
  • Média
    • Tiskové zprávy
      • Tiskové zprávy 2025
      • Tiskové zprávy 2024
      • Tiskové zprávy 2023
      • Tiskové zprávy 2022
      • Tiskové zprávy 2021
      • Tiskové zprávy 2020
      • Tiskové zprávy 2019
      • Tiskové zprávy 2018
      • Tiskové zprávy 2017
    • Ke stažení
      • Corporate Identity
      • Dokumenty ke stažení
      • EPD
    • Soutěže
      • Förderpreis Beton
    Tiskové zprávy Tiskové zprávy
  • Kariéra
    • Kariéra v CEMEXu
      • Proč pracovat v CEMEXU
      • Volné pozice
      • Vzdělávání a rozvoj
      • Diverzita
    Volné pracovní pozice Volné pracovní pozice
  • Kontakt
    • Kontaktní údaje
    • Kontaktní formulář
    • Zpětná vazba
    • Žádost o vytvoření zákaznického účtu
    Kontaktní formulář Kontaktní formulář
  • O Cemexu
    • Cemex v ČR
      • Profil společnosti CEMEX
      • Hodnoty společnosti
      • Naše vize
      • Etika našeho podnikání
      • Historie společnosti
      • Řízení kvality v CEMEXu
      • Referenční stavby CEMEX
      • Evropské dotační programy
      • Výběrové řízení
    • Dodavatelé
      • Registrujte se zde
      • Veřejné události
    Naše vize Naše vize
  • CEMEX CZ
  • O Cemexu
  • Cemex v ČR
  • Referenční stavby CEMEX
Při zpracování šablony došlo k chybě.
The following has evaluated to null or missing:
==> webContentData.classPK  [in template "20116#20152#54247682" at line 589, column 23]

----
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: #local classPK = webContentData.class...  [in template "20116#20152#54247682" in macro "printProductRange" at line 589, column 5]
	- Reached through: @printProductRange cur_Product  [in template "20116#20152#54247682" at line 311, column 17]
----
1<#assign sUsedProduct = "Využitý produkt"> 
2<#assign sUsedProducts = "Využití produktů"> 
3<#assign sBasicInfoAbout = "Základní informace o stavbě"> 
4<#assign sGallery = "Galerie"> 
5<#assign thumbnailWidth = 200> 
6<#assign thumbnailHeight = (thumbnailWidth / 4 * 3)?round > 
7 
8<style> 
9    .b-hero-placeholder { 
10        background-image: url(${MainImageURL.getData()}); 
11    } 
12    /* END of the style for image holder on top */ 
13 
14    .refdetail-h2 { 
15        font-weight: normal; 
16        padding-bottom: 1em; 
17    } 
18 
19    .refdetail { 
20        padding-top: 40px; 
21    } 
22 
23    .refdetail-section { 
24        padding-bottom: 40px 
25    } 
26 
27    .refdetail-h1 { 
28        padding-bottom: 1em; 
29    } 
30 
31    .refdetail-table { 
32        max-width: 100%; 
33    } 
34 
35    table.refdetail-table td { 
36        width: 50%; 
37        border: 0; 
38    } 
39 
40    .refproduct-item { 
41        display: flex; 
42        flex-direction: row; 
43        margin-bottom: 1em; 
44        /* margin-bottom: 0; */ 
45        border: 1px solid lightgray; 
46        /* border: none; */ 
47        /* padding: 0.5em 1.5em; */ 
48        padding: 1.2em 1.5em; 
49        align-items: center; 
50        min-height: calc(60px + 1em); 
51    } 
52 
53    .refproduct-item .refdetail-h3 { 
54        flex-grow: 4; 
55        padding-left: 1em; 
56    } 
57 
58    a.refproduct-btn { 
59        display: inline-block; 
60        border: 1px solid #000; 
61        color: #000; 
62        padding: 15px 36px; 
63        line-height: 1px; 
64        font-size:10px; 
65        font-weight: 900; 
66        letter-spacing: 2px; 
67        text-transform: uppercase; 
68    } 
69 
70    .refproduct-img { 
71        width: 300px; 
72        height: 40px; 
73        display: flex; 
74        align-items: center; 
75    } 
76 
77    .refproduct-img img { 
78        max-height: 100%; 
79        max-width: 100%; 
80    } 
81 
82        @media (max-width: 767px) { 
83            .refproduct-item { 
84                flex-direction: column; 
85                margin-bottom: 1em; 
86                max-height: auto; 
87            } 
88            .refproduct-img { 
89                width: auto; 
90            } 
91            .refproduct-img img { 
92                max-width: 250px!important; 
93            } 
94            .refproduct-img, 
95            .refproduct-btn, 
96            .refproduct-item .refdetail-h3 { 
97                margin-bottom: 0.5em; 
98            } 
99        } 
100 
101    .refdetail-section.refdetail-gallery:focus-visible { 
102        outline: 0; 
103    } 
104 
105    .refgal-bigimage { 
106        height: calc(50vw); 
107        background-color: aliceblue; 
108        display: flex; 
109        flex-direction: column; 
110        align-items: flex-start; 
111        justify-content: flex-end; 
112        min-height: 350px; 
113        max-height: 700px; 
114        margin-bottom: 4px; 
115        cursor: zoom-in; 
116    } 
117 
118    .refgal-stripeframe { 
119        overflow-x: scroll; 
120        overflow-y: hidden; 
121        position: relative; 
122    } 
123 
124    .refgal-stripeframe::-webkit-scrollbar { 
125        display: none; 
126    } 
127    .refgal-backimg { 
128        position: relative; 
129        background: no-repeat 50%/cover; 
130    } 
131 
132    .refgal-thumbstripe { 
133        display: flex; 
134        flex-direction: row; 
135        flex-wrap: nowrap; 
136        position: relative; 
137        transition: .5s; 
138        left: 0px; 
139    } 
140 
141    .refgal-thumbitem { 
142        height: ${thumbnailHeight}px; 
143        width: ${thumbnailWidth - 4}px; 
144        margin-right: 4px; 
145        cursor: pointer; 
146    } 
147 
148    .refgal-thumbitem.active { 
149        height: ${thumbnailHeight}px; 
150        width: ${thumbnailWidth - 4}px; 
151        border: 5px solid darkgray; 
152    } 
153 
154    .refgal-thumbitem:last-child { 
155        width: ${thumbnailWidth}px; 
156        margin-right: 0px; 
157    } 
158 
159    .refgal-thumbitem:hover { 
160        opacity: 0.5; 
161    } 
162 
163    span.refgal-bigimage-caption { 
164        background-color: rgba(255,255,255,.7); 
165        padding: 0.5em 1em; 
166        width: 100%; 
167        } 
168 
169    .refgal-controls, 
170    .refgal-controls-big { 
171        display: flex; 
172        flex-direction: row; 
173        justify-content: space-between; 
174        height: 0; 
175        align-items: center; 
176    } 
177 
178    .galcontrol { 
179        top: -${thumbnailHeight / 2}px; 
180        padding: .4em; 
181        font-size: 28px; 
182        color: white; 
183        background-color: rgba(0,0,0,0.1); 
184        cursor: pointer; 
185        position: relative; 
186    } 
187 
188    .galcontrol-big { 
189        padding: .4em; 
190        font-size: 28px; 
191        color: white; 
192        background-color: rgba(0,0,0,0.1); 
193        cursor: pointer; 
194        position: relative; 
195    } 
196 
197 
198    .fullscreen.refgal-bigimage { 
199        height: 100%; 
200        position: fixed; 
201        top: 0; 
202        background-color: rgba(0,0,0,1); 
203        display: block; 
204        min-height: 100%; 
205        max-height: 100%; 
206        margin-bottom: 0; 
207        cursor: default; 
208        left: 0; 
209        right: 0; 
210        bottom: 0; 
211        background-position: center; 
212        background-size: contain; 
213        z-index: 10001; 
214        display: flex; 
215        flex-direction: column; 
216        justify-content: space-between; 
217        } 
218 
219    .refgal-bigimage-close.fas { 
220        display: none; 
221    } 
222 
223    .fullscreen .refgal-bigimage-close { 
224        display: block; 
225        color: white; 
226        padding: 1.2em; 
227        cursor: pointer; 
228        position: relative; 
229        align-self: end; 
230        } 
231 
232    .fullscreen span.refgal-bigimage-caption { 
233        background-color: rgba(0,0,0,0.8); 
234        padding: .5em 2em; 
235        width: auto; 
236        margin-left: auto; 
237        color: white; 
238        margin-bottom: calc(5vh); 
239        margin-right: auto; 
240    } 
241 
242    .fullscreen.refgal-controls-big { 
243        display: flex; 
244        flex-direction: row; 
245        justify-content: space-between; 
246        height: 0; 
247        align-items: center; 
248        position: fixed; 
249        top: calc(50vh); 
250        left: 0; 
251        width: 100%; 
252        z-index: 10002; 
253    } 
254 
255    .fullscreen .galcontrol-big { 
256        top: 0!important; 
257    } 
258 
259    .refgal-controls .galcontrol-left, 
260    .refgal-controls-big .galcontrol-big-left, 
261    .refgal-controls .galcontrol-right, 
262    .refgal-controls-big .galcontrol-big-right { 
263        opacity: 0.3; 
264        cursor: auto; 
265    } 
266 
267    .refgal-controls.left .galcontrol-left, 
268    .refgal-controls-big.left .galcontrol-big-left, 
269    .refgal-controls.right .galcontrol-right, 
270    .refgal-controls-big.right .galcontrol-big-right { 
271        opacity: 1; 
272        cursor: pointer; 
273    } 
274 
275        /*end styles*/ 
276</style> 
277 
278<link crossorigin="anonymous" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" rel="stylesheet" /> 
279 
280<#-- setting urlHelper --> 
281<#assign curUrl = themeDisplay.getURLCurrent()?string> 
282<#if curUrl?contains(themeDisplay.getSiteGroup().friendlyURL)> 
283    <#assign urlHelper = themeDisplay.getPathFriendlyURLPublic() + themeDisplay.getSiteGroup().friendlyURL> 
284<#else> 
285    <#assign urlHelper = ""> 
286</#if> 
287<!-- urlHelper: ${urlHelper} --> 
288<#-- end setting --> 
289<#setting locale=locale.toString()> 
290<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")> 
291 
292<div class="container refdetail"> 
293    <#-- heading --> 
294    <div class="refdetail-section refdetail-heading"> 
295        <h1 class="refdetail-h1">${Title.getData()}</h1> 
296        <p class="refdetail-p">${Description.getData()?replace("\n", "<br>")}</p> 
297    </div> 
298 
299    <#-- used products --> 
300    <#if Product.getSiblings()?has_content> 
301        <div class="refdetail-section refdetail-prudcts"> 
302            <h2 class="refdetail-h2"> 
303              <#if Product.getSiblings()?size &gt; 1> 
304                ${sUsedProducts} 
305              </#if> 
306              <#if Product.getSiblings()?size == 1> 
307                ${sUsedProduct} 
308              </#if> 
309            </h2> 
310            <#list Product.getSiblings() as cur_Product> 
311                <@printProductRange cur_Product/> 
312            </#list> 
313        </div> 
314    </#if> 
315 
316    <#-- table --> 
317    <#if Oddlovaj442.getSiblings()?has_content> 
318        <div class="refdetail-section refdetail-infotable"> 
319            <h2 class="refdetail-h2">${sBasicInfoAbout}</h2> 
320            <table class="refdetail-table"> 
321            <#list Oddlovaj442.getSiblings() as cur_row> 
322                <tr> 
323                    <td>${cur_row.Label.getData()}</td> 
324                    <td>${cur_row.Value.getData()}</td> 
325                </tr> 
326            </#list> 
327            </table> 
328        </div> 
329    </#if> 
330 
331    <#-- gallery --> 
332    <#if ImageGalleryItemURL.getSiblings()?has_content> 
333        <#assign galItems = ImageGalleryItemURL.getSiblings()?size?number> 
334        <div class="refdetail-section refdetail-gallery" id="js-gallery" tabindex="-1"> 
335            <h2 class="refdetail-h2">${sGallery}</h2> 
336                <#assign iImg = ImageGalleryItemURL.getData()> 
337                <#if ImageGalleryItemURL.getAttribute("alt")??> 
338                    <#assign iCaption = ImageGalleryItemURL.getAttribute("alt")> 
339                <#else> 
340                    <#assign iCaption = ""> 
341                </#if> 
342            <#-- big images --> 
343            <div class="refgal-bigimage refgal-backimg" style="" id="js-bigimage"> 
344                <i class="fas fa-close refgal-bigimage-close" id="js-bigimage-close"></i> 
345                <span id="js-bigimage-caption" class="refgal-bigimage-caption" style="display:none"></span> 
346            </div> 
347            <div class="refgal-controls-big" id="js-galcontrols-big"> 
348                <div> 
349                    <i class="fas fa-chevron-left galcontrol-big galcontrol-big-left" data-direction="left"></i> 
350                </div> 
351                <div> 
352                    <i class="fas fa-chevron-right galcontrol-big galcontrol-big-right" data-direction="right"></i> 
353                </div> 
354            </div> 
355            <#-- --> 
356            <#-- small images --> 
357            <div class="refgal-stripeframe" id="js-galstripe-frame"> 
358                <div class="refgal-thumbstripe" id="js-galstripe" style="width:${galItems*thumbnailWidth}px"> 
359                    <#list ImageGalleryItemURL.getSiblings() as cur_ImageGalleryItemURL> 
360                        <#assign iIndex = cur_ImageGalleryItemURL?index> 
361                        <#assign iImg = cur_ImageGalleryItemURL.getData()> 
362                        <#if cur_ImageGalleryItemURL.getAttribute("alt")??> 
363                            <#assign iCaption = cur_ImageGalleryItemURL.getAttribute("alt")> 
364                        <#else> 
365                            <#assign iCaption = ""> 
366                        </#if> 
367                        <div class="refgal-thumbitem refgal-backimg" style="background-image:URL('${iImg}');" id="js-galitem-${iIndex}" data-image="${iImg}" data-caption="${iCaption}"> 
368                        </div> 
369                    </#list> 
370                </div> 
371            </div> 
372            <div class="refgal-controls" id="js-galcontrols"> 
373                <div> 
374                    <i class="fas fa-chevron-left galcontrol galcontrol-left" data-direction="left"></i> 
375                </div> 
376                <div> 
377                    <i class="fas fa-chevron-right galcontrol galcontrol-right" data-direction="right"></i> 
378                </div> 
379            </div> 
380            <#-- --> 
381        </div> 
382 
383        <script> 
384        AUI().ready( 
385            function() { 
386 
387                var galShift = 0; 
388                var galPcs = ${galItems}; 
389                var galStep = ${thumbnailWidth}; 
390                var galStripeWidth = galPcs * galStep; 
391                var galFirst = "js-galitem-0"; 
392                var galLast = "js-galitem-"+(galPcs-1); 
393 
394                var id = function(selector) { 
395                    return "#"+selector; 
396                } 
397 
398                function checkShift() { 
399                    let frameWidth = getFrameWidth(); 
400                    if (galStripeWidth + galShift < frameWidth ) { 
401                        galShift = -1 * (galStripeWidth - frameWidth); 
402                    } 
403                    if (galShift > 0) { 
404                        galShift = 0; 
405                    } 
406                    $("#js-galstripe").css("left", galShift + "px"); 
407                } 
408 
409                function getFrameWidth() { 
410                    return $("#js-galstripe-frame").width(); 
411                } 
412 
413                function getBigImageHeight() { 
414                    return $("#js-bigimage").height(); 
415                } 
416 
417                function showControls() { 
418                    setControls(); 
419                    setBigControls(); 
420                    // chceck thumbnail controls 
421                    let frameWidth = getFrameWidth(); 
422                    if (frameWidth < galStripeWidth) { 
423                        var showIt = "flex"; 
424                    } 
425                    else { 
426                        var showIt = "none"; 
427                    } 
428                    checkShift(); 
429                    $("#js-galcontrols").css("display",showIt); 
430 
431                    //check big controls 
432                    var bigImageHeight = getBigImageHeight(); 
433                    $(".galcontrol-big").css("top", -1 * bigImageHeight / 2); 
434                } 
435 
436                function makeActive(element) { 
437                    $(".refgal-thumbitem").removeClass("active"); 
438                    $(element).addClass("active"); 
439                } 
440 
441                function changePhoto(e) { 
442 
443                    var newImage = e.target.dataset.image; 
444                    $("#js-bigimage").css("background-image", "URL('" + newImage + "')"); 
445 
446                    var newCaption = e.target.dataset.caption; 
447                    if (newCaption !== "") { 
448                        $("#js-bigimage-caption").text(newCaption); 
449                        $("#js-bigimage-caption").css("display", "block"); 
450                    } else { 
451                        $("#js-bigimage-caption").css("display", "none"); 
452                    }; 
453 
454                    makeActive(e.target); 
455                    showControls(); 
456                } 
457 
458                function scroll(e) { 
459                    var direction = e.target.dataset.direction; 
460 
461                    if (direction === "right") { 
462                        galShift = galShift - galStep; 
463                    } 
464                    else if (direction === "left") { 
465                        galShift = galShift + galStep; 
466                    } 
467                    checkShift(); 
468                    setControls(); 
469                } 
470 
471                function switchBig(e) { 
472                    var direction = e.target.dataset.direction; 
473 
474                    if (direction === "right") { 
475                        switchNext(); 
476                    } 
477                    else if (direction === "left") { 
478                        switchPrev(); 
479                    } 
480                } 
481 
482                function switchNext() { 
483                    let curr = $(".refgal-thumbitem.active"); 
484                    let next = curr.next(); 
485                    if (curr.attr('id') !== galLast) { 
486                        next.click(); 
487                    } 
488                } 
489 
490                function switchPrev() { 
491                    let curr = $(".refgal-thumbitem.active"); 
492                    let prev = curr.prev(); 
493                    if (curr.attr('id') !== galFirst) { 
494                        prev.click(); 
495                    } 
496                } 
497 
498                function setBigControls() { 
499                    // big controls 
500                    let curr = $(".refgal-thumbitem.active"); 
501                    if (curr.attr('id') === galLast) { 
502                        $("#js-galcontrols-big").removeClass("right"); 
503                    } 
504                    else { 
505                        $("#js-galcontrols-big").addClass("right"); 
506                    } 
507                    if (curr.attr('id') === galFirst) { 
508                        $("#js-galcontrols-big").removeClass("left"); 
509                    } 
510                    else { 
511                        $("#js-galcontrols-big").addClass("left"); 
512                    } 
513                } 
514 
515                function setControls() { 
516                    // stripe controls 
517                    let frameWidth = getFrameWidth(); 
518                    // console.log(galStripeWidth, galShift, frameWidth); 
519                    if (galStripeWidth + galShift === frameWidth) { 
520                        $("#js-galcontrols").removeClass("right"); 
521                    } 
522                    else { 
523                        $("#js-galcontrols").addClass("right"); 
524                    } 
525                    if (galShift === 0) { 
526                        $("#js-galcontrols").removeClass("left"); 
527                    } 
528                    else { 
529                        $("#js-galcontrols").addClass("left"); 
530                    } 
531                } 
532 
533                function goFullScreen () { 
534                    event.stopPropagation(); 
535                    $("#js-bigimage").addClass("fullscreen"); 
536                    $("#js-galcontrols-big").addClass("fullscreen"); 
537                } 
538 
539                function exitFullScreen () { 
540                    event.stopPropagation(); 
541                    $("#js-bigimage").removeClass("fullscreen"); 
542                    $("#js-galcontrols-big").removeClass("fullscreen"); 
543                } 
544 
545                function checkKey(e) { 
546                    var key = e.keyCode; 
547                    // console.log(key); 
548                    event.stopPropagation(); 
549                    if (key == 37) { 
550                        switchPrev(); 
551                    } 
552                    else if (key == 39) { 
553                        switchNext(); 
554                    } 
555                } 
556 
557 
558 
559 
560                showControls(); 
561 
562                $("#js-galstripe").click(changePhoto); 
563 
564                $(id(galFirst)).click(); 
565 
566                $("#js-galcontrols").click(scroll); 
567 
568                $("#js-galcontrols-big").click(switchBig); 
569 
570                $("#js-bigimage").click(goFullScreen); 
571 
572                $("#js-bigimage-close").click(exitFullScreen); 
573 
574                $("#js-gallery").keydown(checkKey); 
575 
576                $(window).resize(showControls); 
577 
578            }); 
579        </script> 
580 
581    </#if> 
582 
583</div> 
584 
585<#macro printProductRange product> 
586    <#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
587    <#local webContentData = jsonFactoryUtil.createJSONObject(product.getData())/> 
588 
589    <#local classPK = webContentData.classPK?number!"" /> 
590    <#local journalArticle = journalArticleLocalService.getLatestArticle(classPK)!"none"> 
591    <#local journalArticleId = journalArticle.getId() /> 
592    <#local urlTitle=journalArticle.urlTitle /> 
593    <#local document=saxReaderUtil.read(journalArticle.getContent()) /> 
594 
595    <#local availableLocale=document.getRootElement().attributeValue('available-locales') /> 
596    <#local defaultLocale=document.getRootElement().attributeValue('default-locale') /> 
597    <#if availableLocale?contains(locale)> 
598        <#local displayLocale=locale> 
599    <#else> 
600        <#local displayLocale=defaultLocale> 
601    </#if> 
602 
603    <#local productHeading=document.valueOf("//dynamic-element[@name='ProductHeading']//dynamic-content[@language-id='${displayLocale}']") /> 
604    <#local productLogoColor=document.valueOf("//dynamic-element[@name='ProductLogoColor']//dynamic-content[@language-id='${displayLocale}']") /> 
605    <#local pageLink=document.valueOf("//dynamic-element[@name='LinkToPage']//dynamic-content[@language-id='${displayLocale}']") /> 
606    <#local extLink=document.valueOf("//dynamic-element[@name='AlternateURLUseOnlyForLinksOutOfTheSite']//dynamic-content[@language-id='${displayLocale}']") /> 
607 
608    <#if pageLink !=""> 
609        <#if pageLink?keep_after('@')?keep_before('@')?string = "public"> 
610            <#assign boolean = false> 
611        <#else> 
612            <#assign boolean = true> 
613        </#if> 
614        <#assign layoutId = getterUtil.getLong(pageLink?keep_before('@'))/> 
615        <#assign  groupId = getterUtil.getLong(pageLink?keep_after_last('@'))/> 
616        <#assign layout = layoutLocalService.getLayout(groupId,boolean,layoutId)/> 
617        <#assign linkUrl = urlHelper + layout.getFriendlyURL()> 
618    <#elseif extLink != ""> 
619        <#assign linkUrl = extLink> 
620    <#else> 
621        <#assign linkUrl = "#"> 
622    </#if> 
623 
624 
625    <#if journalArticle.isApproved() && !journalArticle.isExpired()> 
626    <div class="refproduct-item"> 
627        <div class="refproduct-img"> 
628            <img class="" src="${productLogoColor}"> 
629        </div> 
630        <h3 class="refdetail-h3">${productHeading}</h3> 
631        <a class="refproduct-btn" href="${linkUrl}">Více</a> 
632    </div> 
633    </#if> 
634</#macro> 

Další referenční stavby


Multifunkční aula Gong v Dolní oblasti Vítkovic

20. ledna, 2012

Rekonverze plynojemu s cílem vytvořit multifunkční aulu s kapacitou 1500 osob, malý sál s kapacitou 400 osob, konferenční místnosti a výstavní prostory. Restrukturalizace obsahovala úpravy nosných ocelových konstrukcí a hybridní betonovou i ocelovou vestavbu nových prostor. Přestavba se...

Více

Bytový dům na Klínovci

22. června, 2020

Pětipodlažní bytový dům v docházkové vzdálenosti od Ski areálu Klínovec ve výšce 1000m.n.m. Společnost CEMEX dodávala stavební materiály pro podlahy: 58 m3 POROFLOW CF 400 N a 52 m3 AnhyLevel 20.

Více

Vodní dílo Šance

1. ledna, 2018

CEMEX se podílel na stavbě vodního díla Šance, budovaného mezi lety 2015 - 2018

Více
ARG
CHE
COL
CRI
CZE
DEU
DOM
EGY
ESP
FRA
GBR
GTM
HRV
ISR
JAM
MEX
PAN
PER
PHI
POL
PRI
SLV
UAE
  • Mapa stránek
  • Ochrana osobních údajů
  • Ochrana oznamovatelů
  • Protection of whistleblowers
  • Obchodní podmínky
  • Politika cookies
  • Kariéra
  • Kontaktujte nás
  • © 2024 CEMEX S.A.B. de C.V.
  • Cemex CZ
  • Facebook icon
  • Linked in icon
  • Instagram icon
  • Youtube icon