CEMEX
search
en
  • ES
About Us
  • Our History
  • Company Profile
  • Management Team
  • Ethics & Compliance
  • Position Papers
CEMEX Go
Investors
  • Overview
  • Reports
  • Key Company Data
  • Stock Information
  • Debt Information
  • Corporate Governance
  • Contact Us
Products & Services
  • Services
  • Building Solutions
  • Global Solutions
  • Trading
  • Local Sales Contact
Careers
  • Overview
  • Life @ CEMEX
  • Locations & Functions
Sustainability
  • Overview
  • Strategy
  • Model
  • Stakeholder Engagement
  • Policies & Positions
  • Reports
Suppliers
  • Overview
  • Sourcing Approach
  • Become a Supplier
  • Sustainable Sourcing
Media
Overview Stories Press Releases Building Award Social Media
search
About Us
  • Our History
  • Company Profile
  • Management Team
  • Ethics & Compliance
  • Position Papers
CEMEX Go
Investors
  • Overview
  • Reports
  • Key Company Data
  • Stock Information
  • Debt Information
  • Corporate Governance
  • Contact Us
Products & Services
  • Services
  • Building Solutions
  • Global Solutions
  • Trading
  • Local Sales Contact
Careers
  • Overview
  • Life @ CEMEX
  • Locations & Functions
Sustainability
  • Overview
  • Strategy
  • Model
  • Stakeholder Engagement
  • Policies & Positions
  • Reports
Suppliers
  • Overview
  • Sourcing Approach
  • Become a Supplier
  • Sustainable Sourcing
Media
  • Overview
  • Stories
  • Press Releases
  • Building Award
  • Social Media

Future Architects at INCM Madrid Listen to the Sounds of Concrete - Future Architects at INCM Madrid Listen to the Sounds of Concrete

angle-left Future Architects at INCM Madrid Listen to the Sounds of Concrete
An error occurred while processing the template.
The following has evaluated to null or missing:
==> cur_Images.getAttribute("alt")  [in template "20116#20152#41822" at line 70, column 41]

----
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: #assign imageDescription = cur_Images...  [in template "20116#20152#41822" in macro "images" at line 70, column 13]
	- Reached through: @images  [in template "20116#20152#41822" at line 32, column 17]
