Une erreur s'est produite lors du traitement du modèle.
Java method "com.mecalux.util.service.impl.MlxUrlUtilServiceImpl.getUrlByJournalArticle(com.liferay.journal.model.JournalArticle, String, long)" threw an exception when invoked on com.mecalux.util.service.impl.MlxUrlUtilServiceImpl object "com.mecalux.util.service.impl.MlxUrlUtilServiceImpl@43669969"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign productUrl = mlxUrlUtilServic...  [in template "20101#20128#PRACTICAL-CASE-STR-DEFAULT-TEMPLATE" at line 340, column 21]
----
1<#--HEADER--> 
2<div class="corporate--case--header--container"> 
3    <figure class="corporate--case--header--background-figure"> 
4        ${corporate.img(list_image.getData(), false, 'alt="' + name.getData() + '"', 'title="' + name.getData() + '"', 'class="corporate--case--header--background-image"')} 
5    </figure> 
6    <div class="corporate--case--header"> 
7        <h1 data-sticky-title="true" class="corporate--case--header--heading">${name.getData()}</h1> 
8        <p data-sticky-subheading="true" class="corporate--case--header--subheading">${subheader.getData()}</p> 
9    </div> 
10</div> 
11   
12<#--TOP DESCRIPTION--> 
13<#assign cdn = (mlxUrlUtilService.getCdn(groupId))!"" /> 
14<#assign articleId = .vars["reserved-article-id"].data /> 
15<#assign globalGroupId = mlxConstants.getLongConstant("GroupIds","GLOBAL")/> 
16<#assign clientStrKey = "CLIENT-STR" /> 
17<#assign clientRelated = (mlxAssetHelperService.getFirstRelatedArticle(groupId, articleId, clientStrKey))!"" /> 
18<div class="corporate--case--subheader--container"> 
19    <#if clientRelated?has_content> 
20        <#assign clientLogoContentValues = (mlxJournalHelperService.getStructureFieldValues(clientRelated, locale))!{}  /> 
21        <#assign clientLogoContent = (clientLogoContentValues["logo"])!{}  /> 
22        <#if clientLogoContent?has_content> 
23            <#assign clientLogo = jsonFactoryUtil.createJSONObject(clientLogoContent) /> 
24            <#assign clientName = (clientLogoContentValues["name"]?string)!"" /> 
25 
26            <#assign fileEntry = mlxDLFileEntryHelperService.getDLFileEntry(clientLogo.uuid, globalGroupId)!"" /> 
27            <#if fileEntry?has_content> 
28							<#assign clientLogoUrl = mlxDocumentsHelperService.getDocumentUrlFromUUID(clientLogo.uuid, "${locale}")/> 
29							<#assign clientLogoAlt = mlxExpandoService.getExpandoValueForClass("com.liferay.document.library.kernel.model.DLFileEntry","mlxDocumentTitle", fileEntry.getFileVersion().getFileVersionId()).getString(locale)!""/> 
30 
31							<#if clientLogoAlt == ""> 
32								<#assign clientLogoAlt = clientName /> 
33							</#if> 
34 
35							<figure class="corporate--case--subheader--figure"> 
36									${corporate.img(cdn + clientLogoUrl, true, 'alt="' + clientLogoAlt + '"', 'title="' + clientLogoAlt + '"', 'class="corporate--case--subheader--figure-image"')} 
37							</figure> 
38						</#if> 
39        </#if> 
40    </#if> 
41    <div class="corporate--case--subheader"> 
42        <p class="corporate--case--subheader--description">${description.getData()}</p> 
43    </div> 
44</div> 
45 
46<#--MEDIABAR--> 
47<#assign technicalSheetStr = "TECHNICAL-SHEET-STR" /> 
48<#assign relatedTechnicalSheets = mlxAssetHelperService.getRelatedArticlesByStructure(groupId, articleId, technicalSheetStr) /> 
49<#if pdf.getData() != '' || relatedTechnicalSheets?has_content > 
50    <div class="corporate--case--mediabar--container"> 
51        <ul class="corporate--case--mediabar" data-gtm-block-name="Case-study_Detail"> 
52            <#--technicalSheet tab--> 
53            <#if relatedTechnicalSheets?has_content> 
54            <li class="corporate--case--mediabar--item"> 
55                <a title='' data-fancybox data-src="#technicalsheet" href="javascript:;" class="techTr tech-gallery corporate--case--mediabar--item--link" data-gtm-event="clicktab" data-gtm-event-click-category="Practical_Case_Detail_Tab" data-gtm-event-label="technical-details-tab"> 
56                    <#-- Cambiar url por otra del entorno --> 
57                    ${corporate.img('/documents/20128/594105/Tech+specs.svg/7401d7f0-d66c-3b49-1a9e-271878bfc795?t=1522060479000', true, 'class="corporate--case--mediabar--item--image"')} 
58                    <span class="corporate--case--mediabar--item--text"><@corporate.mlxlanguage key="mlx.mediabar.specifications" /></span> 
59                </a>  
60                <div style="display: none;" id="technicalsheet"> 
61                    <#list relatedTechnicalSheets as technicalSheet> 
62                    <#assign technicalSheetView = mlxJournalContentService.getContent(technicalSheet, technicalSheet.getDDMTemplateKey(), locale, themeDisplay, 'view') />  
63                    ${technicalSheetView}       
64                    </#list> 
65                </div>  
66            </li> 
67            </#if> 
68             
69            <#--PDF tab--> 
70            <#if pdf.getData() != ''> 
71                <li class="corporate--case--mediabar--item"> 
72                    <a href="${pdf.getData()}" rel="nofollow" title='<@corporate.mlxlanguage key="mlx.practical-case.pdf-download" />' class="pdf-generator corporate--case--mediabar--item--link" target="_blank" data-gtm-event="download" data-gtm-event-click-category="Download" data-gtm-event-label="${clientName!""}"> 
73                        <#-- Cambiar url por otra del entorno --> 
74                        ${corporate.img('/documents/20128/594105/Download+PDF.svg/2f94eda9-5ab4-754c-cef8-735d15686732?t=1522060427000', true, 'class="corporate--case--mediabar--item--image"')} 
75                        <span class="corporate--case--mediabar--item--text"><@corporate.mlxlanguage key="mlx.practical-case.pdf-download" /></span> 
76                    </a> 
77                </li> 
78            </#if> 
79        </ul> 
80    </div> 
81</#if> 
82 
83 
84<#--  PRIMER VIDEO  --> 
85<#if (video_gallery)?has_content> 
86    <#if (video_gallery.getSiblings()?first.video_gallery_file.getData())?has_content> 
87        <div class="corporate--case--container"> 
88            <div class="corporate--case--video-player--container"> 
89                <div class="corporate--case--video-player"> 
90                    <#assign first_video = video_gallery.video_gallery_file.getData()> 
91                    <#assign videoUuid = mlxUrlUtilService.getUuidFromLiferayUrl(first_video)!""  /> 
92                    <#assign videoFileEntry = mlxDLFileEntryHelperService.getDLFileEntry(videoUuid, globalGroupId)!"" /> 
93 
94                    <#if videoFileEntry?has_content> 
95                        <#assign videoFileEntry = videoFileEntry /> 
96 
97                        <#if videoFileEntry?has_content> 
98                            <#assign VideoFile = videoFileEntry.getFileVersion().getFileVersionId()!"" /> 
99                            <#assign videoYoutube = (mlxExpandoService.getExpandoValueForClass("com.liferay.document.library.kernel.model.DLFileEntry","Mlxyoutubeembeddedcode",VideoFile).getString(locale))!"" />  
100                            <#assign videoDuration = mlxExpandoService.getExpandoValueForClass("com.liferay.document.library.kernel.model.DLFileEntry", "Mlxduration", VideoFile)!"" /> 
101                            <#assign videoUrl = mlxDocumentsHelperService.getDocumentUrlFromUUID(videoUuid, locale)!"" /> 
102                            <#assign videoBackground = (mlxDLFileEntryHelperService.getDLFileEntryMlxFieldValuePersisted("background", VideoFile))!"" /> 
103 
104                            <#if (videoBackground)?has_content> 
105                                <#assign videoBackground = jsonFactoryUtil.createJSONObject(videoBackground) /> 
106                                <#assign videoBackgroundfileEntry = mlxDLFileEntryHelperService.getDLFileEntry(videoBackground.uuid, globalGroupId) /> 
107                                <#assign videoBackground = mlxUrlUtilService.getLRUrl(videoBackgroundfileEntry)!"" /> 
108                            <#else>     
109                                <#assign videoBackground = "" /> 
110                            </#if> 
111                        </#if> 
112                    </#if> 
113 
114                    <#if videoYoutube?has_content> 
115                        <figure class="corporate--case--video-player--figure-youtube"> 
116                            <iframe class="corporate--case--video-player--youtube" width="100%" height="100%" src="https://www.youtube.com/embed/${videoYoutube}?rel=0" frameborder="0" allowfullscreen></iframe>             
117                        </figure> 
118                    <#else> 
119                        <figure class="corporate--case--video-player--figure"> 
120                            <video class="corporate--case--video-player--vid" poster="${videoBackground}" controls="controls" controlsList="nodownload"> 
121                                <source src="${videoUrl}" > 
122                            </video> 
123                        </figure> 
124                    </#if>  
125                </div> 
126            </div> 
127        </div> 
128    </#if> 
129</#if> 
130 
131 
132<#--CONTENT--> 
133<section class="corporate--section"> 
134    ${content.getData()} 
135</section> 
136 
137<#--TECHNICAL SHEET--> 
138<#assign technicalSheetRelated = (mlxAssetHelperService.getFirstRelatedArticle(groupId, articleId, technicalSheetStr)) ! "" /> 
139<#if technicalSheetRelated?has_content> 
140    <#assign technicalSheet = mlxJournalContentService.getContent(technicalSheetRelated,technicalSheetRelated.getDDMTemplateKey(),locale,themeDisplay,'view') />  
141    ${technicalSheet} 
142</#if>  
143 
144<#--GALERY BANNERS--> 
145<#assign typeLength = [] /> 
146<#assign existsImageGallery = false /> 
147<#assign existsVideoGallery = false /> 
148 
149<#list video_gallery.getSiblings() as videoCategory > 
150    <#if videoCategory.video_gallery_file.getData()?has_content >  
151        <#assign typeLength = typeLength + [videoCategory] /> 
152        <#assign existsImageGallery = true /> 
153    </#if> 
154</#list> 
155 
156<#list image_gallery.getSiblings() as imageCategory> 
157    <#if imageCategory.image_gallery_file.getData()?has_content > 
158        <#assign typeLength = typeLength + [imageCategory] /> 
159        <#assign existsVideoGallery = true /> 
160    </#if> 
161</#list> 
162 
163<#if (existsImageGallery) || (existsVideoGallery)> 
164    <div class="corporate--case--gallery" data-gtm-block-name="Multimedia"> 
165        <div class="corporate--case--gallery--container"> 
166            <h2 class="corporate--case--gallery--title"> <@corporate.mlxlanguage key="mlx.product.tab.gallery" /> </h2> 
167 
168            <div id="fancyGallery" style="display:none"> 
169                <#-- IMAGENES --> 
170                <#assign imageCounter = 0 /> 
171                <#assign typesCounter = [] /> 
172 
173                <#if image_gallery.getSiblings()?has_content > 
174                    <#list image_gallery.getSiblings() as curImageGallery > 
175                        <#list curImageGallery.image_gallery_file.getSiblings() as cur_file >   
176                            <#assign url = cur_file.getData() /> 
177                            <#if url?has_content > 
178                                <#assign typesCounter = typesCounter + [ curImageGallery.image_gallery_type.getData()!"" ] /> 
179                                <#assign uuid =  mlxUrlUtilService.getUuidFromLiferayUrl(url) /> 
180                                <#assign fileEntry = mlxDLFileEntryHelperService.getDLFileEntry(uuid, globalGroupId) /> 
181                                <#assign title = mlxExpandoService.getExpandoValueForClass("com.liferay.document.library.kernel.model.DLFileEntry","mlxDocumentTitle",fileEntry.getFileVersion().getFileVersionId()).getString(locale)/> 
182                                <#assign titleDocument = fileEntry.getTitle() /> 
183                                <#assign urlParamConcat = cur_file.getData()?contains("?")?then("&","?")> 
184                                <#assign imageFancy = cur_file.getData()+urlParamConcat+'imwidth=1280&imdensity=1'/> 
185                                <#assign imageThumb = cur_file.getData()+urlParamConcat+'imwidth=320&imdensity=1'/> 
186 
187                                <a href="${imageFancy}" data-fancybox='${curImageGallery.image_gallery_type.getData()?replace(" ", "-")}' data-caption="${title}" data-thumb='${imageThumb}'> 
188                                    ${corporate.img(imageFancy, true, 'alt="' + title + '"', 'title="' + title + '"', 'class="corporate--case--gallery--image" data-js-urlparams="'+curImageGallery.image_gallery_type.getData()?replace(" ", "-")+'"')} 
189                                </a> 
190                                     
191                                <#if imageCounter == 0> 
192                                    <#assign firstImageGallery = {'src': imageFancy!"", 'title':title!""} /> 
193                                    <#assign imageCounter = imageCounter + 1 /> 
194                                </#if> 
195                            </#if> 
196                        </#list> 
197                    </#list> 
198                </#if> 
199                 
200                <#-- VIDEOS --> 
201                <#if video_gallery.getSiblings()?has_content > 
202                    <#list video_gallery.getSiblings() as curVideoGalley > 
203                        <#list curVideoGalley.video_gallery_file.getSiblings() as cur_file >  
204                            <#assign url = cur_file.getData() /> 
205                            <#if url?has_content > 
206 
207                                <#assign typesCounter = typesCounter + [ curVideoGalley.video_gallery_type.getData()!"" ]  /> 
208                                <#assign uuid =  mlxUrlUtilService.getUuidFromLiferayUrl(url) /> 
209                                <#assign fileEntry = mlxDLFileEntryHelperService.getDLFileEntry(uuid, globalGroupId) /> 
210                                <#assign title = mlxExpandoService.getExpandoValueForClass("com.liferay.document.library.kernel.model.DLFileEntry","mlxDocumentTitle",fileEntry.getFileVersion().getFileVersionId()).getString(locale)/> 
211                                <#assign titleDocument = fileEntry.getTitle() /> 
212                                <#assign background = (mlxDLFileEntryHelperService.getDLFileEntryMlxFieldValuePersisted("background", fileEntry.getFileEntryId()))!"" /> 
213                                 
214                                <#if background?has_content> 
215                                    <#assign background = background?eval /> 
216                                    <#assign videoBackgroundfileEntry = mlxDLFileEntryHelperService.getDLFileEntry(background.uuid, globalGroupId) /> 
217                                    <#assign background = mlxUrlUtilService.getLRUrl(videoBackgroundfileEntry) /> 
218                                    <#assign urlParamConcat = background?contains("?")?then("&","?")> 
219                                    <#assign imageThumb = background+urlParamConcat+'imwidth=320&imdensity=1'/> 
220                                </#if> 
221                                 
222                                <#assign youtubeEmbeddedCode = (mlxExpandoService.getExpandoValueForClass("com.liferay.document.library.kernel.model.DLFileEntry","mlxYoutubeEmbeddedCode",fileEntry.getFileVersion().getFileVersionId()).getString(locale))!"" /> 
223                                <#assign href = url /> 
224                                <#if youtubeEmbeddedCode?has_content > 
225                                    <#assign href = "https://www.youtube.com/embed/${youtubeEmbeddedCode}?autoplay=1&rel=0" /> 
226                                <#else> 
227                                    <#assign htmlVideo = 'data-type="html5video"'> 
228                                </#if> 
229                                 
230                                <a href="${href}" ${htmlVideo!} data-fancybox='${curVideoGalley.video_gallery_type.getData()?replace(" ", "-")}' data-caption="${title!''}" data-thumb='${imageThumb!""}'> 
231                                    ${corporate.img(background, true, 'alt="' + title + '"', 'title="' + title + '"', 'class="corporate--case--gallery--image" data-js-urlparams="'+curVideoGalley.video_gallery_type.getData()?replace(" ", "-")+'"')} 
232                                </a> 
233                            </#if> 
234                        </#list> 
235                    </#list> 
236                </#if> 
237            </div> 
238 
239            <#if (typeLength?size > 0) > 
240                <div class="corporate--case--gallery--filters"> 
241                    <#assign imagesCheck = false> 
242                    <#assign illustrationsCheck = false> 
243                    <#assign plansCheck = false> 
244                                 
245                    <#if (image_gallery.getSiblings()?size > 1)> 
246                        <#list image_gallery.getSiblings() as curImageGallery> 
247                            <#if curImageGallery.image_gallery_type.data == 'images'> 
248                                <#assign imagesCheck = true> 
249                            </#if> 
250                            <#if curImageGallery.image_gallery_type.data == 'illustrations'> 
251                                <#assign illustrationsCheck = true> 
252                            </#if> 
253                            <#if curImageGallery.image_gallery_type.data == 'plans'> 
254                                <#assign plansCheck = true> 
255                            </#if> 
256                        </#list> 
257                    </#if> 
258                                         
259                    <#-- Todos --> 
260                    <#if (((existsImageGallery) && (existsVideoGallery)) || ((imagesCheck) && (illustrationsCheck)) || (plansCheck)) > 
261                        <button class="corporate--case--gallery--chip" data-js-filter="all" data-gtm-block-name="Multimedia" data-gtm-event="clickfilter" data-gtm-event-label='All' onclick="Fancybox.fromOpener('#fancyGallery [data-fancybox]')"> 
262                            <@corporate.mlxlanguage key="mlx.theme.all" /> 
263                            <span class="corporate--case--gallery--badge">${typesCounter?size}</span> 
264                        </button>  
265                    </#if> 
266 
267                    <#-- IMAGENES --> 
268                    <#if image_gallery.getSiblings()?has_content > 
269                        <#list image_gallery.getSiblings() as curImageGallery > 
270                            <#if curImageGallery.image_gallery_file.getData()?has_content > 
271                                <#assign gtmTextFormat = curImageGallery.image_gallery_type.getData()?replace(" ", "-")?cap_first /> 
272                                <button class="corporate--case--gallery--chip" data-gtm-block-name="Multimedia" data-gtm-event="clickfilter" data-gtm-event-label='${gtmTextFormat}' data-fancybox-trigger="${curImageGallery.image_gallery_type.getData()?replace(' ', '-')}"> 
273                                    <#if gtmTextFormat == 'Plans'> 
274                                        <@corporate.mlxlanguage key='mlx.offers.doctype.Plane' /> 
275                                    <#else> 
276                                        <@corporate.mlxlanguage key='mlx.mediabar.${curImageGallery.image_gallery_type.getData()}' /> 
277                                    </#if> 
278                                    <span class="corporate--case--gallery--badge">${typesCounter?filter(x -> x = curImageGallery.image_gallery_type.getData()?replace(' ', '-'))?size}</span> 
279                                </button> 
280                            </#if> 
281                        </#list> 
282                    </#if> 
283                    <#-- VIDEOS --> 
284                    <#if video_gallery.getSiblings()?has_content > 
285                        <#list video_gallery.getSiblings() as curVideoGalley > 
286                            <#if curVideoGalley.video_gallery_file.getData()?has_content > 
287                                <#assign gtmTextFormat = curVideoGalley.video_gallery_type.getData()?replace(" ", "-")?cap_first /> 
288                                <button class="corporate--case--gallery--chip" data-gtm-block-name="Multimedia" data-gtm-event="clickfilter" data-gtm-event-label='${gtmTextFormat}' data-fancybox-trigger="${curVideoGalley.video_gallery_type.getData()?replace(' ', '-')}"> 
289                                    <#if (curVideoGalley.video_gallery_type.getData())?has_content> 
290                                        <@corporate.mlxlanguage key='mlx.mediabar.${curVideoGalley.video_gallery_type.getData()}' /> 
291                                    <#else> 
292                                        <@corporate.mlxlanguage key='mlx.mediabar.videos' /> 
293                                    </#if>     
294                                    <span class="corporate--case--gallery--badge">${typesCounter?filter(x -> x = curVideoGalley.video_gallery_type.getData()?replace(' ', '-'))?size}</button> 
295                                </button> 
296                            </#if> 
297                        </#list> 
298                    </#if> 
299                </div> 
300            </#if> 
301 
302            <div class="corporate--case--gallery--mosaic"> 
303                <#if (firstImageGallery.src)?has_content> 
304                    <figure class="corporate--case--gallery--figure-main" data-gtm-event="modal" data-gtm-event-label="open-product-gallery"> 
305                        <img class="corporate--case--gallery--image" src="${firstImageGallery.src!''}" alt="${firstImageGallery.title!''}" onclick="Fancybox.fromOpener('#fancyGallery [data-fancybox]')"> 
306                    </figure> 
307                </#if> 
308                 
309                <#if (firstImageGallery.title)?has_content> 
310                    <div class="corporate--case--gallery--ribbon"> 
311                        <p> 
312                            ${firstImageGallery.title} 
313                            <button class="corporate--case--gallery--media-button"> 
314                                ${corporate.img(cdn + '/o/corporate-theme/images/icons/ico-open-modal.svg', false,'class="corporate--case--gallery--media-button-image" alt="Gallery Media Button" width="18" height="18"')} 
315                            </button> 
316                        </p> 
317                    </div> 
318                </#if> 
319            </div> 
320        </div> 
321    </div> 
322</#if> 
323 
324 
325<#--RELATED PRODUCTS--> 
326<#assign productStrKeys = ["PRODUCT-STR", "SOFTWARE-SOLUTIONS-PRODUCTS-STR"] /> 
327<#assign productRelated = mlxAssetHelperService.getRelatedArticlesByStructure(groupId, articleId, productStrKeys) /> 
328<#if productRelated?has_content> 
329    <div class="corporate--case--relateds--container"> 
330        <h3 class="corporate--case--relateds--title"><@corporate.mlxlanguage key="mlx.practical-case.products" /></h3> 
331        <div class="corporate--case--relateds"> 
332            <#list productRelated as product> 
333                <#assign productImageContentValues = (mlxJournalHelperService.getStructureFieldValues(product, locale))!{}  /> 
334 
335                <#assign productImageContent = (productImageContentValues["list_imageFieldSet"])!{}  /> 
336                <#assign productImageContent = productImageContent.list_image!""  /> 
337 
338                <#assign productName = (productImageContentValues["name"]?string)!"" /> 
339                <#if !(productName?ends_with("*"))> 
340                    <#assign productUrl = mlxUrlUtilService.getUrlByJournalArticle(product,locale, groupId)?string /> 
341                    <#assign productMasterName = mlxMastersHelperService.getMasterNameByJournalArticle(product) /> 
342                    <div class="corporate--case--relateds--item"> 
343                        <#if productImageContent?has_content> 
344                            <#assign productImage = jsonFactoryUtil.createJSONObject(productImageContent) /> 
345                        </#if> 
346                        <#if productImage?has_content> 
347                            <#assign fileEntry = mlxDLFileEntryHelperService.getDLFileEntry(productImage.uuid, globalGroupId) /> 
348                            <#assign productImageUrl = mlxUrlUtilService.getLRUrl(fileEntry) /> 
349                            <#assign urlParamConcat = productImageUrl?contains("?")?then("&","?")> 
350                            <figure class="corporate--case--relateds--item--figure"> 
351                                ${corporate.img(productImageUrl+urlParamConcat+'imwidth=320&imdensity=1', true, 'alt="' + productName + '"', 'title="' + productName + '"', 'class="corporate--case--relateds--item--image"')} 
352                            </figure> 
353                        </#if> 
354                        <div class="corporate--case--relateds--item--content"> 
355                            <a href="${productUrl}" class="corporate--case--relateds--item--link" title="${productName}" data-content-master="${productMasterName}" data-content-structure="${product.getDDMStructure().getStructureKey()}">${productName}</a> 
356                        </div> 
357                    </div> 
358                </#if> 
359            </#list> 
360        </div> 
361    </div> 
362</#if> 
363 
364<#-- DATOS ESTRUCTURADOS SEO JSON+LD --> 
365 
366<#assign article = mlxAssetHelperService.fetchLatestApprovedArticle(groupId, .vars["reserved-article-id"].getData()) /> 
367<#assign articleUrl =  mlxUrlUtilService.getUrlByJournalArticle(article, locale, groupId)?string /> 
368<#assign domain = themeDisplay.getPortalDomain()  />  
369<#assign currentUrl = "https://"+ domain + articleUrl /> 
370 
371<#--Valorar si hacerlo por el siteName o por el dominio. De momento lo haremos por dominio--> 
372<#assign organizationName = 'Mecalux' /> 
373<#if (domain?contains("us")) || (domain?contains("interlake")) > 
374    <#assign organizationName = 'Interlake Mecalux' /> 
375</#if> 
376 
377<#-- logo --> 
378<#assign logo="/documents/20128/3456912/Mecalux-logo_600x60px.jpg/04c628fa-bb4c-0e81-75c9-2e598563979d?t=1582118551000" /> 
379<#if (domain?contains("es")) || (domain?contains("mecalux.es")) > 
380	<#assign logo="/documents/20128/3456912/MecaluxEsmena-logo_600x60px.jpg/55173d2f-aadd-3f09-d3fb-456a758b3bd6?t=1582118551000" /> 
381</#if> 
382<#if (domain?contains("us")) || (domain?contains("interlake")) > 
383	<#assign logo="/documents/20128/3456912/InterlakeMecalux-logo_600x60px.jpg/48f97d72-4230-e18c-9424-b06fae217c90?t=1582118551000" /> 
384</#if> 
385 
386<script type="text/javascript"> 
387    window.addEventListener('load', function() { 
388     
389        var metaTag = document.querySelector("meta[property='og:image']"); 
390        var content = metaTag.getAttribute('content'); 
391 
392        var imageSeo = '${list_image.getData()}' || content; 
393         
394        var image = new Image(); 
395        image.src = imageSeo; 
396         
397        image.onload = function() { 
398          var imageWidth = this.width; 
399          var imageHeight = this.height; 
400           
401          var domain = `https://${domain}`; 
402          var currentUrl = "${currentUrl}"; 
403          var headline = "${.vars["name"].getData()}"; 
404          var description = "${html_description.getData()}"; 
405          var socialImage = content; 
406          var datePublished = "${(article.getDisplayDate()?string['dd/MM/yyyy'])!''}"; 
407          var organizationName = "${organizationName}"; 
408          var logo = "${logo}"; 
409         
410          var schema =  { 
411                "@context": "https://schema.org", 
412                "@type": "Article", 
413                "mainEntityOfPage": { 
414                    "@type": "WebPage", 
415                    "@id": currentUrl 
416                }, 
417                "headline": headline, 
418                "description": description, 
419                "image": { 
420                    "@type": "ImageObject", 
421                    "url": imageSeo, 
422                    "width": imageWidth, 
423                    "height": imageHeight 
424                }, 
425                "datePublished": datePublished, 
426                "dateModified": datePublished, 
427                "author": { 
428                    "@type": "Organization", 
429                    "name": organizationName, 
430                    "url": domain 
431                }, 
432                "publisher": { 
433                    "@type": "Organization", 
434                    "name": organizationName, 
435                    "logo": { 
436                        "@type": "ImageObject", 
437                        "url": logo, 
438                        "width": 600, 
439                        "height": 60 
440
441
442
443           
444          var script = document.createElement('script'); 
445          script.type = 'application/ld+json'; 
446          script.text = JSON.stringify(schema); 
447           
448          document.querySelector('body').appendChild(script); 
449        }; 
450    }); 
451</script> 

Demandez conseil à un expert