🚧 Il sito è attualmente in manutenzione parziale 🚧
⚠️ Alcune funzionalità potrebbero non essere temporaneamente disponibili.
Stiamo lavorando per risolvere il problema nel più breve tempo possibile.
Stiamo lavorando per risolvere il problema nel più breve tempo possibile.
Ci scusiamo per il disagio. Per assistenza: info@wellmicro.com
An error occurred while processing the template.
The following has evaluated to null or missing:
==> curCPCatalogEntry.getUrl() [in template "20097#20123#42467" at line 19, column 26]
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign Url = curCPCatalogEntry.getUrl() [in template "20097#20123#42467" at line 19, column 13]
----
1<#-- --- WM-ADT-ProductPlus ver. 1.6 --- -->
2<#-- ------ copyright ACSoftware ------ -->
3<#-- -- written by Mattia Giovinazzo -- -->
4
5<#assign portal_url = themeDisplay.getPortalURL() />
6<#assign is_signed_in = themeDisplay.isSignedIn()/>
7<#assign RoleService = serviceLocator.findService("com.liferay.portal.kernel.service.RoleLocalService") />
8<#assign UserLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.UserLocalService")>
9<#assign usrRole = RoleService.getRole(companyId, "PRO_USER").getRoleId() />
10<#assign usrRoleAdmin = RoleService.getRole(companyId, "Administrator").getRoleId() />
11<#assign usrRoleFarmacia = RoleService.getRole(companyId, "FARMACIA").getRoleId() />
12<#assign usrRoleCentroMedico = RoleService.getRole(companyId, "CENTRO_MEDICO").getRoleId() />
13
14<div class="row product-shop">
15 <#if entries?has_content>
16 <#list entries as curCPCatalogEntry>
17 <#assign Image=curCPCatalogEntry.getDefaultImageFileUrl() />
18 <#assign Name=curCPCatalogEntry.getName() />
19 <#assign Url=curCPCatalogEntry.getUrl() />
20 <#assign Description=curCPCatalogEntry.getShortDescription() />
21 <#assign ItemId=curCPCatalogEntry.getCPDefinitionId() />
22 <#assign Skus=curCPCatalogEntry.getCPSkus() />
23 <#list Skus as sku>
24 <#assign sku = sku.getSku() />
25 </#list>
26 <#if sku != "GTP_VG_REP_MET">
27 <div class="<#if UserLocalService.hasRoleUser(usrRole, themeDisplay.getUserId()) || UserLocalService.hasRoleUser(usrRoleAdmin, themeDisplay.getUserId()) || UserLocalService.hasRoleUser(usrRoleCentroMedico, themeDisplay.getUserId()) || UserLocalService.hasRoleUser(usrRoleFarmacia, themeDisplay.getUserId())>col-md-3<#else>col-md-4</#if>">
28 <div class="wm-CardShop">
29 <div class="card ico v-center aniHover">
30
31 <div class="content-top">
32 <span class="card-top">
33 <img class="card-img" title="" alt="" src="${Image}" />
34 </span>
35 <h3 class="card-title">${Name}</h3>
36 </div>
37
38 <span class="card-box">
39 <div class="card-desc">${Description} </div>
40 <div class="mt-auto">
41
42 <div class="price">
43 <@liferay_commerce["price"]
44 CPDefinitionId=curCPCatalogEntry.getCPDefinitionId()
45 CPInstanceId=curCPCatalogEntry.CPSkus[0].getCPInstanceId()
46 showDiscount=true
47 /> <sup>*</sup>
48 <div class="price-info">*spese di spedizione incluse</div>
49 </div>
50
51 <span class="button-container">
52 <a data-senna-off="true" class="button-vm" href="${portal_url}/p/${Name}" title="RICHIESTA ANALISI">RICHIESTA ANALISI</a>
53 </span>
54 </div>
55 </span>
56
57 </div>
58 </div>
59
60 </div>
61 <#else>
62 <#if UserLocalService.hasRoleUser(usrRole, themeDisplay.getUserId()) || UserLocalService.hasRoleUser(usrRoleAdmin, themeDisplay.getUserId()) || UserLocalService.hasRoleUser(usrRoleCentroMedico, themeDisplay.getUserId()) || UserLocalService.hasRoleUser(usrRoleFarmacia, themeDisplay.getUserId())>
63 <div class="col-md-3">
64 <div class="wm-CardShop">
65 <div class="card ico v-center aniHover">
66 <div class="content-top">
67 <span class="card-top">
68 <img class="card-img" title="" alt="" src="${Image}" />
69 </span>
70 <h3 class="card-title">${Name}</h3>
71 </div>
72
73 <span class="card-box">
74
75 <div class="card-desc">${Description}</div>
76 <div class="mt-auto">
77
78 <div class="price">
79 <@liferay_commerce["price"]
80 CPDefinitionId=curCPCatalogEntry.getCPDefinitionId()
81 CPInstanceId=curCPCatalogEntry.CPSkus[0].getCPInstanceId()
82 showDiscount=true
83 /> <sup>*</sup>
84 <div class="price-info">*spese di spedizione incluse</div>
85 </div>
86
87 <span class="button-container">
88 <a data-senna-off="true" class="button-vm" href="${portal_url}/p/${Name}" title="RICHIESTA ANALISI">RICHIESTA ANALISI</a>
89 </span>
90 </div>
91 </span>
92
93 </div>
94 </div>
95
96 </div>
97 </#if>
98 </#if>
99
100 </#list>
101 </#if>
102</div>
103
104<style>
105.card-desc .row {
106display:block;
107margin:0;
108}
109.card-desc .col-md-6 {
110max-width:100%!important;
111}
112.card-desc .pr-md-3, .pl-md-3 {
113padding:0!important;
114}
115</style>
116<script>
117AUI().use('aui-base', function(A) {
118if (A.one('.product-shop')) {
119var boxMax = 0;
120 var descMax = 0;
121 A.one('.product-shop').all('.content-top').each(
122 function(node) {
123var boxHeight = node.height();
124if(boxHeight > boxMax){
125boxMax = boxHeight;
126}
127 }
128 );
129 A.one('.product-shop').all('.content-top').each(
130 function(node) {
131node.setStyle('height', boxMax);
132}
133 );
134 A.one('.product-shop').all('.card-desc').each(
135 function(node) {
136var boxHeight = node.innerHeight();
137if(boxHeight > descMax){
138descMax = boxHeight;
139}
140 }
141 );
142 A.one('.product-shop').all('.card-desc').each(
143 function(node) {
144node.setStyle('height', descMax);
145}
146 );
147 }
148 });
149</script>