----
1<script> 
2    $(function() { 
3        $('.related-stories').closest('.portlet-boundary') 
4                .appendTo('.related-stories-container'); 
5    }); 
6</script> 
7<style> 
8/* Decreases the font-size in small devices */ 
9@media (max-width: 767px) { 
10    .cemex-wrapper .hero-text { 
11        font-size: 24pt; 
12    } 
13} 
14</style> 
15 
16<#assign preferences = freeMarkerPortletPreferences.toString()!"" /> 
17     
18<div class="cemex-media-center container"> 
19    <div class="row"> 
20        <div class="visible-xs-block col-xs-12"> 
21            <nav id="breadcrumbs"><@liferay.breadcrumbs /></nav> 
22        </div> 
23    </div> 
24 
25    <div class="row"> 
26        <@seeIfHasImages/> 
27        <#if hasImages> 
28            <div class="col-md-9 col-xs-12"> 
29                <@content/> 
30            </div> 
31            <div class="col-md-3 col-xs-12 text-right"> 
32                <@images/> 
33            </div> 
34        <#else> 
35            <div class="col-xs-12"> 
36                <@content/> 
37            </div> 
38        </#if> 
39        <div class="related-stories-container horizontal col-xs-12"></div> 
40    </div> 
41</div> 
42 
43<#macro content> 
44    <div class="content"> 
45        <div class="row"> 
46            <div class="hidden-xs col-md-10 col-md-offset-1"> 
47                <nav id="breadcrumbs"><@liferay.breadcrumbs /></nav> 
48            </div> 
49        </div> 
50        <div class="row"> 
51            <div class="col-md-1 col-xs-1"> 
52                <div class="back-button"> 
53                    <a href="javascript: history.go(-1)"><i class="fa fa-angle-left" aria-hidden="true"></i></a> 
54                </div> 
55            </div> 
56            <div class="col-md-10 col-xs-12"> 
57                <h1 class="hero-text">${.vars['reserved-article-title'].data}</h1> 
58 
59                <@publishDate/> 
60 
61                ${Content.getData()} 
62            </div> 
63        </div> 
64    </div> 
65</#macro> 
66 
67<#macro images> 
68     <#if Image.getSiblings()?has_content> 
69        <#list Image.getSiblings() as cur_Images> 
70            <#assign imageDescription = cur_Images.getAttribute("alt")/> 
71            <#if cur_Images.getData()?? && cur_Images.getData() != ""> 
72                <#if cur_Images.getChild("ImageSubtitle")?? && cur_Images.getChild("ImageSubtitle").getData() != "" > 
73                    <#assign caption = cur_Images.getChild("ImageSubtitle").getData()/> 
74                <#else> 
75                    <#assign caption = cur_Images.getAttribute("alt")/> 
76                </#if> 
77                <div class="frame"> 
78                    <a href="${cur_Images.getData()}" class="gallery hover-scale hover-grayscale" title="${imageDescription}"> 
79                        <img class="responsive-image full-width hover-scale-target hover-grayscale-target-60" alt="${cur_Images.getAttribute("alt")}" src="${cur_Images.getData()}" /> 
80                    </a> 
81                </div> 
82            </#if> 
83 
84            <#if cur_Images.getChild("YoutubeVideoId")?? > 
85                <#assign youtubeId = cur_Images.getChild("YoutubeVideoId") > 
86                <#assign hasYoutubeId = youtubeId?has_content && youtubeId.getData()?? && youtubeId.getData() != "" > 
87                <#if hasYoutubeId> 
88                    <div class="frame youtube aspect-ratio aspect-ratio-16-to-9"> 
89                        <iframe class="absolute-fill-parent" src="https://www.youtube.com/embed/${youtubeId.getData()}?rel=0&showinfo=0" frameborder="0" allowfullscreen></iframe> 
90                    </div> 
91                </#if> 
92            </#if> 
93        </#list> 
94    </#if> 
95</#macro> 
96 
97<#macro seeIfHasImages> 
98    <#assign hasImages = false/> 
99    <#if Image.getSiblings()?has_content> 
100        <#list Image.getSiblings() as cur_Images> 
101            <#if cur_Images.getData()?? && cur_Images.getData() != ""> 
102                <#assign hasImages = true/> 
103            </#if> 
104            <#if cur_Images.getChild("YoutubeVideoId")?? && cur_Images.getChild("YoutubeVideoId").getData() != ""> 
105                <#assign hasImages = true/> 
106            </#if> 
107        </#list> 
108    </#if> 
109</#macro> 
110 
111<#macro publishDate> 
112    <p class="publish-date"> 
113        <#assign displaydate = .vars['reserved-article-display-date'].data> 
114        <#assign originalLocale = locale> 
115        <#setting locale = localeUtil.getDefault()> 
116        <#assign displaydate = displaydate?datetime("EEE, d MMM yyyy HH:mm:ss Z")> 
117        <#setting locale = originalLocale> 
118        ${displaydate?date?string.long} 
119    </p> 
120</#macro> 
121 
122<script> 
123 
124$(document).ready(function() { 
125  $('.gallery').magnificPopup({ 
126        type:'image', 
127    closeOnContentClick: false, 
128    closeBtnInside: false, 
129    mainClass: 'mfp-with-zoom mfp-img-mobile', 
130    image: { 
131      verticalFit: true, 
132      titleSrc: function(item) { 
133          var html = $.parseHTML( item.el.attr('title') ); 
134          return html; 
135      } 
136    }, 
137    gallery: { 
138      enabled: true 
139    } 
140 
141  }); 
142}); 
143 
144</script> 
  • Legal
  • Site Map
  • Careers
  • © 2017 CEMEX S.A.B. de C.V.