Wystąpił błąd podczas przetwarzania szablonu.
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 pageinfo = mlxUrlUtilService...  [in template "20101#20128#PRODUCT-CATEGORY-STR-DEFAULT-TEMPLATE" at line 273, column 29]
----
1<style> 
2        .corporate--banners--software-solutions--container {  
3            margin:0!important /*MKTG-488 (retirar margin a freebanners Easy en singleTab Product)*/ 
4
5</style> 
6 
7		<#assign cdn = (mlxUrlUtilService.getCdn(groupId))!"" /> 
8		<#assign globalGroupId = mlxConstants.getLongConstant("GroupIds","GLOBAL")/> 
9		 
10    <#assign heading = .vars["name"].getData() /> 
11    <#assign subheading = .vars["description"].getData() /> 
12 
13    <!-- COMPROBAR SI EL PRODUCTO ESTÁ INVOCADO POR LANDING SEM Y OBTENGO NUEVOS CAMPOS ESTRUCTURA--> 
14    <#assign landingData = mlxSeoService.getLandingSEMForUrl(themeDisplay)!"" /> 
15    <#if landingData?has_content> 
16        <#assign nameLanding =  (mlxJournalHelperService.getStructureFieldValue(landingData, "h1", locale)?string)!"" /> 
17        <#assign descriptionLanding = (mlxJournalHelperService.getStructureFieldValue(landingData, "shortDescription", locale)?string)!"" /> 
18 
19        <#assign heading = nameLanding /> 
20        <#assign subheading = descriptionLanding /> 
21 
22        <!--OJO los 2 siguientes valores son campos repetibles, por lo que podrían traer un array y no un string --> 
23        <#assign targetTextLanding = ([mlxJournalHelperService.getStructureFieldValue(landingData, "targetText", "${locale}")][0])!"" /> 
24        <#assign replaceTextLanding = (mlxJournalHelperService.getStructureFieldValue(landingData, "targetTextFieldSetFieldSet", "${locale}"))!"" /> 
25 
26    </#if> 
27 
28 
29    <!--MKTG-1262 custom productCategory webContent--> 
30    <#assign articleId = .vars["reserved-article-id"].data /> 
31 
32    <#assign webcontentStrKey = "WEB-CONTENT-STR" /> 
33    <#assign webcontentStrKeyRelated = mlxAssetHelperService.getRelatedArticlesByStructure(groupId, articleId, webcontentStrKey) /> 
34 
35    <#if webcontentStrKeyRelated?has_content> 
36        <#list webcontentStrKeyRelated as webContentRelated > 
37                <#assign webcontentStrKeyRelated_content = mlxJournalHelperService.getStructureFieldValue(webContentRelated,"content","${locale}") /> 
38                ${webcontentStrKeyRelated_content} 
39        </#list> 
40    <#else> 
41        <header class="corporate--product-category--header--container"> 
42            <div class="corporate--product-category--header">    
43                <h1 class="corporate--product-category--header--heading">${heading}</h1> 
44                <p class="corporate--product-category--header--subheading">${subheading}</p> 
45            </div> 
46        </header> 
47    </#if> 
48 
49 
50    <#assign article = mlxAssetHelperService.fetchLatestApprovedArticle(groupId, .vars["reserved-article-id"].getData()) />  
51    <#assign articleCats = mlxAssetHelperService.getAssetCategoryListByJournalArticle(article) /> 
52 
53    <#-- Cambiar el strKey con el correspondiente del entorno --> 
54    <#assign productStrKey = "PRODUCT-STR" /> 
55    <#-- Cambiar el strKey con el correspondiente del entorno --> 
56    <#assign productCategoryStrKey = "PRODUCT-CATEGORY-STR" /> 
57    <#-- Cambiar con el categoryId de Soluciones de almacenaje correspondiente del entorno --> 
58    <#assign whsCatId = 396289 /> 
59 
60    <#assign catId = mlxCategorizationService.getPartialHierarchyForJournalArticle(themeDisplay.getUserId(), groupId, locale, article,[productStrKey, productCategoryStrKey]).getCategoryId() /> 
61    <#assign catProds = mlxCategorizationService.getPartialHierarchyForJournalArticle(themeDisplay.getUserId(), groupId, locale, article, [productStrKey]).getChilds() /> 
62 
63    <#if catProds?has_content > 
64 
65        <#assign article = mlxAssetHelperService.fetchLatestApprovedArticle(groupId, .vars["reserved-article-id"].getData()) /> 
66        <#assign masterName = mlxMastersHelperService.getMasterNameByJournalArticle(article) /> 
67 
68        <#if masterName == "********Automated-warehouses"> <#------ anulamos este test (hasta migrar a 7.4)  ------> 
69 
70            <style> 
71                /*RESTYLE CARDS*/ 
72                @charset "UTF-8";@media screen and (min-width: 0) and (max-width: 479px) {.corporate--product-category--form-budget--subtitle {font-size: 10.575px;line-height: 1.3;}}@media screen and (min-width: 480px) and (max-width: 959px) {.corporate--product-category--form-budget--subtitle {font-size: 12px;line-height: 1.3;}}@media screen and (min-width: 960px) and (max-width: 1299px) {.corporate--product-category--form-budget--subtitle {font-size: 12px;line-height: 1.3;}}@media screen and (min-width: 1300px) and (max-width: 1599px) {.corporate--product-category--form-budget--subtitle {font-size: 12px;line-height: 1.3;}}@media screen and (min-width: 1600px) and (max-width: 10000000px) {.corporate--product-category--form-budget--subtitle {font-size: 12px;line-height: 1.3;}}@media screen and (min-width: 0) and (max-width: 479px) {#upload-btn, .corporate--product-category--form-budget--attach-button {font-size: 12.425625px;line-height: 1.3;}}@media screen and (min-width: 480px) and (max-width: 959px) {#upload-btn, .corporate--product-category--form-budget--attach-button {font-size: 14.4px;line-height: 1.3;}}@media screen and (min-width: 960px) and (max-width: 1299px) {#upload-btn, .corporate--product-category--form-budget--attach-button {font-size: 14.4px;line-height: 1.3;}}@media screen and (min-width: 1300px) and (max-width: 1599px) {#upload-btn, .corporate--product-category--form-budget--attach-button {font-size: 14.4px;line-height: 1.3;}}@media screen and (min-width: 1600px) and (max-width: 10000000px) {#upload-btn, .corporate--product-category--form-budget--attach-button {font-size: 14.4px;line-height: 1.3;}}@media screen and (min-width: 0) and (max-width: 479px) {.corporate--product-category--quote-info--item-link, .corporate--product-category--best-practices-info--item-link, .corporate--product-category--phone-contact-info--item-link, .corporate--product-category--form-budget--button {font-size: 14.600109375px;line-height: 1.3;}}@media screen and (min-width: 480px) and (max-width: 959px) {.corporate--product-category--quote-info--item-link, .corporate--product-category--best-practices-info--item-link, .corporate--product-category--phone-contact-info--item-link, .corporate--product-category--form-budget--button {font-size: 17.28px;line-height: 1.3;}}@media screen and (min-width: 960px) and (max-width: 1299px) {.corporate--product-category--quote-info--item-link, .corporate--product-category--best-practices-info--item-link, .corporate--product-category--phone-contact-info--item-link, .corporate--product-category--form-budget--button {font-size: 17.28px;line-height: 1.3;}}@media screen and (min-width: 1300px) and (max-width: 1599px) {.corporate--product-category--quote-info--item-link, .corporate--product-category--best-practices-info--item-link, .corporate--product-category--phone-contact-info--item-link, .corporate--product-category--form-budget--button {font-size: 17.28px;line-height: 1.3;}}@media screen and (min-width: 1600px) and (max-width: 10000000px) {.corporate--product-category--quote-info--item-link, .corporate--product-category--best-practices-info--item-link, .corporate--product-category--phone-contact-info--item-link, .corporate--product-category--form-budget--button {font-size: 17.28px;line-height: 1.3;}}@media screen and (min-width: 0) and (max-width: 479px) {.corporate--product-category--relateds-links--heading {font-size: 17.1551285156px;line-height: 1.3;}}@media screen and (min-width: 480px) and (max-width: 959px) {.corporate--product-category--relateds-links--heading {font-size: 20.736px;line-height: 1.3;}}@media screen and (min-width: 960px) and (max-width: 1299px) {.corporate--product-category--relateds-links--heading {font-size: 20.736px;line-height: 1.3;}}@media screen and (min-width: 1300px) and (max-width: 1599px) {.corporate--product-category--relateds-links--heading {font-size: 20.736px;line-height: 1.3;}}@media screen and (min-width: 1600px) and (max-width: 10000000px) {.corporate--product-category--relateds-links--heading {font-size: 20.736px;line-height: 1.3;}}@media screen and (min-width: 0) and (max-width: 479px) {.corporate--product-category--quote-info--item-heading, .corporate--product-category--best-practices-info--item-heading, .corporate--product-category--phone-contact-info--item-heading {font-size: 20.1572760059px;line-height: 1.3;}}@media screen and (min-width: 480px) and (max-width: 959px) {.corporate--product-category--quote-info--item-heading, .corporate--product-category--best-practices-info--item-heading, .corporate--product-category--phone-contact-info--item-heading {font-size: 24.8832px;line-height: 1.3;}}@media screen and (min-width: 960px) and (max-width: 1299px) {.corporate--product-category--quote-info--item-heading, .corporate--product-category--best-practices-info--item-heading, .corporate--product-category--phone-contact-info--item-heading {font-size: 24.8832px;line-height: 1.3;}}@media screen and (min-width: 1300px) and (max-width: 1599px) {.corporate--product-category--quote-info--item-heading, .corporate--product-category--best-practices-info--item-heading, .corporate--product-category--phone-contact-info--item-heading {font-size: 24.8832px;line-height: 1.3;}}@media screen and (min-width: 1600px) and (max-width: 10000000px) {.corporate--product-category--quote-info--item-heading, .corporate--product-category--best-practices-info--item-heading, .corporate--product-category--phone-contact-info--item-heading {font-size: 24.8832px;line-height: 1.3;}}@media screen and (min-width: 0) and (max-width: 479px) {.corporate--product-category--products--item--heading, .corporate--product-category--header--heading {font-size: 27.8296391856px;line-height: 1.3;}}@media screen and (min-width: 480px) and (max-width: 959px) {.corporate--product-category--products--item--heading, .corporate--product-category--header--heading {font-size: 35.831808px;line-height: 1.3;}}@media screen and (min-width: 960px) and (max-width: 1299px) {.corporate--product-category--products--item--heading, .corporate--product-category--header--heading {font-size: 35.831808px;line-height: 1.3;}}@media screen and (min-width: 1300px) and (max-width: 1599px) {.corporate--product-category--products--item--heading, .corporate--product-category--header--heading {font-size: 35.831808px;line-height: 1.3;}}@media screen and (min-width: 1600px) and (max-width: 10000000px) {.corporate--product-category--products--item--heading, .corporate--product-category--header--heading {font-size: 35.831808px;line-height: 1.3;}}.corporate--product-category--header--container {position: relative;max-width: 100%;padding: 1.4rem 20px 1.1rem;margin: auto;background-color: #ffffff;display: flex;flex-direction: column;justify-content: center;border-bottom: 1px solid #eeeeee;}@media screen and (max-width: 61.19rem) {.corporate--product-category--header--container {padding: 2rem;}}@media (max-width: 479px) {.corporate--product-category--header--container {padding: 2rem 1rem;}}.corporate--product-category--header {position: relative;text-align: left;}@media screen and (max-width: 61.19rem) {.corporate--product-category--header {text-align: center;max-width: 100%;}}.corporate--product-category--header--heading {color: #222222;display: block;margin-bottom: 0;margin-top: 0;font-family: "Raleway", "Helvetica Neue", Arial, Helvetica, sans-serif;font-weight: bold;background: initial;line-height: inherit;text-rendering: optimizeLegibility;}@media (min-width: 960px) {.corporate--product-category--header--subheading {margin-top: 0;}}.corporate--product-category--header--subheading-highlighted {font-size: 1.3em;}.corporate--product-category--products {font-family: "Raleway", "Helvetica Neue", Arial, Helvetica, sans-serif;}.corporate--product-category--products--container {width: 100%;padding: 4rem 7rem;}@media (max-width: 1299px) {.corporate--product-category--products--container {padding: 3rem;}}@media (max-width: 479px) {.corporate--product-category--products--container {padding: 2rem 1rem;}}.corporate--product-category--products--list {padding-left: 0;list-style-type: none;margin: 0 -0.5rem;}@media (min-width: 768px) {.corporate--product-category--products--list {display: flex;flex-wrap: wrap;justify-content: center;margin: 0 -1.25rem;}}.corporate--product-category--products--item {width: 100%;padding: 0.75rem;}@media (min-width: 960px) {.corporate--product-category--products--item {flex: 0 1 50%;}}@media (min-width: 1300px) {.corporate--product-category--products--item {flex: 1 0 33%;}}.corporate--product-category--products--item--card {width: 100%;background-color: #333333;position: relative;height: 100%;min-height: 300px;border-radius: 0.25rem;box-shadow: 0 0 6px -2px rgba(0, 0, 0, 0.3);overflow: hidden;}.corporate--product-category--products--item--figure {position: absolute;height: 100%;width: 100%;margin: 0;top: 0;bottom: 0;}.corporate--product-category--products--item--figure:before {content: "";display: block;position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.25));}.corporate--product-category--products--item--image {height: 100%;width: 100%;object-fit: cover;}.corporate--product-category--products--item--wrapper {padding: 2.5rem;position: relative;z-index: 1;max-width: 600px;}.corporate--product-category--products--item--heading {color: #ffffff;display: block;margin-bottom: 2rem;margin-top: 0;font-family: "Raleway", "Helvetica Neue", Arial, Helvetica, sans-serif;font-weight: bold;text-transform: uppercase;background: initial;line-height: inherit;}.corporate--product-category--products--item--heading:before {content: " ";display: flex;padding-top: 0.7rem;width: 40px;border-top: 4px solid #fa6900;}.corporate--product-category--products--item--list {padding: 0;}.corporate--product-category--products--item--list-item {background-color: #fafafa;border-radius: 0.25rem;margin-bottom: 0.5rem;font-weight: bold;box-shadow: 0 0 6px -2px rgba(0, 0, 0, 0.3);}.corporate--product-category--products--item--list-link {color: #006ece;margin-bottom: 0;margin-top: 0;padding: 1rem;text-decoration: none;display: inline-flex;justify-content: center;align-items: center;display: flex;justify-content: space-between;}.corporate--product-category--products--item--list-link:hover {color: #2a9cff;}.corporate--product-category--products--item--list-link:hover:after {filter: brightness(130%);}.corporate--product-category--products--item--list-link:after {content: "";width: 1rem;height: 1rem;background-image: url("data:image/svg+xml,%0A%3Csvg viewBox='0 0 6 9' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' clip-rule='evenodd' stroke-linejoin='round' stroke-miterlimit='2'%3E%3Cpath d='M.848.001c.182.022.352.1.489.226l3.605 3.606a.833.833 0 01.001 1.112L1.336 8.552c-.22.198-.543.296-.838.172-.477-.201-.639-.898-.285-1.294l3.041-3.041C2.199 3.334.965 2.41.104 1.212-.189.783.168.057.791.001a.542.542 0 01.057 0z' fill='%23006ece'/%3E%3C/svg%3E");background-repeat: no-repeat;background-position: 100% 75%;background-size: 0.5rem;}.corporate--product-category--products--item--link {text-transform: uppercase;color: #eeeeee;margin-bottom: 0;margin-top: 0;padding: 1.5rem 0 0;text-decoration: none;display: inline-flex;justify-content: center;align-items: center;align-items: flex-start;font-weight: bold;}.corporate--product-category--products--item--link:hover {color: #f3f3f3;}.corporate--product-category--products--item--link:hover:after {filter: brightness(130%);}.corporate--product-category--products--item--link:after {content: "";width: 1rem;height: 1rem;background-image: url("data:image/svg+xml,%0A%3Csvg viewBox='0 0 6 9' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' clip-rule='evenodd' stroke-linejoin='round' stroke-miterlimit='2'%3E%3Cpath d='M.848.001c.182.022.352.1.489.226l3.605 3.606a.833.833 0 01.001 1.112L1.336 8.552c-.22.198-.543.296-.838.172-.477-.201-.639-.898-.285-1.294l3.041-3.041C2.199 3.334.965 2.41.104 1.212-.189.783.168.057.791.001a.542.542 0 01.057 0z' fill='%23fff'/%3E%3C/svg%3E");background-repeat: no-repeat;background-position: 100% 75%;background-size: 0.5rem;}.corporate--product-category--products--item--link:hover {color: white;}.corporate--product-category--relateds-links--container {background-color: #005198;padding: 5rem 2rem;}@media (max-width: 479px) {.corporate--product-category--relateds-links--container {padding: 2rem 0;}}.corporate--product-category--relateds-links {text-align: center;}.corporate--product-category--relateds-links--heading {color: #ffffff;display: block;margin-bottom: 1rem;margin-top: 0;font-family: "Raleway", "Helvetica Neue", Arial, Helvetica, sans-serif;font-weight: bold;background: initial;line-height: inherit;text-transform: uppercase;}.corporate--product-category--relateds-links--links-list {padding: 0;margin: 0;display: flex;flex-direction: row;justify-content: space-around;flex-wrap: wrap;}.corporate--product-category--relateds-links--links-list-item {list-style-type: none;width: 22%;display: flex;flex-direction: column;flex: 1 0 auto;margin: 10px 20px;}@media (max-width: 959px) {.corporate--product-category--relateds-links--links-list-item {width: 40%;}}.corporate--product-category--relateds-links--link {font-family: "Raleway", "Helvetica Neue", Arial, Helvetica, sans-serif;font-weight: bold;color: #006ece;margin-bottom: 0;margin-top: 0;padding: 1rem 1.5rem;text-decoration: none;display: flex;flex-direction: column;flex: 1 0 auto;justify-content: center;box-shadow: 0 0 6px -2px rgba(0, 0, 0, 0.3);background-color: #ffffff;word-wrap: break-word;}.corporate--product-category--relateds-links--link:hover {color: #2a9cff;}.corporate--product-category--relateds-links--link:hover:after {filter: brightness(130%);}.corporate--product-category--form-budget--container {margin: auto;text-align: center;background: #eeeeee;padding: 0.5rem;}@media (min-width: 960px) {.corporate--product-category--form-budget--container {padding: 0 2rem;max-width: 1400px;margin: auto;}}.corporate--product-category--form-budget--button {background: #0070d3;border-radius: 0.4rem;border: none;color: #ffffff;cursor: pointer;padding: 1rem 2rem;text-decoration: none;font-family: "Raleway", "Helvetica Neue", Arial, Helvetica, sans-serif;font-weight: bold;display: inline-block;float: left;clear: both;}.corporate--product-category--form-budget--button:hover {background-color: #0188ff;transition: all 0.4s ease;color: #ffffff;}.corporate--product-category--form-budget--button:active {background: #002c54;color: #ffffff;}.corporate--product-category--form-budget select, .corporate--product-category--form-budget textarea, .corporate--product-category--form-budget [type=text], .corporate--product-category--form-budget [type=password], .corporate--product-category--form-budget [type=date], .corporate--product-category--form-budget [type=datetime], .corporate--product-category--form-budget [type=datetime-local], .corporate--product-category--form-budget [type=month], .corporate--product-category--form-budget [type=week], .corporate--product-category--form-budget [type=email], .corporate--product-category--form-budget [type=number], .corporate--product-category--form-budget [type=search], .corporate--product-category--form-budget [type=tel], .corporate--product-category--form-budget [type=time], .corporate--product-category--form-budget [type=url], .corporate--product-category--form-budget [type=color], .corporate--product-category--form-budget--textbox--textarea {display: block;width: 100%;height: 3.2rem;margin: 0;border: solid 0.125rem rgba(255, 255, 255, 0);border-radius: 0.25rem;background-color: #fff;box-shadow: none;font-size: 1rem;-webkit-transition: border-color 0.3s, color 0.3s, background-color 0.3s;transition: border-color 0.3s, color 0.3s, background-color 0.3s;resize: vertical;font-family: "Lato", "Helvetica Neue", Arial, Helvetica, sans-serif;font-weight: 400;padding: 0rem 1.25rem;line-height: 1rem;}.corporate--product-category--form-budget textarea, .corporate--product-category--form-budget--textbox--textarea {padding: 1rem 1.25rem;height: 4.3rem;}@media (max-width: 479px) {.corporate--product-category--form-budget textarea, .corporate--product-category--form-budget--textbox--textarea {height: 8rem;}}.corporate--product-category--form-budget select:focus, .corporate--product-category--form-budget textarea:focus, .corporate--product-category--form-budget [type=text]:focus, .corporate--product-category--form-budget [type=password]:focus, .corporate--product-category--form-budget [type=date]:focus, .corporate--product-category--form-budget [type=datetime]:focus, .corporate--product-category--form-budget [type=datetime-local]:focus, .corporate--product-category--form-budget [type=month]:focus, .corporate--product-category--form-budget [type=week]:focus, .corporate--product-category--form-budget [type=email]:focus, .corporate--product-category--form-budget [type=number]:focus, .corporate--product-category--form-budget [type=search]:focus, .corporate--product-category--form-budget [type=tel]:focus, .corporate--product-category--form-budget [type=time]:focus, .corporate--product-category--form-budget [type=url]:focus, .corporate--product-category--form-budget [type=color]:focus, .corporate--product-category--form-budget--textbox--textarea:focus {outline: none;border: 2px solid #468847;background-color: #fff;box-shadow: none;-webkit-transition: box-shadow 0.5s, border-color 0.25s ease-in-out;transition: box-shadow 0.5s, border-color 0.25s ease-in-out;}.corporate--product-category--form-budget {padding: 0;max-width: 1400px;margin: auto;}.corporate--product-category--form-budget--title {color: #000000;display: block;margin-bottom: 0;margin-top: 0;font-family: "Raleway", "Helvetica Neue", Arial, Helvetica, sans-serif;font-weight: bold;background: initial;line-height: inherit;text-transform: uppercase;font-size: 1rem;}@media (min-width: 960px) {.corporate--product-category--form-budget--title {font-size: 1.75rem;}}.corporate--product-category--form-budget--subtitle {color: #555555;display: block;margin-bottom: 1rem;margin-top: 0;font-family: "Raleway", "Helvetica Neue", Arial, Helvetica, sans-serif;font-weight: normal;background: initial;line-height: inherit;}.corporate--product-category--form-budget--row {margin-right: auto;margin-left: auto;display: -webkit-box;display: -ms-flexbox;display: flex;-webkit-box-orient: horizontal;-webkit-box-direction: normal;-ms-flex-flow: row wrap;flex-flow: row wrap;max-width: none;justify-content: space-between;}#upload-btn, .corporate--product-category--form-budget--attach-button {background: #C09853;border-radius: 0.4rem;border: none;color: #ffffff;cursor: pointer;padding: 0.75rem;text-decoration: none;display: inline-block;}#upload-btn:hover, .corporate--product-category--form-budget--attach-button:hover {background-color: #c9a76d;transition: all 0.4s ease;color: #ffffff;}#upload-btn:active, .corporate--product-category--form-budget--attach-button:active {background: #6c5328;color: #ffffff;}.corporate--product-category--form-budget--condition {background: initial;font-size: medium;color: #222222;margin-top: 0.3rem;margin-bottom: 0;}@media print, screen and (min-width: 48em) {.corporate--product-category--form-budget--row:last-child {margin-bottom: 0;}}.corporate--product-category--form-budget--column {-webkit-box-flex: 1;-ms-flex: 1 1 0;flex: 1 1 0;min-width: initial;}.corporate--product-category--form-budget--column--small {min-width: initial;-webkit-box-flex: 0;-ms-flex: 0 0 100%;flex: 0 0 100%;max-width: 100%;}@media print, screen and (min-width: 48em) {.corporate--product-category--form-budget--column--small {-webkit-box-flex: 0;-ms-flex: 0 0 49%;flex: 0 0 49%;max-width: 49%;}}@media print, screen and (min-width: 64em) {.corporate--product-category--form-budget--form--column--small:first-child {padding-right: 2.7rem;}}.corporate--product-category--form-budget--form--column--small:first-child {padding-right: 0;}.corporate--product-category--form-budget--textbox {position: relative;display: block;margin-bottom: 0.65rem;width: 100%;text-align: left;}.corporate--product-category--form-budget--textbox--input {display: block;margin: 0;border: solid 0.125rem rgba(255, 255, 255, 0);border-radius: 0.25rem;padding: 1rem 1.25rem;width: 100%;height: 3.2rem;font-weight: 400;font-size: 1rem;line-height: 1rem;-webkit-transition: border-color 0.3s, color 0.3s, background-color 0.3s;transition: border-color 0.3s, color 0.3s, background-color 0.3s;border-color: #e1e8ee;background-color: #fff;}.corporate--product-category--form-budget--textbox--input::-webkit-input-placeholder, .corporate--product-category--form-budget--textbox--input:-ms-input-placeholder, .corporate--product-category--form-budget--textbox--input::placeholder {color: #999999;opacity: 1;-webkit-transition: opacity 0.3s;transition: opacity 0.3s;}.corporate--product-category--form-budget--textbox--input::-moz-selection, .corporate--product-category--form-budget--textbox--input::selection {background-color: rgba(0, 0, 0, 0.5);}.corporate--product-category--form-budget--textbox--input:focus, .corporate--product-category--form-budget--textbox--input:hover {border-color: #bdc6cf !important;background-color: #fff;}.corporate--product-category--form-budget--textbox--input:focus::-webkit-input-placeholder, .corporate--product-category--form-budget--textbox--input:focus:-ms-input-placeholder, .corporate--product-category--form-budget--textbox--input:focus::placeholder {opacity: 0.1;}textarea.corporate--product-category--form-budget--textbox--input {resize: vertical;}.corporate--product-category--form-budget--email--text {display: block;margin-bottom: 1rem;font-weight: 400;font-size: 1rem;line-height: 1.5625rem;}.corporate--product-category--form-budget--email--link {text-decoration: none;cursor: pointer;display: inline-block;border-bottom: solid 0.0625rem #e1e8ee;color: #5e6977;-webkit-transition: color 0.3s;transition: color 0.3s;font-weight: 300;font-size: 1rem;line-height: 1.5625rem;}@media print, screen and (min-width: 48em) {.corporate--product-category--form-budget--email--link {font-size: 1.25rem;line-height: 1.875rem;}}@media print, screen and (min-width: 64em) {.corporate--product-category--form-budget--email--link {font-size: 1.375rem;line-height: 2rem;}}@media screen and (min-width: 75em) {.corporate--product-category--form-budget--email--link {font-size: 1.375rem;line-height: 2rem;}}.corporate--product-category--form-budget--email--link:focus, .corporate--product-category--form-budget--email--link:hover {color: #43484d;}.corporate--product-category--form-budget .corporate--product-category--form-budget--textbox--input:focus {border-color: #7dc855 !important;}.corporate--product-category--phone-contact-info--container {text-align: center;padding: 5rem 2rem;background: #0070d3;}@media (max-width: 479px) {.corporate--product-category--phone-contact-info--container {padding: 2rem 1rem;}}.corporate--product-category--phone-contact-info--item-heading {color: #ffffff;display: block;margin-bottom: 1rem;margin-top: 0;font-family: "Raleway", "Helvetica Neue", Arial, Helvetica, sans-serif;font-weight: bold;background: initial;line-height: inherit;}.corporate--product-category--phone-contact-info--item-heading-phone {text-decoration: none;margin: 0;padding: 0;color: #ffffff;}@media (max-width: 479px) {.corporate--product-category--phone-contact-info--item-heading-phone {cursor: pointer;background: #fa6900;border-radius: 5px;display: inline-block;padding: 1.2rem 2rem;}}.corporate--product-category--phone-contact-info--item-content {color: #ffffff;margin-bottom: 1rem;}.corporate--product-category--phone-contact-info--item-link {background: #f56d24;border-radius: 0.4rem;border: none;color: #ffffff;cursor: pointer;padding: 1.75rem;text-decoration: none;font-family: "Raleway", "Helvetica Neue", Arial, Helvetica, sans-serif;font-weight: bold;display: inline-block;}.corporate--product-category--phone-contact-info--item-link:hover {background-color: #f78345;transition: all 0.4s ease;color: #ffffff;}.corporate--product-category--phone-contact-info--item-link:active {background: #933807;color: #ffffff;}.corporate--product-category--best-practices-info--container {background: #fafafa;padding: 5rem 2rem;}@media (max-width: 479px) {.corporate--product-category--best-practices-info--container {padding: 2rem 1rem;}}.corporate--product-category--best-practices-info {text-align: center;}.corporate--product-category--best-practices-info--item-image {max-width: 50%;width: 50%;margin-bottom: 1rem;}@media (max-width: 959px) {.corporate--product-category--best-practices-info--item-image {max-width: 100%;width: 100%;margin-bottom: 1rem;}}.corporate--product-category--best-practices-info--item-heading {color: #000000;display: block;margin-bottom: 1rem;margin-top: 0;font-family: "Raleway", "Helvetica Neue", Arial, Helvetica, sans-serif;font-weight: bold;background: initial;line-height: inherit;}.corporate--product-category--best-practices-info--item-link {background: #0070d3;border-radius: 0.4rem;border: none;color: #ffffff;cursor: pointer;padding: 1.75rem;text-decoration: none;font-family: "Raleway", "Helvetica Neue", Arial, Helvetica, sans-serif;font-weight: bold;display: inline-block;}.corporate--product-category--best-practices-info--item-link:hover {background-color: #0188ff;transition: all 0.4s ease;color: #ffffff;}.corporate--product-category--best-practices-info--item-link:active {background: #002c54;color: #ffffff;}.corporate--product-category--best-practices-info--item-content {background: initial;max-width: calc(1400px - 20%);margin: 0 auto 1.5rem;}.corporate--product-category--quote-info--container {text-align: center;padding: 5rem 2rem;background: #0070d3;}@media (max-width: 479px) {.corporate--product-category--quote-info--container {padding: 2rem 1rem;}}.corporate--product-category--quote-info--item-heading {color: #ffffff;display: block;margin-bottom: 1rem;margin-top: 0;font-family: "Raleway", "Helvetica Neue", Arial, Helvetica, sans-serif;font-weight: bold;background: initial;line-height: inherit;}.corporate--product-category--quote-info--item-heading-phone {text-decoration: none;margin: 0;padding: 0;color: #ffffff;}@media (max-width: 479px) {.corporate--product-category--quote-info--item-heading-phone {cursor: pointer;background: #fa6900;border-radius: 5px;display: inline-block;padding: 1.2rem 2rem;}}.corporate--product-category--quote-info--item-content {color: #ffffff;margin-bottom: 1rem;}.corporate--product-category--quote-info--item-link {background: #f56d24;border-radius: 0.4rem;border: none;color: #ffffff;cursor: pointer;padding: 1.75rem;text-decoration: none;font-family: "Raleway", "Helvetica Neue", Arial, Helvetica, sans-serif;font-weight: bold;display: inline-block;}.corporate--product-category--quote-info--item-link:hover {background-color: #f78345;transition: all 0.4s ease;color: #ffffff;}.corporate--product-category--quote-info--item-link:active {background: #933807;color: #ffffff;} 
73            </style> 
74 
75            <div class="corporate--product-category--products"> 
76                <div class="corporate--product-category--products--container"> 
77                    <ul class="corporate--product-category--products--list"> 
78                        <#list catProds as rp > 
79                            <#assign journalArticle = rp.getJournalArticle() /> 
80                            <#-- Para que en el listado de articulos no aparezca el mismo desde el que se hace la llamada --> 
81                            <#if (article.getArticleId() != journalArticle.getArticleId()) > 
82                                <li class="corporate--product-category--products--item" style="padding:0"> 
83                                    <#assign journalArticleValues = mlxJournalHelperService.getStructureFieldValues(journalArticle, locale) /> 
84                                    <#assign title = journalArticleValues["name"]!"" /> 
85                                    <#if ("${title!}" == "") > 
86                                        <#assign title = journalArticle.getTitle(locale) /> 
87                                    </#if> 
88 
89                                    <#if landingData?has_content> <!-- Si es landingSEM itero y reemplazo según nº de targetText --> 
90                                        <#if (targetTextLanding?has_content) && (replaceTextLanding?has_content)> 
91                                            <#list targetTextLanding as target> 
92                                                <#if replaceTextLanding?is_enumerable == true> 
93                                                    <#assign title = title?replace(target.targetText,replaceTextLanding[target?index].replaceText) /> 
94                                                <#else> 
95                                                    <#assign title = title?replace(target.targetText,replaceTextLanding.replaceText) /> 
96                                                </#if> 
97                                            </#list> 
98                                        </#if> 
99                                    </#if> 
100 
101                                     
102                                    <#assign product_master = mlxMastersHelperService.getMasterNameByJournalArticle(journalArticle) /> 
103                                    <#if (journalArticle.getDDMStructure().getStructureKey() == productCategoryStrKey) > 
104                                        <#assign description = journalArticleValues["description"]!"" /> 
105                                        <#assign imageObj = journalArticleValues["imageFieldSet"]!"" /> 
106                                        <#assign imageObj = (imageObj.image?eval)!"" /> 
107                                    <#else> 
108                                        <#assign description = journalArticleValues["list_description"]!"" /> 
109                                        <#assign imageObj = journalArticleValues["list_imageFieldSet"]!""  /> 
110                                        <#assign imageObj = (imageObj.list_image?eval)!""  /> 
111                                    </#if> 
112 
113                                    <#if landingData?has_content> <!-- Si es landingSEM itero y reemplazo según nº de targetText --> 
114                                        <#if (targetTextLanding?has_content) && (replaceTextLanding?has_content)> 
115                                            <#list targetTextLanding as target> 
116                                                <#if replaceTextLanding?is_enumerable == true> 
117                                                    <#assign description = description?replace(target.targetText,replaceTextLanding[target?index].replaceText) /> 
118                                                <#else> 
119                                                    <#assign description = description?replace(target.targetText,replaceTextLanding.replaceText) /> 
120                                                </#if> 
121                                            </#list> 
122                                        </#if> 
123                                    </#if> 
124 
125                                    <article class="corporate--product-category--products--item--card"> 
126                                         
127                                        <figure class="corporate--product-category--products--item--figure"> 
128																				 
129																				    <#assign image = mlxDocumentsHelperService.getDocumentUrlFromUUID(imageObj.uuid, "${locale}")!"" /> 
130 
131																						<#if imageObj.uuid?has_content > 
132																								<#assign fileEntry = mlxDLFileEntryHelperService.getDLFileEntry(imageObj.uuid, globalGroupId) /> 
133																								<#assign docUrl = (mlxExpandoService.getExpandoValueForClass("com.liferay.document.library.kernel.model.DLFileEntry","mlxDocumentUrl",fileEntry.getFileVersion().getFileVersionId()).getString(locale))!""/> 
134																								<#if docUrl == ''> 
135																										<#assign imgUrl = image /> 
136																								<#else> 
137																										<#assign imgUrl = cdn + docUrl + "." + fileEntry.getVersion() + "." + fileEntry.getExtension() /> 
138																								</#if> 
139	 
140																								<#assign imgWidth = '320'> 
141																								<#assign imgTitle = title> 
142																								<#assign imgAlt = title> 
143																								<#assign imgClass = 'corporate--product-category--products--item--image'> 
144																								<#assign urlParamConcat = imgUrl?contains("?")?then("&","?")> 
145																								${corporate.img(imgUrl + urlParamConcat + 'imwidth=' + imgWidth + '', false, 
146																																'alt="' + imgAlt + '"', 'title="' + imgTitle + '"', 'class="' + imgClass + '"' 
147																																'srcset="' + imgUrl + urlParamConcat + 'imwidth=320&imdensity=1 320w,' +  
148																																						 imgUrl + urlParamConcat + 'imwidth=640&imdensity=1 640w,' +  
149																																						 imgUrl + urlParamConcat + 'imwidth=640&imdensity=1 1024w"')} 
150																						</#if> 
151                                         </figure> 
152                                        <div class="corporate--product-category--products--item--wrapper"> 
153                                        <#assign pageinfo =  mlxUrlUtilService.getUrlByJournalArticle(journalArticle, locale, groupId)?string /> 
154                                                     
155                                            <a href="${pageinfo}" title="${title}" class="" style="text-decoration:none;color:inherit" data-content-master="${product_master}" data-content-structure="${journalArticle.getDDMStructure().getStructureKey()}"> 
156                                                     
157                                                <h2 class="corporate--product-category--products--item--heading"> 
158                                                    ${title} 
159                                                </h2> 
160 
161                                            </a> 
162 
163                                     
164                                            <#if (journalArticle.getDDMStructure().getStructureKey() == productStrKey) || (catId == whsCatId) > 
165                                                <p class="corporate--product-category--products--subheading">${description}</p> 
166                                            <#else> 
167                                             
168                                            <#if rp.getChilds()?has_content > 
169                                                 
170                                                <ul class="corporate--product-category--products--item--list"> 
171                                                 
172                                                    <#assign childsJa = [] > 
173                                                 
174                                                    <#list rp.getChilds() as prod > 
175                                                        <#assign prodJa = prod.getJournalArticle() /> 
176                                                        <#assign prodJaOrder = mlxJournalHelperService.getStructureFieldValue(prodJa, "order", locale) /> 
177                                                         
178                                                        <#assign prodObjJa = {"order": prodJaOrder, "ja": prodJa} /> 
179                                                         
180                                                        <#assign childsJa = childsJa + [prodObjJa] > 
181                                                    </#list> 
182 
183                                                    <#list childsJa?sort_by("order") as item > 
184                                                        <#assign ja = item.ja > 
185                                                        <#assign product_master = mlxMastersHelperService.getMasterNameByJournalArticle(ja) /> 
186                                                        <#assign pageinfo =  mlxUrlUtilService.getUrlByJournalArticle(ja, locale, groupId)?string /> 
187                                                        <#assign title = mlxJournalHelperService.getStructureFieldValue(ja, "name", locale) /> 
188                                                        <#if ("${title!}" == "") > 
189                                                            <#assign title = ja.getTitle(locale) /> 
190                                                        </#if> 
191 
192                                                        <#if landingData?has_content> <!-- Si es landingSEM itero y reemplazo según nº de targetText --> 
193                                                            <#if (targetTextLanding?has_content) && (replaceTextLanding?has_content)> 
194                                                                <#list targetTextLanding as target> 
195                                                                    <#if replaceTextLanding?is_enumerable == true> 
196                                                                        <#assign title = title?replace(target.targetText,replaceTextLanding[target?index].replaceText) /> 
197                                                                    <#else> 
198                                                                        <#assign title = title?replace(target.targetText,replaceTextLanding.replaceText) /> 
199                                                                    </#if> 
200                                                                </#list> 
201                                                            </#if> 
202                                                        </#if> 
203 
204                                                        <li class="corporate--product-category--products--item--list-item"> 
205                                                            <h2 style="margin:0;font-size:initial"> 
206                                                                <a href="${pageinfo}" title='${title}' class="corporate--product-category--products--item--list-link" data-content-master="${product_master}" data-content-structure="${ja.getDDMStructure().getStructureKey()}"> 
207                                                                    ${title} 
208                                                                </a> 
209                                                            </h2> 
210                                                        </li> 
211                                                    </#list> 
212                                                 
213                                                </ul> 
214                                            <#else> 
215                                                <p class="corporate--product-category--products--item--subheading">${description}</p> 
216                                            </#if> 
217                                             
218 
219                                        </div> 
220                                         
221                                         
222                                         
223                                        <#-- TODO: Actualizar código cuando se aplique en PRE (https://jira.mecalux.com/browse/CORPO-8507) 
224                                         
225                                        <#if rp.getChilds()?has_content > 
226                                             
227                                            <ul class="corporate--product-category--products--relateds"> 
228 
229                                                <#list rp.getChilds() as prod > 
230                                                    <#assign ja = prod.getJournalArticle() /> 
231                                                    <#assign product_master = mlxMastersHelperService.getMasterNameByJournalArticle(ja) /> 
232                                                    <#assign pageinfo =  mlxUrlUtilService.getUrlByJournalArticle(ja, locale, groupId)?string /> 
233                                                    <#assign title = mlxJournalHelperService.getStructureFieldValue(ja, "name", locale) /> 
234                                                    <#if ("${title!}" == "") > 
235                                                        <#assign title = ja.getTitle(locale) /> 
236                                                    </#if> 
237                                                    <li class="corporate--product-category--products--relateds-item"> 
238                                                        <a href="${pageinfo}" title='${title}' class="corporate--product-category--products--relateds-link" data-content-master="${product_master}" data-content-structure="${ja.getDDMStructure().getStructureKey()}"> 
239                                                            <h3 class="corporate--product-category--products--relateds-link-title">${title}</h3> 
240                                                        </a> 
241                                                    </li> 
242                                                </#list> 
243                                                 
244                                            </ul> 
245                                        <#else> 
246                                            <p class="corporate--product-category--products--item--subheading">${description}</p> 
247                                        </#if> 
248                                         
249                                        --> 
250 
251                                        </article> 
252                                         
253                                    </#if> 
254 
255                                </li> 
256                            </#if> 
257                             
258                        </#list>  
259                    </div> 
260                </div> 
261 
262            </div> 
263 
264        <#else> 
265 
266            <div class="corporate--product-category--products--container"> 
267                <div class="corporate--product-category--products"> 
268                    <#list catProds as rp > 
269                        <#assign journalArticle = rp.getJournalArticle() /> 
270                        <#-- Para que en el listado de articulos no aparezca el mismo desde el que se hace la llamada --> 
271                        <#if (article.getArticleId() != journalArticle.getArticleId()) > 
272                            <article class="corporate--product-category--products--item"> 
273                            <#assign pageinfo =  mlxUrlUtilService.getUrlByJournalArticle(journalArticle, locale, groupId)?string /> 
274                            <#assign journalArticleValues = mlxJournalHelperService.getStructureFieldValues(journalArticle, locale) /> 
275                            <#assign title = journalArticleValues["name"]!"" /> 
276                            <#if ("${title!}" == "") > 
277                                <#assign title = journalArticle.getTitle(locale) /> 
278                            </#if> 
279                             
280                            <#if (landingData?has_content) && (targetTextLanding?has_content)> <!-- Si es landingSEM itero y reemplazo nºveces el targetText --> 
281                                <#if targetTextLanding?is_enumerable>  
282                                    <#list targetTextLanding as text> 
283                                        <#assign title = title?replace(text,replaceTextLanding[text?index].replaceText) /> 
284                                    </#list> 
285                                <#else> <!-- En caso de 1 solo targetText --> 
286                                    <#assign title = title?replace(targetTextLanding,replaceTextLanding.replaceText)/> 
287                                </#if> 
288                            </#if> 
289 
290                             
291                            <#assign product_master = mlxMastersHelperService.getMasterNameByJournalArticle(journalArticle) /> 
292 
293                            <#if (journalArticle.getDDMStructure().getStructureKey() == productCategoryStrKey) > 
294                                <#assign description = journalArticleValues["description"]!"" /> 
295                                <#assign imageObj = journalArticleValues["imageFieldSet"]!"" /> 
296                                <#assign imageObj = (imageObj.image?eval)!"" /> 
297                            <#else> 
298                                <#assign description = journalArticleValues["list_description"]!"" /> 
299                                <#assign imageObj = journalArticleValues["list_imageFieldSet"]!""  /> 
300                                <#assign imageObj = (imageObj.list_image?eval)!""  /> 
301                            </#if> 
302 
303                            <#if (landingData?has_content) && (targetTextLanding?has_content)> <!-- Si es landingSEM itero y reemplazo nºveces el targetText --> 
304                                <#if targetTextLanding?is_enumerable>   
305                                    <#list targetTextLanding as text> 
306                                        <#assign description = description?replace(text,replaceTextLanding[text?index].replaceText) /> 
307                                    </#list> 
308                                <#else> <!-- En caso de 1 solo targetText --> 
309                                    <#assign description = description?replace(targetTextLanding,replaceTextLanding.replaceText)/> 
310                                </#if> 
311                            </#if> 
312 
313                            <a href="${pageinfo}" title="${title}" class="corporate--product-category--products--link" data-content-master="${product_master}" data-content-structure="${journalArticle.getDDMStructure().getStructureKey()}"> 
314                            <figure class="corporate--product-category--products--figure"> 
315									 
316																<#assign image = mlxDocumentsHelperService.getDocumentUrlFromUUID(imageObj.uuid, "${locale}")!"" /> 
317																<#if imageObj.uuid?has_content > 
318																		<#assign fileEntry = mlxDLFileEntryHelperService.getDLFileEntry(imageObj.uuid, globalGroupId) /> 
319																		<#assign docUrl = (mlxExpandoService.getExpandoValueForClass("com.liferay.document.library.kernel.model.DLFileEntry","mlxDocumentUrl",fileEntry.getFileVersion().getFileVersionId()).getString(locale))!""/> 
320																		<#if docUrl == ''> 
321																				<#assign imgUrl = image /> 
322																		<#else> 
323																				<#assign imgUrl = cdn + docUrl + "." + fileEntry.getVersion() + "." + fileEntry.getExtension() /> 
324																		</#if> 
325 
326																		<#assign imgWidth = '320'> 
327																		<#assign imgTitle = title> 
328																		<#assign imgAlt = title> 
329																		<#assign imgClass = 'corporate--product-category--products--image'> 
330																		<#assign urlParamConcat = imgUrl?contains("?")?then("&","?")> 
331																		${corporate.img(imgUrl + urlParamConcat + 'imwidth=' + imgWidth + '', false, 
332																										'alt="' + imgAlt + '"', 'title="' + imgTitle + '"', 'class="' + imgClass + '"' 
333																										'srcset="' + imgUrl + urlParamConcat + 'imwidth=320&imdensity=1 320w,' +  
334																																 imgUrl + urlParamConcat + 'imwidth=640&imdensity=1 640w,' +  
335																																 imgUrl + urlParamConcat + 'imwidth=640&imdensity=1 1024w"')} 
336																</#if> 
337                            </figure> 
338                            <h2 class="corporate--product-category--products--heading"> 
339                                ${title} 
340                            </h2> 
341                            </a> 
342                             
343                            <#if (journalArticle.getDDMStructure().getStructureKey() == productStrKey) || (catId == whsCatId) > 
344                                <p class="corporate--product-category--products--subheading">${description}</p> 
345                            <#else> 
346                                 
347                                <#if rp.getChilds()?has_content > 
348                                     
349                                    <ul class="corporate--product-category--products--relateds"> 
350                                     
351                                        <#assign childsJa = [] > 
352                                     
353                                        <#list rp.getChilds() as prod > 
354                                            <#assign prodJa = prod.getJournalArticle() /> 
355                                            <#assign prodJaOrder = mlxJournalHelperService.getStructureFieldValue(prodJa, "order", locale) /> 
356                                             
357                                            <#assign prodObjJa = {"order": prodJaOrder, "ja": prodJa} /> 
358                                             
359                                            <#assign childsJa = childsJa + [prodObjJa] > 
360                                        </#list> 
361 
362                                        <#list childsJa?sort_by("order") as item > 
363                                            <#assign ja = item.ja > 
364                                            <#assign product_master = mlxMastersHelperService.getMasterNameByJournalArticle(ja) /> 
365                                            <#assign pageinfo =  mlxUrlUtilService.getUrlByJournalArticle(ja, locale, groupId)?string /> 
366                                            <#assign title = mlxJournalHelperService.getStructureFieldValue(ja, "name", locale) /> 
367                                            <#if ("${title!}" == "") > 
368                                                <#assign title = ja.getTitle(locale) /> 
369                                            </#if> 
370 
371                                            <#if (landingData?has_content) && (targetTextLanding?has_content)> <!-- Si es landingSEM itero y reemplazo según nº de targetText --> 
372                                                <#if targetTextLanding?is_enumerable == true>  
373                                                    <#list targetTextLanding as text> 
374                                                            <#assign title = title?replace(text,replaceTextLanding[text?index].replaceText) /> 
375                                                    </#list> 
376                                                <#else> 
377                                                    <#assign title = title?replace(targetTextLanding,replaceTextLanding.replaceText) /> 
378                                                </#if> 
379                                            </#if> 
380 
381                                            <li class="corporate--product-category--products--relateds-item"> 
382                                                <a href="${pageinfo}" title='${title}' class="corporate--product-category--products--relateds-link" data-content-master="${product_master}" data-content-structure="${ja.getDDMStructure().getStructureKey()}"> 
383                                                    <h3 class="corporate--product-category--products--relateds-link-title">${title}</h3> 
384                                                </a> 
385                                            </li> 
386                                        </#list> 
387                                         
388                                    </ul> 
389                                <#else> 
390                                    <p class="corporate--product-category--products--item--subheading">${description}</p> 
391                                </#if> 
392                                 
393                                 
394                                 
395                                <#-- TODO: Actualizar código cuando se aplique en PRE (https://jira.mecalux.com/browse/CORPO-8507) 
396                                 
397                                <#if rp.getChilds()?has_content > 
398                                     
399                                    <ul class="corporate--product-category--products--relateds"> 
400 
401                                        <#list rp.getChilds() as prod > 
402                                            <#assign ja = prod.getJournalArticle() /> 
403                                            <#assign product_master = mlxMastersHelperService.getMasterNameByJournalArticle(ja) /> 
404                                            <#assign pageinfo =  mlxUrlUtilService.getUrlByJournalArticle(ja, locale, groupId)?string /> 
405                                            <#assign title = mlxJournalHelperService.getStructureFieldValue(ja, "name", locale) /> 
406                                            <#if ("${title!}" == "") > 
407                                                <#assign title = ja.getTitle(locale) /> 
408                                            </#if> 
409                                            <li class="corporate--product-category--products--relateds-item"> 
410                                                <a href="${pageinfo}" title='${title}' class="corporate--product-category--products--relateds-link" data-content-master="${product_master}" data-content-structure="${ja.getDDMStructure().getStructureKey()}"> 
411                                                    <h3 class="corporate--product-category--products--relateds-link-title">${title}</h3> 
412                                                </a> 
413                                            </li> 
414                                        </#list> 
415                                         
416                                    </ul> 
417                                <#else> 
418                                    <p class="corporate--product-category--products--item--subheading">${description}</p> 
419                                </#if> 
420                                 
421                                --> 
422                                 
423                                 
424                                 
425                            </#if> 
426                            </article> 
427                        </#if> 
428                         
429                    </#list>  
430                </div> 
431            </div> 
432 
433        </#if> 
434 
435    </#if> 
436 
437 
438 
439    <!--MKTG-1262 custom productCategory relateds--> 
440 
441    <style>.corporate--software-solucion-compleja--cases--title{font-size: 2.25rem;}.corporate--software-solucion-compleja--cases {background-color: #333;color: #fafafa;overflow: hidden;padding-bottom: 2rem;padding-bottom: 0 }.corporate--software-solucion-compleja--cases .tns-outer {position: relative }.corporate--software-solucion-compleja--cases .tns-item {display: inline-flex !important }.corporate--software-solucion-compleja--cases .tns-item>img {width: 100% }.corporate--software-solucion-compleja--cases .tns-nav {position: absolute;width: 100%;text-align: center }.corporate--software-solucion-compleja--cases .tns-nav button {border: 2px solid #999;background-color: transparent !important;margin: .4rem;padding: .35rem;border-radius: 1rem;outline: none }.corporate--software-solucion-compleja--cases .tns-nav button.tns-nav-active {border: 2px solid #fa6900;background-color: #fa6900 !important }.corporate--software-solucion-compleja--cases--container {max-width: 1400px;margin: 0 auto;width: 100%;padding: 4rem 7rem }@media(max-width: 959px) {.corporate--software-solucion-compleja--cases--container {padding:3rem }}@media(max-width: 479px) {.corporate--software-solucion-compleja--cases--container {padding:2rem 1rem }}.corporate--software-solucion-compleja--cases--item {display: flex;flex-wrap: wrap }@media(max-width: 959px) {.corporate--software-solucion-compleja--cases--item {flex-direction:column;padding-bottom: 3rem }}.corporate--software-solucion-compleja--cases--item:not(:first-child):not(.tns-item) {display: none }.corporate--software-solucion-compleja--cases--info {flex: 1;padding-right: 3rem;padding-bottom: 4rem;text-decoration: none;color: inherit }@media(max-width: 959px) {.corporate--software-solucion-compleja--cases--info {width:100%;order: 3;flex: auto;padding-right: 0 }}.corporate--software-solucion-compleja--cases--title {color: #fafafa;display: block;margin-bottom: 2rem;margin-top: 0;font-family: "Raleway","Helvetica Neue",Arial,Helvetica,sans-serif;font-weight: bold;text-transform: uppercase;background: initial;line-height: inherit }.corporate--software-solucion-compleja--cases--title:before {content: " ";display: flex;padding-top: .7rem;width: 75px;border-top: 8px solid #fa6900 }.corporate--software-solucion-compleja--cases--item-title {color: #fafafa;display: block;margin-bottom: 1rem;margin-top: 0;font-family: "Raleway","Helvetica Neue",Arial,Helvetica,sans-serif;font-weight: bold;background: initial;line-height: inherit }.corporate--software-solucion-compleja--cases--item-title:before {content: " ";display: flex;padding-top: .7rem;width: 40px;border-top: 2px solid #fafafa }.corporate--software-solucion-compleja--cases--item-subtitle {color: #fa6900;display: block;margin-bottom: 1rem;margin-top: 0;font-family: "Raleway","Helvetica Neue",Arial,Helvetica,sans-serif;font-weight: bold;background: initial;line-height: inherit }.corporate--software-solucion-compleja--cases--item-link {display: inline-flex;justify-content: center;align-items: center;color: #fa6900;margin-bottom: 0;margin-top: 0;padding: 0;text-decoration: none }.corporate--software-solucion-compleja--cases--item-link:after {content: "";width: 1rem;height: 1rem;background-image: url("data:image/svg+xml,%0A%3Csvg viewBox='0 0 6 9' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' clip-rule='evenodd' stroke-linejoin='round' stroke-miterlimit='2'%3E%3Cpath d='M.848.001c.182.022.352.1.489.226l3.605 3.606a.833.833 0 01.001 1.112L1.336 8.552c-.22.198-.543.296-.838.172-.477-.201-.639-.898-.285-1.294l3.041-3.041C2.199 3.334.965 2.41.104 1.212-.189.783.168.057.791.001a.542.542 0 01.057 0z' fill='%23fa6900'/%3E%3C/svg%3E");background-repeat: no-repeat;background-position: 75% 75%;background-size: .35rem }.corporate--software-solucion-compleja--cases--item-link:hover {color: #ff9549 }.corporate--software-solucion-compleja--cases--item-link:hover:after {filter: brightness(130%) }.corporate--software-solucion-compleja--cases--item-link .corporate--software-solucion-compleja--cases--item-subtitle {color: #fa6900;margin-bottom: 0;margin-top: 0;padding: 0;text-decoration: none }.corporate--software-solucion-compleja--cases--item-link .corporate--software-solucion-compleja--cases--item-subtitle:hover {color: #ff9549 }.corporate--software-solucion-compleja--cases--item-link .corporate--software-solucion-compleja--cases--item-subtitle:hover:after {filter: brightness(130%) }.corporate--software-solucion-compleja--cases--thumbnail {flex: 1;position: relative }@media(max-width: 959px) {.corporate--software-solucion-compleja--cases--thumbnail {width:100%;margin-bottom: 2rem;flex: auto;padding-bottom: 56.25% }}.corporate--software-solucion-compleja--cases--thumbnail .corporate--software-solucion-compleja--cases--container-icon {position: absolute;height: 100%;width: 100%;display: flex;justify-content: center;align-items: center;cursor: pointer }.corporate--software-solucion-compleja--cases--thumbnail .corporate--software-solucion-compleja--cases--container-icon .corporate--software-solucion-compleja--cases--video-icon {z-index: 1;max-width: 5rem;height: auto;align-self: center;right: 0;left: 0;top: 0;bottom: 0;margin: auto;cursor: pointer;position: absolute }.corporate--software-solucion-compleja--cases--thumbnail .corporate--software-solucion-compleja--cases--item-image,.corporate--software-solucion-compleja--cases--thumbnail .corporate--software-solucion-compleja--cases--item-vid {width: 100%;height: 100%;object-fit: cover;position: absolute }.corporate--software-solucion-compleja--cases--viewmore {font-family: "Raleway","Helvetica Neue",Arial,Helvetica,sans-serif;font-weight: bold;text-transform: uppercase;display: inline-flex;justify-content: center;align-items: center;color: #fa6900;margin-bottom: 0;margin-top: 0;padding: 0;text-decoration: none;position: relative;z-index: 1 }.corporate--software-solucion-compleja--cases--viewmore:after {content: "";width: 1rem;height: 1rem;background-image: url("data:image/svg+xml,%0A%3Csvg viewBox='0 0 6 9' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' clip-rule='evenodd' stroke-linejoin='round' stroke-miterlimit='2'%3E%3Cpath d='M.848.001c.182.022.352.1.489.226l3.605 3.606a.833.833 0 01.001 1.112L1.336 8.552c-.22.198-.543.296-.838.172-.477-.201-.639-.898-.285-1.294l3.041-3.041C2.199 3.334.965 2.41.104 1.212-.189.783.168.057.791.001a.542.542 0 01.057 0z' fill='%23fa6900'/%3E%3C/svg%3E");background-repeat: no-repeat;background-position: 100% 75%;background-size: .5rem }.corporate--software-solucion-compleja--cases--viewmore:hover {color: #ff9549 }.corporate--software-solucion-compleja--cases--viewmore:hover:after {filter: brightness(130%) }.corporate--software-solucion-compleja--cases--item-image-youtube {cursor: pointer }.corporate--software-solucion-compleja--cases--figure {display: flex;width: 100%;margin: 0 }.corporate--software-solucion-compleja--cases .tns-nav {text-align: left;position: relative;margin: -3.75rem 0 .5rem -0.25rem }</style> 
442 
443    <#assign practicalCasesStrKey = "PRACTICAL-CASE-STR" /> 
444    <#assign practicalCasesRelated = mlxAssetHelperService.getRelatedArticlesByStructure(groupId, articleId, practicalCasesStrKey) /> 
445 
446    <#if practicalCasesRelated?has_content> 
447 
448        <div class="corporate--software-solucion-compleja--cases"> 
449            <div class="corporate--software-solucion-compleja--cases--container" data-js="slider" data-js-type="tiny-slider" data-js-config='{"container": ".corporate--software-solucion-compleja--cases--slider", "navPosition": "bottom", "controls": false, "mouseDrag": true}' data-gtm-block-name="Case_Study"> 
450                <h3 class="corporate--software-solucion-compleja--cases--title"><@corporate.mlxlanguage key="mlx.breadcrumb.practical-cases" /></h3> 
451                <div class="corporate--software-solucion-compleja--cases--slider" data-gtm-block-name="Case_Study">  
452 
453                    <#list practicalCasesRelated as practicalCase> 
454                         
455                        <#if practicalCase?index < 4> 
456 
457                            <#assign practicalCaseContentValues = (mlxJournalHelperService.getStructureFieldValues(practicalCase, locale))!{}  /> 
458                            <#assign practicalCaseName = (practicalCaseContentValues["name"]?string)!"" /> 
459                            <#assign practicalCaseUrl = mlxUrlUtilService.getUrlByJournalArticle(practicalCase, "${locale}", groupId)?string /> 
460                            <#assign practicalCaseName = (practicalCaseContentValues["name"]?string)!"" /> 
461                            <#assign practicalCaseDescription = (practicalCaseContentValues["html_description"]?string)!"" /> 
462         
463                            <#assign clientStrKey = "CLIENT-STR" /> 
464                            <#assign practicalCaseClient = (mlxAssetHelperService.getFirstRelatedArticle(groupId, practicalCase.articleId, clientStrKey))!"" /> 
465         
466                            <div class="corporate--software-solucion-compleja--cases--item"> 
467                                <div class="corporate--software-solucion-compleja--cases--info"> 
468         
469                                    <#if practicalCaseClient != ""> 
470                                        <#assign practicalCaseClientName = mlxJournalHelperService.getStructureFieldValue(practicalCaseClient, "name", "${locale}")?string /> 
471                                        <h3 class="corporate--software-solucion-compleja--cases--item-title">${practicalCaseClientName}</h3> 
472                                    <#else> 
473                                        <#assign practicalCaseClientName = practicalCaseName> 
474                                    </#if> 
475         
476                                    <#if practicalCaseName?has_content> 
477                                        <p class="corporate--software-solucion-compleja--cases--item-subtitle">${practicalCaseName}</p> 
478                                    </#if> 
479                                    <#if practicalCaseDescription?has_content> 
480                                        <p class="corporate--software-solucion-compleja--cases--item-description">${practicalCaseDescription?truncate(350, '...')} 
481                                            <a href="${practicalCaseUrl}" title="${practicalCaseClientName}" class="corporate--software-solucion-compleja--cases--item-link"><@corporate.mlxlanguage key="mlx.search.article.readmore" /></a> 
482                                        </p> 
483                                    </#if> 
484                                 
485                                </div> 
486         
487                                <#assign practicalCaseImageContent = (mlxJournalHelperService.getStructureFieldValue(practicalCase, "detail_image", "${locale}"))!{}  /> 
488         
489                                <#if practicalCaseImageContent?has_content> 
490                                    <#assign practicalCaseImage = practicalCaseImageContent?eval /> 
491                                    <#if practicalCaseImage?has_content> 
492                                         
493                                        <#assign fileEntry = mlxDLFileEntryHelperService.getDLFileEntry(practicalCaseImage.uuid, globalGroupId) /> 
494                                        <#assign practicalCaseImageUrl = (mlxExpandoService.getExpandoValueForClass("com.liferay.document.library.kernel.model.DLFileEntry","mlxDocumentUrl",fileEntry.getFileVersion().getFileVersionId()).getString(locale))!""/> 
495                                        <#assign practicalCaseImageUrl = mlxUrlUtilService.getLRUrl(fileEntry) /> 
496         
497                                        <div class="corporate--software-solucion-compleja--cases--thumbnail"> 
498         
499                                            <#assign practicalCaseVideoContent =  (mlxJournalHelperService.getStructureFieldValue(practicalCase, "video_gallery_file", "${locale}"))![] /> 
500                                             
501                                            <#if practicalCaseVideoContent?has_content> 
502                                                <#if practicalCaseVideoContent?first?has_content> 
503                                                        <#assign practicalCaseVideo= practicalCaseVideoContent?first?eval /> 
504 
505                                                        <#assign fileEntry = mlxDLFileEntryHelperService.getDLFileEntry(practicalCaseVideo.uuid, globalGroupId) /> 
506 
507                                                        <#assign videoTitle = (mlxExpandoService.getExpandoValueForClass("com.liferay.document.library.kernel.model.DLFileEntry","mlxDocumentTitle",fileEntry.getFileVersion().getFileVersionId()).getString(locale))!"" /> 
508                                                        <#if (videoTitle=="") > 
509                                                                <#assign videoTitle = practicalCaseName /> 
510                                                        </#if> 
511 
512                                                        <#assign practicalCaseVideoUrl = mlxUrlUtilService.getLRUrl(fileEntry) /> 
513                                                        <#assign youtubeEmbeddedCode = (mlxExpandoService.getExpandoValueForClass("com.liferay.document.library.kernel.model.DLFileEntry","mlxYoutubeEmbeddedCode",fileEntry.getFileVersion().getFileVersionId()).getString(locale))!""/> 
514 
515                                                        <#if youtubeEmbeddedCode?has_content> 
516                                                                <#assign htmlModalAttributes='data-fancybox="video-gallery-${practicalCase?index}" data-type="iframe" data-src="https://www.youtube.com/embed${youtubeEmbeddedCode}" data-caption="${practicalCaseName}"' /> 
517                                                        <#else> 
518                                                                <#assign htmlModalAttributes='data-fancybox="video-gallery-${practicalCase?index}" data-type="html5video" data-src="${practicalCaseVideoUrl}" data-thumb="${practicalCaseImageUrl}" data-caption="${practicalCaseName}"' /> 
519                                                        </#if> 
520 
521                                                        <a href="#" class="corporate--software-solucion-compleja--cases--video-container" data-has-modal="true" ${htmlModalAttributes} data-gtm-event="modal" data-gtm-event-label="/Case-study/Video/${videoTitle}"> 
522                                                                <figure class="corporate--software-solucion-compleja--cases--figure" > 
523                                                                        <div class="corporate--software-solucion-compleja--cases--container-icon" > 
524                                                                                <#assign images_folder = themeDisplay.getPathThemeImages() /> 
525                                                                                ${corporate.img(images_folder + '/common/th-play2.png', false,'data-role="play-btn" class="corporate--software-solucion-compleja--cases--video-icon" alt="play"')} 
526                                                                        </div> 
527																																				 
528																																				<#if practicalCaseImage.uuid?has_content > 
529																																						<#assign fileEntry = mlxDLFileEntryHelperService.getDLFileEntry(uuid, globalGroupId) /> 
530																																						<#assign docUrl = (mlxExpandoService.getExpandoValueForClass("com.liferay.document.library.kernel.model.DLFileEntry","mlxDocumentUrl",fileEntry.getFileVersion().getFileVersionId()).getString(locale))!""/> 
531																																						<#if docUrl == ''> 
532																																								<#assign imgUrl = practicalCaseImageUrl /> 
533																																						<#else> 
534																																								<#assign imgUrl = cdn + docUrl + "." + fileEntry.getVersion() + "." + fileEntry.getExtension() /> 
535																																						</#if> 
536 
537																																						<#assign imgWidth = '320'> 
538																																						<#assign imgTitle = practicalCaseClientName> 
539																																						<#assign imgAlt = practicalCaseClientName> 
540																																						<#assign imgClass = 'corporate--software-solucion-compleja--cases--item-image corporate--software-solucion-compleja--cases--item-image-youtube'> 
541																																						<#assign urlParamConcat = imgUrl?contains("?")?then("&","?")> 
542																																						${corporate.img(imgUrl + urlParamConcat + 'imwidth=' + imgWidth + '', true, 
543																																														'alt="' + imgAlt + '"', 'title="' + imgTitle + '"', 'class="' + imgClass + '"' 
544																																														'srcset="' + imgUrl + urlParamConcat + 'imwidth=320&imdensity=1 320w,' +  
545																																																				 imgUrl + urlParamConcat + 'imwidth=640&imdensity=1 640w,' +  
546																																																				 imgUrl + urlParamConcat + 'imwidth=320&imdensity=1 1024w"')} 
547																																				</#if> 
548                                                                </figure>   
549                                                        </a> 
550 
551                                                <#else> 
552 
553                                                        <figure class="corporate--software-solucion-compleja--cases--figure"> 
554																												 
555																														<#if practicalCaseImage.uuid?has_content > 
556																																<#assign fileEntry = mlxDLFileEntryHelperService.getDLFileEntry(uuid, globalGroupId) /> 
557																																<#assign docUrl = (mlxExpandoService.getExpandoValueForClass("com.liferay.document.library.kernel.model.DLFileEntry","mlxDocumentUrl",fileEntry.getFileVersion().getFileVersionId()).getString(locale))!""/> 
558																																<#if docUrl == ''> 
559																																		<#assign imgUrl = practicalCaseImageUrl /> 
560																																<#else> 
561																																		<#assign imgUrl = cdn + docUrl + "." + fileEntry.getVersion() + "." + fileEntry.getExtension() /> 
562																																</#if> 
563 
564																																<#assign imgWidth = '320'> 
565																																<#assign imgTitle = practicalCaseClientName> 
566																																<#assign imgAlt = practicalCaseClientName> 
567																																<#assign imgClass = 'corporate--software-solucion-compleja--cases--item-image'> 
568																																<#assign urlParamConcat = imgUrl?contains("?")?then("&","?")> 
569																																${corporate.img(imgUrl + urlParamConcat + 'imwidth=' + imgWidth + '', true, 
570																																								'alt="' + imgAlt + '"', 'title="' + imgTitle + '"', 'class="' + imgClass + '"' 
571																																								'srcset="' + imgUrl + urlParamConcat + 'imwidth=320&imdensity=1 320w,' +  
572																																														 imgUrl + urlParamConcat + 'imwidth=640&imdensity=1 640w,' +  
573																																														 imgUrl + urlParamConcat + 'imwidth=320&imdensity=1 1024w"')} 
574																														</#if> 
575                                                        </figure> 
576 
577                                                </#if> 
578                                        </#if> 
579         
580                                        </div> 
581         
582                                    </#if> 
583         
584                                </#if> 
585         
586         
587                            </div> 
588                         
589                        </#if> 
590 
591                    </#list> 
592 
593                </div> 
594 
595                <#assign pcasesMasterId=64015 /> 
596                <#assign pcasesLayout=(mlxMastersHelperService.getLayoutByMasterAndGroup(pcasesMasterId,scopeGroupId)!"") /> 
597                <#assign pcasesUrl = pcasesLayout.getFriendlyURL() /> 
598                <a href="${pcasesUrl}" title='<@corporate.mlxlanguage key="mlx.practical-case.show-more" />' class="corporate--software-solucion-compleja--cases--viewmore"><@corporate.mlxlanguage key="mlx.practical-case.show-more" /></a> 
599 
600            </div> 
601        </div> 
602 
603    </#if> 
Missconfigured or missplaced portlet, no content found
Dynamic Content: false
Master Name: Showroom-banner
Template Key:
Wystąpił błąd podczas przetwarzania szablonu.
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 pageinfo = mlxUrlUtilService...  [in template "20101#20128#PRODUCT-CATEGORY-BANNER-STR-DEFAULT-TEMPLATE" at line 25, column 25]
----
1<#-- Template generada automáticamente para servir de template por defecto a la estructura Product Category Banner Str --> 
2 
3 
4<#-- Cambiar el strKey con el correspondiente del entorno --> 
5<#assign productStrKey = "PRODUCT-STR" /> 
6<#-- Cambiar el strKey con el correspondiente del entorno --> 
7<#assign productCategoryStrKey = "PRODUCT-CATEGORY-STR" /> 
8<#assign currentUrl = portalUtil.getCurrentURL(request) /> 
9<#assign article =  (mlxUrlUtilService.getJournalArticleByUrl(currentUrl, locale, groupId, true))!"" /> 
10<#if article?has_content > 
11    <#assign articleCatId = mlxCategorizationService.getPartialHierarchyForJournalArticle(themeDisplay.getUserId(), groupId, locale, article,[productStrKey, productCategoryStrKey]).getCategoryId() /> 
12    <#assign parentCatId = mlxAssetHelperService.fetchAssetCategory(articleCatId).getParentCategoryId()!0 /> 
13    <#if (parentCatId > 0) > 
14        <#assign parentJournal = mlxAssetHelperService.getJournalArticleByStructureIdAndCategoryId(groupId, themeDisplay.getUserId(), article.getDDMStructure().getStructureId(), parentCatId) /> 
15        <#assign catProds = mlxCategorizationService.getPartialHierarchyForJournalArticle(themeDisplay.getUserId(), groupId, locale, parentJournal,[productStrKey, productCategoryStrKey]).getChilds() /> 
16        	  
17        <aside class="corporate--product-category--relateds-links--container"> 
18            <div class="corporate--product-category--relateds-links"> 
19                <span class="corporate--product-category--relateds-links--heading"><@corporate.mlxlanguage key="mlx.related.contents" /></span> 
20                <ul class="corporate--product-category--relateds-links--links-list"> 
21                <#list catProds as rp > 
22            		<#assign journalArticle = rp.getJournalArticle() /> 
23            		<#-- Para que en el listado de articulos no aparezca el mismo desde el que se hace la llamada --> 
24            		<#if (article.getArticleId() != journalArticle.getArticleId()) > 
25                        <#assign pageinfo =  mlxUrlUtilService.getUrlByJournalArticle(journalArticle, locale, groupId)?string /> 
26            			<#assign title = mlxJournalHelperService.getStructureFieldValue(journalArticle, "name", locale) /> 
27            			<#if ("${title!}" == "") > 
28            				<#assign title = journalArticle.getTitle(locale) /> 
29            			</#if> 
30            			<li class="corporate--product-category--relateds-links--links-list-item"> 
31            				<a href="${pageinfo}" title='${title}' class="corporate--product-category--relateds-links--link">${title}</a> 
32            			</li> 
33            		</#if> 
34                     
35                </#list>  
36                </ul> 
37            </div> 
38        </aside> 
39    </#if> 
40</#if>