Compare
المقارنة
An error occurred while processing the template.
The following has evaluated to null or missing:
==> CopyOfFieldset12016865.cardTitle [in template "89618634261561#20119#64394" at line 22, column 68]
----
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 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: #if CopyOfFieldset12016865.getSibling... [in template "89618634261561#20119#64394" at line 22, column 9]
----
1<div class="we_home_package_details">
2<#assign currentURL =themeDisplay.getURLCurrent() />
3<#assign request = themeDisplay.getRequest() />
4<#assign planIdValue = "" />
5<#if currentURL?contains("planId")>
6<#assign planIdValue = request.getParameter("planId")/>
7<#assign backURL = currentURL?split("?")?first />
8</#if>
9
10<#if planIdValue =="" >
11 <#if (CopyOfpackageTitle.getData()?length > 0)>
12 <div class="title">
13 ${CopyOfpackageTitle.getData()}
14 </div>
15 </#if>
16 <div class="description">
17 <#if (CopyOfpackageDescription.getData())??>
18 ${CopyOfpackageDescription.getData()}
19 </#if>
20 </div>
21 <div class="d-flex justify-content-center flex-wrap">
22 <#if CopyOfFieldset12016865.getSiblings()?has_content && (CopyOfFieldset12016865.cardTitle.getData()?length > 0) >
23 <#list CopyOfFieldset12016865.getSiblings() as cur_Fieldset12016865>
24 <div class="col-xl-3 col-md-4 col-sm-6 col-6" >
25 <#assign cardTitle=cur_Fieldset12016865.cardTitle icon=cur_Fieldset12016865.icon description=cur_Fieldset12016865.description linkLabel=cur_Fieldset12016865.linkLabel link=cur_Fieldset12016865.link linkContentId=cur_Fieldset12016865.linkContentId />
26 <#include "${templatesPath}/48192" />
27 </div>
28 </#list>
29 </#if>
30 </div>
31
32
33
34<#global counter=0>
35 <div class="plans_container mb-4">
36 <div class="d-flex flex-nowrap we-multi-content-plan-item justify-content-center we_carousel_list" id="plan-item-list">
37 <#if FilterContent.getSiblings()?has_content && (FilterContent.getSiblings()?filter(item -> item.FilterContentImage.getData()!='')?size> 0)>
38 <#list FilterContent.getSiblings() as cur_packageType>
39 <div class="nav-item">
40 <a class="nav-link ${(cur_packageType?counter == 1)?then('selected', '')}"
41 data-info="${cur_packageType?counter} + tab" href="#">
42 <div class="image-container">
43 <img alt="${cur_packageType.FilterContentImage.getAttribute("alt")}" data-fileentryid="${cur_packageType.FilterContentImage.getAttribute("fileEntryId")}" src="${cur_packageType.FilterContentImage.getData()}" class="image-tag" />
44 </div>
45 <div class="details-icon-items">
46 <span>
47 <img alt="${cur_packageType.FilterContentIcon.getAttribute("alt")}" data-fileentryid="${cur_packageType.FilterContentIcon.getAttribute("fileEntryId")}" src="${cur_packageType.FilterContentIcon.getData()}" class="icon-tag" />
48 </span>
49 <span><#if (cur_packageType.FilterContentLabel.getData())??>
50 ${cur_packageType.FilterContentLabel.getData()}
51 </#if></span>
52 </div>
53 </a>
54 </div>
55 </#list>
56 </#if>
57 </div>
58 <div id="icon-slider" class="slider points">
59 <div class="active" onclick="slide('plan-item-list',this,0)"></div>
60 <#list 1..FilterContent.getSiblings()?size-1 as index>
61 <div onclick="slide('plan-item-list',this,${index})"></div>
62 </#list>
63 </div>
64
65 <div class="we-multi-content-tab-body ">
66 <#if FilterContent.getSiblings()?has_content>
67 <div class="title my-4">Choose Your Plan</div>
68 <#list FilterContent.getSiblings() as cur_active_packageType>
69 <div class="we-multi-content-plan-body-container ${(cur_active_packageType?counter > 1)?then('hide-body-part', '')}"
70 id="${cur_active_packageType?counter} + tab">
71 <#if cur_active_packageType.comparisonCard.getSiblings()?has_content>
72 <#if ((cur_active_packageType.comparisonCard.getSiblings()?size)> 3) >
73 <div class="we_carousel_arrow img_arrow" onclick="slideLeft('choose_plan_slider')" id="we_prev">
74 <img src="/documents/d/guest/shift-left" />
75 </div>
76 <div class="we_carousel_arrow img_arrow" onclick="slideRight('choose_plan_slider')" id="we_next">
77 <img src="/documents/d/guest/shift right" />
78 </div>
79 </#if>
80 <div class="we_carousel_list " id="choose_plan_slider">
81 <#list cur_active_packageType.comparisonCard.getSiblings() as cur_entry>
82
83 <#assign comparidson_card_index=cur_entry?index comparisonCardHeader=cur_entry.comparisonCardHeader comparisonCardBody=cur_entry.comparisonCardBody />
84 <#include "${templatesPath}/66496" />
85 </#list>
86 </div>
87 <#if (cur_active_packageType.comparisonCard.getSiblings()?size>3) >
88 <div id="slider" class="slider points circle_points">
89 <div class="active" onclick="slide('choose_plan_slider',this,0)"></div>
90 <#if (counter>1) >
91 <#list 1..counter as index>
92 <div onclick="slide('choose_plan_slider',this,${index})"></div>
93 </#list>
94 </#if>
95 </div>
96 </#if>
97 </#if>
98 </div>
99 </#list>
100 </#if>
101 </div>
102 </div>
103
104
105
106
107 <#if CopyOfFieldset34313138.mcitComponentTitle.getData()?has_content>
108 <div class="benefits_details my-4" >
109 <#assign mcitComponentTitle=CopyOfFieldset34313138.mcitComponentTitle Fieldset80219722= CopyOfFieldset34313138.Fieldset80219722 />
110 <#include "${templatesPath}/47570" />
111 </div>
112 </#if>
113
114
115
116<#else>
117<div>
118 <#if FilterContent.comparisonCard.getSiblings()?has_content>
119 <#assign plans=FilterContent.comparisonCard.getSiblings() />
120 <#list plans?filter(plan -> plan.comparisonCardHeader.cardID.getData() == planIdValue ) as filteredPlan >
121
122 <#include "${templatesPath}/72673" />
123 </#list>
124</#if>
125
126
127</div>
128
129
130
131 </#if>
132
133</div>
134 <#function filterShownElements x >
135 <#return true >
136</#function>
137<style>
138 .we-multi-content-tab-body {
139 background-color: white;
140}
141.plans_container {
142 width: 80%;
143 margin: 0 auto;
144
145.we-multi-content-plan-item {
146 margin-top: 3rem;
147 border: 0px solid #d8d8d8;
148 .nav-item{
149 margin-inline-end: 3rem;
150 }
151 .image-container{
152 width: 145px;
153 height: 115px;
154 border-radius: 12px;
155
156 }
157 .image-tag{
158 width:100%;
159 height:100%;
160 mix-blend-mode: luminosity;
161 opacity: 0.45;
162 border-radius: 12px;
163 }
164 .icon-tag{
165 mix-blend-mode: luminosity;
166 opacity: 0.45;
167 width: 25px;
168 height: 25px;
169 margin-inline-end: 10px;
170 position: relative;
171 top: 7px;
172 }
173 .nav-link {color:gray}
174 }
175 .hide-body-part {
176 display: none !important;
177 }
178 .details-icon-items{
179 text-align: center;
180 }
181 .selected{
182 color:#5c2d91 !important;
183 .image-container{
184 box-shadow: 2px 3px 19px #c5c3c3db;
185 }
186 .image-tag{
187 mix-blend-mode: normal;
188 opacity: 1;
189 }
190 .icon-tag{
191 mix-blend-mode: normal;
192 opacity: 1;
193 }
194}
195
196
197 .title {
198 font: normal normal 600 32px / 30px "Rubik";
199 color: #5C2D91;
200 text-align: center;
201 }
202}
203
204
205 #plan-item-list{justify-content: center;}
206#icon-slider.points {
207 display: none;
208 }
209.we_home_package_details {
210 margin-top: 40px;
211
212 .title {
213 font: normal normal 600 32px/30px "Rubik";
214 color: #5C2D91;
215 text-align:center;
216 }
217
218 .description {
219 text-align: center;
220 margin-top: 20px;
221 font: normal normal normal 18px / 30px "Rubik";
222 }
223
224 .package_plans {
225 margin-top: 40px;
226 }
227
228}
229
230
231@media (max-width:992px) {
232 .we_home_package_details {
233 margin-top: 30px;
234
235 .title {
236 font: normal normal 600 20px/24px Rubik;
237 }
238
239 .description {
240 font: normal normal normal 14px/17px "Rubik";
241 margin-top: 12px;
242 }
243
244 .package_plans {
245 margin-top: 30px;
246 }
247 .img_arrow {
248 display: none;
249
250 }
251 .we_carousel_list {
252 padding:0;
253 }
254
255 #icon-slider.points {
256 display: block;
257 text-align:center;
258 bottom:0px !important;
259 top: 30%;
260
261 }
262 .nav-item{
263 margin-inline-end: 0rem !important;
264 }
265 .plans_container {
266 width: 100%;
267 }
268 .arrow_mobile {
269 display: block;
270 img{ position:relative;
271 top:45%;
272 }
273 }
274 .arrow_desktop {
275 display: none;
276 }
277 }
278}
279</style>
280 <script>
281document.addEventListener('DOMContentLoaded', () => {
282 function handleItemClick(event) {
283 event.preventDefault();
284 let targetId = event.currentTarget.dataset.info;
285 counter =0;
286 document.querySelectorAll('.we-multi-content-plan-body-container').forEach(i => {
287 if (i.id.trim() == targetId?.trim()) {
288 document.querySelectorAll('.we-multi-content-plan-body-container').forEach(i => i.classList.add('hide-body-part'));
289 i.classList.remove('hide-body-part');
290 counter++;
291 }
292 });
293 }
294 document.querySelectorAll('.nav-link').forEach(item => {
295 let targetId = ""
296 item.addEventListener('click', function(event) {
297 event.preventDefault();
298 // Remove 'selected' class from all items
299 document.querySelectorAll('.nav-link').forEach(i => i.classList.remove('selected'));
300 // Add 'selected' class to the clicked item
301 this.classList.add('selected');
302 });
303 });
304 const links = document.querySelectorAll('#plan-item-list a');
305 links.forEach(link => {
306 link.addEventListener('click', handleItemClick);
307 });
308});
309
310 </script>


