Une erreur s'est produite lors du traitement du gabarit.
The following has evaluated to null or missing:
==> cmsEntity.getLocalizedField(profile, "/entity/fields/title")  [in template "20116#20152#307443" at line 36, column 29]

----
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 productTitle = cmsEntity.getL...  [in template "20116#20152#307443" at line 36, column 5]
----
1<#-- 
2 
3    Accessory Main Image 
4     
5--> 
6 
7<#assign instanceId = themeDisplay.getPortletDisplay().getId()> 
8<#assign portletId = "p_p_id_" + instanceId + "_"> 
9 
10<#if cmsEntity?has_content> 
11<#include "${templatesPath}/227222" />  
12 
13<@sectionHeader title="${title}" menuTitle="${menuTitle}" cssClasses="bg-white" id="accessory-main-image"/> 
14<#assign ns = themeDisplay.portletDisplay.getId() > 
15<#assign siteDefaultLocale = portalUtil.getSiteDefaultLocale(groupId)?string?replace("_","-") > 
16 
17<#assign listPriceField = "listPrice" > 
18<#assign iconSetPath ="/o/genelec-site-theme/images/icons/symbol-defs.svg"> 
19<#if cmsEntity.getField(profile, "/entity/relationships/variants")?has_content> 
20    <#assign variants = cmsEntity.getField(profile, "/entity/relationships/variants") > 
21</#if> 
22<#if cmsEntity.getField(profile, "/entity/fields")?has_content> 
23    <#assign fields = cmsEntity.getField(profile, "/entity/fields") >  
24</#if> 
25 
26<#assign minimumWebshopAmount = 1 > 
27<#if !fields.isNull("minimumWebshopAmount")> 
28    <#assign minimumWebshopAmount = fields.minimumWebshopAmount > 
29</#if> 
30<#assign buyUnit = "unit"> 
31<#if minimumWebshopAmount gt 1> 
32   <#assign buyUnit = "pair">  
33</#if> 
34 
35<#if cmsEntity.getField(profile, "/entity/fields/title")?has_content> 
36    <#assign productTitle = cmsEntity.getLocalizedField(profile, "/entity/fields/title")> 
37</#if> 
38<#if cmsEntity.getField(profile, "/entity/fields/summary")?has_content > 
39    <#assign summary = cmsContentFormatterService.getMarkdown(cmsEntity.getLocalizedField(profile, "/entity/fields/summary"))> 
40</#if> 
41<#assign content = "" > 
42 
43<#if cmsEntity.getLocalizedField(profile, "/entity/fields/content")?has_content > 
44    <#assign content = cmsContentFormatterService.getMarkdown(cmsEntity.getLocalizedField(profile, "/entity/fields/content"))> 
45</#if> 
46 
47<#assign portalUrl = themeDisplay.getPortalURL() > 
48<#assign currentURL = portalUrl + themeDisplay.getURLCurrent()  > 
49<@appendHTMLMetas currentURL cmsEntity "product" /> 
50 
51        <div class="row"> 
52            <div class="col-lg-6"> 
53                <#if productTitle?has_content> 
54                    <div class="product-page-heading"> 
55                        <h1>${productTitle}</h1> 
56                        <#if cmsEntity.getLocalizedField(profile, "/entity/fields/subtitle")?has_content> 
57                            <h1 class="subtitle">${cmsEntity.getLocalizedField(profile, "/entity/fields/subtitle")}</h1> 
58                        </#if> 
59                    </div> 
60                </#if> 
61                    <div class="row justify-content-between"> 
62                        <div class="col-lg-12 article-content"> 
63                            <#if summary?has_content> 
64                                <div class="product-page-intro">${summary}</div>  
65                            </#if> 
66                            <hr> 
67                        </div>  
68                    </div>  
69                    <form class="product-page-form">  
70                 
71                    <p> 
72                        <#list variants.iterator() as variant> 
73                            <#assign id = variant.id> 
74                            <#assign sku = accessoryVariantSKU(variant) > 
75 
76                            <#if !fields.isNull("b2cVisibilityKey")>  
77                                <@b2Visibility container=fields field="b2cVisibilityKey" langCode="${siteDefaultLocale}"/> 
78                                <#if sku?has_content> 
79                                    <#if b2cVisibility = "showWithPrice" && variant?index = 0 || b2cVisibility = "showForPurchase" && variant?index = 0> 
80                                            <div id="price-${id}"> 
81                                                <span class="h1"  data-variant-price="${sku}" data-qty="${minimumWebshopAmount}" ></span> 
82                                                <span class="h3">/<@liferay.language key="${buyUnit}"/> </span> 
83                                                <span class="text-muted small text-bold"><@liferay.language key="inc-vat"/></span> 
84                                            </div> 
85                                    <#elseif b2cVisibility ="showWithPrice" || b2cVisibility = "showForPurchase"> 
86                                            <div class="price-variant" id="price-${id}"> 
87                                                <span class="h1" data-variant-price="${sku}" data-qty="${minimumWebshopAmount}"></span> 
88                                                <span class="h3">/<@liferay.language key="${buyUnit}"/></span> 
89                                                <span class="text-muted small text-bold"><@liferay.language key="inc-vat"/></span> 
90                                            </div> 
91                                    </#if> 
92                                </#if> 
93                            </#if> 
94                        </#list> 
95                    </p> 
96     
97                    <#list variants.iterator() as variant> 
98                        <#if !variant.properties.isNull("shopifyAccessoryVariant")> 
99                            <#assign sku = accessoryVariantSKU(variant) > 
100                        <#else> 
101                            <#assign sku = ""> 
102                        </#if> 
103                        <#break> 
104                    </#list> 
105                    <div class="buy-section-buttons"> 
106                    <#if !fields.isNull("b2cVisibilityKey")>  
107                        <@b2Visibility container=fields field="b2cVisibilityKey" langCode="${siteDefaultLocale}"/> 
108                         
109                            <#if b2cVisibility = "showForPurchase" && sku != ""> 
110                                <div class="btn-container">      
111                                    <a class="btn btn-theme btn-product-page-buy btn-bold btn-medium"  
112                                        href="#" 
113                                        data-sku="${sku}" data-qty="${minimumWebshopAmount}" > 
114                                            <@liferay.language key="buy-product"/> 
115                                    </a> 
116 
117                                </div> 
118                            </#if> 
119                     </#if> 
120                     <div class="btn-container"> 
121                        <a class="btn btn-black-white btn-medium text-bolder" href="#_genelecsitedealermap_genelec-site-map"> 
122                            <@liferay.language key="search-dealer"/> 
123                            <@linkIcon cssClasses="icon tiny-icon" alt="" icon="arrow-black"/> 
124                        </a> 
125                    </div> 
126                 </div> 
127                </form> 
128 
129                <!-- delivery returns warranty --> 
130                <@printDeliveryRow fields=fields siteLang=siteDefaultLocale /> 
131                <!-- // delivery returns warranty -->                  
132                 
133                  <#if content?has_content> 
134                        <div class="text-intro">${content}</div>  
135                    </#if> 
136                <#if cmsEntity.getField(profile, "/entity/relationships/accessorySpecifications/properties/lengthMin")?has_content> 
137                <div class="text-bolder"> 
138                    Length min. 
139                </div> 
140                <div class="text-medium"> 
141                    ${cmsEntity.getField(profile, "/entity/relationships/accessorySpecifications/properties/lengthMin")}  
142                    mm 
143                </div> 
144                </#if> 
145                <#if cmsEntity.getField(profile, "/entity/relationships/accessorySpecifications/properties/lengthMax")?has_content> 
146                <div class="text-bolder"> 
147                    Length max. 
148                </div> 
149                <div class="text-medium"> 
150                    ${cmsEntity.getField(profile, "/entity/relationships/accessorySpecifications/properties/lengthMax")}  
151                    mm 
152                </div> 
153                </#if> 
154                <#if cmsEntity.getField(profile, "/entity/relationships/accessorySpecifications/properties/width")?has_content> 
155                <div class="text-bolder"> 
156                    <@liferay.language key="width"/> 
157                </div> 
158                <div class="text-medium"> 
159                    ${cmsEntity.getField(profile, "/entity/relationships/accessorySpecifications/properties/width")}  
160                    mm 
161                </div> 
162                </#if> 
163                <#if cmsEntity.getField(profile, "/entity/relationships/accessorySpecifications/properties/height")?has_content> 
164                <div class="text-bolder"> 
165                    <@liferay.language key="height"/> 
166                </div> 
167                <div class="text-medium"> 
168                    ${cmsEntity.getField(profile, "/entity/relationships/accessorySpecifications/properties/height")}  
169                    mm 
170                </div> 
171                </#if> 
172 
173 
174                 
175 
176            </div> 
177            <div class="col-lg-6"> 
178                <#list variants.iterator() as variant> 
179                <#assign vImages = variantImages(variant,siteDefaultLocale) > 
180                 
181                <#if vImages?has_content> 
182                    <#if variant?index = 0> 
183                        <@imageZoom  
184                            id=variant.id  
185                            cssClasses="zoom-gallery-slide active"  
186                            images=vImages 
187                            carouselCss="accessory-main-carousel owl-carousel owl-theme image-carousel-container"  
188                            zoomCss="MagicZoom accessory-page-product-image" 
189                            videoCss="accessory-main-video" 
190                            />  
191                    <#else> 
192                    <@imageZoom  
193                        id=variant.id  
194                        variantCss="variant-gallery"  
195                        cssClasses="zoom-gallery-slide active"  
196                        images=vImages 
197                        carouselCss="accessory-main-carousel owl-carousel owl-theme image-carousel-container"  
198                        zoomCss="MagicZoom accessory-page-product-image" 
199                        videoCss="accessory-main-video" 
200                    /> 
201                    </#if> 
202                </#if> 
203                </#list> 
204                <#list variants.iterator() as variant> 
205                    <#if !variant.properties.isNull("colorCode")> 
206                        <#if variant?index == 0> 
207                            <div class="text-bold"><@liferay.language key="color-options"/></div> 
208                        </#if> 
209                        <#assign color = "${variant.properties.colorCode}"> 
210                        <#assign sku = accessoryVariantSKU(variant) > 
211                     
212                    <#if variant?index = 0> 
213                        <@variantChange id=variant.id checked="checked" color=color sku=sku/> 
214                    <#else> 
215                        <@variantChange id=variant.id color=color sku=sku/> 
216                    </#if> 
217                    </#if> 
218                </#list> 
219            </div> 
220        </div> 
221 <@sectionFooter/> 
222 
223<style> 
224 
225    .product-page-product-title { 
226        font-weight: 600; 
227        margin-bottom: 0; 
228    } 
229 
230    .product-page-form { 
231        margin-bottom: 15px; 
232    } 
233 
234    .btn-product-page-buy { 
235        width: 40%; 
236        min-width: 250px;  
237        height: 43px  
238    } 
239 
240    .btn-bold { 
241        border-width: 2px; 
242        text-transform: uppercase; 
243        font-weight: 800; 
244    } 
245 
246    .buy-product-dropdown { 
247        display: inline-block; 
248        width: 60px; 
249        height: 43px !important; 
250        border-radius: 0; 
251        border-left: none; 
252        position: absolute; 
253        clear: left; 
254        padding-left: 2%; 
255        font-size: 1.3em; 
256        border: 2px solid #ced4da; 
257        border-left: none; 
258        line-height: 20px; 
259    } 
260 
261    .buy-product-dropdown h3 { 
262        display: inline; 
263        vertical-align: middle; 
264    } 
265 
266    .buy-product-dropdown svg { 
267        width: 20px; 
268        line-height: .2; 
269        vertical-align: middle; 
270    } 
271 
272.accessory-main-carousel .owl-prev { 
273    width: 17px; 
274    height: 100px; 
275    position: absolute; 
276    left: -20px; 
277    top: 47%; 
278    transform: translateY(-50%); 
279    display: block !important; 
280    border:0px solid black; 
281    font-size: 2em !important; 
282} 
283 
284.accessory-main-carousel .owl-next { 
285    width: 17px; 
286    height: 100px; 
287    position: absolute; 
288    right: -20px; 
289    top: 47%; 
290    transform: translateY(-50%); 
291    display: block !important; 
292    border:0px solid black; 
293    font-size: 2em !important; 
294} 
295 
296.accessory-main-video{ 
297    height:396px; 
298    width:396px; 
299} 
300 
301.price-variant { 
302        display:none; 
303    } 
304 
305</style> 
306 
307<script> 
308    
309     $('.accessory-main-carousel').owlCarousel({ 
310    loop:false, 
311    nav:true, 
312    dots:false, 
313    margin:5, 
314    lazyLoad:true, 
315    navText : ['<i class="icon-angle-left">','<i class="icon-angle-right">'], 
316    responsive:{ 
317        0:{items:3, slideBy:3}, 
318        600:{items:4, slideBy:4}, 
319        1000:{items:5, slideBy:5} 
320     }, 
321}); 
322 
323<#if isWebstoreEnabled()> 
324// Add product into shopping cart  
325    $('.btn-product-page-buy').click(function(event){ 
326 
327            genelec.cart().then(function(cart){ 
328                let qty  = $(event.target).attr("data-qty"); 
329                let sku = $(event.target).attr("data-sku"); 
330                 
331                // qty is number and sku exists 
332                if (!isNaN(qty) && sku) { 
333                    cart.add(sku, qty).then(function(){$( document ).trigger("genelec-shopping-cart-updated");}); 
334                } 
335            }); 
336        return false; 
337    }); 
338 
339    genelec.shopify.fillPrices('#${portletId}'); 
340</#if>     
341 
342</script> 
343</#if> 
344 
345<#function accessoryVariantSKU variant> 
346    <#if hasWebstoreSupport(variant,siteDefaultLocale)> 
347        <#assign sku = localizeField(variant.properties.shopifyAccessoryVariant, siteDefaultLocale) > 
348    <#else> 
349        <#assign sku = ""> 
350    </#if>  
351    <#return sku> 
352</#function> 

Trouver un revendeur

Saisissez votre ville pour trouver le revendeur Genelec le plus proche

Filtres
X Filtres
All
Moniteurs de studio
Enceintes domestiques
Installation AV
Service technique
Centre d’expérience
SAM Certified
Smart IP Certified
Pays sélectionné