null
Atrás
Combo Power - Youtube y TikTok
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing: ==> IconoUno.IconoTres [in template "2233237#2233283#27904042" at line 93, column 57] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${IconoUno.IconoTres.getData()} [in template "2233237#2233283#27904042" at line 93, column 55] ----
1<#--
2Last update: 31/03/2020
3Changelog (Last 3):
4 31/03/2020: Se Agrega texto legales
5 18/10/2019: Modificados textos GTM para DataLayer
6 26/09/2019: Añadida clase recommended
7 04/09/2019: Modificación
8-->
9
10<#-- Google Tag manager-->
11 <#--
12 Categoría de Producto para el caso de Ecuador:
13 1. Línea nueva y combo
14 2. Portabilidad y combo
15 3. Comprar combo
16 4. Comprar comodines
17 -->
18
19 <#assign vPageLink = button.buttonPageLink.getFriendlyUrl()>
20 <#assign vExtLink = button.buttonExtLink.getData()>
21 <#if vExtLink?has_content>
22 <#assign link = vExtLink>
23 <#elseif vPageLink?has_content>
24 <#assign link = vPageLink>
25 </#if>
26 <#assign cat1Url = '/pasarme-a-tuenti-con-linea-nueva'/>
27 <#assign cat2Url = '/portarse-a-tuenti'/>
28 <#assign cat3Url = '/only-combo-here'/>
29 <#assign cat4Url = '/only-xtra-here'/>
30 <#if link?contains(cat1Url)>
31 <#assign comboId = IDsAMDOCS.idChip.getData()/>
32 <#assign comboCategory = 'Línea nueva y combo'/>
33 <#elseif link?contains(cat2Url)>
34 <#assign comboId = IDsAMDOCS.idChip.getData()/>
35 <#assign comboCategory = 'Portabilidad y combo'/>
36 <#elseif link?contains(cat3Url)>
37 <#assign comboId = IDsAMDOCS.idSinChip.getData()/>
38 <#assign comboCategory = 'Comprar combo'/>
39 <#elseif link?contains(cat4Url)>
40 <#assign comboId = ''/>
41 <#assign comboCategory = 'Comprar comodines'/>
42 <#else>
43 <#assign comboId = 'No category match'/>
44 <#assign comboCategory = link/>
45 </#if>
46<#-- /Google Tag manager-->
47
48<#--
49<#assign vRecommended="">
50
51<#if typeCombo.getData() == "recommended">
52 <#assign vRecommended="recommended">
53<#elseif typeCombo.getData() == "especial">
54 <#assign vRecommended="green">
55</#if>
56-->
57
58
59<#assign vRecommended="">
60<#if typeCombo.getData() == "powerBienvenida">
61<#assign vRecommended="powerBienvenida">
62<#elseif typeCombo.getData() == "mesBienvenida">
63<#assign vRecommended="mesBienvenida">
64</#if>
65
66<div class="section-combos-list section-combos-list-v2" data-gtm-nombre="${TituloCombo.getData()} ${upperText.getData()}" data-gtm-valor="${priceValue.getData()}" data-gtm-id="${IDsAMDOCS.idChip.getData()}">
67
68 <div class="container container-section">
69 <div class="row-list-combos">
70 <div class="item-list-combo ${vRecommended}" >
71
72
73 <div class="general">
74 <div class="item-inline data-size size-box flex-box">
75 <div class="content">
76 <!--<div class="col-image"><img src="/documents/143522/178306/chip-carrusel.png/4a9d5125-5ff8-7a26-28fe-cf82d8f55752?t=1555342021772" alt="chip - Combos Tuenti" title="chip - Combos Tuenti"></div> -->
77 <div class="col-text">
78 <h2 class="h2">${TituloCombo.getData()}</h2>
79 <h3 class="top">${upperText.getData()}
80 </h3>
81 <span class="size">${size.getData()}</span>
82 </div>
83
84 </div>
85 </div>
86
87 <div class="item-inline flex-box add">
88 <div class="content">
89 <strong class="title">${GigasAdicionales.getData()}</strong>
90 <ul>
91 <li><img src="${IconoUno.getData()}"></li>
92 <li><img src="${IconoUno.IconoDos.getData()}"></li>
93 <li><img src="${IconoUno.IconoTres.getData()}"></li>
94 </ul>
95 </div>
96 </div>
97
98
99 <div class="item-inline data-list flex-box">
100 <div class="content">
101 <@getFeatures />
102 </div>
103 </div>
104 <div class="item-inline data-price flex-box">
105 <div class="content">
106 <span class="price">${priceValue.getData()}</span>
107 <#if typeCombo.getData() != "especial">
108 <p class="bottom-price">${featuresComparador.duracion.getData()}</p>
109 </#if>
110 </div>
111 </div>
112 <div class="item-inline data-btn flex-box">
113 <div class="check-fullwidth">
114
115 </div>
116 <div class="content">
117
118 <#-- Button -->
119 <#if button.buttonExtLink.getData()?has_content>
120 <#assign link = button.buttonExtLink.getData()>
121 <#elseif button.buttonPageLink.getFriendlyUrl()?has_content>
122 <#assign link = button.buttonPageLink.getFriendlyUrl()>
123 </#if>
124
125 <#-- Google Tag manager-->
126 <#if button.idGTM.getData()??>
127 <#assign GTM = button.idGTM.getData()>
128 </#if>
129
130 <a href="${link}?producto=${.vars['reserved-article-id'].data}" title="" class="btn btn-red button">${button.getData()}</a>
131 </div>
132 </div>
133 </div>
134 <div class="check-compare">
135 <span class="text select-comp" onclick="comparar(this)">Comparar
136 <span class="btn-check checked-buy"></span></span>
137 </div>
138 </div>
139
140 <span class="data-list">
141 <span class="text">${textoInferiorComparador.getData()}</span>
142 </span>
143
144 </div>
145 </div>
146</div>
147
148<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")/>
149<#assign destinationLayout = layoutLocalService.getFriendlyURLLayout(groupId, false, "/comparadorCombos")/>
150<#assign urlComparadorCombos = portalUtil.getLayoutFriendlyURL(layoutLocalService.getLayout(destinationLayout.getPlid()), themeDisplay,locale)/>
151
152
153<script>
154 var compararCombos=[];
155
156 pedirVoto('${TituloCombo.getData()} ${upperText.getData()}','${IDsAMDOCS.idChip.getData()}','${priceValue.getData()}');
157
158 function comparar(index){
159 var element= $(index);
160 if(element.find('.select-comparar').length == 1){
161 element.children().removeClass("select-comparar icons-check-simple");
162 compararCombos=[];
163 }else{
164 element.children().addClass("select-comparar icons-check-simple");
165 var articleId=$(index).parents(".section-combos-list").prev(".articleId-combo").text();
166 console.log("ArticleId " + element)
167 compararCombos.push(articleId);
168 if(compararCombos.length == 2){
169 var allCombos=[];
170 for(var i=0;i<$(".articleId-combo").length;i++){
171 allCombos.push($($(".articleId-combo").get(i)).text());
172 }
173 var groupId=$($(".groupId-combo").get(0)).text();
174 window.location.href="${urlComparadorCombos}?group="+groupId+"&combos="+allCombos.join()+"&comp="+compararCombos.join();
175 }
176 }
177 }
178
179</script>
180
181<!-- Track event for Google Tag Manager -->
182<script>
183$(".${GTM}").on('click', function(event){
184 event.stopPropagation();
185 event.stopImmediatePropagation();
186 // Establece data-id y data-category para GTM
187 $('.section-combos-list').attr('data-id', '${comboId}');
188 $('.section-combos-list').attr('data-category', '${comboCategory}');
189
190 var priceSigned = '${priceValue.getData()}';
191 var price = priceSigned.replace("$","");
192
193 dataLayer.push({
194 'event':'trackEvent',
195 'eventCategory':'Funnel - Recarga',
196 'eventAction':'Opciones de combo',
197 'eventLabel':'combo-'+price
198 });
199
200
201});
202
203</script>
204<!-- End track event for Google Tag Manager -->
205
206<#macro getFeatures>
207 <#if features.getSiblings()?has_content>
208 <ul class="col-list">
209 <#assign flagFeature=0>
210 <#list features.getSiblings() as cur_features>
211 <li class="item">
212 <p class="text">${cur_features.getData()}</p>
213 </li>
214 </#list>
215 <li class="">
216 <#if (iconosApps.getSiblings())?has_content>
217 <#list iconosApps.getSiblings() as cur_icons>
218 <img class="bottom-img img-comparador" src="${cur_icons.getData()}" alt="${cur_icons.AltIconoApp.getData()}" title="${cur_icons.TituloIconoApp.getData()}"/>
219 </#list>
220 </#if>
221 </li>
222 </ul>
223 </#if>
224</#macro>
225
226
227
228 <style>
229 .section-combos-list .mesBienvenida .add ul li{background-color:#fff;padding:5px;display:flex}.section-combos-list .powerBienvenida .add ul li{background-color:#fff;padding:5px;display:flex}.mesBienvenida{display:flex!important;flex-flow:initial!important;justify-content:space-between!important}.mesBienvenida .flex-box{width:auto!important;display:flex!important;flex-flow:column!important;justify-content:center!important;padding-right:2.25rem!important}.mesBienvenida .flex-box .h2{font-size:1rem!important;color:#3b327f!important}.mesBienvenida .flex-box strong{font-family:Catamaran,Arial,sans-serif;font-size:1.5625rem;line-height:1.875rem;font-weight:700;color:#3b327f}.mesBienvenida .flex-box ul{margin-top:15px}.mesBienvenida .flex-box ul li{margin:5px 0}.mesBienvenida .flex-box .top{font-weight:700!important;margin-top:15px}.mesBienvenida .add{padding-left:2.25rem!important}.mesBienvenida .item-inline .content{padding:0 0 0!important}.mesBienvenida .check-compare .text{display:block;font-family:Catamaran,Arial,sans-serif;font-size:.875rem;line-height:normal;font-weight:400;color:#767d85;cursor:pointer;padding:0 1.6875rem 0 0;position:relative}.mesBienvenida .check-compare .text .btn-check{display:inline-block;border:1px solid #fff;border-radius:.25rem;height:1.25rem;width:1.25rem;margin:0 -1.6875rem 0 .4375rem;vertical-align:middle}.mesBienvenida .text .btn-check.select-comparar::before{display:inline-block;font-size:.75rem;line-height:1.125rem;color:#f06}.item-list-combo div{display:flex!important;width:100%!important}.mesBienvenida .data-size .col-text{display:flex!important;flex-flow:column}.mesBienvenida .add .content{flex-flow:column}.item-list-combo .check-compare{position:absolute!important;top:.9375rem!important;right:1rem!important;display:flex!important;justify-content:flex-end!important}.mesBienvenida .data-price .content{display:flex;flex-flow:column}.mesBienvenida .data-price .bottom-price{font-family:Catamaran,Arial,sans-serif;font-size:1rem!important;color:#fff!important}.powerBienvenida{display:flex!important;flex-flow:initial!important;justify-content:space-between!important;background-color:#000;background-color:#f06;border:solid 1px #a8afbb}.powerBienvenida .flex-box{width:auto!important;display:flex!important;flex-flow:column!important;justify-content:center!important;padding-right:2.25rem!important}.powerBienvenida .flex-box .h2{font-size:1rem!important;color:#3b327f!important}.powerBienvenida .flex-box strong{font-family:Catamaran,Arial,sans-serif;font-size:1.5625rem;line-height:1.875rem;font-weight:700;color:#fff}.powerBienvenida .flex-box ul{margin-top:15px}.powerBienvenida .flex-box ul li{margin:5px 0}.powerBienvenida .data-list .text{color:#fff!important}.powerBienvenida .data-list .item::before{color:#fff!important}.powerBienvenida .flex-box .top{font-weight:700!important;margin-top:15px}.powerBienvenida .data-size .col-text{display:flex!important;flex-flow:column}.powerBienvenida .add{padding-left:2.25rem!important}.powerBienvenida .item-inline .content{padding:0 0 0!important}.powerBienvenida .check-compare .text{display:block;font-family:Catamaran,Arial,sans-serif;font-size:.875rem;line-height:normal;font-weight:400;color:#fff!important;cursor:pointer;padding:0 1.6875rem 0 0;position:relative}.powerBienvenida .check-compare .text .btn-check{display:inline-block;border:1px solid #fff!important;border-radius:.25rem;height:1.25rem;width:1.25rem;margin:0 -1.6875rem 0 .4375rem;vertical-align:middle}.powerBienvenida .text .btn-check.select-comparar::before{display:inline-block;font-size:.75rem;line-height:1.125rem;color:#fff!important}.powerBienvenida.data-size .col-text{display:flex!important;flex-flow:column}.powerBienvenida .add .content{flex-flow:column}.powerBienvenida .item-list-combo .check-compare{position:absolute!important;top:.9375rem!important;right:1rem!important;display:flex!important;justify-content:right!important}.powerBienvenida .data-price .content{display:flex;flex-flow:column}.powerBienvenida .data-price .bottom-price{font-family:Catamaran,Arial,sans-serif;font-size:1rem!important}.powerBienvenida .btn-red{background:#fff!important;color:#f06!important}.powerBienvenida .data-price .price{color:#fff!important}.bottom-price{color:#fff!important}.mesBienvenida{background-color:#000}.mesBienvenida .flex-box strong{color:#fff}.mesBienvenida .price{color:#fff!important}.mesBienvenida .btn.btn-red{background:#fff;color:#000}.mesBienvenida .btn-check{border:1px solid #fff}.mesBienvenida .top{color:#000}.mesBienvenida .size{color:#000}.section-combos-list .row-list-combos .item-list-combo .check-compare .text .btn-check{border:1px solid #fff!important}.mesBienvenida .general .content .col-text .top{color:#000!important}.mesBienvenida .general .content .col-text .size{color:#000!important}.section-combos-list .row-list-combos .data-list .item::before{color:#fff!important}.mesBienvenida .add ul li{background-color:#000!important}.section-combos-list .powerBienvenida .add ul li{background-color:#f06!important}@media (max-width:991px){.section-combos-list .mesBienvenida .add ul li{justify-content:center}.mesBienvenida .data-size{padding:0 2.25rem!important}.mesBienvenida .data-size .content{text-align:left!important}.mesBienvenida .general{flex-flow:column}.mesBienvenida .data-price{padding:0 2.25rem!important}.mesBienvenida .data-list{padding:0 2.25rem!important}.mesBienvenida .add{text-align:center;margin-top:25px}.mesBienvenida .data-price .content{margin-top:25px;text-align:center!important}.section-combos-list .powerBienvenida .add ul li{justify-content:center}.powerBienvenida .data-size{padding:0 2.25rem!important}.powerBienvenida .data-size .content{text-align:left!important}.powerBienvenida .general{flex-flow:column}.powerBienvenida .data-price{padding:0 2.25rem!important}.powerBienvenida .data-list{padding:0 2.25rem!important}.powerBienvenida .add{text-align:center;margin-top:25px}.powerBienvenida .data-price .content{margin-top:25px;text-align:center!important}.powerBienvenida .data-size .content h2{color:#fff!important}.powerBienvenida .data-size .content h3{color:#fff!important}.powerBienvenida .data-size .content span{color:#fff!important}}
230
231 .section-combos-list-v2 .item-inline {
232 width: 25% !important;
233 }
234
235
236 .mesBienvenida .add ul li{
237 padding: 0px !important;
238 }
239 .powerBienvenida .add ul li {
240 padding: 0px !important;
241 }
242
243 .mesBienvenida .data-list .text {
244 color: #fff !important;
245 }
246 .mesBienvenida .check-compare .text {
247 color: #fff !important;
248 }
249
250
251 @media(max-width: 991px){
252 .section-combos-list-v2 .item-inline {
253 width: 100% !important;
254 }
255 .mesBienvenida .general .content .col-text .top {
256 color: #fff !important;
257 }
258 .mesBienvenida .general .content .col-text .size {
259 color: #fff !important;
260 }
261 }
262 </style>