Unlimited Elements For Elementor (Free Widgets, Addons, Templates) - Version 1.4.74

Version Description

Download this release

Release Info

Developer unitecms
Plugin Icon 128x128 Unlimited Elements For Elementor (Free Widgets, Addons, Templates)
Version 1.4.74
Comparing to
See all releases

Code changes from version 1.4.71 to 1.4.74

Files changed (178) hide show
  1. assets_libraries/filters/ue_filters.js +412 -0
  2. css/admin.css +5 -0
  3. inc_php/addontypes/unitecreator_addontype.class.php +2 -2
  4. inc_php/addontypes/unitecreator_addontype_bgaddon.class.php +2 -2
  5. inc_php/addontypes/unitecreator_addontype_layout.class.php +2 -2
  6. inc_php/addontypes/unitecreator_addontype_layout_general.class.php +2 -2
  7. inc_php/addontypes/unitecreator_addontype_layout_section.class.php +2 -2
  8. inc_php/addontypes/unitecreator_addontype_shape.class.php +2 -2
  9. inc_php/addontypes/unitecreator_addontype_shape_devider.class.php +2 -2
  10. inc_php/framework/base_admin.class.php +2 -2
  11. inc_php/framework/base_output.class.php +2 -2
  12. inc_php/framework/cssparser.class.php +2 -2
  13. inc_php/framework/db.class.php +2 -2
  14. inc_php/framework/elements_base.class.php +2 -2
  15. inc_php/framework/font_manager.class.php +2 -2
  16. inc_php/framework/functions.class.php +76 -6
  17. inc_php/framework/functions.php +2 -2
  18. inc_php/framework/helper_base.class.php +2 -2
  19. inc_php/framework/html_output_base.class.php +2 -2
  20. inc_php/framework/image_proccess.class.php +2 -2
  21. inc_php/framework/include_framework.php +2 -2
  22. inc_php/framework/instagram/helper.class.php +2 -2
  23. inc_php/framework/instagram/instagram.api.class.php +2 -2
  24. inc_php/framework/instagram/instagram_api_new.class.php +2 -2
  25. inc_php/framework/instagram/instagram_api_official.class.php +2 -2
  26. inc_php/framework/instagram/obj_comment.class.php +2 -2
  27. inc_php/framework/instagram/obj_comments.class.php +2 -2
  28. inc_php/framework/instagram/obj_item.class.php +2 -2
  29. inc_php/framework/instagram/obj_items.class.php +2 -2
  30. inc_php/framework/instagram/obj_user.class.php +2 -2
  31. inc_php/framework/mysql.class.php +2 -2
  32. inc_php/framework/services.class.php +2 -2
  33. inc_php/framework/settings.class.php +6 -2
  34. inc_php/framework/settings_advances.class.php +2 -2
  35. inc_php/framework/settings_output.class.php +5 -2
  36. inc_php/framework/settings_output_inline.class.php +2 -2
  37. inc_php/framework/settings_output_sidebar.class.php +2 -2
  38. inc_php/framework/settings_output_wide.class.php +2 -2
  39. inc_php/framework/shapes.class.php +2 -2
  40. inc_php/framework/table.class.php +2 -2
  41. inc_php/framework/translate.class.php +2 -2
  42. inc_php/framework/zip.class.php +2 -2
  43. inc_php/layouts/unitecreator_layout.class.php +2 -2
  44. inc_php/layouts/unitecreator_layout_config_base.class.php +2 -2
  45. inc_php/layouts/unitecreator_layouts.class.php +2 -2
  46. inc_php/layouts/unitecreator_layouts_exporter.class.php +4 -4
  47. inc_php/manager/unitecreator_manager.class.php +2 -2
  48. inc_php/manager/unitecreator_manager_addons.class.php +2 -2
  49. inc_php/manager/unitecreator_manager_inline.class.php +2 -2
  50. inc_php/manager/unitecreator_manager_pages.class.php +2 -2
  51. inc_php/plugins/unitecreator_plugin_base.class.php +2 -2
  52. inc_php/plugins/unitecreator_plugin_filters.class.php +2 -2
  53. inc_php/plugins/unitecreator_plugins.class.php +2 -2
  54. inc_php/unitecreator_actions.class.php +30 -27
  55. inc_php/unitecreator_addon.class.php +7 -5
  56. inc_php/unitecreator_addon_config.class.php +2 -2
  57. inc_php/unitecreator_addon_validator.class.php +2 -2
  58. inc_php/unitecreator_addons.class.php +3 -2
  59. inc_php/unitecreator_assets.class.php +2 -2
  60. inc_php/unitecreator_assets_work.class.php +2 -2
  61. inc_php/unitecreator_browser.class.php +2 -2
  62. inc_php/unitecreator_categories.class.php +2 -2
  63. inc_php/unitecreator_category.class.php +2 -2
  64. inc_php/unitecreator_client_text.php +4 -2
  65. inc_php/unitecreator_dataset.class.php +2 -2
  66. inc_php/unitecreator_dialog_param.class.php +60 -12
  67. inc_php/unitecreator_exporter.class.php +2 -2
  68. inc_php/unitecreator_exporter_base.class.php +2 -2
  69. inc_php/unitecreator_filters_process.class.php +276 -120
  70. inc_php/unitecreator_form.class.php +2 -2
  71. inc_php/unitecreator_globals.class.php +3 -3
  72. inc_php/unitecreator_helper.class.php +21 -4
  73. inc_php/unitecreator_helperhtml.class.php +50 -3
  74. inc_php/unitecreator_library.class.php +2 -2
  75. inc_php/unitecreator_operations.class.php +44 -2
  76. inc_php/unitecreator_output.class.php +116 -50
  77. inc_php/unitecreator_params_editor.class.php +2 -2
  78. inc_php/unitecreator_params_processor.class.php +34 -14
  79. inc_php/unitecreator_settings.class.php +30 -14
  80. inc_php/unitecreator_settings_output.class.php +2 -2
  81. inc_php/unitecreator_template_engine.class.php +115 -17
  82. inc_php/unitecreator_variables_output.class.php +2 -2
  83. inc_php/unitecreator_web_api.class.php +2 -2
  84. inc_php/unitecreator_web_library.class.php +1 -1
  85. includes.php +3 -3
  86. js/admin.js +13 -13
  87. js/settings.js +57 -3
  88. js/unitecreator_addon_config.js +16 -7
  89. js/unitecreator_admin.js +17 -9
  90. js/unitecreator_includes.js +60 -1
  91. js/unitecreator_params_dialog.js +101 -19
  92. js/unitecreator_params_panel.js +2 -1
  93. provider/acf_integrate.class.php +14 -7
  94. provider/core/plugins/unlimited_elements/addontype_cpt.class.php +2 -2
  95. provider/core/plugins/unlimited_elements/addontype_elementor.class.php +2 -2
  96. provider/core/plugins/unlimited_elements/addontype_elementor_template.class.php +2 -2
  97. provider/core/plugins/unlimited_elements/copy_paste.class.php +216 -0
  98. provider/core/plugins/unlimited_elements/dialog_param_elementor.class.php +4 -2
  99. provider/core/plugins/unlimited_elements/elementor/assets/uc_editor_admin.js +3 -6
  100. provider/core/plugins/unlimited_elements/elementor/assets/uc_front_section_copy.css +33 -0
  101. provider/core/plugins/unlimited_elements/elementor/assets/uc_front_section_copy.js +142 -0
  102. provider/core/plugins/unlimited_elements/elementor/assets/uc_front_section_paste.css +21 -0
  103. provider/core/plugins/unlimited_elements/elementor/assets/uc_front_section_paste.js +65 -0
  104. provider/core/plugins/unlimited_elements/elementor/elementor_dynamic_visibility.class.php +425 -0
  105. provider/core/plugins/unlimited_elements/elementor/elementor_integrate.class.php +98 -9
  106. provider/core/plugins/unlimited_elements/elementor/elementor_layout_exporter.class.php +160 -49
  107. provider/core/plugins/unlimited_elements/elementor/elementor_widget.class.php +178 -36
  108. provider/core/plugins/unlimited_elements/elementor/pagination.class.php +31 -88
  109. provider/core/plugins/unlimited_elements/globals.class.php +1 -4
  110. provider/core/plugins/unlimited_elements/helper_provider_core.class.php +139 -1
  111. provider/core/plugins/unlimited_elements/plugin.php +3 -1
  112. provider/core/plugins/unlimited_elements/provider_core_front.class.php +8 -1
  113. provider/core/plugins/unlimited_elements/settings/general_settings_el.xml +39 -0
  114. provider/core/plugins/unlimited_elements/views/licenseelementor.php +2 -2
  115. provider/core/plugins/unlimited_elements/views/settingselementor.php +6 -2
  116. provider/functions_wordpress.class.php +91 -4
  117. provider/provider_actions.class.php +1 -1
  118. provider/provider_admin.class.php +2 -1
  119. provider/provider_browser.class.php +2 -2
  120. provider/provider_categories.class.php +2 -2
  121. provider/provider_client_text.php +2 -2
  122. provider/provider_dialog_param.class.php +2 -5
  123. provider/provider_front.class.php +1 -0
  124. provider/provider_functions.class.php +6 -1
  125. provider/provider_globals.class.php +10 -0
  126. provider/provider_helper.class.php +3 -1
  127. provider/provider_layout.class.php +1 -1
  128. provider/provider_layout_output.class.php +1 -1
  129. provider/provider_layouts.class.php +1 -1
  130. provider/provider_layouts_exporter.class.php +1 -1
  131. provider/provider_manager_addons.class.php +2 -2
  132. provider/provider_operations.class.php +2 -1
  133. provider/provider_output.class.php +1 -1
  134. provider/provider_params_processor.class.php +555 -42
  135. provider/provider_settings.class.php +271 -51
  136. provider/provider_settings_output.class.php +1 -1
  137. provider/provider_template_engine.class.php +2 -2
  138. provider/provider_web_api.class.php +2 -2
  139. provider/views/provider_activation_view.class.php +2 -2
  140. provider/woocommerce_integrate.class.php +10 -1
  141. readme.txt +166 -157
  142. release_log.txt +31 -0
  143. settings/addon_fields.php +2 -2
  144. settings/font_panel_data.php +2 -2
  145. unitecreator_admin.php +2 -2
  146. unlimited_elements.php +3 -3
  147. views/addon.php +2 -2
  148. views/addondefaults.php +2 -2
  149. views/addons.php +2 -2
  150. views/assets.php +2 -2
  151. views/layout.php +2 -2
  152. views/layout_outer.php +2 -2
  153. views/layout_preview.php +2 -2
  154. views/layouts.php +2 -2
  155. views/layouts_settings.php +2 -2
  156. views/library.php +2 -2
  157. views/license.php +2 -2
  158. views/mappicker.php +2 -2
  159. views/master_view.php +2 -2
  160. views/mediaselect.php +2 -2
  161. views/objects/activation_view.class.php +2 -2
  162. views/objects/addon_view.class.php +32 -2
  163. views/objects/addon_view_childparams.class.php +55 -6
  164. views/objects/addons_view.class.php +2 -2
  165. views/objects/layouts_view.class.php +2 -2
  166. views/objects/mappicker_view.class.php +2 -2
  167. views/objects/objects_list_view.class.php +2 -2
  168. views/objects/settings_view.class.php +2 -2
  169. views/objects/views_chooser.class.php +2 -2
  170. views/settings.php +2 -2
  171. views/system/video_dialog.php +2 -2
  172. views/templates.php +2 -2
  173. views/templates/addon_defaults.php +2 -2
  174. views/templates/header.php +2 -2
  175. views/templates/settings.php +2 -2
  176. views/templates/test_addon.php +2 -2
  177. views/test_settings.php +2 -2
  178. views/testaddon.php +2 -2
assets_libraries/filters/ue_filters.js ADDED
@@ -0,0 +1,412 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ function UEListingFilters(){
3
+
4
+ var g_objFilters, g_objListing, g_listingData, g_urlBase;
5
+
6
+ var g_types = {
7
+ CHECKBOX:"checkbox"
8
+ };
9
+
10
+
11
+ /**
12
+ * console log some string
13
+ */
14
+ function trace(str){
15
+ console.log(str);
16
+ }
17
+
18
+ /**
19
+ * get object property
20
+ */
21
+ function getVal(obj, name, defaultValue){
22
+
23
+ if(!defaultValue)
24
+ var defaultValue = "";
25
+
26
+ var val = "";
27
+
28
+ if(!obj || typeof obj != "object")
29
+ val = defaultValue;
30
+ else if(obj.hasOwnProperty(name) == false){
31
+ val = defaultValue;
32
+ }else{
33
+ val = obj[name];
34
+ }
35
+
36
+ return(val);
37
+ }
38
+
39
+
40
+ /**
41
+ * get filter type
42
+ */
43
+ function getFilterType(objFilter){
44
+
45
+ if(objFilter.is(":checkbox"))
46
+ return(g_types.CHECKBOX);
47
+
48
+ return(null);
49
+ }
50
+
51
+
52
+ /**
53
+ * clear filter
54
+ */
55
+ function clearFilter(objFilter){
56
+
57
+ var type = getFilterType(objFilter);
58
+
59
+ switch(type){
60
+ case g_types.CHECKBOX:
61
+ objFilter.prop("checked", false);
62
+ break;
63
+ }
64
+
65
+ }
66
+
67
+
68
+ /**
69
+ * clear filters
70
+ */
71
+ function clearFilters(checkActive){
72
+
73
+ jQuery.each(g_objFilters,function(index, filter){
74
+
75
+ var objFilter = jQuery(filter);
76
+
77
+ if(checkActive == true){
78
+
79
+ var isActive = objFilter.data("active");
80
+ if(isActive == "yes")
81
+ return(true);
82
+ }
83
+
84
+ clearFilter(objFilter);
85
+
86
+ });
87
+
88
+ }
89
+
90
+ /**
91
+ * get filter data
92
+ */
93
+ function getFilterData(objFilter){
94
+
95
+ var objData = {};
96
+
97
+ var type = getFilterType(objFilter);
98
+
99
+ var type = objFilter.data("type");
100
+
101
+ objData["type"] = type;
102
+
103
+ switch(type){
104
+ case "term":
105
+ var taxonomy = objFilter.data("taxonomy");
106
+ var term = objFilter.data("term");
107
+
108
+ objData["taxonomy"] = taxonomy;
109
+ objData["term"] = term;
110
+ break;
111
+ default:
112
+ throw new Error("getFilterData error: wrong data type: "+type);
113
+ break;
114
+ }
115
+
116
+ return(objData);
117
+ }
118
+
119
+ /**
120
+ * check if the filter selected
121
+ */
122
+ function isFilterSelected(objFilter){
123
+
124
+ var type = getFilterType(objFilter);
125
+
126
+ switch(type){
127
+ case g_types.CHECKBOX:
128
+
129
+ var isSelected = objFilter.is(":checked");
130
+
131
+ return(isSelected);
132
+
133
+ break;
134
+ default:
135
+ throw new Error("isFilterSelected error. wrong type: "+type);
136
+ break;
137
+ }
138
+
139
+
140
+ return(false);
141
+ }
142
+
143
+
144
+ /**
145
+ * get all selected filters
146
+ */
147
+ function getSelectedFilters(){
148
+
149
+ var objSelected = [];
150
+
151
+ jQuery.each(g_objFilters, function(index, filter){
152
+
153
+ var objFilter = jQuery(filter);
154
+
155
+ var isSelected = isFilterSelected(objFilter);
156
+
157
+ if(isSelected == true)
158
+ objSelected.push(objFilter);
159
+
160
+ });
161
+
162
+
163
+ return(objSelected);
164
+ }
165
+
166
+
167
+ /**
168
+ * get filters data array
169
+ */
170
+ function getArrFilterData(){
171
+
172
+ var objFilters = getSelectedFilters();
173
+
174
+ if(objFilters.length == 0)
175
+ return([]);
176
+
177
+ var arrData = [];
178
+
179
+ jQuery.each(objFilters, function(index, filter){
180
+
181
+ var objFilter = jQuery(filter);
182
+
183
+ var objFilterData = getFilterData(objFilter);
184
+
185
+ arrData.push(objFilterData);
186
+ });
187
+
188
+ return(arrData);
189
+ }
190
+
191
+ /**
192
+ * consolidate filters data
193
+ */
194
+ function consolidateFiltersData(arrData){
195
+
196
+ if(arrData.length == 0)
197
+ return([]);
198
+
199
+ //consolidate by taxonomies
200
+
201
+ var objTax = {};
202
+
203
+ jQuery.each(arrData, function(index, item){
204
+
205
+ switch(item.type){
206
+ case "term":
207
+
208
+ var taxonomy = item.taxonomy;
209
+ var term = item.term;
210
+
211
+ if(objTax.hasOwnProperty(taxonomy) == false)
212
+ objTax[taxonomy] = [];
213
+
214
+ objTax[taxonomy].push(term);
215
+
216
+ break;
217
+ default:
218
+ throw new Error("consolidateFiltersData error: wrong type: "+item.type);
219
+ break;
220
+ }
221
+
222
+ });
223
+
224
+ var arrConsolidated = {};
225
+ arrConsolidated["terms"] = objTax;
226
+
227
+ return(arrConsolidated);
228
+ }
229
+
230
+ /**
231
+ * build terms query
232
+ */
233
+ function buildQuery_terms(objTax){
234
+
235
+ var query = "";
236
+
237
+ jQuery.each(objTax, function(taxonomy, arrTerms){
238
+
239
+ var strTerms = arrTerms.join(".");
240
+ if(!strTerms)
241
+ return(true);
242
+
243
+ //separator
244
+
245
+ if(query)
246
+ taxonomy += ";";
247
+
248
+ //query
249
+
250
+ query += taxonomy + "~" + strTerms;
251
+ });
252
+
253
+ return(query);
254
+ }
255
+
256
+
257
+ /**
258
+ * build url query from the filters
259
+ * example:
260
+ * ucfilters=product_cat~shoes,dress;cat~123,43;
261
+ */
262
+ function buildUrlQuery(){
263
+
264
+ var arrData = getArrFilterData();
265
+
266
+ if(arrData.length == 0)
267
+ return("");
268
+
269
+ var queryFilters = "";
270
+
271
+ var arrConsolidated = consolidateFiltersData(arrData);
272
+
273
+ jQuery.each(arrConsolidated, function(type, objItem){
274
+
275
+ switch(type){
276
+ case "terms":
277
+ var queryTerms = buildQuery_terms(objItem);
278
+
279
+ if(queryFilters)
280
+ queryFilters += ";";
281
+
282
+ queryFilters += queryTerms;
283
+ break;
284
+ }
285
+
286
+ });
287
+
288
+ //return query
289
+
290
+ var query = "ucfilters=" + queryFilters;
291
+
292
+ return(query);
293
+ }
294
+
295
+ /**
296
+ * get redirect url
297
+ */
298
+ function getRedirectUrl(query){
299
+
300
+ if(!g_urlBase)
301
+ throw new Error("getRedirectUrl error - empty url");
302
+
303
+ var url = g_urlBase;
304
+
305
+ if(!query)
306
+ return(url);
307
+
308
+ var posQ = url.indexOf("?");
309
+
310
+ if(posQ == -1)
311
+ url += "?";
312
+ else
313
+ url += "&";
314
+
315
+ url += query;
316
+
317
+ return(url);
318
+ }
319
+
320
+
321
+ /**
322
+ * on filters change - refresh the page with the new query
323
+ */
324
+ function onFiltersChange(){
325
+
326
+ var query = buildUrlQuery();
327
+
328
+ var url = getRedirectUrl(query);
329
+
330
+ if(!url)
331
+ throw new error("onFiltersChange error - empty redirect url");
332
+
333
+ location.href = url;
334
+
335
+ }
336
+
337
+
338
+ /**
339
+ * init events
340
+ */
341
+ function initEvents(){
342
+
343
+ var objCheckboxes = g_objFilters.filter("input[type=checkbox]");
344
+
345
+ objCheckboxes.on("click", onFiltersChange);
346
+
347
+ }
348
+
349
+
350
+ /**
351
+ * init
352
+ */
353
+ function init(){
354
+
355
+ g_objFilters = jQuery(".uc-listing-filter");
356
+
357
+ if(g_objFilters.length == 0){
358
+ return(false);
359
+ }
360
+
361
+ //init the listing
362
+
363
+ g_objListing = jQuery(".uc-filterable-listing");
364
+
365
+ if(g_objListing.length == 0){
366
+ trace("fitlers not loaded, no listing available on page");
367
+ return(false);
368
+ }
369
+
370
+ //get first listing
371
+ if(g_objListing.length > 1)
372
+ g_objListing = jQuery(g_objListing[0]);
373
+
374
+ g_listingData = g_objListing.data("ucfilters");
375
+ if(!g_listingData)
376
+ g_listingData = {};
377
+
378
+ g_urlBase = getVal(g_listingData, "urlbase");
379
+
380
+ if(!g_urlBase){
381
+ trace("ue filters error - base url not inited");
382
+ return(false);
383
+ }
384
+
385
+ trace("filters are active!");
386
+
387
+ clearFilters(true);
388
+
389
+ initEvents();
390
+
391
+ }
392
+
393
+
394
+ /**
395
+ * init the class
396
+ */
397
+ function construct(){
398
+
399
+ if(!jQuery){
400
+ trace("Filters not loaded, jQuery not loaded");
401
+ return(false);
402
+ }
403
+
404
+ jQuery("document").ready(init);
405
+
406
+ }
407
+
408
+ construct();
409
+ }
410
+
411
+ new UEListingFilters();
412
+
css/admin.css CHANGED
@@ -983,8 +983,11 @@ ul.unite-context-menu li a:focus {
983
  }
984
  .unite-inputs select {
985
  padding: 2px;
 
 
986
  width: auto;
987
  }
 
988
  .unite-inputs select option {
989
  padding: 2px;
990
  }
@@ -1050,6 +1053,7 @@ ul.unite-context-menu li a:focus {
1050
  position: absolute;
1051
  z-index: 99999999;
1052
  }
 
1053
  .unite-settings select {
1054
  min-width: 80px;
1055
  width: auto !important;
@@ -1324,6 +1328,7 @@ noimage:
1324
  width:100% !important;
1325
  }
1326
 
 
1327
  #-----------------SETTINGS-WIDE---------------- {}
1328
 
1329
  .unite_settings_wide {
983
  }
984
  .unite-inputs select {
985
  padding: 2px;
986
+ padding-left:5px;
987
+ padding-right:20px;
988
  width: auto;
989
  }
990
+
991
  .unite-inputs select option {
992
  padding: 2px;
993
  }
1053
  position: absolute;
1054
  z-index: 99999999;
1055
  }
1056
+
1057
  .unite-settings select {
1058
  min-width: 80px;
1059
  width: auto !important;
1328
  width:100% !important;
1329
  }
1330
 
1331
+
1332
  #-----------------SETTINGS-WIDE---------------- {}
1333
 
1334
  .unite_settings_wide {
inc_php/addontypes/unitecreator_addontype.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/addontypes/unitecreator_addontype_bgaddon.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/addontypes/unitecreator_addontype_layout.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/addontypes/unitecreator_addontype_layout_general.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/addontypes/unitecreator_addontype_layout_section.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/addontypes/unitecreator_addontype_shape.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/addontypes/unitecreator_addontype_shape_devider.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/base_admin.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/base_output.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/cssparser.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/db.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/elements_base.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/font_manager.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/functions.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -168,6 +168,22 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
168
  return($arrNew);
169
  }
170
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
171
 
172
  /**
173
  * Convert std class to array, with all sons
@@ -619,6 +635,37 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
619
  return($arrIDs);
620
  }
621
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
622
  public static function z_____________STRINGS_____________(){}
623
 
624
  /**
@@ -680,7 +727,10 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
680
  public static function getRandomString($length = 10, $numbersOnly = false){
681
 
682
  $characters = '0123456789abcdefghijklmnopqrstuvwxyz';
683
- if($numbersOnly == true)
 
 
 
684
  $characters = '0123456789';
685
 
686
  $randomString = '';
@@ -1241,7 +1291,8 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1241
  if(!empty($strPost))
1242
  $url = self::addUrlParams($url, $strPost);
1243
  }
1244
-
 
1245
  //remove me
1246
  //Functions::addToLogFile(SERVICE_LOG_SERVICE, "url", $url);
1247
 
@@ -1259,7 +1310,8 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1259
  curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
1260
 
1261
  $response = curl_exec($ch);
1262
-
 
1263
  if($debug == true){
1264
  dmp($url);
1265
  dmp($response);
@@ -1347,6 +1399,23 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1347
  return($url);
1348
  }
1349
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1350
  public static function z___________VALIDATIONS_________(){}
1351
 
1352
  /**
@@ -2134,9 +2203,10 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
2134
  }
2135
 
2136
 
2137
-
2138
  public static function z___________OTHERS__________(){}
2139
 
 
 
2140
  /**
2141
  * encode svg to bg image url
2142
  */
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
168
  return($arrNew);
169
  }
170
 
171
+ /**
172
+ * remove some of the assoc array fields
173
+ * fields is simple array - field1, field2, field3
174
+ */
175
+ public static function removeArrItemsByKeys($arrItems, $keysToRemove){
176
+
177
+ foreach($keysToRemove as $key){
178
+
179
+ if(array_key_exists($key, $arrItems))
180
+ unset($arrItems[$key]);
181
+
182
+ }
183
+
184
+ return($arrItems);
185
+ }
186
+
187
 
188
  /**
189
  * Convert std class to array, with all sons
635
  return($arrIDs);
636
  }
637
 
638
+ /**
639
+ * modify data array for show - for DEBUG purposes
640
+ * convert single array like in post meta
641
+ */
642
+ public static function modifyDataArrayForShow($arrData, $convertSingleArray = false){
643
+
644
+ if(is_array($arrData) == false)
645
+ return($arrData);
646
+
647
+ $arrDataNew = array();
648
+ foreach($arrData as $key=>$value){
649
+
650
+ $key = htmlspecialchars($key);
651
+
652
+ if(is_string($value) == true)
653
+ $value = htmlspecialchars($value);
654
+
655
+ $key = " $key";
656
+
657
+ $arrDataNew[$key] = $value;
658
+
659
+ //convert single array
660
+ if($convertSingleArray == true && is_array($value) && count($value) == 1 && isset($value[0]))
661
+ $arrDataNew[$key] = $value[0];
662
+
663
+ }
664
+
665
+ return($arrDataNew);
666
+ }
667
+
668
+
669
  public static function z_____________STRINGS_____________(){}
670
 
671
  /**
727
  public static function getRandomString($length = 10, $numbersOnly = false){
728
 
729
  $characters = '0123456789abcdefghijklmnopqrstuvwxyz';
730
+
731
+ if($numbersOnly === "hex")
732
+ $characters = '0123456789abcdef';
733
+ if($numbersOnly === true)
734
  $characters = '0123456789';
735
 
736
  $randomString = '';
1291
  if(!empty($strPost))
1292
  $url = self::addUrlParams($url, $strPost);
1293
  }
1294
+
1295
+
1296
  //remove me
1297
  //Functions::addToLogFile(SERVICE_LOG_SERVICE, "url", $url);
1298
 
1310
  curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
1311
 
1312
  $response = curl_exec($ch);
1313
+
1314
+
1315
  if($debug == true){
1316
  dmp($url);
1317
  dmp($response);
1399
  return($url);
1400
  }
1401
 
1402
+ /**
1403
+ * get base url from any url
1404
+ */
1405
+ public static function getBaseUrl($url){
1406
+
1407
+ $arrUrl = parse_url($url);
1408
+
1409
+ $scheme = UniteFunctionsUC::getVal($arrUrl, "scheme","http");
1410
+ $host = UniteFunctionsUC::getVal($arrUrl, "host");
1411
+ $path = UniteFunctionsUC::getVal($arrUrl, "path");
1412
+
1413
+ $url = "{$scheme}://{$host}{$path}";
1414
+
1415
+ return($url);
1416
+ }
1417
+
1418
+
1419
  public static function z___________VALIDATIONS_________(){}
1420
 
1421
  /**
2203
  }
2204
 
2205
 
 
2206
  public static function z___________OTHERS__________(){}
2207
 
2208
+
2209
+
2210
  /**
2211
  * encode svg to bg image url
2212
  */
inc_php/framework/functions.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/helper_base.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/html_output_base.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/image_proccess.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/include_framework.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/instagram/helper.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/instagram/instagram.api.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/instagram/instagram_api_new.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/instagram/instagram_api_official.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/instagram/obj_comment.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/instagram/obj_comments.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/instagram/obj_item.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/instagram/obj_items.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/instagram/obj_user.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/mysql.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/services.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/settings.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -1167,6 +1167,10 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1167
  $loadParam = (string)UniteFunctionsUC::getVal($attribs, "loadparam");
1168
  $loadedSettingsType = (string)UniteFunctionsUC::getVal($attribs, "loadtype");
1169
  $nodraw = (string)UniteFunctionsUC::getVal($attribs, "nodraw");
 
 
 
 
1170
 
1171
  $sapParams = array();
1172
  if(!empty($nodraw)){
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1167
  $loadParam = (string)UniteFunctionsUC::getVal($attribs, "loadparam");
1168
  $loadedSettingsType = (string)UniteFunctionsUC::getVal($attribs, "loadtype");
1169
  $nodraw = (string)UniteFunctionsUC::getVal($attribs, "nodraw");
1170
+ $visibility = (string)UniteFunctionsUC::getVal($attribs, "visibility");
1171
+
1172
+ if($visibility == "dev" && GlobalsUC::$inDev == false)
1173
+ continue;
1174
 
1175
  $sapParams = array();
1176
  if(!empty($nodraw)){
inc_php/framework/settings_advances.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/settings_output.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -192,6 +192,9 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
192
  //set hidden
193
  $isHidden = isset($setting["hidden"]);
194
 
 
 
 
195
  //operate saps
196
  if($this->showSaps == true && $this->sapsType == self::SAPS_TYPE_INLINE){
197
 
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
192
  //set hidden
193
  $isHidden = isset($setting["hidden"]);
194
 
195
+ if($isHidden == true && $setting["hidden"] === "false")
196
+ $isHidden = false;
197
+
198
  //operate saps
199
  if($this->showSaps == true && $this->sapsType == self::SAPS_TYPE_INLINE){
200
 
inc_php/framework/settings_output_inline.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/settings_output_sidebar.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/settings_output_wide.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/shapes.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/table.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/translate.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/framework/zip.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/layouts/unitecreator_layout.class.php CHANGED
@@ -2,8 +2,8 @@
2
 
3
  /**
4
  * @package Unlimited Elements
5
- * @author UniteCMS.net
6
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
7
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
8
  * */
9
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
2
 
3
  /**
4
  * @package Unlimited Elements
5
+ * @author unlimited-elements.com
6
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
7
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
8
  * */
9
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/layouts/unitecreator_layout_config_base.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/layouts/unitecreator_layouts.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/layouts/unitecreator_layouts_exporter.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -945,9 +945,9 @@ class UniteCreatorLayoutsExporterWork extends UniteCreatorExporterBase{
945
  protected function importZipFile($filepath, $layoutID = null, $overwriteAddons = false){
946
 
947
  try{
948
-
949
  $this->objLayout = new UniteCreatorLayout();
950
-
951
  $this->prepareImportFolders();
952
  $this->extractImportLayoutFile($filepath);
953
  $this->importLayoutTxtFromZip($layoutID);
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
945
  protected function importZipFile($filepath, $layoutID = null, $overwriteAddons = false){
946
 
947
  try{
948
+
949
  $this->objLayout = new UniteCreatorLayout();
950
+
951
  $this->prepareImportFolders();
952
  $this->extractImportLayoutFile($filepath);
953
  $this->importLayoutTxtFromZip($layoutID);
inc_php/manager/unitecreator_manager.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/manager/unitecreator_manager_addons.class.php CHANGED
@@ -2,8 +2,8 @@
2
 
3
  /**
4
  * @package Unlimited Elements
5
- * @author UniteCMS.net
6
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
7
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
8
  * */
9
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
2
 
3
  /**
4
  * @package Unlimited Elements
5
+ * @author unlimited-elements.com
6
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
7
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
8
  * */
9
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/manager/unitecreator_manager_inline.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/manager/unitecreator_manager_pages.class.php CHANGED
@@ -2,8 +2,8 @@
2
 
3
  /**
4
  * @package Unlimited Elements
5
- * @author UniteCMS.net
6
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
7
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
8
  * */
9
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
2
 
3
  /**
4
  * @package Unlimited Elements
5
+ * @author unlimited-elements.com
6
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
7
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
8
  * */
9
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/plugins/unitecreator_plugin_base.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/plugins/unitecreator_plugin_filters.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/plugins/unitecreator_plugins.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/unitecreator_actions.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -73,6 +73,18 @@ class UniteCreatorActions{
73
  if($actionType != GlobalsUC::PLUGIN_NAME."_ajax_action")
74
  return(false);
75
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  $operations = new ProviderOperationsUC();
77
 
78
  $addons = new UniteCreatorAddons();
@@ -82,16 +94,6 @@ class UniteCreatorActions{
82
  $webAPI = new UniteCreatorWebAPI();
83
 
84
 
85
- $action = UniteFunctionsUC::getPostGetVariable("client_action","",UniteFunctionsUC::SANITIZE_KEY);
86
-
87
- //go to front
88
- switch($action){
89
- case "send_form":
90
- $this->onAjaxFrontAction();
91
- return(false);
92
- break;
93
- }
94
-
95
 
96
  $data = $this->getDataFromRequest();
97
 
@@ -518,8 +520,6 @@ class UniteCreatorActions{
518
 
519
  }
520
 
521
-
522
-
523
  /**
524
  * on ajax action
525
  */
@@ -527,27 +527,30 @@ class UniteCreatorActions{
527
 
528
  $actionType = UniteFunctionsUC::getPostGetVariable("action","",UniteFunctionsUC::SANITIZE_KEY);
529
 
530
- switch($actionType){
531
- case GlobalsUC::PLUGIN_NAME."_ajax_action":
532
- case GlobalsUC::PLUGIN_NAME."_ajax_action_front":
533
- break;
534
- default:
535
- return(false);
536
- break;
537
- }
538
-
539
  $action = UniteFunctionsUC::getPostGetVariable("client_action","",UniteFunctionsUC::SANITIZE_KEY);
540
  $data = $this->getDataFromRequest();
541
 
 
542
  try{
543
 
544
  switch($action){
545
- case "send_form":
 
 
 
 
 
 
 
 
546
 
547
- $objForm = new UniteCreatorForm();
548
- $objForm->sendFormFromData($data);
549
 
550
- HelperUC::ajaxResponseSuccess("Form Sent");
551
 
552
  break;
553
  default:
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
73
  if($actionType != GlobalsUC::PLUGIN_NAME."_ajax_action")
74
  return(false);
75
 
76
+ $action = UniteFunctionsUC::getPostGetVariable("client_action","",UniteFunctionsUC::SANITIZE_KEY);
77
+
78
+ //check front actions
79
+ switch($action){
80
+ case "get_section_zip":
81
+ case "paste_section_front":
82
+
83
+ $this->onAjaxFrontAction();
84
+ exit();
85
+ break;
86
+ }
87
+
88
  $operations = new ProviderOperationsUC();
89
 
90
  $addons = new UniteCreatorAddons();
94
  $webAPI = new UniteCreatorWebAPI();
95
 
96
 
 
 
 
 
 
 
 
 
 
 
97
 
98
  $data = $this->getDataFromRequest();
99
 
520
 
521
  }
522
 
 
 
523
  /**
524
  * on ajax action
525
  */
527
 
528
  $actionType = UniteFunctionsUC::getPostGetVariable("action","",UniteFunctionsUC::SANITIZE_KEY);
529
 
530
+ if($actionType != GlobalsUC::PLUGIN_NAME."_ajax_action")
531
+ return(false);
532
+
 
 
 
 
 
 
533
  $action = UniteFunctionsUC::getPostGetVariable("client_action","",UniteFunctionsUC::SANITIZE_KEY);
534
  $data = $this->getDataFromRequest();
535
 
536
+
537
  try{
538
 
539
  switch($action){
540
+ case "get_section_zip":
541
+
542
+ $objCopyPaste = new UniteCreatorElementorCopyPaste();
543
+ $rawData = $objCopyPaste->getSectionZipFromData($data);
544
+
545
+ echo $rawData;
546
+ exit();
547
+ break;
548
+ case "paste_section_front":
549
 
550
+ $objCopyPaste = new UniteCreatorElementorCopyPaste();
551
+ $success = $objCopyPaste->pasteSectionAjaxAction($data);
552
 
553
+ HelperUC::ajaxResponseSuccess("Section Pasted");
554
 
555
  break;
556
  default:
inc_php/unitecreator_addon.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -2118,8 +2118,10 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
2118
  if(!is_array($arrValues))
2119
  UniteFunctionsUC::throwError("The values shoud be array");
2120
 
 
2121
  foreach($arrParams as $key => $param){
2122
 
 
2123
  $name = UniteFunctionsUC::getVal($param, "name");
2124
 
2125
  if(empty($name))
@@ -2134,16 +2136,16 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
2134
  $value = $this->objProcessor->getSpecialParamValue($type, $name, $value, $arrValues);
2135
 
2136
  $param["value"] = $value;
2137
-
2138
  $param = $this->setResponsiveParamValues($param, $name, $arrValues);
2139
 
2140
  $param = $this->objProcessor->setExtraParamsValues($type, $param, $name, $arrValues);
2141
-
2142
  //set responsive values
2143
  $arrParams[$key] = $param;
2144
 
2145
  }
2146
-
2147
  return($arrParams);
2148
  }
2149
 
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
2118
  if(!is_array($arrValues))
2119
  UniteFunctionsUC::throwError("The values shoud be array");
2120
 
2121
+
2122
  foreach($arrParams as $key => $param){
2123
 
2124
+
2125
  $name = UniteFunctionsUC::getVal($param, "name");
2126
 
2127
  if(empty($name))
2136
  $value = $this->objProcessor->getSpecialParamValue($type, $name, $value, $arrValues);
2137
 
2138
  $param["value"] = $value;
2139
+
2140
  $param = $this->setResponsiveParamValues($param, $name, $arrValues);
2141
 
2142
  $param = $this->objProcessor->setExtraParamsValues($type, $param, $name, $arrValues);
2143
+
2144
  //set responsive values
2145
  $arrParams[$key] = $param;
2146
 
2147
  }
2148
+
2149
  return($arrParams);
2150
  }
2151
 
inc_php/unitecreator_addon_config.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/unitecreator_addon_validator.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/unitecreator_addons.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -137,6 +137,7 @@ class UniteCreatorAddons extends UniteElementsBaseUC{
137
  if(!empty($arrWhere))
138
  $where = implode(" and ", $arrWhere);
139
 
 
140
  $response = $this->db->fetch(GlobalsUc::$table_addons, $where, $order);
141
 
142
  return($response);
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
137
  if(!empty($arrWhere))
138
  $where = implode(" and ", $arrWhere);
139
 
140
+
141
  $response = $this->db->fetch(GlobalsUc::$table_addons, $where, $order);
142
 
143
  return($response);
inc_php/unitecreator_assets.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/unitecreator_assets_work.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/unitecreator_browser.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/unitecreator_categories.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/unitecreator_category.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/unitecreator_client_text.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -68,10 +68,12 @@ GlobalsUC::$arrClientSideText = array(
68
  "copying_addons"=>esc_html__("Copying...","unlimited-elements-for-elementor"),
69
  "moving_addons"=>esc_html__("Moving...","unlimited-elements-for-elementor"),
70
  "confirm_remove_addons"=>esc_html__("Are you sure you want to delete these addons?","unlimited-elements-for-elementor"),
 
71
  "uc_textfield"=>esc_html__("Text Field","unlimited-elements-for-elementor"),
72
  "uc_textarea"=>esc_html__("Text Area","unlimited-elements-for-elementor"),
73
  "uc_checkbox"=>esc_html__("Checkbox","unlimited-elements-for-elementor"),
74
  "uc_dropdown"=>esc_html__("Dropdown","unlimited-elements-for-elementor"),
 
75
  "uc_radioboolean"=>esc_html__("Radio Boolean","unlimited-elements-for-elementor"),
76
  "uc_typography"=>esc_html__("Typography","unlimited-elements-for-elementor"),
77
  "uc_link"=>esc_html__("Link","unlimited-elements-for-elementor"),
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
68
  "copying_addons"=>esc_html__("Copying...","unlimited-elements-for-elementor"),
69
  "moving_addons"=>esc_html__("Moving...","unlimited-elements-for-elementor"),
70
  "confirm_remove_addons"=>esc_html__("Are you sure you want to delete these addons?","unlimited-elements-for-elementor"),
71
+ "uc_listing"=>esc_html__("Grouped Settings","unlimited-elements-for-elementor"),
72
  "uc_textfield"=>esc_html__("Text Field","unlimited-elements-for-elementor"),
73
  "uc_textarea"=>esc_html__("Text Area","unlimited-elements-for-elementor"),
74
  "uc_checkbox"=>esc_html__("Checkbox","unlimited-elements-for-elementor"),
75
  "uc_dropdown"=>esc_html__("Dropdown","unlimited-elements-for-elementor"),
76
+ "uc_multiple_select"=>esc_html__("Multiple Select","unlimited-elements-for-elementor"),
77
  "uc_radioboolean"=>esc_html__("Radio Boolean","unlimited-elements-for-elementor"),
78
  "uc_typography"=>esc_html__("Typography","unlimited-elements-for-elementor"),
79
  "uc_link"=>esc_html__("Link","unlimited-elements-for-elementor"),
inc_php/unitecreator_dataset.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/unitecreator_dialog_param.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -20,6 +20,7 @@ class UniteCreatorDialogParamWork{
20
  const PARAM_NUMBER = "uc_number";
21
  const PARAM_RADIOBOOLEAN = "uc_radioboolean";
22
  const PARAM_DROPDOWN = "uc_dropdown";
 
23
  const PARAM_HR = "uc_hr";
24
  const PARAM_CONTENT = "uc_content";
25
  const PARAM_POST = "uc_post";
@@ -52,6 +53,7 @@ class UniteCreatorDialogParamWork{
52
  const PARAM_MARGINS = "uc_margins";
53
  const PARAM_PADDING = "uc_padding";
54
  const PARAM_SLIDER = "uc_slider";
 
55
 
56
  const PARAM_BACKGROUND = "uc_background";
57
  const PARAM_BORDER = "uc_border";
@@ -168,7 +170,8 @@ class UniteCreatorDialogParamWork{
168
  $this->addParam("uc_textarea", esc_html__("Text Area", "unlimited-elements-for-elementor"));
169
  $this->addParam(self::PARAM_EDITOR, esc_html__("Editor", "unlimited-elements-for-elementor"));
170
  $this->addParam("uc_checkbox", esc_html__("Checkbox", "unlimited-elements-for-elementor"));
171
- $this->addParam("uc_dropdown", esc_html__("Dropdown", "unlimited-elements-for-elementor"));
 
172
  $this->addParam(self::PARAM_COLORPICKER, esc_html__("Color Picker", "unlimited-elements-for-elementor"));
173
  $this->addParam(self::PARAM_LINK, esc_html__("Link", "unlimited-elements-for-elementor"));
174
  $this->addParam(self::PARAM_IMAGE, esc_html__("Image", "unlimited-elements-for-elementor"));
@@ -185,7 +188,7 @@ class UniteCreatorDialogParamWork{
185
  $this->addParam(self::PARAM_POSTS_LIST, esc_html__("Posts List", "unlimited-elements-for-elementor"));
186
  $this->addParam(self::PARAM_POST_TERMS, esc_html__("Posts Terms", "unlimited-elements-for-elementor"));
187
  $this->addParam(self::PARAM_WOO_CATS, esc_html__("WooCommerce Categories", "unlimited-elements-for-elementor"));
188
- $this->addParam(self::PARAM_LISTING, esc_html__("Listing", "unlimited-elements-for-elementor"));
189
 
190
  $this->addParam(self::PARAM_USERS, esc_html__("Users List", "unlimited-elements-for-elementor"));
191
  $this->addParam(self::PARAM_TEMPLATE, esc_html__("Elementor Template", "unlimited-elements-for-elementor"));
@@ -758,9 +761,31 @@ class UniteCreatorDialogParamWork{
758
  /**
759
  * put listing param
760
  */
761
- private function putListingParam(){
762
 
763
- esc_html_e("Put listing attributes here", "unlimited-elements-for-elementor");
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
764
 
765
  }
766
 
@@ -812,14 +837,16 @@ class UniteCreatorDialogParamWork{
812
  $this->putCheckbox("show_image_sizes", __("Show Image Sizes Select", "unlimited-elements-for-elementor"));
813
  ?>
814
 
815
- <div class="vert_sap10"></div>
816
- <hr>
817
  <div class="vert_sap10"></div>
818
 
819
  <?php
820
- $this->putCheckbox("use_for_listing", __("Use For Listing Template", "unlimited-elements-for-elementor"));
821
  ?>
 
 
822
  <div class="vert_sap10"></div>
 
823
  <hr>
824
 
825
  <div class="vert_sap10"></div>
@@ -917,12 +944,26 @@ class UniteCreatorDialogParamWork{
917
 
918
  }
919
 
 
 
 
 
 
 
 
 
 
920
  /**
921
  * put dropdown items table
922
  */
923
- protected function putDropdownItems(){
 
 
 
 
 
924
  ?>
925
- <table data-inputtype="table_dropdown" class='uc-table-dropdown-items uc-table-dropdown-full'>
926
  <thead>
927
  <tr>
928
  <th></th>
@@ -1186,9 +1227,12 @@ class UniteCreatorDialogParamWork{
1186
  case "uc_checkbox":
1187
  $this->putRadioYesNo("is_checked", esc_html__("Checked By Default", "unlimited-elements-for-elementor"), false, "Yes", "No", true);
1188
  break;
1189
- case "uc_dropdown":
1190
  $this->putDropDownParam();
1191
  break;
 
 
 
1192
  case self::PARAM_LINK:
1193
  $this->putDefaultValueParam(false, "", false);
1194
  break;
@@ -1619,6 +1663,7 @@ class UniteCreatorDialogParamWork{
1619
  self::PARAM_TEXTAREA,
1620
  self::PARAM_CHECKBOX,
1621
  self::PARAM_DROPDOWN,
 
1622
  self::PARAM_SLIDER,
1623
  self::PARAM_COLORPICKER,
1624
  self::PARAM_LINK,
@@ -1633,6 +1678,7 @@ class UniteCreatorDialogParamWork{
1633
  self::PARAM_INSTAGRAM,
1634
  );
1635
 
 
1636
  //add dataset
1637
  $arrDatasets = $this->objDatasets->getDatasetTypeNames();
1638
  if(!empty($arrDatasets))
@@ -1652,6 +1698,7 @@ class UniteCreatorDialogParamWork{
1652
  self::PARAM_TEXTAREA,
1653
  self::PARAM_CHECKBOX,
1654
  self::PARAM_DROPDOWN,
 
1655
  self::PARAM_COLORPICKER,
1656
  self::PARAM_SLIDER,
1657
  self::PARAM_TEMPLATE,
@@ -1666,6 +1713,7 @@ class UniteCreatorDialogParamWork{
1666
  self::PARAM_PADDING
1667
  );
1668
 
 
1669
  $this->arrParamsItems = UniteFunctionsUC::arrayToAssoc($this->arrParamsItems);
1670
  }
1671
 
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
20
  const PARAM_NUMBER = "uc_number";
21
  const PARAM_RADIOBOOLEAN = "uc_radioboolean";
22
  const PARAM_DROPDOWN = "uc_dropdown";
23
+ const PARAM_MULTIPLE_SELECT = "uc_multiple_select";
24
  const PARAM_HR = "uc_hr";
25
  const PARAM_CONTENT = "uc_content";
26
  const PARAM_POST = "uc_post";
53
  const PARAM_MARGINS = "uc_margins";
54
  const PARAM_PADDING = "uc_padding";
55
  const PARAM_SLIDER = "uc_slider";
56
+ const PARAM_GALLERY = "uc_gallery";
57
 
58
  const PARAM_BACKGROUND = "uc_background";
59
  const PARAM_BORDER = "uc_border";
170
  $this->addParam("uc_textarea", esc_html__("Text Area", "unlimited-elements-for-elementor"));
171
  $this->addParam(self::PARAM_EDITOR, esc_html__("Editor", "unlimited-elements-for-elementor"));
172
  $this->addParam("uc_checkbox", esc_html__("Checkbox", "unlimited-elements-for-elementor"));
173
+ $this->addParam(self::PARAM_DROPDOWN, esc_html__("Dropdown", "unlimited-elements-for-elementor"));
174
+ $this->addParam(self::PARAM_MULTIPLE_SELECT, esc_html__("Multiple Select", "unlimited-elements-for-elementor"));
175
  $this->addParam(self::PARAM_COLORPICKER, esc_html__("Color Picker", "unlimited-elements-for-elementor"));
176
  $this->addParam(self::PARAM_LINK, esc_html__("Link", "unlimited-elements-for-elementor"));
177
  $this->addParam(self::PARAM_IMAGE, esc_html__("Image", "unlimited-elements-for-elementor"));
188
  $this->addParam(self::PARAM_POSTS_LIST, esc_html__("Posts List", "unlimited-elements-for-elementor"));
189
  $this->addParam(self::PARAM_POST_TERMS, esc_html__("Posts Terms", "unlimited-elements-for-elementor"));
190
  $this->addParam(self::PARAM_WOO_CATS, esc_html__("WooCommerce Categories", "unlimited-elements-for-elementor"));
191
+ $this->addParam(self::PARAM_LISTING, esc_html__("Dynamic Grouped Settings", "unlimited-elements-for-elementor"));
192
 
193
  $this->addParam(self::PARAM_USERS, esc_html__("Users List", "unlimited-elements-for-elementor"));
194
  $this->addParam(self::PARAM_TEMPLATE, esc_html__("Elementor Template", "unlimited-elements-for-elementor"));
761
  /**
762
  * put listing param
763
  */
764
+ protected function putListingParam(){
765
 
766
+ $arrItems = array(
767
+ "template"=>__("Template Loop","unlimited-elements-for-elementor"),
768
+ "gallery"=>__("Gallery","unlimited-elements-for-elementor")
769
+ );
770
+
771
+ $htmlSelect = HelperHtmlUC::getHTMLSelect($arrItems,"template","name='use_for' class='unite-inputs-select uc-control' data-controlled-selector='.uc-listing-template-options'", true);
772
+
773
+ ?>
774
+
775
+ <?php _e("Use For","unlimited-elements-for-elementor")?>:
776
+
777
+ <?php echo $htmlSelect?>
778
+
779
+ <div class="unite-inputs-sap-double"></div>
780
+
781
+ <div class="uc-listing-template-options" data-control="template">
782
+ <?php
783
+
784
+ $this->putCheckbox("enable_pagination", __("Enable Pagination", "unlimited-elements-for-elementor"));
785
+
786
+ ?>
787
+ </div>
788
+ <?php
789
 
790
  }
791
 
837
  $this->putCheckbox("show_image_sizes", __("Show Image Sizes Select", "unlimited-elements-for-elementor"));
838
  ?>
839
 
840
+ <?php if(GlobalsUC::$inDev == true):?>
 
841
  <div class="vert_sap10"></div>
842
 
843
  <?php
844
+ $this->putCheckbox("is_filterable", __("Enable Filterable Options", "unlimited-elements-for-elementor"));
845
  ?>
846
+ <?php endif?>
847
+
848
  <div class="vert_sap10"></div>
849
+
850
  <hr>
851
 
852
  <div class="vert_sap10"></div>
944
 
945
  }
946
 
947
+ /**
948
+ * put multiple select param
949
+ */
950
+ private function putMultipleSelectParam(){
951
+
952
+ $this->putDropdownItems(true);
953
+
954
+ }
955
+
956
  /**
957
  * put dropdown items table
958
  */
959
+ protected function putDropdownItems($isMultiple = false){
960
+
961
+ $addParams = "";
962
+ if($isMultiple == true)
963
+ $addParams = "data-ismultiple=\"true\"";
964
+
965
  ?>
966
+ <table data-inputtype="table_dropdown" <?php echo $addParams?> class='uc-table-dropdown-items uc-table-dropdown-full'>
967
  <thead>
968
  <tr>
969
  <th></th>
1227
  case "uc_checkbox":
1228
  $this->putRadioYesNo("is_checked", esc_html__("Checked By Default", "unlimited-elements-for-elementor"), false, "Yes", "No", true);
1229
  break;
1230
+ case self::PARAM_DROPDOWN:
1231
  $this->putDropDownParam();
1232
  break;
1233
+ case self::PARAM_MULTIPLE_SELECT:
1234
+ $this->putMultipleSelectParam();
1235
+ break;
1236
  case self::PARAM_LINK:
1237
  $this->putDefaultValueParam(false, "", false);
1238
  break;
1663
  self::PARAM_TEXTAREA,
1664
  self::PARAM_CHECKBOX,
1665
  self::PARAM_DROPDOWN,
1666
+ self::PARAM_MULTIPLE_SELECT,
1667
  self::PARAM_SLIDER,
1668
  self::PARAM_COLORPICKER,
1669
  self::PARAM_LINK,
1678
  self::PARAM_INSTAGRAM,
1679
  );
1680
 
1681
+
1682
  //add dataset
1683
  $arrDatasets = $this->objDatasets->getDatasetTypeNames();
1684
  if(!empty($arrDatasets))
1698
  self::PARAM_TEXTAREA,
1699
  self::PARAM_CHECKBOX,
1700
  self::PARAM_DROPDOWN,
1701
+ self::PARAM_MULTIPLE_SELECT,
1702
  self::PARAM_COLORPICKER,
1703
  self::PARAM_SLIDER,
1704
  self::PARAM_TEMPLATE,
1713
  self::PARAM_PADDING
1714
  );
1715
 
1716
+
1717
  $this->arrParamsItems = UniteFunctionsUC::arrayToAssoc($this->arrParamsItems);
1718
  }
1719
 
inc_php/unitecreator_exporter.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/unitecreator_exporter_base.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/unitecreator_filters_process.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -10,16 +10,14 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
10
  class UniteCreatorFiltersProcess{
11
 
12
  private static $filters = null;
13
-
14
- /**
15
- * put current widget data
16
- */
17
- public function putCurrentWidgetData(){
18
 
19
- //UniteFunctionsUC::showTrace();
20
- //dmp("put widget data");
21
-
22
- }
 
23
 
24
  /**
25
  * get request array
@@ -33,21 +31,99 @@ class UniteCreatorFiltersProcess{
33
  return($request);
34
  }
35
 
 
 
36
  /**
37
- * add single category filter
38
  */
39
- private function addSingleCategoryFilter($slug){
 
 
 
 
 
40
 
41
- $slug = trim($slug);
42
 
43
- $term = get_term_by("slug", $slug, "category");
 
44
 
45
- $termID = "0";
46
- if(!empty($term))
47
- $termID = $term->term_id;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
 
49
- self::$filters["category"] = $termID;
50
 
 
51
  }
52
 
53
 
@@ -60,23 +136,38 @@ class UniteCreatorFiltersProcess{
60
  return(self::$filters);
61
 
62
  self::$filters = array();
63
-
64
- $request = $this->getArrRequest();
 
 
 
65
 
66
- self::$filters = array();
 
 
 
 
 
 
 
67
 
68
- foreach($request as $key=>$value){
69
 
70
- switch($key){
71
- case "filter-category":
72
-
73
- $this->addSingleCategoryFilter($value);
74
-
75
- break;
76
- }
77
-
78
  }
 
 
79
 
 
 
 
 
 
80
 
81
  return(self::$filters);
82
  }
@@ -119,10 +210,10 @@ class UniteCreatorFiltersProcess{
119
 
120
  if($arrActiveFilters === null)
121
  $arrActiveFilters = $this->getRequestFilters();
122
-
123
  if(empty($arrActiveFilters))
124
  return(false);
125
-
126
  $taxonomy = $term->taxonomy;
127
 
128
  $selectedTermID = UniteFunctionsUC::getVal($arrActiveFilters, $taxonomy);
@@ -136,6 +227,158 @@ class UniteCreatorFiltersProcess{
136
  return(false);
137
  }
138
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139
  /**
140
  * put ajax scripts
141
  */
@@ -237,92 +480,5 @@ jQuery(document).ready(function(){
237
  <?php
238
  }
239
 
240
- /**
241
- * put filters by tabs
242
- */
243
- public function putFiltersTabs(){
244
-
245
- $arrActiveFilters = self::getRequestFilters();
246
-
247
- $taxonomy = "category";
248
-
249
- $terms = get_terms($taxonomy);
250
-
251
- $isAjax = true;
252
-
253
- ?>
254
-
255
- <style>
256
- .uc-filters{
257
- list-style:none;
258
- margin:0px;
259
- padding:0px;
260
- display:flex;
261
- box-sizing:border-box;
262
- margin-top:20px;
263
- margin-bottom:20px;
264
- }
265
- .uc-filters li{
266
- margin:0px;
267
- padding:0px;
268
- }
269
- .uc-filters li a{
270
- padding:10px;
271
- border:1px solid black;
272
- }
273
- .uc-filters li.active a{
274
- background-color:gold;
275
- }
276
- </style>
277
-
278
- <ul class="uc-filters">
279
- <?php
280
- $isFirst = true;
281
- foreach($terms as $term):
282
-
283
- $isTermActive = $this->isTermActive($term, $arrActiveFilters);
284
-
285
- $classActive = "";
286
-
287
- $termID = $term->term_id;
288
- $name = $term->name;
289
- $slug = $term->slug;
290
-
291
- $urlFilter = $this->getUrlFilter_term($term, $taxonomy);
292
-
293
- $htmlAttribAddition = "";
294
- if($isAjax == true){
295
- $htmlAttribAddition = 'class="uc-filter-ajax"';
296
- }
297
-
298
- if($isTermActive == true)
299
- $classActive = " active";
300
-
301
- $isFirst = false;
302
- ?>
303
- <li class="<?php echo $classActive?>">
304
- <a href="<?php echo $urlFilter?>" <?php echo $htmlAttribAddition?>><?php echo $name?></a>
305
- </li>
306
-
307
- <?php endforeach?>
308
- </ul>
309
-
310
- <?php
311
-
312
- if($isAjax == true)
313
- $this->putScriptsAjax();
314
-
315
- }
316
-
317
- /**
318
- * init elementor ajax
319
- */
320
- public function initElementorAjaxActions(){
321
-
322
-
323
- dmp("init ajax");
324
- exit();
325
-
326
- }
327
 
328
  }
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
10
  class UniteCreatorFiltersProcess{
11
 
12
  private static $filters = null;
13
+ private static $arrInputFiltersCache = null;
14
+ private static $arrFiltersAssocCache = null;
 
 
 
15
 
16
+ private static $isFilesAdded = false;
17
+ private static $showDebug = false;
18
+
19
+ const TYPE_TERMS = "terms";
20
+
21
 
22
  /**
23
  * get request array
31
  return($request);
32
  }
33
 
34
+
35
+
36
  /**
37
+ * get filters array from input
38
  */
39
+ private function getArrInputFilters(){
40
+
41
+ if(!empty(self::$arrInputFiltersCache))
42
+ return(self::$arrInputFiltersCache);
43
+
44
+ $request = $this->getArrRequest();
45
 
46
+ $strFilters = UniteFunctionsUC::getVal($request, "ucfilters");
47
 
48
+ if(empty($strFilters))
49
+ return(null);
50
 
51
+ if(self::$showDebug == true){
52
+
53
+ dmp("input filters found: $strFilters");
54
+ }
55
+
56
+
57
+ $strFilters = trim($strFilters);
58
+
59
+ $arrFilters = explode(";", $strFilters);
60
+
61
+ //fill the terms
62
+ $arrTerms = array();
63
+
64
+ foreach($arrFilters as $strFilter){
65
+
66
+ $arrFilter = explode("~", $strFilter);
67
+
68
+ if(count($arrFilter) != 2)
69
+ continue;
70
+
71
+ $key = $arrFilter[0];
72
+ $strValues = $arrFilter[1];
73
+
74
+ $arrVales = explode(".", $strValues);
75
+
76
+ $type = self::TYPE_TERMS;
77
+
78
+ switch($type){
79
+ case self::TYPE_TERMS:
80
+ $arrTerms[$key] = $arrVales;
81
+ break;
82
+ }
83
+
84
+ }
85
+
86
+ $arrOutput = array();
87
+
88
+ if(!empty($arrTerms))
89
+ $arrOutput[self::TYPE_TERMS] = $arrTerms;
90
+
91
+ self::$arrInputFiltersCache = $arrOutput;
92
+
93
+ return($arrOutput);
94
+ }
95
+
96
+ /**
97
+ * get input filters in assoc mode
98
+ */
99
+ private function getInputFiltersAssoc(){
100
+
101
+ if(!empty(self::$arrFiltersAssocCache))
102
+ return(self::$arrFiltersAssocCache);
103
+
104
+ $arrFilters = $this->getArrInputFilters();
105
+
106
+ $output = array();
107
+
108
+ $terms = UniteFunctionsUC::getVal($arrFilters, "terms");
109
+
110
+ if(empty($terms))
111
+ $terms = array();
112
+
113
+ foreach($terms as $taxonomy=>$arrTermSlugs){
114
+
115
+ foreach($arrTermSlugs as $slug){
116
+
117
+ $key = "term_{$taxonomy}_{$slug}";
118
+
119
+ $output[$key] = true;
120
+
121
+ }
122
+ }
123
 
124
+ self::$arrFiltersAssocCache = $output;
125
 
126
+ return($output);
127
  }
128
 
129
 
136
  return(self::$filters);
137
 
138
  self::$filters = array();
139
+
140
+ $arrInputFilters = $this->getArrInputFilters();
141
+
142
+ if(empty($arrInputFilters))
143
+ return(self::$filters);
144
 
145
+ $arrTerms = UniteFunctionsUC::getVal($arrInputFilters, self::TYPE_TERMS);
146
+
147
+ if(empty($arrTerms))
148
+ $arrTerms = array();
149
+
150
+ //collect term filters
151
+
152
+ $arrFilterTerms = array();
153
 
154
+ foreach($arrTerms as $taxonomy=>$arrTerms){
155
 
156
+ $prefix = "";
157
+ if($taxonomy != "category")
158
+ $prefix = $taxonomy."--";
159
+
160
+ foreach($arrTerms as $term)
161
+ $arrFilterTerms[] = $prefix.$term;
 
 
162
  }
163
+
164
+ //put to output
165
 
166
+ if(!empty($arrFilterTerms)){
167
+ self::$filters["category"] = $arrFilterTerms;
168
+ self::$filters["category_relation"] = "OR";
169
+
170
+ }
171
 
172
  return(self::$filters);
173
  }
210
 
211
  if($arrActiveFilters === null)
212
  $arrActiveFilters = $this->getRequestFilters();
213
+
214
  if(empty($arrActiveFilters))
215
  return(false);
216
+
217
  $taxonomy = $term->taxonomy;
218
 
219
  $selectedTermID = UniteFunctionsUC::getVal($arrActiveFilters, $taxonomy);
227
  return(false);
228
  }
229
 
230
+
231
+ private function _______WIDGET__________(){}
232
+
233
+
234
+ /**
235
+ * include the filters js files
236
+ */
237
+ private function includeJSFiles(){
238
+
239
+ if(self::$isFilesAdded == true)
240
+ return(false);
241
+
242
+ $urlFiltersJS = GlobalsUC::$url_assets_libraries."filters/ue_filters.js";
243
+ HelperUC::addScriptAbsoluteUrl($urlFiltersJS, "ue_filters");
244
+
245
+
246
+ self::$isFilesAdded = true;
247
+ }
248
+
249
+
250
+ /**
251
+ * put checkbox filters test
252
+ */
253
+ public function putCheckboxFiltersTest($data){
254
+
255
+ $arrActiveFilters = $this->getInputFiltersAssoc();
256
+
257
+ $this->includeJSFiles();
258
+
259
+ $taxonomy = UniteFunctionsUC::getVal($data, "taxonomy", "category");
260
+
261
+ $terms = get_terms($taxonomy);
262
+
263
+ if(empty($terms))
264
+ return(false);
265
+
266
+ $html = "";
267
+ foreach($terms as $term){
268
+
269
+ $arrTerm = (array)$term;
270
+
271
+ $termID = UniteFunctionsUC::getVal($arrTerm, "term_id");
272
+ $name = UniteFunctionsUC::getVal($arrTerm, "name");
273
+ $slug = UniteFunctionsUC::getVal($arrTerm, "slug");
274
+ $count = UniteFunctionsUC::getVal($arrTerm, "count");
275
+
276
+ $activeKey = "term_{$taxonomy}_{$slug}";
277
+
278
+ $addAttr = "";
279
+
280
+ if(isset($arrActiveFilters[$activeKey])){
281
+ $addAttr = " checked='checked' data-active='yes'";
282
+ }
283
+
284
+ $slug = htmlspecialchars($slug);
285
+
286
+ $checkboxName = "ucfilter_term__{$taxonomy}--{$slug}";
287
+
288
+ $html .= "<label class='ucfilters-label-checkbox'>$name ($count)
289
+ <input type='checkbox' class='uc-listing-filter uc-filter-checkbox'
290
+ name='{$checkboxName}'
291
+ data-type='term'
292
+ data-taxonomy='{$taxonomy}'
293
+ data-term='{$slug}'
294
+ {$addAttr}
295
+ >
296
+ </label>";
297
+
298
+ }
299
+
300
+ echo $html;
301
+ }
302
+
303
+ /**
304
+ * get base page url
305
+ */
306
+ private function getBasePageUrl(){
307
+
308
+ $url = UniteFunctionsUC::getBaseUrl(GlobalsUC::$current_page_url);
309
+
310
+ //strip pagination
311
+ if(strpos($url, "/page/") !== false){
312
+ $numPage = (get_query_var('paged')) ? get_query_var('paged') : 1;
313
+ $url = str_replace("/page/$numPage/", "/", $url);
314
+
315
+ }
316
+
317
+ return($url);
318
+ }
319
+
320
+ /**
321
+ * add widget variables
322
+ * uc_listing_addclass, uc_listing_attributes
323
+ *
324
+ */
325
+ public function addWidgetFilterableVariables($data){
326
+
327
+ $urlBase = $this->getBasePageUrl();
328
+
329
+ $arrData = array();
330
+ $arrData["urlbase"] = $urlBase;
331
+
332
+ $strAttributes = UniteFunctionsUC::jsonEncodeForHtmlData($arrData,"ucfilters");
333
+
334
+ $data["uc_listing_attributes"] = $strAttributes;
335
+ $data["uc_listing_addclass"] = " uc-filterable-listing";
336
+
337
+ return($data);
338
+ }
339
+
340
+ private function _______ARCHIVE_QUERY__________(){}
341
+
342
+
343
+ /**
344
+ * modify post query
345
+ * Enter description here ...
346
+ */
347
+ public function checkModifyMainQuery($query){
348
+
349
+ if(is_single())
350
+ return(false);
351
+
352
+ $arrFilters = $this->getRequestFilters();
353
+
354
+ if(empty($arrFilters))
355
+ return(true);
356
+
357
+ $args = UniteFunctionsWPUC::getPostsArgs($arrFilters, true);
358
+
359
+ if(empty($args))
360
+ return(false);
361
+
362
+ $query->query_vars = array_merge($query->query_vars, $args);
363
+
364
+ }
365
+
366
+
367
+ /**
368
+ * init wordpress front filters
369
+ */
370
+ public function initWPFrontFilters(){
371
+
372
+ if(GlobalsUC::$inDev == false)
373
+ return(false);
374
+
375
+ add_action("parse_request", array($this, "checkModifyMainQuery"));
376
+
377
+ }
378
+
379
+
380
+ private function _______TEMP__________(){}
381
+
382
  /**
383
  * put ajax scripts
384
  */
480
  <?php
481
  }
482
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
483
 
484
  }
inc_php/unitecreator_form.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/unitecreator_globals.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -89,6 +89,7 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
89
  public static $table_addons;
90
  public static $table_categories;
91
  public static $table_layouts;
 
92
 
93
  public static $pathSettings;
94
  public static $filepathItemSettings;
@@ -299,4 +300,3 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
299
  //init the globals
300
  GlobalsUC::initGlobals();
301
 
302
- ?>
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
89
  public static $table_addons;
90
  public static $table_categories;
91
  public static $table_layouts;
92
+ public static $table_prefix;
93
 
94
  public static $pathSettings;
95
  public static $filepathItemSettings;
300
  //init the globals
301
  GlobalsUC::initGlobals();
302
 
 
inc_php/unitecreator_helper.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -23,6 +23,7 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
23
  private static $isPutAnimations = false;
24
  private static $arrLogMemory = array();
25
  private static $arrHashCache = array();
 
26
  private static $arrLocalText = array();
27
  private static $arrDebug;
28
  private static $hasOutput = false;
@@ -264,6 +265,22 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
264
  return($arrInfoComputed);
265
  }
266
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
267
 
268
  public static function a_______DEBUG________(){}
269
 
@@ -301,7 +318,7 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
301
 
302
  return(self::$arrDebug);
303
  }
304
-
305
 
306
 
307
  public static function a_______NOTICES________(){}
@@ -1298,7 +1315,7 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1298
  $handle = GlobalsUC::PLUGIN_NAME."-".$scriptName;
1299
 
1300
  $url = GlobalsUC::$urlPlugin .$folder."/".$scriptName.".js";
1301
-
1302
  UniteProviderFunctionsUC::addScript($handle, $url, $inFooter);
1303
  }
1304
 
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
23
  private static $isPutAnimations = false;
24
  private static $arrLogMemory = array();
25
  private static $arrHashCache = array();
26
+ private static $arrRunOnceCache = array();
27
  private static $arrLocalText = array();
28
  private static $arrDebug;
29
  private static $hasOutput = false;
265
  return($arrInfoComputed);
266
  }
267
 
268
+ /**
269
+ * return true / false if the value already appeared
270
+ * used for run code once functionality
271
+ */
272
+ public static function isRunCodeOnce($key){
273
+
274
+ $isAlreadyRun = UniteFunctionsUC::getVal(self::$arrRunOnceCache, $key);
275
+
276
+ if($isAlreadyRun === true)
277
+ return(false);
278
+
279
+ self::$arrRunOnceCache[$key] = true;
280
+
281
+ return(true);
282
+ }
283
+
284
 
285
  public static function a_______DEBUG________(){}
286
 
318
 
319
  return(self::$arrDebug);
320
  }
321
+
322
 
323
 
324
  public static function a_______NOTICES________(){}
1315
  $handle = GlobalsUC::PLUGIN_NAME."-".$scriptName;
1316
 
1317
  $url = GlobalsUC::$urlPlugin .$folder."/".$scriptName.".js";
1318
+
1319
  UniteProviderFunctionsUC::addScript($handle, $url, $inFooter);
1320
  }
1321
 
inc_php/unitecreator_helperhtml.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -19,7 +19,7 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
19
  private static $isPutBrowsersOnce = false;
20
 
21
 
22
- protected function z_GETTERS(){}
23
 
24
 
25
  /**
@@ -835,6 +835,53 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
835
  return($output);
836
  }
837
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
838
 
839
 
840
  } //end class
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
19
  private static $isPutBrowsersOnce = false;
20
 
21
 
22
+ protected function z_____GETTERS______(){}
23
 
24
 
25
  /**
835
  return($output);
836
  }
837
 
838
+ /**
839
+ * get rating array from rating number. used to help to draw stars
840
+ */
841
+ public static function getRatingArray($rating){
842
+
843
+ $arrRating = array();
844
+
845
+ $empty = array(
846
+ "type"=>"empty",
847
+ "class"=>"far fa-star",
848
+ );
849
+ $full = array(
850
+ "type"=>"full",
851
+ "class"=>"fas fa-star",
852
+ );
853
+ $half = array(
854
+ "type"=>"half",
855
+ "class"=>"fas fa-star-half-alt",
856
+ );
857
+
858
+
859
+ for($i=1;$i<=5;$i++){
860
+
861
+ $low = floor($rating);
862
+
863
+ if($rating == 0){
864
+ $arrRating[] = $empty;
865
+ continue;
866
+ }
867
+
868
+ if($rating < $i && $rating > ($i-1)){
869
+ $arrRating[] = $half;
870
+ continue;
871
+ }
872
+
873
+
874
+ if($i <= $low){
875
+ $arrRating[] = $full;
876
+ continue;
877
+ }
878
+
879
+ $arrRating[] = $empty;
880
+ }
881
+
882
+
883
+ return($arrRating);
884
+ }
885
 
886
 
887
  } //end class
inc_php/unitecreator_library.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/unitecreator_operations.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -462,6 +462,48 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
462
  return($response);
463
  }
464
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
465
  private function a____________SCREENSHOTS____________(){}
466
 
467
 
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
462
  return($response);
463
  }
464
 
465
+ private function a____________DATE____________(){}
466
+
467
+ /**
468
+ * get nice display of date ranges, ex. 4-5 MAR 2021
469
+ */
470
+ public function getDateRangeString($startTimeStamp, $endTimeStamp, $pattern = null){
471
+
472
+ $displayDate = "";
473
+
474
+ $startDate = getDate($startTimeStamp);
475
+ $endDate = getDate($endTimeStamp);
476
+
477
+ //--- check same date
478
+
479
+ if($startDate["year"].$startDate["mon"].$startDate["mday"] == $endDate["year"].$endDate["mon"].$endDate["mday"]){
480
+
481
+ $displayDate = date('j M Y', $endTimeStamp);
482
+ return($displayDate);
483
+ }
484
+
485
+ //--- check different years
486
+
487
+ if($startDate["year"] != $endDate["year"]){
488
+
489
+ $displayDate = date('j M Y', $startTimeStamp) . " - ". date('j M Y', $endTimeStamp);
490
+ return($displayDate);
491
+ }
492
+
493
+ //--- check same year
494
+
495
+ // diff days in the same month
496
+ if($startDate["mon"] == $endDate["mon"])
497
+ $displayDate = date('j', $startTimeStamp) ."-". date('j M Y', $endTimeStamp);
498
+
499
+ // diff months
500
+ $displayDate = date('j M', $startTimeStamp) ." - ". date('j M Y', $endTimeStamp);
501
+
502
+
503
+ return $displayDate;
504
+ }
505
+
506
+
507
  private function a____________SCREENSHOTS____________(){}
508
 
509
 
inc_php/unitecreator_output.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -190,7 +190,6 @@ class UniteCreatorOutputWork extends HtmlOutputBaseUC{
190
 
191
  foreach($arrIncludes as $handle => $include){
192
 
193
-
194
  $urlInclude = $include;
195
 
196
  if(is_array($include)){
@@ -209,13 +208,29 @@ class UniteCreatorOutputWork extends HtmlOutputBaseUC{
209
 
210
  $urlInclude = HelperUC::urlToSSLCheck($urlInclude);
211
 
 
 
 
 
 
 
 
 
 
 
 
 
 
212
  $arrIncludeNew = array();
213
  $arrIncludeNew["url"] = $urlInclude;
214
  $arrIncludeNew["type"] = $type;
215
-
216
  if(!empty($handle))
217
  $arrIncludeNew["handle"] = $handle;
218
 
 
 
 
219
  $arrIncludesProcessed[] = $arrIncludeNew;
220
 
221
  }
@@ -264,6 +279,7 @@ class UniteCreatorOutputWork extends HtmlOutputBaseUC{
264
  $arrLibJs = $arrLibraries["js"];
265
 
266
  $arrIncludesJS = $this->addon->getJSIncludes();
 
267
  $arrIncludesJS = array_merge($arrLibJs, $arrIncludesJS);
268
  $arrIncludesJS = $this->processIncludesList($arrIncludesJS, "js");
269
 
@@ -364,6 +380,8 @@ class UniteCreatorOutputWork extends HtmlOutputBaseUC{
364
  $type = $include["type"];
365
  $url = $include["url"];
366
  $handle = UniteFunctionsUC::getVal($include, "handle");
 
 
367
 
368
  if(empty($handle))
369
  $handle = HelperUC::getUrlHandle($url, $addonName);
@@ -373,11 +391,16 @@ class UniteCreatorOutputWork extends HtmlOutputBaseUC{
373
  continue;
374
  }
375
  $this->cacheInclude($url, $handle, $type);
 
 
 
 
 
376
 
377
  switch($type){
378
  case "js":
379
 
380
- UniteProviderFunctionsUC::addScript($handle, $url, false, $arrDep);
381
  break;
382
  case "css":
383
  UniteProviderFunctionsUC::addStyle($handle, $url);
@@ -1178,39 +1201,8 @@ class UniteCreatorOutputWork extends HtmlOutputBaseUC{
1178
  }
1179
 
1180
 
1181
-
1182
-
1183
  private function a________GENERAL___________(){}
1184
 
1185
- /**
1186
- * modify data array for show
1187
- * convert single array like in post meta
1188
- */
1189
- private function modifyDataArrayForShow($arrData, $convertSingleArray = false){
1190
-
1191
- if(is_array($arrData) == false)
1192
- return($arrData);
1193
-
1194
- $arrDataNew = array();
1195
- foreach($arrData as $key=>$value){
1196
-
1197
- $key = htmlspecialchars($key);
1198
-
1199
- if(is_string($value) == true)
1200
- $value = htmlspecialchars($value);
1201
-
1202
- $key = " $key";
1203
-
1204
- $arrDataNew[$key] = $value;
1205
-
1206
- //convert single array
1207
- if($convertSingleArray == true && is_array($value) && count($value) == 1 && isset($value[0]))
1208
- $arrDataNew[$key] = $value[0];
1209
-
1210
- }
1211
-
1212
- return($arrDataNew);
1213
- }
1214
 
1215
  /**
1216
  * modify items data for show
@@ -1222,16 +1214,23 @@ class UniteCreatorOutputWork extends HtmlOutputBaseUC{
1222
 
1223
  $arrItemsForShow = array();
1224
 
 
1225
  foreach($arrItemData as $item){
1226
 
 
 
 
 
 
 
1227
  $item = UniteFunctionsUC::getVal($item, "item");
1228
 
1229
  $itemFirstValue = UniteFunctionsUC::getArrFirstValue($item);
1230
 
1231
  if(is_array($itemFirstValue))
1232
- $item = $this->modifyDataArrayForShow($itemFirstValue);
1233
  else
1234
- $item = $this->modifyDataArrayForShow($item);
1235
 
1236
  $arrItemsForShow[] = $item;
1237
  }
@@ -1239,8 +1238,10 @@ class UniteCreatorOutputWork extends HtmlOutputBaseUC{
1239
  return($arrItemsForShow);
1240
  }
1241
 
 
1242
  private function ___________DEBUG_DATA___________(){}
1243
 
 
1244
  /**
1245
  * put debug data html
1246
  */
@@ -1251,7 +1252,7 @@ class UniteCreatorOutputWork extends HtmlOutputBaseUC{
1251
  if($isShowData == true){
1252
 
1253
  //modify the data
1254
- $arrData = $this->modifyDataArrayForShow($arrData);
1255
 
1256
  dmp($arrData);
1257
  }
@@ -1285,21 +1286,43 @@ class UniteCreatorOutputWork extends HtmlOutputBaseUC{
1285
 
1286
  foreach($arrItemData as $index => $item){
1287
 
1288
- $item = UniteFunctionsUC::getVal($item, "item");
 
 
1289
 
1290
- $postData = UniteFunctionsUC::getArrFirstValue($item);
 
 
 
 
 
 
 
 
 
1291
 
1292
- $title = UniteFunctionsUC::getVal($postData, "title");
1293
- $alias = UniteFunctionsUC::getVal($postData, "alias");
1294
- $id = UniteFunctionsUC::getVal($postData, "id");
 
 
 
 
 
1295
 
1296
  $num = $index+1;
1297
 
1298
- $post = get_post($id);
 
 
1299
  $arrTermsNames = UniteFunctionsWPUC::getPostTermsTitles($post);
1300
  $strTerms = implode(",", $arrTermsNames);
1301
 
1302
- $text = "{$num}. <b>$title</b> (<i style='font-size:13px;'>$alias, $id | $strTerms </i>)";
 
 
 
 
1303
 
1304
  dmp($text);
1305
 
@@ -1308,7 +1331,7 @@ class UniteCreatorOutputWork extends HtmlOutputBaseUC{
1308
 
1309
  $postMeta = get_post_meta($id, "", false);
1310
 
1311
- $postMeta = $this->modifyDataArrayForShow($postMeta, true);
1312
 
1313
  dmp($postMeta);
1314
 
@@ -1319,18 +1342,62 @@ class UniteCreatorOutputWork extends HtmlOutputBaseUC{
1319
 
1320
  }
1321
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1322
  /**
1323
  * put debug data
1324
  */
1325
  private function putDebugDataHtml($arrData, $arrItemData){
1326
 
1327
- echo "<div style='font-size:16px;color:black;text-decoration:none;'>";
1328
 
1329
  dmp("<b>Widget Debug Data</b> (turned on by setting in widget advanced section)<br>");
1330
 
 
 
 
 
 
 
 
 
1331
  switch($this->debugDataType){
1332
  case "post_titles":
1333
  case "post_meta":
 
1334
  $this->putDebugDataHtml_posts($arrItemData);
1335
 
1336
  break;
@@ -1671,7 +1738,7 @@ class UniteCreatorOutputWork extends HtmlOutputBaseUC{
1671
  $arrParams = $this->getAddonParams();
1672
 
1673
  $arrData = array_merge($arrData, $arrParams);
1674
-
1675
  //set templates
1676
  $html = $this->addon->getHtml();
1677
  $css = $this->addon->getCss();
@@ -1786,7 +1853,6 @@ class UniteCreatorOutputWork extends HtmlOutputBaseUC{
1786
  if(!empty($paramPostsList) && is_array($paramPostsList))
1787
  $arrData = array_merge($arrData, $postListValue);
1788
  }
1789
-
1790
 
1791
  //show debug data
1792
  if($this->isShowDebugData == true)
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
190
 
191
  foreach($arrIncludes as $handle => $include){
192
 
 
193
  $urlInclude = $include;
194
 
195
  if(is_array($include)){
208
 
209
  $urlInclude = HelperUC::urlToSSLCheck($urlInclude);
210
 
211
+ $deps = array();
212
+
213
+ //process params
214
+ $params = UniteFunctionsUC::getVal($include, "params");
215
+ if(!empty($params)){
216
+ $includeAfterFrontend = UniteFunctionsUC::getVal($params, "include_after_elementor_frontend");
217
+ $includeAfterFrontend = UniteFunctionsUC::strToBool($includeAfterFrontend);
218
+
219
+ if($includeAfterFrontend == true)
220
+ $deps[]= "elementor-frontend";
221
+ }
222
+
223
+
224
  $arrIncludeNew = array();
225
  $arrIncludeNew["url"] = $urlInclude;
226
  $arrIncludeNew["type"] = $type;
227
+
228
  if(!empty($handle))
229
  $arrIncludeNew["handle"] = $handle;
230
 
231
+ if(!empty($deps))
232
+ $arrIncludeNew["deps"] = $deps;
233
+
234
  $arrIncludesProcessed[] = $arrIncludeNew;
235
 
236
  }
279
  $arrLibJs = $arrLibraries["js"];
280
 
281
  $arrIncludesJS = $this->addon->getJSIncludes();
282
+
283
  $arrIncludesJS = array_merge($arrLibJs, $arrIncludesJS);
284
  $arrIncludesJS = $this->processIncludesList($arrIncludesJS, "js");
285
 
380
  $type = $include["type"];
381
  $url = $include["url"];
382
  $handle = UniteFunctionsUC::getVal($include, "handle");
383
+ $deps = UniteFunctionsUC::getVal($include, "deps");
384
+
385
 
386
  if(empty($handle))
387
  $handle = HelperUC::getUrlHandle($url, $addonName);
391
  continue;
392
  }
393
  $this->cacheInclude($url, $handle, $type);
394
+
395
+ $arrIncludeDep = $arrDep;
396
+
397
+ if(!empty($deps))
398
+ $arrIncludeDep = array_merge($arrIncludeDep, $deps);
399
 
400
  switch($type){
401
  case "js":
402
 
403
+ UniteProviderFunctionsUC::addScript($handle, $url, false, $arrIncludeDep);
404
  break;
405
  case "css":
406
  UniteProviderFunctionsUC::addStyle($handle, $url);
1201
  }
1202
 
1203
 
 
 
1204
  private function a________GENERAL___________(){}
1205
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1206
 
1207
  /**
1208
  * modify items data for show
1214
 
1215
  $arrItemsForShow = array();
1216
 
1217
+
1218
  foreach($arrItemData as $item){
1219
 
1220
+ if(is_array($item) == false){
1221
+ $arrItemsForShow[] = $item;
1222
+ continue;
1223
+ }
1224
+
1225
+
1226
  $item = UniteFunctionsUC::getVal($item, "item");
1227
 
1228
  $itemFirstValue = UniteFunctionsUC::getArrFirstValue($item);
1229
 
1230
  if(is_array($itemFirstValue))
1231
+ $item = UniteFunctionsUC::modifyDataArrayForShow($itemFirstValue);
1232
  else
1233
+ $item = UniteFunctionsUC::modifyDataArrayForShow($item);
1234
 
1235
  $arrItemsForShow[] = $item;
1236
  }
1238
  return($arrItemsForShow);
1239
  }
1240
 
1241
+
1242
  private function ___________DEBUG_DATA___________(){}
1243
 
1244
+
1245
  /**
1246
  * put debug data html
1247
  */
1252
  if($isShowData == true){
1253
 
1254
  //modify the data
1255
+ $arrData = UniteFunctionsUC::modifyDataArrayForShow($arrData);
1256
 
1257
  dmp($arrData);
1258
  }
1286
 
1287
  foreach($arrItemData as $index => $item){
1288
 
1289
+ $isPost = false;
1290
+ if($item instanceof WP_Post)
1291
+ $isPost = true;
1292
 
1293
+ if($isPost == false){
1294
+
1295
+ $item = UniteFunctionsUC::getVal($item, "item");
1296
+
1297
+ $postData = UniteFunctionsUC::getArrFirstValue($item);
1298
+
1299
+ $title = UniteFunctionsUC::getVal($postData, "title");
1300
+ $alias = UniteFunctionsUC::getVal($postData, "alias");
1301
+ $id = UniteFunctionsUC::getVal($postData, "id");
1302
+ $post = get_post($id);
1303
 
1304
+ }else{
1305
+
1306
+ $post = $item;
1307
+ $title = $post->post_title;
1308
+ $id = $post->ID;
1309
+ $alias = $post->post_name;
1310
+ }
1311
+
1312
 
1313
  $num = $index+1;
1314
 
1315
+
1316
+ $status = $post->post_status;
1317
+
1318
  $arrTermsNames = UniteFunctionsWPUC::getPostTermsTitles($post);
1319
  $strTerms = implode(",", $arrTermsNames);
1320
 
1321
+ $htmlAfterAlias = "";
1322
+ if($status != "publish")
1323
+ $htmlAfterAlias = ", [$status post]";
1324
+
1325
+ $text = "{$num}. <b>$title</b> (<i style='font-size:13px;'>$alias{$htmlAfterAlias}, $id | $strTerms </i>)";
1326
 
1327
  dmp($text);
1328
 
1331
 
1332
  $postMeta = get_post_meta($id, "", false);
1333
 
1334
+ $postMeta = UniteFunctionsUC::modifyDataArrayForShow($postMeta, true);
1335
 
1336
  dmp($postMeta);
1337
 
1342
 
1343
  }
1344
 
1345
+ /**
1346
+ * get items from listing
1347
+ */
1348
+ private function putDebugDataHtml_getItemsFromListing($paramListing, $arrData){
1349
+
1350
+ $name = UniteFunctionsUC::getVal($paramListing, "name");
1351
+
1352
+ $source = UniteFunctionsUC::getVal($arrData, $name."_source");
1353
+
1354
+ $arrItemsRaw = UniteFunctionsUC::getVal($arrData, $name."_items");
1355
+
1356
+ if(empty($arrItemsRaw))
1357
+ $arrItemsRaw = array();
1358
+
1359
+ $useFor = UniteFunctionsUC::getVal($paramListing, "use_for");
1360
+ $useForGallery = ($useFor == "gallery");
1361
+
1362
+
1363
+ $arrItems = array();
1364
+ foreach($arrItemsRaw as $item){
1365
+
1366
+ if($useForGallery == true && isset($item["postid"])){
1367
+
1368
+ $post = get_post($item["postid"]);
1369
+ $arrItems[] = $post;
1370
+ continue;
1371
+ }
1372
+
1373
+ $object = UniteFunctionsUC::getVal($item, "object");
1374
+ $arrItems[] = $object;
1375
+ }
1376
+
1377
+ return($arrItems);
1378
+ }
1379
+
1380
  /**
1381
  * put debug data
1382
  */
1383
  private function putDebugDataHtml($arrData, $arrItemData){
1384
 
1385
+ echo "<div style='font-size:16px;color:black;text-decoration:none;background-color:white;'>";
1386
 
1387
  dmp("<b>Widget Debug Data</b> (turned on by setting in widget advanced section)<br>");
1388
 
1389
+ //get data from listing
1390
+ $paramListing = $this->addon->getParamByType(UniteCreatorDialogParam::PARAM_LISTING);
1391
+
1392
+ if(!empty($paramListing)){
1393
+ $arrItemData = $this->putDebugDataHtml_getItemsFromListing($paramListing, $arrData);
1394
+ }
1395
+
1396
+
1397
  switch($this->debugDataType){
1398
  case "post_titles":
1399
  case "post_meta":
1400
+
1401
  $this->putDebugDataHtml_posts($arrItemData);
1402
 
1403
  break;
1738
  $arrParams = $this->getAddonParams();
1739
 
1740
  $arrData = array_merge($arrData, $arrParams);
1741
+
1742
  //set templates
1743
  $html = $this->addon->getHtml();
1744
  $css = $this->addon->getCss();
1853
  if(!empty($paramPostsList) && is_array($paramPostsList))
1854
  $arrData = array_merge($arrData, $postListValue);
1855
  }
 
1856
 
1857
  //show debug data
1858
  if($this->isShowDebugData == true)
inc_php/unitecreator_params_editor.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/unitecreator_params_processor.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -111,7 +111,10 @@ class UniteCreatorParamsProcessorWork{
111
 
112
  if(empty($options))
113
  return($value);
114
-
 
 
 
115
  $key = array_search($value, $options, true);
116
  if($key !== false)
117
  return($value);
@@ -695,7 +698,7 @@ class UniteCreatorParamsProcessorWork{
695
  /**
696
  * add other image thumbs based of the platform
697
  */
698
- protected function addOtherImageThumbs($data, $name, $value){
699
 
700
  return($data);
701
  }
@@ -815,7 +818,7 @@ class UniteCreatorParamsProcessorWork{
815
  * @param $param
816
  */
817
  protected function getProcessedParamsValue_image($data, $value, $param){
818
-
819
  $name = $param["name"];
820
 
821
  $urlImage = $value; //in case that the value is image id
@@ -827,16 +830,24 @@ class UniteCreatorParamsProcessorWork{
827
  $value = HelperUC::URLtoFull($value);
828
  $data[$name] = $value;
829
  }
 
 
 
 
 
830
 
831
- $data = $this->addOtherImageThumbs($data, $name, $value);
832
 
833
- $data = $this->addOtherImageData($data, $name, $value);
 
834
 
835
- $data = $this->addImageAttributes($data, $name, $param);
 
836
 
837
  return($data);
838
  }
839
 
 
840
  private function z___________ICON_____________(){}
841
 
842
 
@@ -1106,14 +1117,21 @@ class UniteCreatorParamsProcessorWork{
1106
 
1107
  if(isset($param["value"]))
1108
  $param["value"] = $this->convertValueByType($param["value"], $type, $param);
1109
-
1110
  if(isset($param["default_value"]))
1111
  $param["default_value"] = $this->convertValueByType($param["default_value"], $type, $param);
1112
 
1113
  //make sure that the value is part of the options
1114
- if(isset($param["value"]) && isset($param["default_value"]) && isset($param["options"]) && !empty($param["options"]) )
 
 
 
 
1115
  $param["value"] = $this->convertValueFromOptions($param["value"], $param["options"], $param["default_value"]);
1116
-
 
 
 
1117
  $arrParams[$key] = $param;
1118
  }
1119
 
@@ -1421,7 +1439,7 @@ class UniteCreatorParamsProcessorWork{
1421
  * get processe param data, function with override
1422
  */
1423
  protected function getProcessedParamData($data, $value, $param, $processType){
1424
-
1425
  $type = UniteFunctionsUC::getVal($param, "type");
1426
  $name = UniteFunctionsUC::getVal($param, "name");
1427
 
@@ -1505,7 +1523,8 @@ class UniteCreatorParamsProcessorWork{
1505
  self::validateProcessType($processType);
1506
 
1507
  $arrParams = $this->processParamsForOutput($arrParams);
1508
-
 
1509
  $data = array();
1510
 
1511
  foreach($arrParams as $param){
@@ -1525,7 +1544,7 @@ class UniteCreatorParamsProcessorWork{
1525
  $value = UniteFunctionsUC::getVal($param, "value");
1526
 
1527
  $value = $this->convertValueByType($value, $type, $param);
1528
-
1529
  if(empty($name))
1530
  continue;
1531
 
@@ -1590,6 +1609,7 @@ class UniteCreatorParamsProcessorWork{
1590
 
1591
  $arrParams = $this->getProcessedParamsValues($objParams, $processType);
1592
 
 
1593
  $arrVars = $this->getMainVariablesProcessed($arrParams);
1594
 
1595
  if($this->isOutputProcessType($processType) == true){
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
111
 
112
  if(empty($options))
113
  return($value);
114
+
115
+ if(is_array($value))
116
+ return($value);
117
+
118
  $key = array_search($value, $options, true);
119
  if($key !== false)
120
  return($value);
698
  /**
699
  * add other image thumbs based of the platform
700
  */
701
+ protected function addOtherImageThumbs($data, $name, $value, $filterSizes = null){
702
 
703
  return($data);
704
  }
818
  * @param $param
819
  */
820
  protected function getProcessedParamsValue_image($data, $value, $param){
821
+
822
  $name = $param["name"];
823
 
824
  $urlImage = $value; //in case that the value is image id
830
  $value = HelperUC::URLtoFull($value);
831
  $data[$name] = $value;
832
  }
833
+
834
+ $sizeFilters = UniteFunctionsUC::getVal($param, "size_filters");
835
+ $isNoAttributes = UniteFunctionsUC::getVal($param, "no_attributes");
836
+ $isNoImageData = UniteFunctionsUC::getVal($param, "no_image_data");
837
+
838
 
839
+ $data = $this->addOtherImageThumbs($data, $name, $value, $sizeFilters);
840
 
841
+ if($isNoImageData !== true)
842
+ $data = $this->addOtherImageData($data, $name, $value);
843
 
844
+ if($isNoAttributes !== true)
845
+ $data = $this->addImageAttributes($data, $name, $param);
846
 
847
  return($data);
848
  }
849
 
850
+
851
  private function z___________ICON_____________(){}
852
 
853
 
1117
 
1118
  if(isset($param["value"]))
1119
  $param["value"] = $this->convertValueByType($param["value"], $type, $param);
1120
+
1121
  if(isset($param["default_value"]))
1122
  $param["default_value"] = $this->convertValueByType($param["default_value"], $type, $param);
1123
 
1124
  //make sure that the value is part of the options
1125
+ if(isset($param["value"]) &&
1126
+ isset($param["default_value"]) &&
1127
+ isset($param["options"]) &&
1128
+ !empty($param["options"]) ){
1129
+
1130
  $param["value"] = $this->convertValueFromOptions($param["value"], $param["options"], $param["default_value"]);
1131
+ }
1132
+
1133
+ $param = apply_filters("unite_creator_process_param_for_output", $param);
1134
+
1135
  $arrParams[$key] = $param;
1136
  }
1137
 
1439
  * get processe param data, function with override
1440
  */
1441
  protected function getProcessedParamData($data, $value, $param, $processType){
1442
+
1443
  $type = UniteFunctionsUC::getVal($param, "type");
1444
  $name = UniteFunctionsUC::getVal($param, "name");
1445
 
1523
  self::validateProcessType($processType);
1524
 
1525
  $arrParams = $this->processParamsForOutput($arrParams);
1526
+
1527
+
1528
  $data = array();
1529
 
1530
  foreach($arrParams as $param){
1544
  $value = UniteFunctionsUC::getVal($param, "value");
1545
 
1546
  $value = $this->convertValueByType($value, $type, $param);
1547
+
1548
  if(empty($name))
1549
  continue;
1550
 
1609
 
1610
  $arrParams = $this->getProcessedParamsValues($objParams, $processType);
1611
 
1612
+
1613
  $arrVars = $this->getMainVariablesProcessed($arrParams);
1614
 
1615
  if($this->isOutputProcessType($processType) == true){
inc_php/unitecreator_settings.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -131,7 +131,7 @@ class UniteCreatorSettingsWork extends UniteSettingsAdvancedUC{
131
  UniteFunctionsUC::throwError("the settings should be empty for this operation");
132
 
133
  $this->addByCreatorParam($param);
134
-
135
  $arrParams = $this->getSettingsCreatorFormat();
136
 
137
  return($arrParams);
@@ -492,6 +492,7 @@ class UniteCreatorSettingsWork extends UniteSettingsAdvancedUC{
492
  case UniteCreatorDialogParam::PARAM_WOO_CATS:
493
  case UniteCreatorDialogParam::PARAM_USERS:
494
  case UniteCreatorDialogParam::PARAM_TEMPLATE:
 
495
  case UniteCreatorDialogParam::PARAM_LISTING:
496
 
497
  return(true);
@@ -532,12 +533,20 @@ class UniteCreatorSettingsWork extends UniteSettingsAdvancedUC{
532
 
533
  }
534
 
 
 
 
 
 
 
 
 
 
535
  /**
536
  * add setting by creator param
537
  */
538
  public function addByCreatorParam($param, $inputValue = null){
539
 
540
-
541
  //add ready setting if exists
542
  $arrReadySetting = UniteFunctionsUC::getVal($param, "uc_setting");
543
  if(!empty($arrReadySetting)){
@@ -545,9 +554,7 @@ class UniteCreatorSettingsWork extends UniteSettingsAdvancedUC{
545
  $classAdd = UniteFunctionsUC::getVal($arrReadySetting, UniteSettingsUC::PARAM_CLASSADD);
546
 
547
  $arrReadySetting[UniteSettingsUC::PARAM_CLASSADD] = $classAdd;
548
-
549
- // if($inputValue !== null) - vc hack - fields should not be empty
550
-
551
  if(!empty($inputValue))
552
  $arrReadySetting["value"] = $inputValue;
553
 
@@ -583,18 +590,20 @@ class UniteCreatorSettingsWork extends UniteSettingsAdvancedUC{
583
  if(!empty($attributeValue))
584
  $extra[$attributeName] = $attributeValue;
585
  }
586
-
 
587
 
588
  $isUpdateValue = true;
589
 
590
- $isMultipleSettingType = self::isMultipleUCSettingType($type);
591
  if($isMultipleSettingType && !empty($inputValue)){
592
  $value = $inputValue;
593
  $isUpdateValue = false;
594
  }
595
-
596
-
597
  switch ($type){
 
 
 
598
  case "uc_editor":
599
  $this->addEditor($name, $value, $title, $extra);
600
  break;
@@ -647,6 +656,13 @@ class UniteCreatorSettingsWork extends UniteSettingsAdvancedUC{
647
 
648
  $this->addSelect($name, $options, $title, $value, $extra);
649
  break;
 
 
 
 
 
 
 
650
  case "uc_colorpicker":
651
  $this->addColorPicker($name, $value, $title, $extra);
652
  break;
@@ -701,7 +717,7 @@ class UniteCreatorSettingsWork extends UniteSettingsAdvancedUC{
701
 
702
  $extra["for_woocommerce_products"] = UniteFunctionsUC::getVal($param, "for_woocommerce_products");
703
  $extra["default_max_posts"] = UniteFunctionsUC::getVal($param, "default_max_posts");
704
-
705
  $this->addPostsListPicker($name,$value,$title,$extra);
706
  break;
707
  case UniteCreatorDialogParam::PARAM_POST_TERMS:
@@ -715,7 +731,7 @@ class UniteCreatorSettingsWork extends UniteSettingsAdvancedUC{
715
  break;
716
  case UniteCreatorDialogParam::PARAM_LISTING:
717
 
718
- $this->addListingPicker($name,$value,$title,$extra);
719
 
720
  break;
721
  case UniteCreatorDialogParam::PARAM_WOO_CATS:
@@ -939,7 +955,7 @@ class UniteCreatorSettingsWork extends UniteSettingsAdvancedUC{
939
  * add settings by creator params
940
  */
941
  public function initByCreatorParams($arrParams){
942
-
943
  foreach($arrParams as $param){
944
  $this->addByCreatorParam($param);
945
  }
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
131
  UniteFunctionsUC::throwError("the settings should be empty for this operation");
132
 
133
  $this->addByCreatorParam($param);
134
+
135
  $arrParams = $this->getSettingsCreatorFormat();
136
 
137
  return($arrParams);
492
  case UniteCreatorDialogParam::PARAM_WOO_CATS:
493
  case UniteCreatorDialogParam::PARAM_USERS:
494
  case UniteCreatorDialogParam::PARAM_TEMPLATE:
495
+ case "uc_filters_repeater_params":
496
  case UniteCreatorDialogParam::PARAM_LISTING:
497
 
498
  return(true);
533
 
534
  }
535
 
536
+ /**
537
+ * add filters item selector
538
+ */
539
+ protected function addFiltersItemSelector($param){
540
+
541
+ dmp("addFiltersItemSelector - function for override");
542
+ exit();
543
+ }
544
+
545
  /**
546
  * add setting by creator param
547
  */
548
  public function addByCreatorParam($param, $inputValue = null){
549
 
 
550
  //add ready setting if exists
551
  $arrReadySetting = UniteFunctionsUC::getVal($param, "uc_setting");
552
  if(!empty($arrReadySetting)){
554
  $classAdd = UniteFunctionsUC::getVal($arrReadySetting, UniteSettingsUC::PARAM_CLASSADD);
555
 
556
  $arrReadySetting[UniteSettingsUC::PARAM_CLASSADD] = $classAdd;
557
+
 
 
558
  if(!empty($inputValue))
559
  $arrReadySetting["value"] = $inputValue;
560
 
590
  if(!empty($attributeValue))
591
  $extra[$attributeName] = $attributeValue;
592
  }
593
+
594
+ $isMultipleSettingType = self::isMultipleUCSettingType($type);
595
 
596
  $isUpdateValue = true;
597
 
 
598
  if($isMultipleSettingType && !empty($inputValue)){
599
  $value = $inputValue;
600
  $isUpdateValue = false;
601
  }
602
+
 
603
  switch ($type){
604
+ case "uc_filters_repeater_params":
605
+ $this->addFiltersItemSelector($param);
606
+ break;
607
  case "uc_editor":
608
  $this->addEditor($name, $value, $title, $extra);
609
  break;
656
 
657
  $this->addSelect($name, $options, $title, $value, $extra);
658
  break;
659
+ case UniteCreatorDialogParam::PARAM_MULTIPLE_SELECT:
660
+
661
+ $options = UniteFunctionsUC::getVal($param, "options");
662
+
663
+ $this->addMultiSelect($name, $options, $title, $value, $extra);
664
+
665
+ break;
666
  case "uc_colorpicker":
667
  $this->addColorPicker($name, $value, $title, $extra);
668
  break;
717
 
718
  $extra["for_woocommerce_products"] = UniteFunctionsUC::getVal($param, "for_woocommerce_products");
719
  $extra["default_max_posts"] = UniteFunctionsUC::getVal($param, "default_max_posts");
720
+
721
  $this->addPostsListPicker($name,$value,$title,$extra);
722
  break;
723
  case UniteCreatorDialogParam::PARAM_POST_TERMS:
731
  break;
732
  case UniteCreatorDialogParam::PARAM_LISTING:
733
 
734
+ $this->addListingPicker($name,$value,$title,$param);
735
 
736
  break;
737
  case UniteCreatorDialogParam::PARAM_WOO_CATS:
955
  * add settings by creator params
956
  */
957
  public function initByCreatorParams($arrParams){
958
+
959
  foreach($arrParams as $param){
960
  $this->addByCreatorParam($param);
961
  }
inc_php/unitecreator_settings_output.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/unitecreator_template_engine.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -79,7 +79,7 @@ class UniteCreatorTemplateEngineWork{
79
 
80
  foreach($this->arrItems as $index => $itemParams)
81
  $this->outputItem($index, $itemParams, $templateName, $sap, $newLine);
82
-
83
  }
84
 
85
 
@@ -104,11 +104,19 @@ class UniteCreatorTemplateEngineWork{
104
  /**
105
  * get the items for iteration
106
  */
107
- public function getItems(){
108
 
109
  $arrItems = array();
110
- foreach($this->arrItems as $item)
111
- $arrItems[] = $item["item"];
 
 
 
 
 
 
 
 
112
 
113
  return($arrItems);
114
  }
@@ -116,10 +124,10 @@ class UniteCreatorTemplateEngineWork{
116
  /**
117
  * put items json for js
118
  */
119
- public function putItemsJson(){
120
-
121
  //modify items for output
122
- $arrItems = $this->getItems();
123
 
124
  //json encode
125
  $jsonItems = UniteFunctionsUC::jsonEncodeForClientSide($arrItems);
@@ -127,6 +135,22 @@ class UniteCreatorTemplateEngineWork{
127
  echo $jsonItems;
128
  }
129
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
130
  /**
131
  * put items 2
132
  */
@@ -604,6 +628,22 @@ class UniteCreatorTemplateEngineWork{
604
  $objPagination->putPaginationWidgetHtml($args);
605
  }
606
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
607
 
608
  /**
609
  * put listing template
@@ -740,19 +780,66 @@ class UniteCreatorTemplateEngineWork{
740
 
741
  }
742
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
743
  /**
744
  * put test html
745
  */
746
- public function putTestHTML($type = null){
747
 
748
  $objFilters = new UniteCreatorFiltersProcess();
 
749
 
750
  switch($type){
751
- case "widget_data":
752
- $objFilters->putCurrentWidgetData();
 
 
753
  break;
754
  default:
755
- $objFilters->putFiltersTabs();
756
  break;
757
  }
758
 
@@ -769,6 +856,8 @@ class UniteCreatorTemplateEngineWork{
769
  $putItemsFunction = new Twig_SimpleFunction('put_items', array($this,"putItems"));
770
  $putItemsFunction2 = new Twig_SimpleFunction('put_items2', array($this,"putItems2"));
771
  $putItemsJsonFunction = new Twig_SimpleFunction('put_items_json', array($this,"putItemsJson"));
 
 
772
  $getItems = new Twig_SimpleFunction('get_items', array($this,"getItems"));
773
  $putGetDataFunction = new Twig_SimpleFunction('get_data', array($this,"getData"));
774
 
@@ -791,7 +880,11 @@ class UniteCreatorTemplateEngineWork{
791
  $getPostTags = new Twig_SimpleFunction('getPostTags', array($this,"getPostTags"));
792
  $getPostData = new Twig_SimpleFunction('getPostData', array($this,"getPostData"));
793
  $putPagination = new Twig_SimpleFunction('putPagination', array($this,"putPagination"));
794
- //$putListingTemplate_post = new Twig_SimpleFunction('putListingTemplate_posts', array($this,"putListingTemplate_posts"));
 
 
 
 
795
 
796
  $putPostImageAttributes = new Twig_SimpleFunction('putPostImageAttributes', array($this,"putPostImageAttributes"));
797
 
@@ -802,6 +895,7 @@ class UniteCreatorTemplateEngineWork{
802
  $doAction = new Twig_SimpleFunction('do_action', array($this,"do_action"));
803
  $applyFilters = new Twig_SimpleFunction('apply_filters', array($this,"apply_filters"));
804
  $getByPHPFunction = new Twig_SimpleFunction('getByPHPFunction', array($this,"getByPHPFunction"));
 
805
 
806
  $getPostTerms = new Twig_SimpleFunction('getPostTerms', array($this,"getPostTerms"));
807
  $getPostAuthor = new Twig_SimpleFunction('getPostAuthor', array($this,"getPostAuthor"));
@@ -851,9 +945,11 @@ class UniteCreatorTemplateEngineWork{
851
  $this->twig->addFunction($getPostData);
852
  $this->twig->addFunction($printVar);
853
  $this->twig->addFunction($printJsonVar);
854
- $this->twig->addFunction($printJsonHtmlData);
855
  $this->twig->addFunction($putPagination);
856
- //$this->twig->addFunction($putListingTemplate_post);
 
 
857
 
858
  $this->twig->addFunction($getPostTerms);
859
  $this->twig->addFunction($getPostAuthor);
@@ -861,6 +957,8 @@ class UniteCreatorTemplateEngineWork{
861
  $this->twig->addFunction($getWooChildProducts);
862
  $this->twig->addFunction($getTermCustomFields);
863
  $this->twig->addFunction($putItemsJsonFunction);
 
 
864
  $this->twig->addFunction($getItems);
865
  $this->twig->addFunction($putPostImageAttributes);
866
 
@@ -880,7 +978,7 @@ class UniteCreatorTemplateEngineWork{
880
  $this->twig->addFunction($doAction);
881
  $this->twig->addFunction($applyFilters);
882
  $this->twig->addFunction($getByPHPFunction);
883
-
884
 
885
  $this->initTwig_addExtraFunctionsPro();
886
 
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
79
 
80
  foreach($this->arrItems as $index => $itemParams)
81
  $this->outputItem($index, $itemParams, $templateName, $sap, $newLine);
82
+
83
  }
84
 
85
 
104
  /**
105
  * get the items for iteration
106
  */
107
+ public function getItems($type = null){
108
 
109
  $arrItems = array();
110
+ foreach($this->arrItems as $item){
111
+ $item = $item["item"];
112
+ if($type == "clean"){
113
+ unset($item["item_repeater_class"]);
114
+ unset($item["item_index"]);
115
+ unset($item["item_id"]);
116
+ }
117
+
118
+ $arrItems[] = $item;
119
+ }
120
 
121
  return($arrItems);
122
  }
124
  /**
125
  * put items json for js
126
  */
127
+ public function putItemsJson($type = null){
128
+
129
  //modify items for output
130
+ $arrItems = $this->getItems($type);
131
 
132
  //json encode
133
  $jsonItems = UniteFunctionsUC::jsonEncodeForClientSide($arrItems);
135
  echo $jsonItems;
136
  }
137
 
138
+ /**
139
+ * put data json for js
140
+ */
141
+ public function putAttributesJson($type = null){
142
+
143
+ $arrAttr = $this->arrParams;
144
+
145
+ if($type == "clean")
146
+ $arrAttr = UniteFunctionsUC::removeArrItemsByKeys($arrAttr, GlobalsProviderUC::$arrAttrConstantKeys);
147
+
148
+ $jsonAttr = UniteFunctionsUC::jsonEncodeForClientSide($arrAttr);
149
+
150
+ echo $jsonAttr;
151
+ }
152
+
153
+
154
  /**
155
  * put items 2
156
  */
628
  $objPagination->putPaginationWidgetHtml($args);
629
  }
630
 
631
+ /**
632
+ * put listing loop
633
+ */
634
+ public function putListingItemTemplate($item, $templateID){
635
+
636
+ HelperProviderCoreUC_EL::putListingItemTemplate($item, $templateID);
637
+
638
+ }
639
+
640
+ /**
641
+ * put dynamic loop template, similar to put listing template
642
+ */
643
+ public function putDynamicLoopTemplate($item, $templateID){
644
+ HelperProviderCoreUC_EL::putListingItemTemplate($item, $templateID);
645
+ }
646
+
647
 
648
  /**
649
  * put listing template
780
 
781
  }
782
 
783
+ /**
784
+ * output elementor template by id
785
+ */
786
+ public function putElementorTemplate($templateID){
787
+
788
+ HelperProviderCoreUC_EL::putElementorTemplate($templateID);
789
+
790
+ }
791
+
792
+ /**
793
+ * output various functionality
794
+ */
795
+ public function ucfunc($type, $arg1 = null, $arg2= null, $arg3=null){
796
+
797
+ switch($type){
798
+ case "put_date_range":
799
+
800
+ $dateRange = HelperUC::$operations->getDateRangeString($arg1, $arg2, $arg3);
801
+ echo $dateRange;
802
+
803
+ break;
804
+ case "get_general_setting":
805
+
806
+ $value = HelperProviderCoreUC_EL::getGeneralSetting($arg1);
807
+
808
+ return($value);
809
+ break;
810
+ case "run_code_once":
811
+
812
+ $isRunOnce = HelperUC::isRunCodeOnce($arg1);
813
+ return($isRunOnce);
814
+ break;
815
+ default:
816
+ $strTypes = "put_date_range, get_general_setting, run_code_once";
817
+
818
+ $type = UniteFunctionsUC::sanitizeAttr($type);
819
+
820
+ dmp("ucfunc error: unknown action <b>'$type'</b>, allowed actions are: <b>$strTypes</b>");
821
+ break;
822
+ }
823
+
824
+ }
825
+
826
+
827
  /**
828
  * put test html
829
  */
830
+ public function putTestHTML($type = null, $data = null){
831
 
832
  $objFilters = new UniteCreatorFiltersProcess();
833
+ //$objFilters->putFiltersTabs();
834
 
835
  switch($type){
836
+ case "filter_checkbox":
837
+
838
+ $objFilters->putCheckboxFiltersTest($data);
839
+
840
  break;
841
  default:
842
+ dmp("putTestHTML - type not found: $type");
843
  break;
844
  }
845
 
856
  $putItemsFunction = new Twig_SimpleFunction('put_items', array($this,"putItems"));
857
  $putItemsFunction2 = new Twig_SimpleFunction('put_items2', array($this,"putItems2"));
858
  $putItemsJsonFunction = new Twig_SimpleFunction('put_items_json', array($this,"putItemsJson"));
859
+ $putAttributesJson = new Twig_SimpleFunction('put_attributes_json', array($this,"putAttributesJson"));
860
+
861
  $getItems = new Twig_SimpleFunction('get_items', array($this,"getItems"));
862
  $putGetDataFunction = new Twig_SimpleFunction('get_data', array($this,"getData"));
863
 
880
  $getPostTags = new Twig_SimpleFunction('getPostTags', array($this,"getPostTags"));
881
  $getPostData = new Twig_SimpleFunction('getPostData', array($this,"getPostData"));
882
  $putPagination = new Twig_SimpleFunction('putPagination', array($this,"putPagination"));
883
+
884
+ $putListingItemTemplate = new Twig_SimpleFunction('putListingItemTemplate', array($this,"putListingItemTemplate"));
885
+ $putDynamicLoopTemplate = new Twig_SimpleFunction('putDynamicLoopTemplate', array($this,"putDynamicLoopTemplate"));
886
+
887
+ $putElementorTemplate = new Twig_SimpleFunction('putElementorTemplate', array($this,"putElementorTemplate"));
888
 
889
  $putPostImageAttributes = new Twig_SimpleFunction('putPostImageAttributes', array($this,"putPostImageAttributes"));
890
 
895
  $doAction = new Twig_SimpleFunction('do_action', array($this,"do_action"));
896
  $applyFilters = new Twig_SimpleFunction('apply_filters', array($this,"apply_filters"));
897
  $getByPHPFunction = new Twig_SimpleFunction('getByPHPFunction', array($this,"getByPHPFunction"));
898
+ $ucfunc = new Twig_SimpleFunction('ucfunc', array($this,"ucfunc"));
899
 
900
  $getPostTerms = new Twig_SimpleFunction('getPostTerms', array($this,"getPostTerms"));
901
  $getPostAuthor = new Twig_SimpleFunction('getPostAuthor', array($this,"getPostAuthor"));
945
  $this->twig->addFunction($getPostData);
946
  $this->twig->addFunction($printVar);
947
  $this->twig->addFunction($printJsonVar);
948
+ $this->twig->addFunction($printJsonHtmlData);
949
  $this->twig->addFunction($putPagination);
950
+ $this->twig->addFunction($putListingItemTemplate);
951
+ $this->twig->addFunction($putDynamicLoopTemplate);
952
+ $this->twig->addFunction($putElementorTemplate);
953
 
954
  $this->twig->addFunction($getPostTerms);
955
  $this->twig->addFunction($getPostAuthor);
957
  $this->twig->addFunction($getWooChildProducts);
958
  $this->twig->addFunction($getTermCustomFields);
959
  $this->twig->addFunction($putItemsJsonFunction);
960
+ $this->twig->addFunction($putAttributesJson);
961
+
962
  $this->twig->addFunction($getItems);
963
  $this->twig->addFunction($putPostImageAttributes);
964
 
978
  $this->twig->addFunction($doAction);
979
  $this->twig->addFunction($applyFilters);
980
  $this->twig->addFunction($getByPHPFunction);
981
+ $this->twig->addFunction($ucfunc);
982
 
983
  $this->initTwig_addExtraFunctionsPro();
984
 
inc_php/unitecreator_variables_output.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/unitecreator_web_api.class.php CHANGED
@@ -2,8 +2,8 @@
2
 
3
  /**
4
  * @package Unlimited Elements
5
- * @author UniteCMS.net
6
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
7
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
8
  * */
9
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
2
 
3
  /**
4
  * @package Unlimited Elements
5
+ * @author unlimited-elements.com
6
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
7
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
8
  * */
9
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
inc_php/unitecreator_web_library.class.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
includes.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  **/
8
 
@@ -12,7 +12,7 @@ if(!defined('UNLIMITED_ELEMENTS_INC'))
12
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
13
 
14
  if(!defined("UNLIMITED_ELEMENTS_VERSION"))
15
- define("UNLIMITED_ELEMENTS_VERSION", "1.4.71");
16
 
17
  $currentFile = __FILE__;
18
  $currentFolder = dirname($currentFile);
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  **/
8
 
12
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
13
 
14
  if(!defined("UNLIMITED_ELEMENTS_VERSION"))
15
+ define("UNLIMITED_ELEMENTS_VERSION", "1.4.74");
16
 
17
  $currentFile = __FILE__;
18
  $currentFolder = dirname($currentFile);
js/admin.js CHANGED
@@ -278,19 +278,7 @@ function UniteAdminUC(){
278
  }
279
 
280
  this.__________STRINGS_____ = function(){};
281
-
282
- /**
283
- * raw url decode
284
- */
285
- function rawurldecode(str){return decodeURIComponent(str+'');}
286
-
287
- /**
288
- * raw url encode
289
- */
290
- function rawurlencode(str){str=(str+'').toString();return encodeURIComponent(str).replace(/!/g,'%21').replace(/'/g,'%27').replace(/\(/g,'%28').replace(/\)/g,'%29').replace(/\*/g,'%2A');}
291
-
292
-
293
-
294
  /**
295
  * get text diff
296
  */
@@ -308,6 +296,18 @@ function UniteAdminUC(){
308
  return second.substr(start, end - start);
309
  }
310
 
 
 
 
 
 
 
 
 
 
 
 
 
311
  /**
312
  * utf8 decode
313
  */
278
  }
279
 
280
  this.__________STRINGS_____ = function(){};
281
+
 
 
 
 
 
 
 
 
 
 
 
 
282
  /**
283
  * get text diff
284
  */
296
  return second.substr(start, end - start);
297
  }
298
 
299
+
300
+ /**
301
+ * raw url decode
302
+ */
303
+ function rawurldecode(str){return decodeURIComponent(str+'');}
304
+
305
+ /**
306
+ * raw url encode
307
+ */
308
+ function rawurlencode(str){str=(str+'').toString();return encodeURIComponent(str).replace(/!/g,'%21').replace(/'/g,'%27').replace(/\(/g,'%28').replace(/\)/g,'%29').replace(/\*/g,'%2A');}
309
+
310
+
311
  /**
312
  * utf8 decode
313
  */
js/settings.js CHANGED
@@ -406,7 +406,7 @@ function UniteSettingsUC(){
406
  /**
407
  * get settings values object by the parent
408
  */
409
- this.getSettingsValues = function(controlsOnly){
410
 
411
  validateInited();
412
 
@@ -419,7 +419,7 @@ function UniteSettingsUC(){
419
  else{
420
  var objInputs = getObjInputs().not(".unite-setting-transparent");
421
  }
422
-
423
  jQuery.each(objInputs, function(index, input){
424
 
425
  var objInput = jQuery(input);
@@ -430,7 +430,16 @@ function UniteSettingsUC(){
430
 
431
  if(value == g_vars.NOT_UPDATE_OPTION)
432
  return(true);
433
-
 
 
 
 
 
 
 
 
 
434
  inputID = objInput.prop("id");
435
 
436
  //set additional vars
@@ -463,6 +472,51 @@ function UniteSettingsUC(){
463
  };
464
 
465
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
466
  /**
467
  * clear input
468
  */
406
  /**
407
  * get settings values object by the parent
408
  */
409
+ this.getSettingsValues = function(controlsOnly, isChangedOnly){
410
 
411
  validateInited();
412
 
419
  else{
420
  var objInputs = getObjInputs().not(".unite-setting-transparent");
421
  }
422
+
423
  jQuery.each(objInputs, function(index, input){
424
 
425
  var objInput = jQuery(input);
430
 
431
  if(value == g_vars.NOT_UPDATE_OPTION)
432
  return(true);
433
+
434
+ //remain only changed values from default values
435
+ if(isChangedOnly === true){
436
+ var defaultValue = getInputDefaultValue(objInput);
437
+
438
+ if(defaultValue === value)
439
+ return(true);
440
+ }
441
+
442
+
443
  inputID = objInput.prop("id");
444
 
445
  //set additional vars
472
  };
473
 
474
 
475
+ /**
476
+ * get default value
477
+ */
478
+ function getInputDefaultValue(objInput){
479
+
480
+ var type = getInputType(objInput);
481
+ var name = getInputName(objInput);
482
+
483
+ var dataname = "default";
484
+ var checkboxDataName = "defaultchecked";
485
+
486
+ var defaultValue;
487
+
488
+ switch(type){
489
+ default:
490
+ if(!name)
491
+ return(false);
492
+
493
+ defaultValue = objInput.data(dataname);
494
+
495
+ if(typeof defaultValue == "object")
496
+ defaultValue = JSON.stringify(defaultValue);
497
+
498
+ if(type == "select"){
499
+ if(defaultValue === true)
500
+ defaultValue = "true";
501
+ if(defaultValue === false)
502
+ defaultValue = "false";
503
+ }
504
+
505
+ break;
506
+ case "radio":
507
+ case "checkbox":
508
+ defaultValue = objInput.data(checkboxDataName);
509
+ defaultValue = g_ucAdmin.strToBool(defaultValue);
510
+ break;
511
+ }
512
+
513
+ if(jQuery.isNumeric(defaultValue))
514
+ defaultValue = defaultValue.toString();
515
+
516
+ return(defaultValue);
517
+ }
518
+
519
+
520
  /**
521
  * clear input
522
  */
js/unitecreator_addon_config.js CHANGED
@@ -338,11 +338,18 @@ function UniteCreatorAddonConfig(){
338
  /**
339
  * get data object
340
  */
341
- this.getObjData = function(){
342
 
343
  validateInited();
344
-
345
- var objValues = g_objSettings.getSettingsValues();
 
 
 
 
 
 
 
346
 
347
  var objExtra = {};
348
  objExtra["title"] = g_options.title;
@@ -354,7 +361,7 @@ function UniteCreatorAddonConfig(){
354
  objData["name"] = g_addonName;
355
  objData["addontype"] = g_addonType;
356
  objData["extra"] = objExtra;
357
-
358
  return(objData);
359
  };
360
 
@@ -372,9 +379,9 @@ function UniteCreatorAddonConfig(){
372
  /**
373
  * get json data from the settings
374
  */
375
- function getJsonData(){
376
 
377
- var objData = t.getObjData();
378
 
379
  var strData = JSON.stringify(objData);
380
 
@@ -455,8 +462,10 @@ function UniteCreatorAddonConfig(){
455
  */
456
  function getPreviewUrl(){
457
 
458
- var jsonData = getJsonData();
 
459
  jsonData = encodeURIComponent(jsonData);
 
460
  var params = "data="+jsonData+"";
461
  var urlPreview = g_ucAdmin.getUrlAjax("show_preview", params);
462
 
338
  /**
339
  * get data object
340
  */
341
+ this.getObjData = function(isChangedOnly){
342
 
343
  validateInited();
344
+
345
+ if(isChangedOnly === true){
346
+
347
+ var objValues = g_objSettings.getSettingsValues(false, true);
348
+
349
+ }else{
350
+
351
+ var objValues = g_objSettings.getSettingsValues();
352
+ }
353
 
354
  var objExtra = {};
355
  objExtra["title"] = g_options.title;
361
  objData["name"] = g_addonName;
362
  objData["addontype"] = g_addonType;
363
  objData["extra"] = objExtra;
364
+
365
  return(objData);
366
  };
367
 
379
  /**
380
  * get json data from the settings
381
  */
382
+ function getJsonData(isChangedOnly){
383
 
384
+ var objData = t.getObjData(isChangedOnly);
385
 
386
  var strData = JSON.stringify(objData);
387
 
462
  */
463
  function getPreviewUrl(){
464
 
465
+ var jsonData = getJsonData(true);
466
+
467
  jsonData = encodeURIComponent(jsonData);
468
+
469
  var params = "data="+jsonData+"";
470
  var urlPreview = g_ucAdmin.getUrlAjax("show_preview", params);
471
 
js/unitecreator_admin.js CHANGED
@@ -637,11 +637,6 @@ function UniteCreatorAdmin(){
637
  var param = arrParams[index];
638
 
639
  switch(param.type){
640
- case "uc_listing":
641
- param["items_param_type"] = "uc_listing";
642
- param["items_panel_text"] = "Items as listing mode";
643
- return(param);
644
- break;
645
  case "uc_posts_list":
646
  param["items_param_type"] = "uc_post";
647
  param["items_panel_text"] = "Items as posts mode";
@@ -763,12 +758,22 @@ function UniteCreatorAdmin(){
763
  //modify params for js
764
  if(hasItems == true){
765
 
766
- //put extra js functions
767
- var textPutItemsJson = "var strJsonItems = {{put_items_json()}};";
 
768
  textPutItemsJson += "\nvar objItems = JSON.parse(strJsonItems);";
769
- textPutItemsJson += "\nconsole.log(objItems)";
770
 
771
  var paramPutItemJs = {type:"uc_function", name:"put_items_json()","raw_insert_text":textPutItemsJson};
 
 
 
 
 
 
 
 
 
772
 
773
  var textGetItems = "{# Generate javascript array from items using twig#}";
774
  textGetItems += "\n{% set itemsForJs = get_items() %}";
@@ -784,8 +789,10 @@ function UniteCreatorAdmin(){
784
  "raw_insert_text":textGetItems
785
  };
786
 
787
- arrParamsForJS.unshift(paramGetItemJs);
788
  arrParamsForJS.unshift(paramPutItemJs);
 
 
789
  }
790
 
791
  arrParamsForJS = paramsPanelMainSync_addEndingParamsJS(arrParamsForJS);
@@ -1809,6 +1816,7 @@ function UniteCreatorAdmin(){
1809
  case "main":
1810
  var arrData = g_paramsEditorMain.getParamsData("control", true);
1811
  break;
 
1812
  case "item":
1813
  var arrData = g_paramsEditorItems.getParamsData("control", true);
1814
  break;
637
  var param = arrParams[index];
638
 
639
  switch(param.type){
 
 
 
 
 
640
  case "uc_posts_list":
641
  param["items_param_type"] = "uc_post";
642
  param["items_panel_text"] = "Items as posts mode";
758
  //modify params for js
759
  if(hasItems == true){
760
 
761
+ //put extra js functions - put_items_json
762
+ var textPutItemsJson = "{#use put_items_json(\"clean\") to remove extra data#}";
763
+ textPutItemsJson += "\nvar strJsonItems = {{put_items_json()}};";
764
  textPutItemsJson += "\nvar objItems = JSON.parse(strJsonItems);";
765
+ textPutItemsJson += "\nconsole.log(objItems);";
766
 
767
  var paramPutItemJs = {type:"uc_function", name:"put_items_json()","raw_insert_text":textPutItemsJson};
768
+
769
+ //put extra js functions - put_attributes_json
770
+ var textPutAttributesJson = "{#use put_attributes_json(\"clean\") to remove extra data#}";
771
+ textPutAttributesJson += "\nvar strJsonAttributes = {{put_attributes_json()}};";
772
+ textPutAttributesJson += "\nvar objAttributes = JSON.parse(strJsonAttributes);";
773
+ textPutAttributesJson += "\nconsole.log(objAttributes);";
774
+
775
+ var paramPutAttributesJs = {type:"uc_function", name:"put_attributes_json()","raw_insert_text":textPutAttributesJson};
776
+
777
 
778
  var textGetItems = "{# Generate javascript array from items using twig#}";
779
  textGetItems += "\n{% set itemsForJs = get_items() %}";
789
  "raw_insert_text":textGetItems
790
  };
791
 
792
+ arrParamsForJS.unshift(paramPutAttributesJs);
793
  arrParamsForJS.unshift(paramPutItemJs);
794
+ arrParamsForJS.unshift(paramGetItemJs);
795
+
796
  }
797
 
798
  arrParamsForJS = paramsPanelMainSync_addEndingParamsJS(arrParamsForJS);
1816
  case "main":
1817
  var arrData = g_paramsEditorMain.getParamsData("control", true);
1818
  break;
1819
+ case "items":
1820
  case "item":
1821
  var arrData = g_paramsEditorItems.getParamsData("control", true);
1822
  break;
js/unitecreator_includes.js CHANGED
@@ -166,6 +166,11 @@ function UniteCreatorIncludes(){
166
  if(objCondition)
167
  objHtml.data("condition", objCondition);
168
 
 
 
 
 
 
169
  return(objHtml)
170
  }
171
 
@@ -314,6 +319,13 @@ function UniteCreatorIncludes(){
314
  if(!data.condition && typeof data.condition != "object")
315
  data.condition = null;
316
 
 
 
 
 
 
 
 
317
  return(data);
318
  }
319
 
@@ -380,8 +392,9 @@ function UniteCreatorIncludes(){
380
  * init include list
381
  */
382
  function initIncludeList(objList){
383
- var data = objList.data("init");
384
 
 
 
385
  if(!data || typeof data != "object" || data.length == 0){
386
  addIncludesListItem(objList);
387
  return(false);
@@ -456,6 +469,26 @@ function UniteCreatorIncludes(){
456
 
457
  }
458
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
459
  }
460
 
461
 
@@ -529,12 +562,22 @@ function UniteCreatorIncludes(){
529
  function openIncludeSettingsDialog(){
530
 
531
  var objRow = jQuery(this).parents("li");
 
 
 
 
532
 
533
  var data = getIncludeData(objRow);
534
 
535
  var objDialog = jQuery("#uc_dialog_unclude_settings");
536
  objDialog.data("objRow", objRow);
537
 
 
 
 
 
 
 
538
  var buttonOpts = {};
539
 
540
  buttonOpts[g_uctext.update] = function(){
@@ -542,6 +585,20 @@ function UniteCreatorIncludes(){
542
  var paramValue = jQuery("#uc_dialog_include_values").val();
543
 
544
  updateInputCondition(objRow, paramName, paramValue);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
545
  objDialog.dialog("close");
546
  }
547
 
@@ -559,7 +616,9 @@ function UniteCreatorIncludes(){
559
  minWidth:700,
560
  modal:true,
561
  open:function(){
 
562
  var arrParams = g_parent.getControlParams();
 
563
  dialogSettings_fillParams(arrParams, data);
564
  }
565
  });
166
  if(objCondition)
167
  objHtml.data("condition", objCondition);
168
 
169
+ //update params
170
+ var objParams = g_ucAdmin.getVal(item, "params");
171
+ if(objParams)
172
+ objHtml.data("params",objParams);
173
+
174
  return(objHtml)
175
  }
176
 
319
  if(!data.condition && typeof data.condition != "object")
320
  data.condition = null;
321
 
322
+ //get params
323
+ var objParams = objRow.data("params");
324
+ if(!objParams)
325
+ objParams = null;
326
+
327
+ data.params = objParams;
328
+
329
  return(data);
330
  }
331
 
392
  * init include list
393
  */
394
  function initIncludeList(objList){
 
395
 
396
+ var data = objList.data("init");
397
+
398
  if(!data || typeof data != "object" || data.length == 0){
399
  addIncludesListItem(objList);
400
  return(false);
469
 
470
  }
471
 
472
+ //checkboxes
473
+ var objCheckboxes = objDialog.find("input[type='checkbox']");
474
+
475
+ var objParams = g_ucAdmin.getVal(objData, "params");
476
+ if(!objParams)
477
+ objParams = null;
478
+
479
+ jQuery.each(objCheckboxes,function(index, checkbox){
480
+
481
+ var objCheckbox = jQuery(checkbox);
482
+
483
+ var name = objCheckbox.prop("name");
484
+
485
+ var value = g_ucAdmin.getVal(objParams, name);
486
+ value = g_ucAdmin.strToBool(value);
487
+
488
+ objCheckbox.prop("checked", value);
489
+
490
+ });
491
+
492
  }
493
 
494
 
562
  function openIncludeSettingsDialog(){
563
 
564
  var objRow = jQuery(this).parents("li");
565
+ var objList = objRow.parents("ul");
566
+
567
+ var listType = objList.data("type");
568
+
569
 
570
  var data = getIncludeData(objRow);
571
 
572
  var objDialog = jQuery("#uc_dialog_unclude_settings");
573
  objDialog.data("objRow", objRow);
574
 
575
+ if(listType == "js"){
576
+ objDialog.addClass("uc-include-type-js");
577
+ }else{
578
+ objDialog.removeClass("uc-include-type-js");
579
+ }
580
+
581
  var buttonOpts = {};
582
 
583
  buttonOpts[g_uctext.update] = function(){
585
  var paramValue = jQuery("#uc_dialog_include_values").val();
586
 
587
  updateInputCondition(objRow, paramName, paramValue);
588
+
589
+ var rowParams = {};
590
+ var objCheckboxes = objDialog.find("input[type='checkbox']");
591
+ jQuery.each(objCheckboxes,function(index, checkbox){
592
+ var objCheckbox = jQuery(checkbox);
593
+ var name = objCheckbox.prop("name");
594
+ var isChecked = objCheckbox.is(":checked");
595
+
596
+ if(isChecked == true)
597
+ rowParams[name] = true;
598
+ });
599
+
600
+ objRow.data("params", rowParams);
601
+
602
  objDialog.dialog("close");
603
  }
604
 
616
  minWidth:700,
617
  modal:true,
618
  open:function(){
619
+
620
  var arrParams = g_parent.getControlParams();
621
+
622
  dialogSettings_fillParams(arrParams, data);
623
  }
624
  });
js/unitecreator_params_dialog.js CHANGED
@@ -581,8 +581,8 @@ function UniteCreatorParamsDialog(){
581
  html += "<td><input type=\"text\" value=\""+valueName+"\" class='uc-dropdown-item-name'></td>";
582
  html += "<td><input type=\"text\" value=\""+valueValue+"\" class='uc-dropdown-item-value'></td>";
583
  html += "<td>";
584
- html += "<div class='uc-dropdown-icon uc-dropdown-item-delete' title=\"Add Item\"></div>";
585
- html += "<div class='uc-dropdown-icon uc-dropdown-item-add' title=\"Delete Item\"></div>";
586
  html += "<div class='uc-dropdown-icon uc-dropdown-item-default"+selectedClass+"' title=\"Default Item\"></div>";
587
  html += "</td>";
588
  html += "</tr>";
@@ -614,10 +614,16 @@ function UniteCreatorParamsDialog(){
614
  */
615
  function getDropdownParamData(objTable){
616
 
 
 
617
  var rows = objTable.find(" tbody tr");
618
 
619
  var objOptions = {};
620
- var defaultOption = "";
 
 
 
 
621
 
622
  jQuery.each(rows, function(index, row){
623
  var objRow = jQuery(row);
@@ -632,12 +638,20 @@ function UniteCreatorParamsDialog(){
632
  if(optionName == "")
633
  return(true);
634
 
635
- if(defaultOption == "")
636
- defaultOption = optionValue;
637
-
638
- if(isDefault == true)
639
- defaultOption = optionValue;
640
 
 
 
 
 
 
 
 
 
 
641
  objOptions[optionName] = optionValue;
642
 
643
  });
@@ -670,7 +684,7 @@ function UniteCreatorParamsDialog(){
670
  * fill dropdown param options
671
  */
672
  function fillDropdownParamOptions(objTable, options, defaultValue){
673
-
674
  if(objTable.length == 0)
675
  throw new Error("dropdown parameter not found");
676
 
@@ -681,7 +695,13 @@ function UniteCreatorParamsDialog(){
681
  else{
682
 
683
  jQuery.each(options, function(optionName, optionValue){
684
- var isDefault = (optionValue == defaultValue);
 
 
 
 
 
 
685
  dropdownParamAddRow(objTable, null, {name: optionName, value: optionValue , isDefault:isDefault});
686
  });
687
  }
@@ -786,15 +806,26 @@ function UniteCreatorParamsDialog(){
786
 
787
  //default icon click
788
  objTableDropdown.on("click", ".uc-dropdown-item-default", function(){
789
-
790
  var objIcon = jQuery(this);
 
 
 
 
 
 
 
 
 
 
791
  if(objIcon.hasClass("uc-selected"))
792
  return(false);
793
 
794
- objTableDropdown.find(".uc-dropdown-item-default").removeClass("uc-selected");
795
 
796
  objIcon.addClass("uc-selected");
797
 
 
798
  });
799
 
800
 
@@ -821,12 +852,15 @@ function UniteCreatorParamsDialog(){
821
 
822
  //get
823
  objDropdownParam.onGetInputData = function(objInput){
 
824
  var objParamData = getDropdownParamData(objInput);
 
825
  return(objParamData);
826
  }
827
 
828
  //fill
829
  objDropdownParam.onFillInputData = function(objTable, objData){
 
830
  if(objData.options)
831
  fillDropdownParamOptions(objTable, objData.options, objData.default_value);
832
  }
@@ -1366,7 +1400,7 @@ function UniteCreatorParamsDialog(){
1366
 
1367
  //get param
1368
  var arrParams = g_objWrapper.data("condition_params");
1369
-
1370
  var objParam = g_ucAdmin.getVal(arrParams, paramName);
1371
 
1372
  //set or remove not selected mode
@@ -1378,8 +1412,24 @@ function UniteCreatorParamsDialog(){
1378
  objRow.removeClass("uc-no-attribute-selected");
1379
 
1380
  //fill values select
1381
- var options = g_ucAdmin.getVal(objParam, "options");
1382
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1383
  var selectName = objSelectValues.prop("name");
1384
 
1385
  var currentValue = null;
@@ -1411,7 +1461,7 @@ function UniteCreatorParamsDialog(){
1411
  function fillConditionSelectRow(objSelect, arrParams){
1412
 
1413
  var selectName = objSelect.prop("name");
1414
-
1415
  var currentValue = g_ucAdmin.getVal(g_objData, selectName);
1416
  if(!currentValue)
1417
  currentValue = "";
@@ -1419,7 +1469,8 @@ function UniteCreatorParamsDialog(){
1419
  objSelect.html("");
1420
 
1421
  g_ucAdmin.addOptionToSelect(objSelect, "", "[Select Attribute]");
1422
-
 
1423
  jQuery.each(arrParams, function(index, param){
1424
 
1425
  var name = g_ucAdmin.getVal(param, "name");
@@ -1429,10 +1480,16 @@ function UniteCreatorParamsDialog(){
1429
  return(true);
1430
 
1431
  g_ucAdmin.addOptionToSelect(objSelect, name, title);
 
 
 
1432
  });
1433
 
 
 
 
1434
  setTimeout(function(){
1435
-
1436
  objSelect.data("init_value",true);
1437
  objSelect.val(currentValue).trigger("change");
1438
 
@@ -1460,6 +1517,7 @@ function UniteCreatorParamsDialog(){
1460
 
1461
  fillConditionSelectRow(objSelect, arrParams);
1462
  });
 
1463
  }
1464
 
1465
  /**
@@ -1468,7 +1526,8 @@ function UniteCreatorParamsDialog(){
1468
  function handleConditionsOnOpen(){
1469
 
1470
  var objConditionsWrapper = g_objWrapper.find(".uc-dialog-conditions-content");
1471
-
 
1472
  var arrParams = g_objParent.getControlParams(g_currentOpenedType);
1473
  var hasParams = (jQuery.isEmptyObject(arrParams) == false);
1474
 
@@ -1705,7 +1764,6 @@ function UniteCreatorParamsDialog(){
1705
  if(dialogID != "uc_dialog_param_main")
1706
  return(false);
1707
 
1708
- //trace(g_objWrapper);
1709
  var objInputs = jQuery("#uc_tabparam_main_uc_editor textarea[name='default_value']").add(
1710
  "#uc_tabparam_main_uc_textarea textarea[name='default_value']").add(
1711
  "#uc_tabparam_main_uc_content textarea[name='default_value']").add(
@@ -1839,6 +1897,30 @@ function UniteCreatorParamsDialog(){
1839
  control_operateControlled(controlledID, toShow, objContent);
1840
  });
1841
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1842
  break;
1843
  default:
1844
  throw new Error("Wrong control input type: " + type);
581
  html += "<td><input type=\"text\" value=\""+valueName+"\" class='uc-dropdown-item-name'></td>";
582
  html += "<td><input type=\"text\" value=\""+valueValue+"\" class='uc-dropdown-item-value'></td>";
583
  html += "<td>";
584
+ html += "<div class='uc-dropdown-icon uc-dropdown-item-delete' title=\"Delete Item\"></div>";
585
+ html += "<div class='uc-dropdown-icon uc-dropdown-item-add' title=\"Add Item\"></div>";
586
  html += "<div class='uc-dropdown-icon uc-dropdown-item-default"+selectedClass+"' title=\"Default Item\"></div>";
587
  html += "</td>";
588
  html += "</tr>";
614
  */
615
  function getDropdownParamData(objTable){
616
 
617
+ var isMultiple = objTable.data("ismultiple");
618
+
619
  var rows = objTable.find(" tbody tr");
620
 
621
  var objOptions = {};
622
+ if(isMultiple === true)
623
+ var defaultOption = [];
624
+ else
625
+ var defaultOption = "";
626
+
627
 
628
  jQuery.each(rows, function(index, row){
629
  var objRow = jQuery(row);
638
  if(optionName == "")
639
  return(true);
640
 
641
+ //set default option
642
+ if(isMultiple !== true){
643
+ if(defaultOption == "")
644
+ defaultOption = optionValue;
 
645
 
646
+ if(isDefault == true)
647
+ defaultOption = optionValue;
648
+ }else{ //multiple
649
+
650
+ if(isDefault == true)
651
+ defaultOption.push(optionValue);
652
+
653
+ }
654
+
655
  objOptions[optionName] = optionValue;
656
 
657
  });
684
  * fill dropdown param options
685
  */
686
  function fillDropdownParamOptions(objTable, options, defaultValue){
687
+
688
  if(objTable.length == 0)
689
  throw new Error("dropdown parameter not found");
690
 
695
  else{
696
 
697
  jQuery.each(options, function(optionName, optionValue){
698
+
699
+ if(jQuery.isArray(defaultValue)){
700
+ var isDefault = (jQuery.inArray(optionValue, defaultValue) !== -1);
701
+ }else{
702
+ var isDefault = (optionValue == defaultValue);
703
+ }
704
+
705
  dropdownParamAddRow(objTable, null, {name: optionName, value: optionValue , isDefault:isDefault});
706
  });
707
  }
806
 
807
  //default icon click
808
  objTableDropdown.on("click", ".uc-dropdown-item-default", function(){
809
+
810
  var objIcon = jQuery(this);
811
+ var objParentTable = objIcon.parents(".uc-table-dropdown-items");
812
+
813
+ var isMultiple = objParentTable.data("ismultiple");
814
+
815
+ if(isMultiple === true){ //multiple trigger - just toggle the class
816
+
817
+ objIcon.toggleClass("uc-selected");
818
+ return(true);
819
+ }
820
+
821
  if(objIcon.hasClass("uc-selected"))
822
  return(false);
823
 
824
+ objParentTable.find(".uc-dropdown-item-default").removeClass("uc-selected");
825
 
826
  objIcon.addClass("uc-selected");
827
 
828
+
829
  });
830
 
831
 
852
 
853
  //get
854
  objDropdownParam.onGetInputData = function(objInput){
855
+
856
  var objParamData = getDropdownParamData(objInput);
857
+
858
  return(objParamData);
859
  }
860
 
861
  //fill
862
  objDropdownParam.onFillInputData = function(objTable, objData){
863
+
864
  if(objData.options)
865
  fillDropdownParamOptions(objTable, objData.options, objData.default_value);
866
  }
1400
 
1401
  //get param
1402
  var arrParams = g_objWrapper.data("condition_params");
1403
+
1404
  var objParam = g_ucAdmin.getVal(arrParams, paramName);
1405
 
1406
  //set or remove not selected mode
1412
  objRow.removeClass("uc-no-attribute-selected");
1413
 
1414
  //fill values select
1415
+ var paramType = g_ucAdmin.getVal(objParam, "type");
1416
 
1417
+ if(paramType == "uc_radioboolean"){
1418
+
1419
+ var trueName = g_ucAdmin.getVal(objParam, "true_name");
1420
+ var trueValue = g_ucAdmin.getVal(objParam, "true_value");
1421
+
1422
+ var falseName = g_ucAdmin.getVal(objParam, "false_name");
1423
+ var falseValue = g_ucAdmin.getVal(objParam, "false_value");
1424
+
1425
+ var options = {};
1426
+ options[trueName] = trueValue;
1427
+ options[falseName] = falseValue;
1428
+
1429
+ }else{ //select and dropdown
1430
+ var options = g_ucAdmin.getVal(objParam, "options");
1431
+ }
1432
+
1433
  var selectName = objSelectValues.prop("name");
1434
 
1435
  var currentValue = null;
1461
  function fillConditionSelectRow(objSelect, arrParams){
1462
 
1463
  var selectName = objSelect.prop("name");
1464
+
1465
  var currentValue = g_ucAdmin.getVal(g_objData, selectName);
1466
  if(!currentValue)
1467
  currentValue = "";
1469
  objSelect.html("");
1470
 
1471
  g_ucAdmin.addOptionToSelect(objSelect, "", "[Select Attribute]");
1472
+
1473
+ var isFound = false;
1474
  jQuery.each(arrParams, function(index, param){
1475
 
1476
  var name = g_ucAdmin.getVal(param, "name");
1480
  return(true);
1481
 
1482
  g_ucAdmin.addOptionToSelect(objSelect, name, title);
1483
+
1484
+ if(currentValue == name)
1485
+ isFound = true;
1486
  });
1487
 
1488
+ if(isFound == false)
1489
+ currentValue = "";
1490
+
1491
  setTimeout(function(){
1492
+
1493
  objSelect.data("init_value",true);
1494
  objSelect.val(currentValue).trigger("change");
1495
 
1517
 
1518
  fillConditionSelectRow(objSelect, arrParams);
1519
  });
1520
+
1521
  }
1522
 
1523
  /**
1526
  function handleConditionsOnOpen(){
1527
 
1528
  var objConditionsWrapper = g_objWrapper.find(".uc-dialog-conditions-content");
1529
+ var objSelects = g_objWrapper.find(".uc-dialog-condition-attribute");
1530
+
1531
  var arrParams = g_objParent.getControlParams(g_currentOpenedType);
1532
  var hasParams = (jQuery.isEmptyObject(arrParams) == false);
1533
 
1764
  if(dialogID != "uc_dialog_param_main")
1765
  return(false);
1766
 
 
1767
  var objInputs = jQuery("#uc_tabparam_main_uc_editor textarea[name='default_value']").add(
1768
  "#uc_tabparam_main_uc_textarea textarea[name='default_value']").add(
1769
  "#uc_tabparam_main_uc_content textarea[name='default_value']").add(
1897
  control_operateControlled(controlledID, toShow, objContent);
1898
  });
1899
 
1900
+ break;
1901
+ case "select":
1902
+
1903
+ var value = objInput.val();
1904
+ var controlledSelector = objInput.data("controlled-selector");
1905
+
1906
+ var objChildren = objContent.find(controlledSelector);
1907
+
1908
+ jQuery.each(objChildren, function(index, child){
1909
+
1910
+ var objChild = jQuery(child);
1911
+ var childValue = objChild.data("control");
1912
+
1913
+ trace(objChild);
1914
+ trace(childValue);
1915
+ trace(value);
1916
+
1917
+ if(childValue == value)
1918
+ objChild.show();
1919
+ else
1920
+ objChild.hide();
1921
+ });
1922
+
1923
+
1924
  break;
1925
  default:
1926
  throw new Error("Wrong control input type: " + type);
js/unitecreator_params_panel.js CHANGED
@@ -194,7 +194,8 @@ function UniteCreatorParamsPanel(){
194
  //replace the raw insert text
195
  var rawInsertText = g_ucAdmin.getVal(objParamInsert, "raw_insert_text");
196
  if(rawInsertText){
197
- rawInsertText = rawInsertText.replace("[parent_name]", parentName);
 
198
 
199
  objParamInsert["raw_insert_text"] = rawInsertText;
200
  }
194
  //replace the raw insert text
195
  var rawInsertText = g_ucAdmin.getVal(objParamInsert, "raw_insert_text");
196
  if(rawInsertText){
197
+
198
+ rawInsertText = g_ucAdmin.replaceAll(rawInsertText, "[parent_name]", parentName);
199
 
200
  objParamInsert["raw_insert_text"] = rawInsertText;
201
  }
provider/acf_integrate.class.php CHANGED
@@ -438,8 +438,11 @@ class UniteCreatorAcfIntegrate{
438
 
439
  break;
440
  default:
441
-
442
- $arrValues[$key] = "";
 
 
 
443
 
444
  //dmp("assoc");dmp($data); exit();
445
 
@@ -517,7 +520,7 @@ class UniteCreatorAcfIntegrate{
517
  $arrOutput = array();
518
 
519
  foreach($arrData as $key => $item){
520
-
521
  //simple value
522
  if(is_array($item) == false){
523
 
@@ -530,15 +533,17 @@ class UniteCreatorAcfIntegrate{
530
  $arrOutput[$key] = $item;
531
  continue;
532
  }
 
 
533
 
534
  $firstItem = UniteFunctionsUC::getArrFirstValue($item);
535
 
536
- if(is_array($firstItem) == false){
537
  $arrOutput[$key] = $item;
538
  continue;
539
  }
540
 
541
- //what's rest is assoc array, wich is clone :)
542
 
543
  //add them to output
544
  foreach($item as $itemKey => $subItem){
@@ -561,15 +566,16 @@ class UniteCreatorAcfIntegrate{
561
 
562
  switch($objName){
563
  case "post":
 
564
  $arrData = get_fields($postID);
565
-
566
  $arrData = $this->modifyFieldsData($arrData);
567
 
568
  break;
569
  case "term":
570
 
571
  $termID = "term_".$postID;
572
-
573
  $arrData = get_fields($termID);
574
 
575
  break;
@@ -634,6 +640,7 @@ class UniteCreatorAcfIntegrate{
634
  $arrOutput[$key] = $type;
635
  }
636
 
 
637
  /*
638
  UniteFunctionsUC::showTrace();
639
  dmp($arrOutput);
438
 
439
  break;
440
  default:
441
+
442
+ if(is_array($data))
443
+ $arrValues[$key] = $data;
444
+ else
445
+ $arrValues[$key] = ""; //another object
446
 
447
  //dmp("assoc");dmp($data); exit();
448
 
520
  $arrOutput = array();
521
 
522
  foreach($arrData as $key => $item){
523
+
524
  //simple value
525
  if(is_array($item) == false){
526
 
533
  $arrOutput[$key] = $item;
534
  continue;
535
  }
536
+
537
+ $isAssocArray = UniteFunctionsUC::isAssocArray($item);
538
 
539
  $firstItem = UniteFunctionsUC::getArrFirstValue($item);
540
 
541
+ if(is_array($firstItem) == false && $isAssocArray == false){
542
  $arrOutput[$key] = $item;
543
  continue;
544
  }
545
 
546
+ //what's rest is assoc array, wich is clone or group:)
547
 
548
  //add them to output
549
  foreach($item as $itemKey => $subItem){
566
 
567
  switch($objName){
568
  case "post":
569
+
570
  $arrData = get_fields($postID);
571
+
572
  $arrData = $this->modifyFieldsData($arrData);
573
 
574
  break;
575
  case "term":
576
 
577
  $termID = "term_".$postID;
578
+
579
  $arrData = get_fields($termID);
580
 
581
  break;
640
  $arrOutput[$key] = $type;
641
  }
642
 
643
+
644
  /*
645
  UniteFunctionsUC::showTrace();
646
  dmp($arrOutput);
provider/core/plugins/unlimited_elements/addontype_cpt.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
provider/core/plugins/unlimited_elements/addontype_elementor.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
provider/core/plugins/unlimited_elements/addontype_elementor_template.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
provider/core/plugins/unlimited_elements/copy_paste.class.php ADDED
@@ -0,0 +1,216 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
+ * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
+ * */
8
+ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
9
+
10
+ class UniteCreatorElementorCopyPaste{
11
+
12
+
13
+ /**
14
+ * add copy related scripts
15
+ */
16
+ public function addCopyScripts(){
17
+
18
+ UniteProviderFunctionsUC::addjQueryInclude();
19
+
20
+ HelperUC::addScriptAbsoluteUrl(HelperProviderCoreUC_EL::$urlCore."elementor/assets/uc_front_section_copy.js", "unlimited_elments_copy_section");
21
+ HelperUC::addStyleAbsoluteUrl(HelperProviderCoreUC_EL::$urlCore."elementor/assets/uc_front_section_copy.css", "unlimited_elments_copy_section_css");
22
+ }
23
+
24
+ /**
25
+ * add paste related scripts
26
+ */
27
+ public function addPasteScripts(){
28
+
29
+ UniteProviderFunctionsUC::addjQueryInclude();
30
+
31
+ HelperUC::addScriptAbsoluteUrl(HelperProviderCoreUC_EL::$urlCore."elementor/assets/uc_front_section_paste.js", "unlimited_elments_paste_section");
32
+ HelperUC::addStyleAbsoluteUrl(HelperProviderCoreUC_EL::$urlCore."elementor/assets/uc_front_section_paste.css", "unlimited_elments_paste_section_css");
33
+ }
34
+
35
+
36
+ /**
37
+ * print footer html
38
+ */
39
+ public function onPrintFooterHtml_paste(){
40
+
41
+ $config = array();
42
+ $config["ajax_url"] = HelperUC::URLtoFull(GlobalsUC::$url_ajax_front);;
43
+
44
+ $jsonConfig = UniteFunctionsUC::jsonEncodeForClientSide($config);
45
+
46
+ ?>
47
+
48
+ <script>
49
+ var g_ucPasteSectionConfig = <?php echo $jsonConfig?>;
50
+ </script>
51
+
52
+ <?php
53
+ }
54
+
55
+ /**
56
+ * print footer html
57
+ */
58
+ public function onPrintFooterHtml_copy(){
59
+
60
+ $config = array();
61
+ $config["ajax_url"] = HelperUC::URLtoFull(GlobalsUC::$url_ajax_front);;
62
+
63
+ $jsonConfig = UniteFunctionsUC::jsonEncodeForClientSide($config);
64
+
65
+ ?>
66
+
67
+ <script>
68
+ var g_ucCopySectionConfig = <?php echo $jsonConfig?>;
69
+ </script>
70
+
71
+ <?php
72
+ }
73
+
74
+
75
+ /**
76
+ * get remote section zip from params
77
+ */
78
+ private function pasteSection_getRemoteZip($params){
79
+
80
+ if(is_string($params) == false)
81
+ return(false);
82
+
83
+ if(empty($params))
84
+ return(false);
85
+
86
+ if(strpos($params, "---uc-section-copy") !== 0)
87
+ return(false);
88
+
89
+ $arrParams = explode("~", $params);
90
+
91
+ if(count($arrParams) != 4)
92
+ return(false);
93
+
94
+ $postID = $arrParams[1];
95
+ $sectionID = $arrParams[2];
96
+ $urlWebsite = $arrParams[3];
97
+
98
+ $urlAjax = $urlWebsite."wp-admin/admin-ajax.php";
99
+
100
+ $data = array();
101
+ $data["action"] = "unlimitedelements_ajax_action";
102
+ $data["client_action"] = "get_section_zip";
103
+ $data["postid"] = $postID;
104
+ $data["sectionid"] = $sectionID;
105
+
106
+ try{
107
+
108
+ $contentZIP = UniteFunctionsUC::getUrlContents($urlAjax, $data);
109
+
110
+ }catch(Exception $e){
111
+
112
+ UniteFunctionsUC::throwError("Failed to paste section from remote site");
113
+ }
114
+
115
+ return($contentZIP);
116
+ }
117
+
118
+
119
+ /**
120
+ * on paste section ajax action
121
+ */
122
+ public function pasteSectionAjaxAction($data){
123
+
124
+ if(GlobalsUC::$inDev == false)
125
+ return(false);
126
+
127
+ $params = UniteFunctionsUC::getVal($data, "params");
128
+ $targetPostID = UniteFunctionsUC::getVal($data, "topostid");
129
+
130
+ if(empty($targetPostID))
131
+ UniteFunctionsUC::throwError("no target page selected");
132
+
133
+ $contentZip = $this->pasteSection_getRemoteZip($params);
134
+
135
+ if(empty($contentZip) || strlen($contentZip) == 0)
136
+ UniteFunctionsUC::throwError("Failed to paste section");
137
+
138
+ $objExporter = new UniteCreatorLayoutsExporterElementor();
139
+
140
+ $objExporter->importElementorZipContentSection($contentZip, $targetPostID);
141
+
142
+ return(true);
143
+ }
144
+
145
+
146
+ /**
147
+ * get section zip from data
148
+ */
149
+ public function getSectionZipFromData($data){
150
+
151
+ if(GlobalsUC::$inDev == false)
152
+ return(null);
153
+ try{
154
+
155
+ $postID = UniteFunctionsUC::getVal($data, "postid");
156
+ $sectionID = UniteFunctionsUC::getVal($data, "sectionid");
157
+
158
+ if(empty($postID))
159
+ return(null);
160
+
161
+ if(empty($sectionID))
162
+ return(null);
163
+
164
+ $objExporter = new UniteCreatorLayoutsExporterElementor();
165
+ $arrData = $objExporter->exportElementorPost($postID, null, true,array("sectionid"=>$sectionID));
166
+ if(empty($arrData))
167
+ return(null);
168
+
169
+ $filepath = UniteFunctionsUC::getVal($arrData, "filepath");
170
+
171
+ $content = file_get_contents($filepath);
172
+
173
+ echo $content;
174
+ exit();
175
+
176
+ }catch(Exception $e){
177
+
178
+ dmp($e);
179
+
180
+ return(null);
181
+ }
182
+
183
+ }
184
+
185
+ /**
186
+ * init copy
187
+ */
188
+ private function initCopy(){
189
+
190
+ add_action('wp_print_footer_scripts', array($this, 'onPrintFooterHtml_copy'));
191
+
192
+ }
193
+
194
+ /**
195
+ * init paste
196
+ */
197
+ private function initPaste(){
198
+
199
+ add_action('wp_print_footer_scripts', array($this, 'onPrintFooterHtml_paste'));
200
+
201
+ }
202
+
203
+ /**
204
+ * init copy and paste, front
205
+ */
206
+ public function init(){
207
+
208
+ if(UniteCreatorElementorIntegrate::$enableCopySectionButton)
209
+ $this->initCopy();
210
+
211
+ if(UniteCreatorElementorIntegrate::$enablePasteSectionButton)
212
+ $this->initPaste();
213
+
214
+ }
215
+
216
+ }
provider/core/plugins/unlimited_elements/dialog_param_elementor.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -1074,6 +1074,8 @@ class UniteCreatorDialogParamElementor extends UniteCreatorDialogParam{
1074
  <?php
1075
  }
1076
 
 
 
1077
  /**
1078
  * put param content
1079
  */
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1074
  <?php
1075
  }
1076
 
1077
+
1078
+
1079
  /**
1080
  * put param content
1081
  */
provider/core/plugins/unlimited_elements/elementor/assets/uc_editor_admin.js CHANGED
@@ -178,9 +178,7 @@ function UniteCreatorElementorEditorAdmin(){
178
 
179
  var isCurrentTaxRelevant = objTax.hasOwnProperty(selectedTax);
180
  if(isCurrentTaxRelevant == false && firstVisibleOption){
181
-
182
- trace("trigger 1");
183
-
184
  selectPostTaxonomy.val(firstVisibleOption).trigger("change");
185
  }
186
 
@@ -576,7 +574,6 @@ function UniteCreatorElementorEditorAdmin(){
576
  arrInitIDs.push(item.id);
577
  }
578
 
579
- trace("trigger 3");
580
  objSelect.val(arrInitIDs).trigger("change");
581
 
582
  }
@@ -585,7 +582,7 @@ function UniteCreatorElementorEditorAdmin(){
585
  * init post id's selector
586
  */
587
  function initPostIDsSelect(objSelect){
588
-
589
  var widgetSettings = getLastOpenedWidgetSettings();
590
 
591
  var settingName = objSelect.data("setting");
@@ -594,7 +591,7 @@ function UniteCreatorElementorEditorAdmin(){
594
 
595
  if(isSingle === true)
596
  objSelect.removeAttr("multiple");
597
-
598
  var initValue = getVal(widgetSettings, settingName);
599
 
600
  //treat single number
178
 
179
  var isCurrentTaxRelevant = objTax.hasOwnProperty(selectedTax);
180
  if(isCurrentTaxRelevant == false && firstVisibleOption){
181
+
 
 
182
  selectPostTaxonomy.val(firstVisibleOption).trigger("change");
183
  }
184
 
574
  arrInitIDs.push(item.id);
575
  }
576
 
 
577
  objSelect.val(arrInitIDs).trigger("change");
578
 
579
  }
582
  * init post id's selector
583
  */
584
  function initPostIDsSelect(objSelect){
585
+
586
  var widgetSettings = getLastOpenedWidgetSettings();
587
 
588
  var settingName = objSelect.data("setting");
591
 
592
  if(isSingle === true)
593
  objSelect.removeAttr("multiple");
594
+
595
  var initValue = getVal(widgetSettings, settingName);
596
 
597
  //treat single number
provider/core/plugins/unlimited_elements/elementor/assets/uc_front_section_copy.css ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ .uc-section-copy-wrapper{
3
+ position:absolute;
4
+ top:0px;
5
+ left:0px;
6
+ display:none;
7
+ overflow:hidden;
8
+ }
9
+
10
+ .uc-section-copy-button{
11
+ padding:10px 15px;
12
+ border:1px solid black;
13
+ background-color:red;
14
+ display:inline-block;
15
+ color:white;
16
+ }
17
+
18
+ .uc-section-copy-input{
19
+ width:1px !important;
20
+ height:1px !important;
21
+ position:absolute;
22
+ top:-1px;
23
+ left:-1px;
24
+ display:block;
25
+ padding:0px !important;
26
+ margin:0px !important;
27
+ border:0px !important;
28
+ }
29
+
30
+
31
+ .elementor-top-section:hover .uc-section-copy-wrapper{
32
+ display:block;
33
+ }
provider/core/plugins/unlimited_elements/elementor/assets/uc_front_section_copy.js ADDED
@@ -0,0 +1,142 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ function UnlimitedElementsCopySection(){
2
+
3
+ var g_objSections, g_options;
4
+
5
+
6
+ /**
7
+ * get button html for put into section
8
+ */
9
+ function getHTMLButton(){
10
+
11
+ var html = "";
12
+
13
+ html += "<div class='uc-section-copy-wrapper'>";
14
+ html += " <a href='javascript:void(0)' class='uc-section-copy-button'>Copy Section</a>";
15
+ html += " <input type='text' class='uc-section-copy-input'>";
16
+ html += "</div>";
17
+
18
+ return(html);
19
+ }
20
+
21
+
22
+ /**
23
+ * put section buttons
24
+ */
25
+ function putSectionButtons(){
26
+
27
+ if(g_objSections.length == 0)
28
+ return(false);
29
+
30
+ var urlAjax = g_options.ajax_url;
31
+
32
+ jQuery.each(g_objSections, function(index, section){
33
+ var objSection = jQuery(section);
34
+ var sectionID = objSection.data("id");
35
+
36
+ var html = getHTMLButton();
37
+
38
+ objSection.append(html);
39
+
40
+ var objParent = objSection.parents(".elementor");
41
+ var parentID = objParent.data("elementor-id");
42
+
43
+ var objInput = objSection.find(".uc-section-copy-input");
44
+
45
+ var value = "---uc-section-copy~"+parentID+"~"+sectionID+"~"+urlAjax;
46
+
47
+ value = "uesection--"+encodeContent(value);
48
+
49
+ objInput.val(value);
50
+
51
+ });
52
+
53
+ }
54
+
55
+ /**
56
+ * copy section
57
+ */
58
+ function onButtonCopyClick(){
59
+
60
+ var objButton = jQuery(this);
61
+ var objWrapper = objButton.parent();
62
+ var objInput = objWrapper.find(".uc-section-copy-input");
63
+
64
+ var input = objInput[0];
65
+
66
+ input.select();
67
+ input.setSelectionRange(0, 99999);
68
+ document.execCommand("copy");
69
+
70
+ objButton.html("Section Copied!!!");
71
+ setTimeout(function(){
72
+ objButton.html("Copy Section");
73
+ },500);
74
+ }
75
+
76
+ /**
77
+ * raw url encode
78
+ */
79
+ function rawurlencode(str){str=(str+'').toString();return encodeURIComponent(str).replace(/!/g,'%21').replace(/'/g,'%27').replace(/\(/g,'%28').replace(/\)/g,'%29').replace(/\*/g,'%2A');}
80
+
81
+
82
+ /**
83
+ * utf-8 encode
84
+ */
85
+ function utf8_encode(argString){
86
+ if(argString===null||typeof argString==="undefined"){return"";}
87
+ var string=(argString+'');var utftext="",start,end,stringl=0;start=end=0;stringl=string.length;for(var n=0;n<stringl;n++){var c1=string.charCodeAt(n);var enc=null;if(c1<128){end++;}else if(c1>127&&c1<2048){enc=String.fromCharCode((c1>>6)|192)+String.fromCharCode((c1&63)|128);}else{enc=String.fromCharCode((c1>>12)|224)+String.fromCharCode(((c1>>6)&63)|128)+String.fromCharCode((c1&63)|128);}
88
+ if(enc!==null){if(end>start){utftext+=string.slice(start,end);}
89
+ utftext+=enc;start=end=n+1;}}
90
+ if(end>start){utftext+=string.slice(start,stringl);}
91
+ return utftext;}
92
+
93
+
94
+ /**
95
+ * base 64 encode
96
+ */
97
+ function base64_encode(data){
98
+ var b64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var o1,o2,o3,h1,h2,h3,h4,bits,i=0,ac=0,enc="",tmp_arr=[];if(!data){return data;}
99
+ data=utf8_encode(data+'');do{o1=data.charCodeAt(i++);o2=data.charCodeAt(i++);o3=data.charCodeAt(i++);bits=o1<<16|o2<<8|o3;h1=bits>>18&0x3f;h2=bits>>12&0x3f;h3=bits>>6&0x3f;h4=bits&0x3f;tmp_arr[ac++]=b64.charAt(h1)+b64.charAt(h2)+b64.charAt(h3)+b64.charAt(h4);}while(i<data.length);enc=tmp_arr.join('');var r=data.length%3;return(r?enc.slice(0,r-3):enc)+'==='.slice(r||3);
100
+ }
101
+
102
+
103
+ /**
104
+ * encode some content
105
+ */
106
+ function encodeContent(value){
107
+ return base64_encode(rawurlencode(value));
108
+ };
109
+
110
+
111
+ /**
112
+ * init copy section
113
+ */
114
+ this.init = function(){
115
+
116
+ if(typeof g_ucCopySectionConfig == "undefined"){
117
+ console.log("copy section not inited");
118
+ return(false);
119
+ }
120
+
121
+ g_options = JSON.parse(g_ucCopySectionConfig);
122
+
123
+ g_objSections = jQuery(".elementor-top-section");
124
+ if(g_objSections.length == 0)
125
+ return(false);
126
+
127
+ putSectionButtons();
128
+
129
+ //init events
130
+ g_objSections.on("click",".uc-section-copy-button", onButtonCopyClick);
131
+
132
+ }
133
+
134
+ }
135
+
136
+ jQuery(document).ready(function(){
137
+
138
+ var objCopySection = new UnlimitedElementsCopySection();
139
+ objCopySection.init();
140
+
141
+ });
142
+
provider/core/plugins/unlimited_elements/elementor/assets/uc_front_section_paste.css ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .uc-section-paste-popup{
2
+
3
+ position:fixed;
4
+ bottom:0px;
5
+ right:0px;
6
+ padding:10px;
7
+ background-color:yellow;
8
+ border:1px solid black;
9
+ }
10
+
11
+ .uc-section-paste-button{
12
+ margin:10px;
13
+ padding:10px;
14
+ background-color:green;
15
+ color:white;
16
+ display:inline-block;
17
+ }
18
+ .uc-section-paste-button:hover{
19
+ color:white;
20
+ background-color:black;
21
+ }
provider/core/plugins/unlimited_elements/elementor/assets/uc_front_section_paste.js ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ function UnlimitedElementsPasteSection(){
2
+
3
+ var g_options = {};
4
+ var g_objPupup, g_objButton;
5
+
6
+
7
+ /**
8
+ * put paste html
9
+ */
10
+ function putPasteHtml(){
11
+
12
+ var html = "";
13
+ html += "<div id='uc_paste_section_popup' class='uc-section-paste-popup'>";
14
+ html += " <input type='text' class='uc-section-paste-input'>";
15
+ html += " <a href='javascript:void(0)' class='uc-section-paste-button'>Paste Section</a>";
16
+ html += "</div>";
17
+
18
+ jQuery("body").append(html);
19
+ }
20
+
21
+ /**
22
+ * init events
23
+ */
24
+ function initEvents(){
25
+
26
+ trace("init events");
27
+ }
28
+
29
+ /**
30
+ * paste section init
31
+ */
32
+ this.init = function(){
33
+
34
+ if(typeof g_ucPasteSectionConfig == "undefined"){
35
+ console.log("paste section error - no config found");
36
+ return(false);
37
+ }
38
+
39
+ g_options = JSON.parse(g_ucPasteSectionConfig);
40
+
41
+ putPasteHtml();
42
+
43
+ g_objPopup = jQuery("#uc_paste_section_popup");
44
+
45
+ if(g_objPopup.length == 0){
46
+ console.log("paste section not created well");
47
+ return(false);
48
+ }
49
+
50
+ g_objButton = g_objPopup.find(".uc-section-paste-button");
51
+
52
+
53
+ initEvents();
54
+ }
55
+
56
+ }
57
+
58
+
59
+ jQuery(document).ready(function(){
60
+
61
+ var objPasteSection = new UnlimitedElementsPasteSection();
62
+ objPasteSection.init();
63
+
64
+ });
65
+
provider/core/plugins/unlimited_elements/elementor/elementor_dynamic_visibility.class.php ADDED
@@ -0,0 +1,425 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
4
+
5
+ class UniteCreatorDynamicVisibility{
6
+
7
+ const PREFIX = "uc_dynamic_visibility_";
8
+ private $arrSettings;
9
+ private $arrHiddenIDs = array();
10
+ private $showDebug = false;
11
+ private $arrDebug;
12
+
13
+
14
+ /**
15
+ * get setting by key
16
+ */
17
+ private function getSetting($key){
18
+
19
+ $value = UniteFunctionsUC::getVal($this->arrSettings, self::PREFIX.$key);
20
+
21
+ return($value);
22
+ }
23
+
24
+ /**
25
+ * add debug string
26
+ */
27
+ private function addDebug($strDebug, $strDebug2 = null){
28
+
29
+ $this->arrDebug[] = $strDebug;
30
+
31
+ if(!empty($strDebug))
32
+ $this->arrDebug[] = $strDebug2;
33
+ }
34
+
35
+
36
+ private function addDebugOptions($arrOptions){
37
+
38
+ $this->arrDebug[] = array(
39
+ "debug_type"=>"options",
40
+ "options"=>$arrOptions
41
+ );
42
+
43
+ return(false);
44
+ }
45
+
46
+ /**
47
+ * print debug
48
+ */
49
+ private function printDebug($element){
50
+
51
+ //return(false);
52
+
53
+ dmp($this->arrDebug);
54
+
55
+ }
56
+
57
+
58
+ /**
59
+ * is hide by archive term ids
60
+ */
61
+ private function isShowElement_archiveTermIDs($condition){
62
+
63
+ $termIDs = UniteFunctionsUC::getVal($condition, "term_ids");
64
+
65
+ $isIncludeChildren = UniteFunctionsUC::getVal($condition, "include_children");
66
+ $isIncludeChildren = UniteFunctionsUC::strToBool($isIncludeChildren);
67
+
68
+ $showType = UniteFunctionsUC::getVal($condition, "terms_show");
69
+
70
+ $isShow = ($showType !== "hide");
71
+
72
+ $showValue = true;
73
+ $hideValue = false;
74
+
75
+ if($isShow == false){
76
+ $showValue = false;
77
+ $hideValue = true;
78
+ }
79
+
80
+ if($this->showDebug == true){
81
+
82
+ $this->addDebug("Show by archive term IDs.");
83
+
84
+ $this->addDebugOptions(array(
85
+ "include children"=>$isIncludeChildren,
86
+ "show"=>$isShow,
87
+ "terms ids"=>$termIDs
88
+ ));
89
+
90
+ }
91
+
92
+ if(empty($termIDs)){
93
+
94
+ if($this->showDebug == true)
95
+ $this->addDebug("empty term ids, hide element");
96
+
97
+ return(false); //if not given term ids - always show
98
+ }
99
+
100
+ //not archive - hide
101
+ if(is_archive() == false){
102
+
103
+ if($this->showDebug == true)
104
+ $this->addDebug("the page is not archive, hide element");
105
+
106
+ return(false);
107
+ }
108
+
109
+ $objTerm = get_queried_object();
110
+
111
+ //not term current obj - hide
112
+ if($objTerm instanceof WP_Term == false){
113
+
114
+ if($this->showDebug == true)
115
+ $this->addDebug("Not a term related page, hide element");
116
+
117
+ return(false);
118
+ }
119
+
120
+ //not term - hide
121
+ if(isset($objTerm->term_id) == false){
122
+
123
+ if($this->showDebug == true)
124
+ $this->addDebug("no term id found, wrong term loaded, hide element");
125
+
126
+ return(false);
127
+ }
128
+
129
+ //check current term
130
+ if($isIncludeChildren == true)
131
+ $arrCurrentTermIDs = UniteFunctionsWPUC::getTermParentIDs($objTerm);
132
+ else
133
+ $arrCurrentTermIDs = array($objTerm->term_id);
134
+
135
+ if($this->showDebug == true)
136
+ $this->addDebug("current term ids:", $arrCurrentTermIDs);
137
+
138
+ //if current or parent of the current found between the given, don't hide
139
+ foreach($arrCurrentTermIDs as $currentID){
140
+
141
+ $isFound = (array_search($currentID, $termIDs) !== false);
142
+
143
+ if($isFound == true){
144
+
145
+ if($this->showDebug == true)
146
+ $this->addDebug("term found", $showValue?"show element":"hide element");
147
+
148
+ return($showValue);
149
+ }
150
+
151
+ }
152
+
153
+ if($this->showDebug == true)
154
+ $this->addDebug("term not found", $hideValue?"hide element":"show element");
155
+
156
+ return($hideValue); //hide in other cases
157
+ }
158
+
159
+ /**
160
+ * return if show element by condition
161
+ */
162
+ private function isShowElementByCondition($condition){
163
+
164
+ if(empty($condition))
165
+ return(true);
166
+
167
+ $type = UniteFunctionsUC::getVal($condition, "condition_type");
168
+
169
+ switch($type){
170
+ case "archive_terms":
171
+
172
+ $isShow = $this->isShowElement_archiveTermIDs($condition);
173
+
174
+ return($isShow);
175
+ break;
176
+ default:
177
+ return(true);
178
+ break;
179
+ }
180
+
181
+ return(true);
182
+ }
183
+
184
+
185
+ /**
186
+ * check if hide element or not
187
+ */
188
+ private function isShowElement($type){
189
+
190
+ $arrConditions = $this->getSetting("conditions");
191
+
192
+ if(empty($arrConditions) || is_array($arrConditions) == false)
193
+ return(true);
194
+
195
+ $isShowTotal = true;
196
+
197
+ foreach($arrConditions as $conditionOptions){
198
+
199
+ $isShow = $this->isShowElementByCondition($conditionOptions);
200
+
201
+ if($isShow == false)
202
+ $isShowTotal = false;
203
+ }
204
+
205
+ return($isShowTotal);
206
+ }
207
+
208
+
209
+ /**
210
+ * get all relevant settings
211
+ */
212
+ private function getRelevantSettings(){
213
+
214
+ $arrSettingKeys = array(
215
+ self::PREFIX."show_debug",
216
+ self::PREFIX."conditions"
217
+ );
218
+
219
+ $output = array();
220
+ foreach($this->arrSettings as $key=>$setting){
221
+
222
+ if(array_search($key, $arrSettingKeys) === false)
223
+ continue;
224
+
225
+ $output[$key] = $setting;
226
+ }
227
+
228
+ return($output);
229
+ }
230
+
231
+
232
+ /**
233
+ * print debug settings
234
+ */
235
+ private function printSettingsDebug(){
236
+
237
+ dmp("UE Visibility Conditions Settings");
238
+ $arrSettings = $this->getRelevantSettings();
239
+
240
+ dmp($arrSettings);
241
+
242
+ }
243
+
244
+
245
+
246
+ /**
247
+ * on before render
248
+ */
249
+ public function onBeforeRenderElement($element){
250
+
251
+ $this->arrSettings = $element->get_settings_for_display();
252
+
253
+ $conditions = $this->getSetting("conditions");
254
+ if(empty($conditions))
255
+ return(true);
256
+
257
+
258
+ $this->arrDebug = array();
259
+ $this->showDebug = false;
260
+
261
+ $showDebug = $this->getSetting("show_debug");
262
+ $this->showDebug = ($showDebug == "yes");
263
+
264
+ if($this->showDebug){
265
+ $this->printSettingsDebug();
266
+ }
267
+
268
+ $isShow = $this->isShowElement($conditions);
269
+
270
+ if($this->showDebug == true && !empty($this->arrDebug))
271
+ $this->printDebug($element);
272
+
273
+ if($isShow == true)
274
+ return(false);
275
+
276
+ $elementID = $element->get_id();
277
+
278
+ $this->arrHiddenIDs[$elementID] = true;
279
+
280
+ //start hiding
281
+
282
+ ob_start();
283
+ }
284
+
285
+
286
+ /**
287
+ * on after render element
288
+ */
289
+ public function onAfterRenderElement($element){
290
+
291
+ $elementID = $element->get_id();
292
+
293
+ $isHidden = isset($this->arrHiddenIDs[$elementID]);
294
+
295
+ if($isHidden == false)
296
+ return(true);
297
+
298
+ //finish hiding
299
+
300
+ ob_end_clean();
301
+ }
302
+
303
+
304
+ /**
305
+ * add visibility controls section
306
+ */
307
+ public function addVisibilityControls($objControls){
308
+
309
+ $objControls->start_controls_section(
310
+ 'section_visibility_uc',
311
+ [
312
+ 'label' => __( 'UE Visibility Conditions', 'unlimited_elements' ),
313
+ 'tab' => "advanced",
314
+ ]
315
+ );
316
+
317
+
318
+ $repeater = new \Elementor\Repeater();
319
+
320
+ //condition type
321
+
322
+ $prefix = self::PREFIX;
323
+
324
+ $repeater->add_control(
325
+ 'condition_type',
326
+ array(
327
+ 'label' => __( 'Visibility By', 'unlimited-elements-for-elementor' ),
328
+ 'type' => \Elementor\Controls_Manager::SELECT,
329
+ 'default' => 'none',
330
+ 'options' => array(
331
+ 'none' => __( 'Always Visible', 'unlimited-elements-for-elementor' ),
332
+ 'archive_terms' => __( 'Archive Page Terms', 'unlimited-elements-for-elementor' )
333
+ ),
334
+ 'separator'=>"after"
335
+ )
336
+ );
337
+
338
+ //------------- ARCHIVE TERMS --------------
339
+
340
+ $conditionTerms = array('condition_type' => "archive_terms");
341
+
342
+ $repeater->add_control(
343
+ 'terms_show',
344
+ array(
345
+ 'label' => __( 'Show or Hide', 'unlimited-elements-for-elementor' ),
346
+ 'type' => \Elementor\Controls_Manager::SELECT,
347
+ 'default' => 'show',
348
+ 'options' => array(
349
+ 'show' => __( 'Show', 'unlimited-elements-for-elementor' ),
350
+ 'hide' => __( 'Hide', 'unlimited-elements-for-elementor' )
351
+ ),
352
+ 'condition'=>$conditionTerms
353
+ )
354
+ );
355
+
356
+ //--term heading
357
+
358
+ $repeater->add_control(
359
+ 'by_terms_heading',
360
+ array(
361
+ 'label' => __( 'When current page is archive and current term match the seleced', 'unlimited-elements-for-elementor' ),
362
+ 'type' => \Elementor\Controls_Manager::HEADING,
363
+ 'condition' => $conditionTerms
364
+ )
365
+ );
366
+
367
+ //--term ids
368
+
369
+ $arrControl = HelperProviderCoreUC_EL::getElementorControl_TermsPickerControl(__("Select Term", "unlimited-elements-for-elementor"));
370
+ $arrControl["condition"] = $conditionTerms;
371
+
372
+ $repeater->add_control(
373
+ 'term_ids',
374
+ $arrControl
375
+ );
376
+
377
+ $repeater->add_control(
378
+ 'terms_include_children',
379
+ array(
380
+ 'label' => __( 'Or Their Children', 'unlimited-elements-for-elementor' ),
381
+ 'type' => \Elementor\Controls_Manager::SWITCHER,
382
+ 'label_on' => __( 'Yes', 'unlimited-elements-for-elementor' ),
383
+ 'label_off' => __( 'No', 'unlimited-elements-for-elementor' ),
384
+ 'return_value' => 'yes',
385
+ 'default' => 'yes',
386
+ 'condition'=>$conditionTerms
387
+ )
388
+ );
389
+
390
+ //------ add the repeater
391
+
392
+ $objControls->add_control(
393
+ $prefix.'conditions',
394
+ [
395
+ 'label' => __( 'Repeater List', 'unlimited-elements-for-elementor' ),
396
+ 'type' => \Elementor\Controls_Manager::REPEATER,
397
+ 'fields' => $repeater->get_controls(),
398
+ 'default' => [],
399
+ 'title_field' => '',
400
+ ]
401
+ );
402
+
403
+
404
+ //------------- DEBUG --------------
405
+
406
+ $objControls->add_control(
407
+ $prefix.'show_debug',
408
+ array(
409
+ 'label' => __( 'Show Debug Text', 'unlimited-elements-for-elementor' ),
410
+ 'type' => \Elementor\Controls_Manager::SWITCHER,
411
+ 'label_on' => __( 'Yes', 'unlimited-elements-for-elementor' ),
412
+ 'label_off' => __( 'No', 'unlimited-elements-for-elementor' ),
413
+ 'return_value' => 'yes',
414
+ 'default' => '',
415
+ 'separator'=>"before"
416
+ )
417
+ );
418
+
419
+
420
+ $objControls->end_controls_section();
421
+ }
422
+
423
+
424
+
425
+ }
provider/core/plugins/unlimited_elements/elementor/elementor_integrate.class.php CHANGED
@@ -21,6 +21,7 @@ class UniteCreatorElementorIntegrate{
21
  private $enableImportTemplate = true;
22
  private $enableExportTemplate = true;
23
  private $enableBackgroundWidgets = false;
 
24
 
25
  public static $isConsolidated = false;
26
 
@@ -51,12 +52,16 @@ class UniteCreatorElementorIntegrate{
51
  public static $isOutputPage = false;
52
  private $isPluginFilesIncluded = false;
53
  private $objBackgroundWidget;
 
54
 
55
  public static $enableEditHTMLButton = true;
56
 
57
  public static $showWidgetPreviews = true;
58
  public static $arrWidgetIcons = array(); //fill by the widgets
59
  public static $isDarkMode = false;
 
 
 
60
 
61
 
62
  /**
@@ -619,7 +624,45 @@ class UniteCreatorElementorIntegrate{
619
 
620
  }
621
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
622
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
623
  private function a____________BACKGROUND_WIDGETS___________(){}
624
 
625
 
@@ -867,6 +910,8 @@ class UniteCreatorElementorIntegrate{
867
 
868
  }
869
 
 
 
870
  /**
871
  * get editor page scripts
872
  */
@@ -902,16 +947,21 @@ class UniteCreatorElementorIntegrate{
902
  */
903
  public function onRegisterFrontScripts(){
904
 
905
- if(self::$isFrontendEditorMode == false)
906
- return(true);
907
 
908
- if($this->enableBackgroundWidgets == false)
909
- return(true);
 
910
 
 
 
 
 
 
 
911
 
912
- HelperUC::addScriptAbsoluteUrl(HelperProviderCoreUC_EL::$urlCore."elementor/assets/uc_front_admin.js", "unlimited_elments_editor_admin");
913
 
914
- HelperUC::addStyleAbsoluteUrl(HelperProviderCoreUC_EL::$urlCore."elementor/assets/uc_front_admin.css", "unlimited_elments_front_admin_css");
915
  }
916
 
917
 
@@ -1378,13 +1428,40 @@ class UniteCreatorElementorIntegrate{
1378
  self::$enableEditHTMLButton = UniteFunctionsUC::strToBool(self::$enableEditHTMLButton);
1379
  }
1380
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1381
 
1382
  /**
1383
  * init the elementor integration
1384
  */
1385
  public function initElementorIntegration(){
1386
 
1387
-
1388
  $isEnabled = HelperProviderCoreUC_EL::getGeneralSetting("el_enable");
1389
  $isEnabled = UniteFunctionsUC::strToBool($isEnabled);
1390
  if($isEnabled == false)
@@ -1402,7 +1479,7 @@ class UniteCreatorElementorIntegrate{
1402
 
1403
  //set if edit mode for widget output
1404
  self::$isEditMode = HelperUC::isElementorEditMode();
1405
-
1406
  $arrSettingsValues = HelperProviderCoreUC_EL::getGeneralSettingsValues();
1407
 
1408
  self::$isConsolidated = UniteFunctionsUC::getVal($arrSettingsValues, "consolidate_addons");
@@ -1414,12 +1491,21 @@ class UniteCreatorElementorIntegrate{
1414
  $enableBackgrounds = HelperProviderCoreUC_EL::getGeneralSetting("enable_backgrounds");
1415
  $enableBackgrounds = UniteFunctionsUC::strToBool($enableBackgrounds);
1416
 
 
 
 
 
 
 
 
1417
 
1418
  if($enableExportImport == false){
1419
  $this->enableExportTemplate = false;
1420
  $this->enableImportTemplate = false;
1421
  }
1422
-
 
 
1423
  add_action('elementor/editor/init', array($this, 'onEditorInit'));
1424
 
1425
  add_action('elementor/widgets/widgets_registered', array($this, 'onWidgetsRegistered'));
@@ -1436,6 +1522,9 @@ class UniteCreatorElementorIntegrate{
1436
  if($enableBackgrounds == true)
1437
  $this->initBackgroundWidgets();
1438
 
 
 
 
1439
  add_action('elementor/init', array($this, 'onElementorInit'));
1440
 
1441
  //fix some frontend bug with double render
21
  private $enableImportTemplate = true;
22
  private $enableExportTemplate = true;
23
  private $enableBackgroundWidgets = false;
24
+ private $enableDynamicVisibility = false;
25
 
26
  public static $isConsolidated = false;
27
 
52
  public static $isOutputPage = false;
53
  private $isPluginFilesIncluded = false;
54
  private $objBackgroundWidget;
55
+ private $objDynamicVisibility;
56
 
57
  public static $enableEditHTMLButton = true;
58
 
59
  public static $showWidgetPreviews = true;
60
  public static $arrWidgetIcons = array(); //fill by the widgets
61
  public static $isDarkMode = false;
62
+ public static $enableCopySectionButton = false;
63
+ public static $enablePasteSectionButton = false;
64
+ private $objCopyPaste;
65
 
66
 
67
  /**
624
 
625
  }
626
 
627
+ private function a____________DYNAMIC_VISIBILITY___________(){}
628
+
629
+ /**
630
+ * add dynamic visibility controls
631
+ */
632
+ public function addDynamicVisibilityControls($objControls){
633
+
634
+ $this->objDynamicVisibility->addVisibilityControls($objControls);
635
+
636
+ }
637
+
638
+
639
+ /**
640
+ * init dynamic visibility
641
+ */
642
+ private function initDynamicVisibility(){
643
+
644
+ $this->enableDynamicVisibility = true;
645
+ $this->objDynamicVisibility = new UniteCreatorDynamicVisibility();
646
+
647
+ add_action("elementor/element/section/section_advanced/after_section_end", array($this, "addDynamicVisibilityControls"));
648
 
649
+ //filtering content
650
+ if(self::$isEditMode == true)
651
+ return(false);
652
+
653
+ add_action("elementor/frontend/section/before_render", array($this->objDynamicVisibility, "onBeforeRenderElement"));
654
+ add_action("elementor/frontend/section/after_render", array($this->objDynamicVisibility, "onAfterRenderElement"));
655
+
656
+
657
+ //dmp("init filtering");
658
+ // filter sections
659
+ //$this->loader->addAction( "elementor/frontend/section/before_render", $pluginPublic, 'filterSectionContentBefore', 10, 1 );
660
+ //$this->loader->addAction( "elementor/frontend/section/after_render", $pluginPublic, 'filterSectionContentAfter', 10, 1 );
661
+
662
+
663
+ }
664
+
665
+
666
  private function a____________BACKGROUND_WIDGETS___________(){}
667
 
668
 
910
 
911
  }
912
 
913
+
914
+
915
  /**
916
  * get editor page scripts
917
  */
947
  */
948
  public function onRegisterFrontScripts(){
949
 
950
+ //background related
951
+ if($this->enableBackgroundWidgets == true && self::$isFrontendEditorMode == true){
952
 
953
+ HelperUC::addScriptAbsoluteUrl(HelperProviderCoreUC_EL::$urlCore."elementor/assets/uc_front_admin.js", "unlimited_elments_editor_admin");
954
+ HelperUC::addStyleAbsoluteUrl(HelperProviderCoreUC_EL::$urlCore."elementor/assets/uc_front_admin.css", "unlimited_elments_front_admin_css");
955
+ }
956
 
957
+ //---- copy paste related
958
+ if(self::$enableCopySectionButton == true && self::$isEditMode == false)
959
+ $this->objCopyPaste->addCopyScripts();
960
+
961
+ if(self::$enablePasteSectionButton == true && self::$isEditMode == false)
962
+ $this->objCopyPaste->addPasteScripts();
963
 
 
964
 
 
965
  }
966
 
967
 
1428
  self::$enableEditHTMLButton = UniteFunctionsUC::strToBool(self::$enableEditHTMLButton);
1429
  }
1430
 
1431
+ /**
1432
+ * init copy paste functionality
1433
+ */
1434
+ private function initCopyPaste(){
1435
+
1436
+ if(GlobalsUC::$inDev == false)
1437
+ return(false);
1438
+
1439
+ //check current user
1440
+ $currentUserID = get_current_user_id();
1441
+
1442
+ if(empty($currentUserID))
1443
+ return(false);
1444
+
1445
+ $isUserAdmin = current_user_can('administrator');
1446
+ if($isUserAdmin == false)
1447
+ return(false);
1448
+
1449
+ self::$enableCopySectionButton = HelperProviderCoreUC_EL::getGeneralSetting("copy_mode_enable_copy");
1450
+ self::$enableCopySectionButton = UniteFunctionsUC::strToBool(self::$enableCopySectionButton);
1451
+
1452
+ self::$enablePasteSectionButton = HelperProviderCoreUC_EL::getGeneralSetting("copy_mode_enable_paste");
1453
+ self::$enablePasteSectionButton = UniteFunctionsUC::strToBool(self::$enablePasteSectionButton);
1454
+
1455
+ $this->objCopyPaste = new UniteCreatorElementorCopyPaste();
1456
+ $this->objCopyPaste->init();
1457
+
1458
+ }
1459
 
1460
  /**
1461
  * init the elementor integration
1462
  */
1463
  public function initElementorIntegration(){
1464
 
 
1465
  $isEnabled = HelperProviderCoreUC_EL::getGeneralSetting("el_enable");
1466
  $isEnabled = UniteFunctionsUC::strToBool($isEnabled);
1467
  if($isEnabled == false)
1479
 
1480
  //set if edit mode for widget output
1481
  self::$isEditMode = HelperUC::isElementorEditMode();
1482
+
1483
  $arrSettingsValues = HelperProviderCoreUC_EL::getGeneralSettingsValues();
1484
 
1485
  self::$isConsolidated = UniteFunctionsUC::getVal($arrSettingsValues, "consolidate_addons");
1491
  $enableBackgrounds = HelperProviderCoreUC_EL::getGeneralSetting("enable_backgrounds");
1492
  $enableBackgrounds = UniteFunctionsUC::strToBool($enableBackgrounds);
1493
 
1494
+ //remove me
1495
+ $enableDynamicVisibility = false;
1496
+
1497
+ if(GlobalsUC::$inDev == true){
1498
+ $enableDynamicVisibility = HelperProviderCoreUC_EL::getGeneralSetting("enable_dynamic_visibility");
1499
+ $enableDynamicVisibility = UniteFunctionsUC::strToBool($enableDynamicVisibility);
1500
+ }
1501
 
1502
  if($enableExportImport == false){
1503
  $this->enableExportTemplate = false;
1504
  $this->enableImportTemplate = false;
1505
  }
1506
+
1507
+ $this->initCopyPaste();
1508
+
1509
  add_action('elementor/editor/init', array($this, 'onEditorInit'));
1510
 
1511
  add_action('elementor/widgets/widgets_registered', array($this, 'onWidgetsRegistered'));
1522
  if($enableBackgrounds == true)
1523
  $this->initBackgroundWidgets();
1524
 
1525
+ if($enableDynamicVisibility == true)
1526
+ $this->initDynamicVisibility();
1527
+
1528
  add_action('elementor/init', array($this, 'onElementorInit'));
1529
 
1530
  //fix some frontend bug with double render
provider/core/plugins/unlimited_elements/elementor/elementor_layout_exporter.class.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net / Valiano
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
@@ -31,6 +31,7 @@ class UniteCreatorLayoutsExporterElementor extends UniteCreatorLayoutsExporter{
31
 
32
  private $importedLayoutJsonFile;
33
  private $importedLayoutContent;
 
34
 
35
 
36
  /**
@@ -80,6 +81,18 @@ class UniteCreatorLayoutsExporterElementor extends UniteCreatorLayoutsExporter{
80
  return($postID);
81
  }
82
 
 
 
 
 
 
 
 
 
 
 
 
 
83
 
84
  /**
85
  * turn wp page to elementor layout
@@ -168,42 +181,6 @@ class UniteCreatorLayoutsExporterElementor extends UniteCreatorLayoutsExporter{
168
  }
169
 
170
 
171
- /**
172
- * import elementor layout
173
- */
174
- public function importElementorLayout($arrTempFile, $isOverwriteAddons = true){
175
-
176
- dmp("import old way");
177
- exit();
178
-
179
- $this->addonsType = UniteCreatorElementorIntegrate::ADDONS_TYPE;
180
- $this->importPostType = self::POST_TYPE_LAYOUTS_LIBRARY;
181
-
182
- $this->import($arrTempFile, null, $isOverwriteAddons);
183
- $this->updateElementorLayoutAfterImport();
184
-
185
- $urlRedirect = admin_url("edit.php?post_type=elementor_library&tabs_group=library");
186
-
187
- header("location:".$urlRedirect);
188
- exit();
189
- }
190
-
191
-
192
- /**
193
- * import vc zip file to some wp page
194
- */
195
- public function importElementorZipToPage($filepath, $pageID, $isOverwriteAddons = false){
196
-
197
- $page = @get_post($pageID);
198
- if(empty($page))
199
- UniteFunctionsUC::throwError("page with id: $pageID not found");
200
-
201
- $this->addonsType = UniteCreatorElementorIntegrate::ADDONS_TYPE;
202
-
203
- $this->importZipFile($filepath, $pageID, $isOverwriteAddons);
204
- $this->updateElementorLayoutAfterImport();
205
-
206
- }
207
 
208
  /**
209
  * set addon by widget type
@@ -351,7 +328,7 @@ class UniteCreatorLayoutsExporterElementor extends UniteCreatorLayoutsExporter{
351
  * input - zip file from upload, or path to file
352
  */
353
  public function importElementorTemplateNew($arrTempFile, $isOverwriteAddons = true, $data = null){
354
-
355
  $this->addonsType = GlobalsUnlimitedElements::ADDONSTYPE_ELEMENTOR;
356
 
357
  if(is_string($arrTempFile)){
@@ -367,7 +344,6 @@ class UniteCreatorLayoutsExporterElementor extends UniteCreatorLayoutsExporter{
367
  if(empty($filepath))
368
  UniteFunctionsUC::throwError("template filepath not found");
369
 
370
-
371
  $info = pathinfo($filename);
372
 
373
  $ext = UniteFunctionsUC::getVal($info, "extension");
@@ -378,7 +354,7 @@ class UniteCreatorLayoutsExporterElementor extends UniteCreatorLayoutsExporter{
378
 
379
  $this->prepareImportFolders();
380
  $this->extractImportLayoutFile($filepath);
381
-
382
  //prepare the content and the json file path after extracted before import
383
  $this->importElementorTemplateNew_prepareLayoutImportContent();
384
 
@@ -392,13 +368,17 @@ class UniteCreatorLayoutsExporterElementor extends UniteCreatorLayoutsExporter{
392
  $this->importElementorTemplateNew_importImages();
393
 
394
  //change page type
 
 
 
 
 
395
 
396
  $type = UniteFunctionsUC::getVal($this->importedLayoutContent, "type");
397
-
398
  if($type == "wp-post")
399
  $this->importedLayoutContent["type"] = "page";
400
 
401
-
402
  $this->importElementorTemplateNew_rewriteJsonFile();
403
 
404
  //import template
@@ -408,9 +388,8 @@ class UniteCreatorLayoutsExporterElementor extends UniteCreatorLayoutsExporter{
408
  }
409
 
410
 
411
-
412
  /**
413
- * import elementor layout
414
  */
415
  public function importElementorLayoutNew($arrTempFile, $isOverwriteAddons, $data){
416
 
@@ -460,6 +439,76 @@ class UniteCreatorLayoutsExporterElementor extends UniteCreatorLayoutsExporter{
460
 
461
  }
462
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
463
  function a_______EXPORT_IMAGES______(){}
464
 
465
  /**
@@ -1018,14 +1067,60 @@ class UniteCreatorLayoutsExporterElementor extends UniteCreatorLayoutsExporter{
1018
  }
1019
  }
1020
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1021
 
1022
  /**
1023
  * export elementor post by id
1024
  */
1025
- public function exportElementorPost($postID, $exportName = null, $isReturnData = false){
1026
 
1027
  $this->exportPostID = $postID;
1028
 
 
 
1029
  //if not inited - init
1030
  if(empty($this->objLayout)){
1031
 
@@ -1038,17 +1133,33 @@ class UniteCreatorLayoutsExporterElementor extends UniteCreatorLayoutsExporter{
1038
 
1039
  $this->initByLayout($objLayout);
1040
  }
 
 
1041
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1042
 
1043
- $templateData = $this->getElementorExportContent($postID);
1044
 
1045
- $content = $templateData["content"];
1046
-
1047
  if(empty($exportName))
1048
  $exportName = UniteFunctionsUC::getVal($templateData, "name");
1049
 
 
 
 
1050
  $arrData = $this->exportElementorLayoutZip($content, $exportName, $isReturnData);
1051
-
1052
  return($arrData);
1053
  }
1054
 
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com / Valiano
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
31
 
32
  private $importedLayoutJsonFile;
33
  private $importedLayoutContent;
34
+ private $importSectionID = null;
35
 
36
 
37
  /**
81
  return($postID);
82
  }
83
 
84
+ /**
85
+ * update elementor data meta from content layout
86
+ */
87
+ private function updateElementorDataMeta($postID, $arrContent){
88
+
89
+ $layoutData = json_encode($arrContent);
90
+ $layoutDataValueInsert = wp_slash($layoutData);
91
+
92
+ update_post_meta($postID, "_elementor_data", $layoutDataValueInsert);
93
+
94
+ }
95
+
96
 
97
  /**
98
  * turn wp page to elementor layout
181
  }
182
 
183
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
184
 
185
  /**
186
  * set addon by widget type
328
  * input - zip file from upload, or path to file
329
  */
330
  public function importElementorTemplateNew($arrTempFile, $isOverwriteAddons = true, $data = null){
331
+
332
  $this->addonsType = GlobalsUnlimitedElements::ADDONSTYPE_ELEMENTOR;
333
 
334
  if(is_string($arrTempFile)){
344
  if(empty($filepath))
345
  UniteFunctionsUC::throwError("template filepath not found");
346
 
 
347
  $info = pathinfo($filename);
348
 
349
  $ext = UniteFunctionsUC::getVal($info, "extension");
354
 
355
  $this->prepareImportFolders();
356
  $this->extractImportLayoutFile($filepath);
357
+
358
  //prepare the content and the json file path after extracted before import
359
  $this->importElementorTemplateNew_prepareLayoutImportContent();
360
 
368
  $this->importElementorTemplateNew_importImages();
369
 
370
  //change page type
371
+ $isNoImport = UniteFunctionsUC::getVal($data, "no_import");
372
+ $isNoImport = UniteFunctionsUC::strToBool($isNoImport);
373
+
374
+ if($isNoImport == true)
375
+ return($this->importedLayoutContent);
376
 
377
  $type = UniteFunctionsUC::getVal($this->importedLayoutContent, "type");
378
+
379
  if($type == "wp-post")
380
  $this->importedLayoutContent["type"] = "page";
381
 
 
382
  $this->importElementorTemplateNew_rewriteJsonFile();
383
 
384
  //import template
388
  }
389
 
390
 
 
391
  /**
392
+ * import elementor template, and create new layout
393
  */
394
  public function importElementorLayoutNew($arrTempFile, $isOverwriteAddons, $data){
395
 
439
 
440
  }
441
 
442
+ /**
443
+ * randomize element id's
444
+ */
445
+ private function randomizeElementIDs($arrElement){
446
+
447
+ if(is_array($arrElement) == false)
448
+ return($arrElement);
449
+
450
+ //randomize
451
+ if(isset($arrElement["id"]) && isset($arrElement["elType"])){
452
+ $arrElement["id"] = UniteFunctionsUC::getRandomString(7, "hex");
453
+ }
454
+
455
+ foreach($arrElement as $key => $item){
456
+
457
+ if(is_array($item) == false)
458
+ continue;
459
+
460
+ $arrElement[$key] = $this->randomizeElementIDs($item);
461
+ }
462
+
463
+ return($arrElement);
464
+ }
465
+
466
+
467
+ /**
468
+ * import content that contain zip section, add to some existing post post
469
+ */
470
+ public function importElementorZipContentSection($contentZip, $targetPostID){
471
+
472
+ UniteFunctionsUC::validateNumeric($targetPostID,"import post id");
473
+
474
+ $targetPost = get_post($targetPostID);
475
+ if(empty($targetPost))
476
+ UniteFunctionsUC::throwError("Target post not found");
477
+
478
+ $pathTemp = sys_get_temp_dir();
479
+ $filepath = $pathTemp."/elementor_section".UniteFunctionsUC::getRandomString().".zip";
480
+
481
+ UniteFunctionsUC::writeFile($contentZip, $filepath);
482
+
483
+ $arrLayout = $this->importElementorTemplateNew($filepath, true,array("no_import" => true));
484
+
485
+ if(empty($arrLayout))
486
+ UniteFunctionsUC::throwError("no layout found");
487
+
488
+ $arrSection = UniteFunctionsUC::getVal($arrLayout, "content");
489
+
490
+ $arrSection = $this->randomizeElementIDs($arrSection);
491
+
492
+ $arrPageLayout = $this->getElementorPostOriginalLayout($targetPostID);
493
+
494
+ if(empty($arrPageLayout) || is_array($arrPageLayout) == false)
495
+ UniteFunctionsUC::throwError("No page elementor layout found");
496
+
497
+ //insert section into new content
498
+ $numSections = count($arrPageLayout);
499
+
500
+ if($numSections <= 1)
501
+ $arrPageLayout[] = $arrSection;
502
+ else
503
+ array_splice($arrPageLayout, 1, 0, $arrSection);
504
+
505
+ //update elementor data
506
+ $this->updateElementorDataMeta($targetPostID, $arrPageLayout);
507
+
508
+ }
509
+
510
+
511
+
512
  function a_______EXPORT_IMAGES______(){}
513
 
514
  /**
1067
  }
1068
  }
1069
 
1070
+ /**
1071
+ * get original layout from elementor post
1072
+ */
1073
+ private function getElementorPostOriginalLayout($postID){
1074
+
1075
+ $arrMeta = get_post_meta($postID,"_elementor_data",true);
1076
+
1077
+ if(empty($arrMeta))
1078
+ return(false);
1079
+
1080
+ $arrLayout = UniteFunctionsUC::jsonDecode($arrMeta);
1081
+
1082
+ return($arrLayout);
1083
+ }
1084
+
1085
+
1086
+ /**
1087
+ * get section array from content array, recursive
1088
+ */
1089
+ private function getSectionFromContent($content, $sectionID){
1090
+
1091
+ if(is_array($content) == false)
1092
+ return($content);
1093
+
1094
+ foreach($content as $key=>$item){
1095
+
1096
+ if(is_array($item) == false)
1097
+ continue;
1098
+
1099
+ $type = UniteFunctionsUC::getVal($item, "elType");
1100
+ if($type == "section"){
1101
+ $id = UniteFunctionsUC::getVal($item, "id");
1102
+ if($id == $sectionID)
1103
+ return($item);
1104
+ }
1105
+
1106
+ $section = $this->getSectionFromContent($item, $sectionID);
1107
+ if(!empty($section))
1108
+ return($section);
1109
+ }
1110
+
1111
+
1112
+ return(null);
1113
+ }
1114
 
1115
  /**
1116
  * export elementor post by id
1117
  */
1118
+ public function exportElementorPost($postID, $exportName = null, $isReturnData = false, $params = array()){
1119
 
1120
  $this->exportPostID = $postID;
1121
 
1122
+ $sectionID = UniteFunctionsUC::getVal($params, "sectionid");
1123
+
1124
  //if not inited - init
1125
  if(empty($this->objLayout)){
1126
 
1133
 
1134
  $this->initByLayout($objLayout);
1135
  }
1136
+
1137
+ $templateData = $this->getElementorExportContent($postID);
1138
 
1139
+ //get content
1140
+ if(empty($sectionID)){
1141
+
1142
+ $templateData = $this->getElementorExportContent($postID);
1143
+ $content = $templateData["content"];
1144
+
1145
+ }else{ //get sections
1146
+
1147
+ $content = $this->getElementorPostOriginalLayout($postID);
1148
+ $content = $this->getSectionFromContent($content, $sectionID);
1149
+
1150
+ if(empty($content))
1151
+ UniteFunctionsUC::throwError("Section with id: $sectionID not found");
1152
+ }
1153
 
 
1154
 
 
 
1155
  if(empty($exportName))
1156
  $exportName = UniteFunctionsUC::getVal($templateData, "name");
1157
 
1158
+ if(!empty($sectionID))
1159
+ $exportName = $exportName."_".$sectionID;
1160
+
1161
  $arrData = $this->exportElementorLayoutZip($content, $exportName, $isReturnData);
1162
+
1163
  return($arrData);
1164
  }
1165
 
provider/core/plugins/unlimited_elements/elementor/elementor_widget.class.php CHANGED
@@ -11,7 +11,7 @@ use Elementor\Group_Control_Background;
11
  use Elementor\Group_Control_Text_Shadow;
12
  use Elementor\Group_Control_Box_Shadow;
13
  use Elementor\Group_Control_Css_Filter;
14
- use Elementor\Scheme_Typography;
15
  use Elementor\Core\Schemes;
16
  use Elementor\Repeater;
17
  use Elementor\Utils;
@@ -445,8 +445,7 @@ class UniteCreatorElementorWidget extends Widget_Base {
445
 
446
  return $arrItemsData;
447
  }
448
-
449
-
450
  /**
451
  * add items controls
452
  */
@@ -469,14 +468,36 @@ class UniteCreatorElementorWidget extends Widget_Base {
469
  $titleField = null;
470
 
471
  foreach($paramsItems as $param){
472
-
473
  $name = UniteFunctionsUC::getVal($param, "name");
 
 
474
  if($name == "title")
475
  $titleField = $name;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
476
 
477
  $arrControl = $this->getControlArrayUC($param, true);
478
-
479
  $repeater->add_control($name, $arrControl);
 
 
 
 
480
  }
481
 
482
  $arrItemsControl = array();
@@ -648,6 +669,8 @@ class UniteCreatorElementorWidget extends Widget_Base {
648
  $controlType = Controls_Manager::SELECT;
649
 
650
  break;
 
 
651
  case "select2":
652
  $controlType = Controls_Manager::SELECT2;
653
  $arrControl["label_block"] = true;
@@ -723,10 +746,12 @@ class UniteCreatorElementorWidget extends Widget_Base {
723
  case UniteCreatorDialogParam::PARAM_HOVER_ANIMATIONS:
724
  $controlType = Controls_Manager::SELECT;
725
  break;
 
726
  default:
727
 
728
  dmp("param not found");
729
  dmp($param);
 
730
  UniteFunctionsUC::throwError("Wrong param type: ".$type);
731
  break;
732
  }
@@ -761,15 +786,26 @@ class UniteCreatorElementorWidget extends Widget_Base {
761
  $arrControl["addparams"] = $addParams;
762
 
763
  case "select2":
 
764
  case UniteCreatorDialogParam::PARAM_DROPDOWN:
765
 
766
  $options = UniteFunctionsUC::getVal($param, "options", array());
767
  $options = array_flip($options);
768
  $arrControl["options"] = $options;
769
 
770
- if($isMultiple == true)
771
  $arrControl["multiple"] = true;
 
 
 
 
 
 
 
 
 
772
 
 
773
  $isResponsive = UniteFunctionsUC::getVal($param, "is_responsive");
774
 
775
  if($isResponsive == true){
@@ -788,7 +824,7 @@ class UniteCreatorElementorWidget extends Widget_Base {
788
  case UniteCreatorDialogParam::PARAM_PADDING:
789
  case UniteCreatorDialogParam::PARAM_MARGINS:
790
  case UniteCreatorDialogParam::PARAM_BORDER_DIMENTIONS:
791
-
792
  $arrControl["size_units"] = array("px","%");
793
 
794
  $isResponsive = UniteFunctionsUC::getVal($param, "is_responsive");
@@ -1171,6 +1207,16 @@ class UniteCreatorElementorWidget extends Widget_Base {
1171
  }
1172
 
1173
 
 
 
 
 
 
 
 
 
 
 
1174
  break;
1175
  }
1176
 
@@ -1249,12 +1295,18 @@ class UniteCreatorElementorWidget extends Widget_Base {
1249
  //condition
1250
  if(!empty($elementorCondition)){
1251
  $arrControl["condition"] = $elementorCondition;
 
1252
  }
1253
 
1254
  //label block
1255
  if($labelBlock === true)
1256
  $arrControl["label_block"] = true;
1257
-
 
 
 
 
 
1258
  return($arrControl);
1259
  }
1260
 
@@ -1336,12 +1388,11 @@ class UniteCreatorElementorWidget extends Widget_Base {
1336
  $arrControl = array();
1337
  $arrControl["name"] = $controlName;
1338
  $arrControl["selector"] = $selector;
1339
- $arrControl["scheme"] = Scheme_Typography::TYPOGRAPHY_3;
1340
 
1341
  if(!empty($title))
1342
  $arrControl["label"] = $title;
1343
 
1344
-
1345
  $this->objControls->add_group_control(Group_Control_Typography::get_type(), $arrControl);
1346
 
1347
  }
@@ -1358,6 +1409,7 @@ class UniteCreatorElementorWidget extends Widget_Base {
1358
  $name = UniteFunctionsUC::getVal($param, "name");
1359
  $type = UniteFunctionsUC::getVal($param, "type");
1360
 
 
1361
  switch($type){
1362
  case "custom_controls": //add controls by custom function
1363
 
@@ -1370,6 +1422,7 @@ class UniteCreatorElementorWidget extends Widget_Base {
1370
  call_user_func($function, $this->objControls, $param);
1371
 
1372
  break;
 
1373
  case UniteCreatorDialogParam::PARAM_INSTAGRAM:
1374
  case UniteCreatorDialogParam::PARAM_POST_TERMS:
1375
  case UniteCreatorDialogParam::PARAM_WOO_CATS:
@@ -1379,7 +1432,7 @@ class UniteCreatorElementorWidget extends Widget_Base {
1379
  case UniteCreatorDialogParam::PARAM_LISTING:
1380
 
1381
  $settings = new UniteCreatorSettings();
1382
-
1383
  $arrChildParams = $settings->getMultipleCreatorParams($param);
1384
 
1385
  foreach($arrChildParams as $childParam)
@@ -1435,7 +1488,6 @@ class UniteCreatorElementorWidget extends Widget_Base {
1435
  }else{
1436
 
1437
  $objControls->add_control($name, $arrControl);
1438
-
1439
  }
1440
 
1441
  break;
@@ -1532,7 +1584,7 @@ class UniteCreatorElementorWidget extends Widget_Base {
1532
  $arrItems = $this->objAddon->getProcessedItemsData(UniteCreatorParamsProcessor::PROCESS_TYPE_OUTPUT);
1533
  if(empty($arrItems))
1534
  $arrItems = array();
1535
-
1536
  $arrDefaults = array();
1537
 
1538
  foreach($arrItems as $arrItem){
@@ -1542,7 +1594,7 @@ class UniteCreatorElementorWidget extends Widget_Base {
1542
 
1543
  $arrDefaults[] = array("url"=>$urlImage);
1544
  }
1545
-
1546
  $param = array();
1547
  $param["type"] = "uc_gallery";
1548
  $param["title"] = __("Add Images","unlimited-elements-for-elementor");
@@ -1614,6 +1666,7 @@ class UniteCreatorElementorWidget extends Widget_Base {
1614
  case UniteCreatorDialogParam::PARAM_LINK:
1615
  case UniteCreatorDialogParam::PARAM_EDITOR:
1616
  case UniteCreatorDialogParam::PARAM_IMAGE:
 
1617
  break;
1618
  default:
1619
  continue(2);
@@ -1632,10 +1685,10 @@ class UniteCreatorElementorWidget extends Widget_Base {
1632
  /**
1633
  * add pagination controls
1634
  */
1635
- protected function addPaginationControls(){
1636
-
1637
  $objPagination = new UniteCreatorElementorPagination();
1638
- $objPagination->addElementorSectionControls($this);
1639
 
1640
  }
1641
 
@@ -1772,14 +1825,59 @@ class UniteCreatorElementorWidget extends Widget_Base {
1772
  * put listing sections
1773
  */
1774
  private function putListingSections($listingParam){
 
 
1775
 
1776
- if(GlobalsUC::$inDev == false)
1777
- return(false);
1778
 
1779
- //dmP("put listing sections");exit();
 
 
 
 
1780
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1781
  }
1782
 
 
1783
  /**
1784
  * register controls with not consolidated addon
1785
  */
@@ -1890,21 +1988,21 @@ class UniteCreatorElementorWidget extends Widget_Base {
1890
  $labelPosts = esc_html__("Products Query", "unlimited-elements-for-elementor");
1891
  else
1892
  $labelPosts = esc_html__("Posts Query", "unlimited-elements-for-elementor");
1893
-
1894
  $this->start_controls_section(
1895
  'section_query', array(
1896
  'label' => $labelPosts,
1897
  )
1898
  );
1899
-
1900
  $this->addElementorParamUC($postListParam);
1901
 
1902
  $this->end_controls_section();
1903
  }
1904
-
1905
- if($hasListing == true)
1906
- $this->putListingSections($listingParam);
1907
-
1908
 
1909
  //add no attributes section
1910
  if($isNoSettings == true){
@@ -1936,13 +2034,27 @@ class UniteCreatorElementorWidget extends Widget_Base {
1936
  if($isFontsEnabled == true)
1937
  $this->addFontControlsUC();
1938
 
 
1939
  //add pagination section if needed
1940
-
1941
- if($hasPostsList == true)
1942
- $this->addPaginationControls();
1943
-
 
 
 
 
 
 
 
 
 
 
 
 
 
1944
  //add debug controls
1945
- $this->addAdvancedSectionControls($hasPostsList, $isItemsEnabled);
1946
 
1947
  }
1948
 
@@ -2723,10 +2835,39 @@ class UniteCreatorElementorWidget extends Widget_Base {
2723
  */
2724
  private function getExtraWidgetHTML_pagination($arrValues, UniteCreatorAddon $objAddon){
2725
 
 
 
 
 
2726
  $arrPostListParam = $objAddon->getParamByType(UniteCreatorDialogParam::PARAM_POSTS_LIST);
2727
- if(empty($arrPostListParam))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2728
  return("");
2729
-
 
 
2730
  $paginationType = UniteFunctionsUC::getVal($arrValues, "pagination_type");
2731
 
2732
  if(empty($paginationType))
@@ -2774,7 +2915,7 @@ class UniteCreatorElementorWidget extends Widget_Base {
2774
  }
2775
 
2776
  $arrValues = $this->getSettingsValuesUC();
2777
-
2778
  HelperUC::addDebug("widget values", $arrValues);
2779
 
2780
  $arrFonts = $this->getArrFonts($arrValues);
@@ -2796,6 +2937,7 @@ class UniteCreatorElementorWidget extends Widget_Base {
2796
 
2797
  $arrMainParamValues = $this->getArrMainParamValuesUC($arrValues, $objAddon);
2798
 
 
2799
  $arrPostListParam = $objAddon->getParamByType(UniteCreatorDialogParam::PARAM_POSTS_LIST);
2800
  if(!empty($arrPostListParam)){
2801
 
@@ -2807,10 +2949,10 @@ class UniteCreatorElementorWidget extends Widget_Base {
2807
 
2808
  //check if inside editor
2809
  $isEditMode = $this->isEditMode();
2810
-
2811
  $objAddon->setParamsValues($arrMainParamValues);
2812
  $objAddon->setArrFonts($arrFonts);
2813
-
2814
  if($hasItems == true)
2815
  $objAddon->setArrItems($arrItems);
2816
 
11
  use Elementor\Group_Control_Text_Shadow;
12
  use Elementor\Group_Control_Box_Shadow;
13
  use Elementor\Group_Control_Css_Filter;
14
+ use Elementor\Core\Schemes\Typography;
15
  use Elementor\Core\Schemes;
16
  use Elementor\Repeater;
17
  use Elementor\Utils;
445
 
446
  return $arrItemsData;
447
  }
448
+
 
449
  /**
450
  * add items controls
451
  */
468
  $titleField = null;
469
 
470
  foreach($paramsItems as $param){
471
+
472
  $name = UniteFunctionsUC::getVal($param, "name");
473
+ $type = UniteFunctionsUC::getVal($param, "type");
474
+
475
  if($name == "title")
476
  $titleField = $name;
477
+
478
+ if($name == "uc_filters_item_selector"){
479
+
480
+ $param["type"] = "uc_filters_repeater_params";
481
+ $this->addElementorParamUC($param, $repeater);
482
+ continue;
483
+ }
484
+
485
+ switch($type){
486
+ case UniteCreatorDialogParam::PARAM_TEMPLATE: //convert template to text param
487
+ $param["type"] = UniteCreatorDialogParam::PARAM_TEXTFIELD;
488
+ $param["name"] .= "_templateid";
489
+ $param["placeholder"] = "Put ID only, like 745";
490
+ $param["label_block"] = true;
491
+ $name .= "_templateid";
492
+ break;
493
+ }
494
 
495
  $arrControl = $this->getControlArrayUC($param, true);
 
496
  $repeater->add_control($name, $arrControl);
497
+
498
+ //add some child params
499
+ $this->checkAddRelatedControls($param, $repeater);
500
+
501
  }
502
 
503
  $arrItemsControl = array();
669
  $controlType = Controls_Manager::SELECT;
670
 
671
  break;
672
+ case UniteCreatorDialogParam::PARAM_MULTIPLE_SELECT:
673
+ $isMultiple = true;
674
  case "select2":
675
  $controlType = Controls_Manager::SELECT2;
676
  $arrControl["label_block"] = true;
746
  case UniteCreatorDialogParam::PARAM_HOVER_ANIMATIONS:
747
  $controlType = Controls_Manager::SELECT;
748
  break;
749
+
750
  default:
751
 
752
  dmp("param not found");
753
  dmp($param);
754
+ UniteFunctionsUC::showTrace();
755
  UniteFunctionsUC::throwError("Wrong param type: ".$type);
756
  break;
757
  }
786
  $arrControl["addparams"] = $addParams;
787
 
788
  case "select2":
789
+ case UniteCreatorDialogParam::PARAM_MULTIPLE_SELECT:
790
  case UniteCreatorDialogParam::PARAM_DROPDOWN:
791
 
792
  $options = UniteFunctionsUC::getVal($param, "options", array());
793
  $options = array_flip($options);
794
  $arrControl["options"] = $options;
795
 
796
+ if($isMultiple == true){
797
  $arrControl["multiple"] = true;
798
+
799
+ if(is_array($value) == false){
800
+ if(empty($value))
801
+ $arrControl["default"] = array();
802
+ else
803
+ $arrControl["default"] = array($value);
804
+ }
805
+
806
+ }
807
 
808
+
809
  $isResponsive = UniteFunctionsUC::getVal($param, "is_responsive");
810
 
811
  if($isResponsive == true){
824
  case UniteCreatorDialogParam::PARAM_PADDING:
825
  case UniteCreatorDialogParam::PARAM_MARGINS:
826
  case UniteCreatorDialogParam::PARAM_BORDER_DIMENTIONS:
827
+
828
  $arrControl["size_units"] = array("px","%");
829
 
830
  $isResponsive = UniteFunctionsUC::getVal($param, "is_responsive");
1207
  }
1208
 
1209
 
1210
+ break;
1211
+ case UniteCreatorDialogParam::PARAM_GALLERY:
1212
+
1213
+ if(is_string($defaultValue)){
1214
+ $defaultValue = array();
1215
+ $arrControl["default"] = $defaultValue;
1216
+ }
1217
+
1218
+ $param["add_dynamic"] = true;
1219
+
1220
  break;
1221
  }
1222
 
1295
  //condition
1296
  if(!empty($elementorCondition)){
1297
  $arrControl["condition"] = $elementorCondition;
1298
+
1299
  }
1300
 
1301
  //label block
1302
  if($labelBlock === true)
1303
  $arrControl["label_block"] = true;
1304
+
1305
+ /*
1306
+ if($type == "uc_gallery"){
1307
+ dmp($arrControl);exit();}
1308
+ */
1309
+
1310
  return($arrControl);
1311
  }
1312
 
1388
  $arrControl = array();
1389
  $arrControl["name"] = $controlName;
1390
  $arrControl["selector"] = $selector;
1391
+ $arrControl["scheme"] = Typography::TYPOGRAPHY_3;
1392
 
1393
  if(!empty($title))
1394
  $arrControl["label"] = $title;
1395
 
 
1396
  $this->objControls->add_group_control(Group_Control_Typography::get_type(), $arrControl);
1397
 
1398
  }
1409
  $name = UniteFunctionsUC::getVal($param, "name");
1410
  $type = UniteFunctionsUC::getVal($param, "type");
1411
 
1412
+
1413
  switch($type){
1414
  case "custom_controls": //add controls by custom function
1415
 
1422
  call_user_func($function, $this->objControls, $param);
1423
 
1424
  break;
1425
+ case "uc_filters_repeater_params":
1426
  case UniteCreatorDialogParam::PARAM_INSTAGRAM:
1427
  case UniteCreatorDialogParam::PARAM_POST_TERMS:
1428
  case UniteCreatorDialogParam::PARAM_WOO_CATS:
1432
  case UniteCreatorDialogParam::PARAM_LISTING:
1433
 
1434
  $settings = new UniteCreatorSettings();
1435
+
1436
  $arrChildParams = $settings->getMultipleCreatorParams($param);
1437
 
1438
  foreach($arrChildParams as $childParam)
1488
  }else{
1489
 
1490
  $objControls->add_control($name, $arrControl);
 
1491
  }
1492
 
1493
  break;
1584
  $arrItems = $this->objAddon->getProcessedItemsData(UniteCreatorParamsProcessor::PROCESS_TYPE_OUTPUT);
1585
  if(empty($arrItems))
1586
  $arrItems = array();
1587
+
1588
  $arrDefaults = array();
1589
 
1590
  foreach($arrItems as $arrItem){
1594
 
1595
  $arrDefaults[] = array("url"=>$urlImage);
1596
  }
1597
+
1598
  $param = array();
1599
  $param["type"] = "uc_gallery";
1600
  $param["title"] = __("Add Images","unlimited-elements-for-elementor");
1666
  case UniteCreatorDialogParam::PARAM_LINK:
1667
  case UniteCreatorDialogParam::PARAM_EDITOR:
1668
  case UniteCreatorDialogParam::PARAM_IMAGE:
1669
+ case UniteCreatorDialogParam::PARAM_GALLERY:
1670
  break;
1671
  default:
1672
  continue(2);
1685
  /**
1686
  * add pagination controls
1687
  */
1688
+ protected function addPaginationControls($postListParam = null){
1689
+
1690
  $objPagination = new UniteCreatorElementorPagination();
1691
+ $objPagination->addElementorSectionControls($this, $postListParam);
1692
 
1693
  }
1694
 
1825
  * put listing sections
1826
  */
1827
  private function putListingSections($listingParam){
1828
+
1829
+ $name = UniteFunctionsUC::getVal($listingParam, "name");
1830
 
1831
+ $useFor = UniteFunctionsUC::getVal($listingParam, "use_for");
1832
+ $isForGallery = ($useFor == "gallery");
1833
 
1834
+ //set text prefix
1835
+ $textPrefix = __("Items ","unlimited-elements-for-elementor");
1836
+ if($isForGallery == true)
1837
+ $textPrefix = __("Gallery ","unlimited-elements-for-elementor");
1838
+
1839
 
1840
+ //add post section
1841
+ $this->start_controls_section(
1842
+ 'uc_section_listing_posts_query', array(
1843
+ 'label' => $textPrefix.__("Posts Query", "unlimited-elements-for-elementor"),
1844
+ 'condition'=>array($name."_source"=>"posts")
1845
+ )
1846
+ );
1847
+
1848
+
1849
+ $postParam = $listingParam;
1850
+
1851
+ $postParam["type"] = UniteCreatorDialogParam::PARAM_POSTS_LIST;
1852
+ $postParam["name"] = $name."_posts";
1853
+
1854
+ $this->addElementorParamUC($postParam);
1855
+
1856
+
1857
+ $this->end_controls_section();
1858
+
1859
+ //add term section
1860
+ /*
1861
+ $this->start_controls_section(
1862
+ 'uc_section_listing_terms_query', array(
1863
+ 'label' => __("Terms Query", "unlimited-elements-for-elementor"),
1864
+ 'condition'=>array($name."_source"=>"terms")
1865
+ )
1866
+ );
1867
+
1868
+ $termsParam = $listingParam;
1869
+
1870
+ $termsParam["type"] = UniteCreatorDialogParam::PARAM_POST_TERMS;
1871
+ $termsParam["name"] = $name."_terms";
1872
+
1873
+ $this->addElementorParamUC($termsParam);
1874
+
1875
+ $this->end_controls_section();
1876
+ */
1877
+
1878
  }
1879
 
1880
+
1881
  /**
1882
  * register controls with not consolidated addon
1883
  */
1988
  $labelPosts = esc_html__("Products Query", "unlimited-elements-for-elementor");
1989
  else
1990
  $labelPosts = esc_html__("Posts Query", "unlimited-elements-for-elementor");
1991
+
1992
  $this->start_controls_section(
1993
  'section_query', array(
1994
  'label' => $labelPosts,
1995
  )
1996
  );
1997
+
1998
  $this->addElementorParamUC($postListParam);
1999
 
2000
  $this->end_controls_section();
2001
  }
2002
+
2003
+ if($hasListing == true){
2004
+ $this->putListingSections($listingParam);
2005
+ }
2006
 
2007
  //add no attributes section
2008
  if($isNoSettings == true){
2034
  if($isFontsEnabled == true)
2035
  $this->addFontControlsUC();
2036
 
2037
+
2038
  //add pagination section if needed
2039
+ if($hasPostsList == true){
2040
+ $this->addPaginationControls($postListParam);
2041
+
2042
+ }if($hasListing == true){
2043
+
2044
+ $enablePagination = UniteFunctionsUC::getVal($listingParam, "enable_pagination");
2045
+ $enablePagination = UniteFunctionsUC::strToBool($enablePagination);
2046
+
2047
+ if($enablePagination == true)
2048
+ $this->addPaginationControls($listingParam);
2049
+ }
2050
+
2051
+
2052
+ $showMore = false;
2053
+ if($hasPostsList == true || $hasListing == true)
2054
+ $showMore = true;
2055
+
2056
  //add debug controls
2057
+ $this->addAdvancedSectionControls($showMore, $isItemsEnabled);
2058
 
2059
  }
2060
 
2835
  */
2836
  private function getExtraWidgetHTML_pagination($arrValues, UniteCreatorAddon $objAddon){
2837
 
2838
+ $isPaginationExists = false;
2839
+
2840
+ //----------- by post
2841
+
2842
  $arrPostListParam = $objAddon->getParamByType(UniteCreatorDialogParam::PARAM_POSTS_LIST);
2843
+
2844
+ if(!empty($arrPostListParam)){
2845
+ $isPaginationExists = true;
2846
+ $postListName = UniteFunctionsUC::getVal($arrPostListParam, "name");
2847
+ }
2848
+
2849
+ //----- by listing
2850
+
2851
+ $arrListingParam = $objAddon->getParamByType(UniteCreatorDialogParam::PARAM_LISTING);
2852
+
2853
+ if(!empty($arrListingParam)){
2854
+
2855
+ $enablePagination = UniteFunctionsUC::getVal($arrListingParam, "enable_pagination");
2856
+ $enablePagination = UniteFunctionsUC::strToBool($enablePagination);
2857
+
2858
+ if($enablePagination == true){
2859
+ $isPaginationExists = true;
2860
+ $name = UniteFunctionsUC::getVal($arrListingParam, "name");
2861
+ $postListName = "{$name}_posts";
2862
+ }
2863
+
2864
+ }
2865
+
2866
+ if($isPaginationExists == false)
2867
  return("");
2868
+
2869
+ //----------- check by type
2870
+
2871
  $paginationType = UniteFunctionsUC::getVal($arrValues, "pagination_type");
2872
 
2873
  if(empty($paginationType))
2915
  }
2916
 
2917
  $arrValues = $this->getSettingsValuesUC();
2918
+
2919
  HelperUC::addDebug("widget values", $arrValues);
2920
 
2921
  $arrFonts = $this->getArrFonts($arrValues);
2937
 
2938
  $arrMainParamValues = $this->getArrMainParamValuesUC($arrValues, $objAddon);
2939
 
2940
+
2941
  $arrPostListParam = $objAddon->getParamByType(UniteCreatorDialogParam::PARAM_POSTS_LIST);
2942
  if(!empty($arrPostListParam)){
2943
 
2949
 
2950
  //check if inside editor
2951
  $isEditMode = $this->isEditMode();
2952
+
2953
  $objAddon->setParamsValues($arrMainParamValues);
2954
  $objAddon->setArrFonts($arrFonts);
2955
+
2956
  if($hasItems == true)
2957
  $objAddon->setArrItems($arrItems);
2958
 
provider/core/plugins/unlimited_elements/elementor/pagination.class.php CHANGED
@@ -16,11 +16,18 @@ class UniteCreatorElementorPagination{
16
  /**
17
  * add content controls
18
  */
19
- private function addElementorControls_content($widget){
20
 
 
 
 
 
 
 
 
21
  $widget->start_controls_section(
22
  'section_pagination', array(
23
- 'label' => esc_html__("Posts Pagination", "unlimited-elements-for-elementor"),
24
  )
25
  );
26
 
@@ -48,92 +55,28 @@ class UniteCreatorElementorPagination{
48
  ]
49
  );
50
 
51
- /*
52
- $widget->add_control(
53
- 'pagination_page_limit',
54
- [
55
- 'label' => __( 'Page Limit', "unlimited-elements-for-elementor"),
56
- 'default' => '5',
57
- 'condition' => [
58
- 'pagination_type!' => '',
59
- ],
60
- ]
61
- );
62
-
63
- $widget->add_control(
64
- 'pagination_numbers_shorten',
65
- [
66
- 'label' => __( 'Shorten', "unlimited-elements-for-elementor"),
67
- 'type' => \Elementor\Controls_Manager::SWITCHER,
68
- 'default' => '',
69
- 'condition' => [
70
- 'pagination_type' => [
71
- 'numbers',
72
- 'numbers_and_prev_next',
73
- ],
74
- ],
75
- ]
76
- );
77
-
78
- $widget->add_control(
79
- 'pagination_prev_label',
80
- [
81
- 'label' => __( 'Previous Label', "unlimited-elements-for-elementor"),
82
- 'default' => __( '&laquo; Previous', "unlimited-elements-for-elementor"),
83
- 'condition' => [
84
- 'pagination_type' => [
85
- 'prev_next',
86
- 'numbers_and_prev_next',
87
- ],
88
- ],
89
- ]
90
- );
91
-
92
- $widget->add_control(
93
- 'pagination_next_label',
94
- [
95
- 'label' => __( 'Next Label', "unlimited-elements-for-elementor"),
96
- 'default' => __( 'Next &raquo;', "unlimited-elements-for-elementor"),
97
- 'condition' => [
98
- 'pagination_type' => [
99
- 'prev_next',
100
- 'numbers_and_prev_next',
101
- ],
102
- ],
103
- ]
104
- );
105
 
106
-
107
- $widget->add_control(
108
- 'pagination_align',
109
- [
110
- 'label' => __( 'Alignment', "unlimited-elements-for-elementor"),
111
- 'type' => \Elementor\Controls_Manager::CHOOSE,
112
- 'options' => [
113
- 'left' => [
114
- 'title' => __( 'Left', "unlimited-elements-for-elementor"),
115
- 'icon' => 'fa fa-align-left',
116
- ],
117
- 'center' => [
118
- 'title' => __( 'Center', "unlimited-elements-for-elementor"),
119
- 'icon' => 'fa fa-align-center',
120
- ],
121
- 'right' => [
122
- 'title' => __( 'Right', "unlimited-elements-for-elementor"),
123
- 'icon' => 'fa fa-align-right',
124
  ],
125
- ],
126
- 'default' => 'center',
127
- 'selectors' => [
128
- '{{WRAPPER}} .uc-posts-pagination' => 'text-align: {{VALUE}};',
129
- ],
130
- 'condition' => [
131
- 'pagination_type!' => '',
132
- ],
133
- ]
134
- );
135
- */
136
-
137
 
138
  $widget->end_controls_section();
139
  }
@@ -269,9 +212,9 @@ class UniteCreatorElementorPagination{
269
  /**
270
  * add elementor controls
271
  */
272
- public function addElementorSectionControls($widget){
273
 
274
- $this->addElementorControls_content($widget);
275
 
276
  //$this->addElementorControls_styles($widget);
277
 
16
  /**
17
  * add content controls
18
  */
19
+ private function addElementorControls_content($widget,$postListParam){
20
 
21
+ $isFilterable = UniteFunctionsUC::getVal($postListParam, "is_filterable");
22
+ $isFilterable = UniteFunctionsUC::strToBool($isFilterable);
23
+
24
+ $textSection = esc_html__("Posts Pagination", "unlimited-elements-for-elementor");
25
+ if($isFilterable == true)
26
+ $textSection = esc_html__("Posts Pagination and Filter", "unlimited-elements-for-elementor");
27
+
28
  $widget->start_controls_section(
29
  'section_pagination', array(
30
+ 'label' => $textSection,
31
  )
32
  );
33
 
55
  ]
56
  );
57
 
58
+ //add filter enabled controls
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
 
60
+ if($isFilterable == true){
61
+
62
+ $paramName = UniteFunctionsUC::getVal($postListParam, "name");
63
+
64
+ $widget->add_control(
65
+ $paramName.'_filterable',
66
+ [
67
+ 'label' => __( 'Filterable', "unlimited-elements-for-elementor"),
68
+ 'type' => \Elementor\Controls_Manager::SELECT,
69
+ 'default' => '',
70
+ 'options' => [
71
+ '' => __( 'None', "unlimited-elements-for-elementor"),
72
+ 'using_widget' => __( 'Using Post Filters Widgets', "unlimited-elements-for-elementor"),
 
 
 
 
 
73
  ],
74
+ ]
75
+ );
76
+
77
+
78
+ }
79
+
 
 
 
 
 
 
80
 
81
  $widget->end_controls_section();
82
  }
212
  /**
213
  * add elementor controls
214
  */
215
+ public function addElementorSectionControls($widget, $postListParam = null){
216
 
217
+ $this->addElementorControls_content($widget,$postListParam);
218
 
219
  //$this->addElementorControls_styles($widget);
220
 
provider/core/plugins/unlimited_elements/globals.class.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net / Valiano
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
@@ -67,9 +67,6 @@ class GlobalsUnlimitedElements{
67
 
68
  self::$urlTemplatesList = admin_url("edit.php?post_type=elementor_library&tabs_group=library");
69
 
70
- if(Globalsuc::$inDev == true)
71
- self::$enableCPT = true;
72
-
73
 
74
  }
75
 
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com / Valiano
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
67
 
68
  self::$urlTemplatesList = admin_url("edit.php?post_type=elementor_library&tabs_group=library");
69
 
 
 
 
70
 
71
  }
72
 
provider/core/plugins/unlimited_elements/helper_provider_core.class.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net / Valiano
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
@@ -287,6 +287,144 @@ class HelperProviderCoreUC_EL{
287
  return($arrAnimationsNew);
288
  }
289
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
290
 
291
  /**
292
  * global init
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com / Valiano
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
287
  return($arrAnimationsNew);
288
  }
289
 
290
+ /**
291
+ * get terms picker control
292
+ */
293
+ public static function getElementorControl_TermsPickerControl($label,$description = null, $condition = null){
294
+
295
+ $arrControl = array();
296
+ $arrControl["type"] = "uc_select_special";
297
+ $arrControl["label"] = $label;
298
+ $arrControl["default"] = "";
299
+ $arrControl["options"] = array();
300
+ $arrControl["label_block"] = true;
301
+
302
+ $placeholder = "All--Terms";
303
+
304
+ $loaderText = __("Loading Data...", "unlimited-elements-for-elementor");
305
+ $loaderText = UniteFunctionsUC::encodeContent($loaderText);
306
+
307
+ $arrControl["placeholder"] = "All--Terms";
308
+
309
+ if(!empty($description))
310
+ $arrControl["description"] = $description;
311
+
312
+ if(!empty($condition))
313
+ $arrControl["condition"] = $condition;
314
+
315
+ $addParams = " data-settingtype=post_ids data-datatype=terms data-placeholdertext={$placeholder} data-loadertext=$loaderText data-taxonomyname=taxonomy_taxonomy class=unite-setting-special-select";
316
+
317
+ $arrControl["addparams"] = $addParams;
318
+
319
+ return($arrControl);
320
+ }
321
+
322
+ private static function ______LISTING________(){}
323
+
324
+ /**
325
+ * get listing item title
326
+ */
327
+ private static function getListingItemTitle($type, $item){
328
+
329
+ switch($type){
330
+ case "post":
331
+ $title = $item->post_title;
332
+ break;
333
+ case "term":
334
+ $title = $item->name;
335
+ break;
336
+ default:
337
+ $title = "item";
338
+ break;
339
+ }
340
+
341
+ return($title);
342
+ }
343
+
344
+ /**
345
+ * put elementor template
346
+ */
347
+ public static function putElementorTemplate($templateID){
348
+
349
+ if(empty($templateID) || is_numeric($templateID) == false)
350
+ return(false);
351
+
352
+ $output = \Elementor\Plugin::instance()->frontend->get_builder_content_for_display( $templateID );
353
+ echo $output;
354
+
355
+ }
356
+
357
+
358
+ /**
359
+ * put the post listing template
360
+ */
361
+ public static function putListingItemTemplate_post($post, $templateID){
362
+
363
+ if(empty($templateID))
364
+ return(false);
365
+
366
+ global $wp_query;
367
+
368
+ $originalPost = $GLOBALS['post'];
369
+
370
+ //backup the original querified object
371
+ $originalQueriedObject = $wp_query->queried_object;
372
+ $originalQueriedObjectID = $wp_query->queried_object_id;
373
+
374
+ $postID = $post->ID;
375
+
376
+ //set the post qieried object
377
+
378
+ $wp_query->queried_object = $post;
379
+ $wp_query->queried_object_id = $postID;
380
+
381
+ $GLOBALS['post'] = $post;
382
+
383
+ self::putElementorTemplate($templateID);
384
+
385
+ //restore the original queried object
386
+ $wp_query->queried_object = $originalQueriedObject;
387
+ $wp_query->queried_object_id = $originalQueriedObjectID;
388
+ $GLOBALS['post'] = $originalPost;
389
+
390
+
391
+ }
392
+
393
+ /**
394
+ * put listing loop
395
+ */
396
+ public static function putListingItemTemplate($item, $templateID){
397
+
398
+ //set type
399
+
400
+ $type = null;
401
+
402
+ if($item instanceof WP_Post)
403
+ $type = "post";
404
+ else if($item instanceof WP_Term)
405
+ $type = "term";
406
+
407
+ if(empty($type)){
408
+ dmp("wrong listing type, can't output");
409
+ return(false);
410
+ }
411
+
412
+
413
+ if(empty($templateID)){
414
+
415
+ $title = self::getListingItemTitle($type, $item);
416
+
417
+ dmp("$type - $title - no template id");
418
+ return(false);
419
+ }
420
+
421
+ //template output
422
+ if($type == "post")
423
+ self::putListingItemTemplate_post($item, $templateID);
424
+ else
425
+ echo "output term";
426
+
427
+ }
428
 
429
  /**
430
  * global init
provider/core/plugins/unlimited_elements/plugin.php CHANGED
@@ -60,7 +60,7 @@ class UnlimitedElementsPluginUC extends UniteCreatorPluginBase{
60
  * run front
61
  */
62
  public function runFront(){
63
-
64
  $this->includeCommonFiles();
65
  $this->runCommonActions();
66
 
@@ -86,6 +86,8 @@ class UnlimitedElementsPluginUC extends UniteCreatorPluginBase{
86
  require_once $this->pathPlugin . 'helper_provider_core.class.php';
87
  require_once $this->pathPlugin . 'elementor/elementor_integrate.class.php';
88
  require_once $this->pathPlugin . 'elementor/pagination.class.php';
 
 
89
 
90
  if(is_admin()){
91
  require_once $this->pathPlugin . 'elementor/elementor_layout_exporter.class.php';
60
  * run front
61
  */
62
  public function runFront(){
63
+
64
  $this->includeCommonFiles();
65
  $this->runCommonActions();
66
 
86
  require_once $this->pathPlugin . 'helper_provider_core.class.php';
87
  require_once $this->pathPlugin . 'elementor/elementor_integrate.class.php';
88
  require_once $this->pathPlugin . 'elementor/pagination.class.php';
89
+ require_once $this->pathPlugin . "elementor/elementor_dynamic_visibility.class.php";
90
+ require_once $this->pathPlugin . "copy_paste.class.php";
91
 
92
  if(is_admin()){
93
  require_once $this->pathPlugin . 'elementor/elementor_layout_exporter.class.php';
provider/core/plugins/unlimited_elements/provider_core_front.class.php CHANGED
@@ -5,7 +5,8 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
5
 
6
  class UniteProviderCoreFrontUC_Elementor extends UniteProviderFrontUC{
7
 
8
-
 
9
 
10
  /**
11
  *
@@ -15,6 +16,12 @@ class UniteProviderCoreFrontUC_Elementor extends UniteProviderFrontUC{
15
 
16
  HelperProviderCoreUC_EL::globalInit();
17
 
 
 
 
 
 
 
18
  /*
19
  $disableFilters = HelperProviderCoreUC_EL::getGeneralSetting("disable_autop_filters");
20
  $disableFilters = UniteFunctionsUC::strToBool($disableFilters);
5
 
6
  class UniteProviderCoreFrontUC_Elementor extends UniteProviderFrontUC{
7
 
8
+ private $objFiltersProcess;
9
+
10
 
11
  /**
12
  *
16
 
17
  HelperProviderCoreUC_EL::globalInit();
18
 
19
+ //run front filters process
20
+
21
+ $this->objFiltersProcess = new UniteCreatorFiltersProcess();
22
+ $this->objFiltersProcess->initWPFrontFilters();
23
+
24
+
25
  /*
26
  $disableFilters = HelperProviderCoreUC_EL::getGeneralSetting("disable_autop_filters");
27
  $disableFilters = UniteFunctionsUC::strToBool($disableFilters);
provider/core/plugins/unlimited_elements/settings/general_settings_el.xml CHANGED
@@ -75,6 +75,14 @@
75
  label=" Show &quot;Edit HTML&quot; Button in Widget Settings"
76
  description="Show &quot;Edit HTML&quot; button in elementor panel widget settings">
77
  </field>
 
 
 
 
 
 
 
 
78
 
79
  <field type="bulk_control_end"/>
80
 
@@ -134,7 +142,38 @@
134
  </field>
135
 
136
  </fieldset>
 
 
 
 
 
 
 
 
 
 
 
 
 
137
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
138
  <fieldset name="troubleshooting" label="Troubleshooting">
139
 
140
  <field name="memory_limit_text"
75
  label=" Show &quot;Edit HTML&quot; Button in Widget Settings"
76
  description="Show &quot;Edit HTML&quot; button in elementor panel widget settings">
77
  </field>
78
+
79
+ <field name="enable_dynamic_visibility"
80
+ type="boolean"
81
+ default="false"
82
+ label=" Enable Dynamic Visibility"
83
+ hidden="true"
84
+ description="">
85
+ </field>
86
 
87
  <field type="bulk_control_end"/>
88
 
142
  </field>
143
 
144
  </fieldset>
145
+ <fieldset name="integrations" label="Integrations">
146
+
147
+ <field name="google_map_heading"
148
+ type="statictext"
149
+ label="&lt;b&gt;---- Google Maps ----&lt;/b&gt;">
150
+ </field>
151
+
152
+ <field name="google_map_key"
153
+ type="text"
154
+ label="Google Map API Key"
155
+ description="Used to output a map in google maps related widget"
156
+ default="">
157
+ </field>
158
 
159
+ </fieldset>
160
+ <fieldset name="copy_paste_mode" label="Copy Paste Mode" visibility="dev">
161
+
162
+ <field name="copy_mode_enable_copy"
163
+ type="boolean"
164
+ default="false"
165
+ label=" Enable Copy"
166
+ description="">
167
+ </field>
168
+
169
+ <field name="copy_mode_enable_paste"
170
+ type="boolean"
171
+ default="false"
172
+ label=" Enable Paste"
173
+ description="">
174
+ </field>
175
+
176
+ </fieldset>
177
  <fieldset name="troubleshooting" label="Troubleshooting">
178
 
179
  <field name="memory_limit_text"
provider/core/plugins/unlimited_elements/views/licenseelementor.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
provider/core/plugins/unlimited_elements/views/settingselementor.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -42,6 +42,10 @@ class UniteCreatorViewElementorSettings extends UniteCreatorSettingsView{
42
 
43
  $objSettings = $this->modifyConsolidateAddonsSetting($objSettings);
44
 
 
 
 
 
45
  return($objSettings);
46
  }
47
 
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
42
 
43
  $objSettings = $this->modifyConsolidateAddonsSetting($objSettings);
44
 
45
+ //show the setting that was hidden in first place
46
+ if(GlobalsUC::$inDev == true)
47
+ $objSettings->updateSettingProperty("enable_dynamic_visibility", "hidden", "false");
48
+
49
  return($objSettings);
50
  }
51
 
provider/functions_wordpress.class.php CHANGED
@@ -10,6 +10,7 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
10
  private static $db;
11
  private static $objAcfIntegrate;
12
  private static $cacheTermCustomFields = array();
 
13
 
14
  private static $arrTaxCache;
15
  private static $arrUrlThumbCache = array();
@@ -344,6 +345,34 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
344
 
345
  public static function a_______TAXANOMIES_______(){}
346
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
347
  /**
348
  * get term by slug
349
  */
@@ -678,6 +707,43 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
678
  return($arrTaxNew);
679
  }
680
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
681
 
682
  public static function a_________CATEGORIES_AND_TAGS___________(){}
683
 
@@ -1430,9 +1496,23 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1430
 
1431
  //add the search item
1432
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1433
  $arrSearchItem = array();
1434
  $arrSearchItem["taxonomy"] = $taxName;
1435
- $arrSearchItem["field"] = "id";
1436
  $arrSearchItem["terms"] = $catID;
1437
  $arrSearchItem["include_children"] = $isIncludeChildren;
1438
 
@@ -1529,11 +1609,11 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1529
  * get posts arguments by filters
1530
  * filters: search, category, category_relation, posttype, orderby, limit
1531
  */
1532
- public static function getPostsArgs($filters){
1533
 
1534
  $args = array();
1535
 
1536
- $category = UniteFunctionsUC::getVal($filters, "category");
1537
  $categoryRelation = UniteFunctionsUC::getVal($filters, "category_relation");
1538
  $categoryIncludeChildren = UniteFunctionsUC::getVal($filters, "category_include_children");
1539
 
@@ -1544,6 +1624,13 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1544
 
1545
  $arrTax = self::getPosts_getTaxQuery($category, $categoryRelation, $categoryIncludeChildren, $excludeCategory, $categoryExcludeChildren);
1546
 
 
 
 
 
 
 
 
1547
  $search = UniteFunctionsUC::getVal($filters, "search");
1548
  if(!empty($search))
1549
  $args["s"] = $search;
@@ -1612,7 +1699,7 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1612
  public static function getPosts($filters){
1613
 
1614
  $args = self::getPostsArgs($filters);
1615
-
1616
  $arrPosts = get_posts($args);
1617
 
1618
  if(empty($arrPosts))
10
  private static $db;
11
  private static $objAcfIntegrate;
12
  private static $cacheTermCustomFields = array();
13
+ private static $cacheTermParents = array();
14
 
15
  private static $arrTaxCache;
16
  private static $arrUrlThumbCache = array();
345
 
346
  public static function a_______TAXANOMIES_______(){}
347
 
348
+ /**
349
+ * get term parent ids, including current term id
350
+ */
351
+ public static function getTermParentIDs($objTerm){
352
+
353
+ $currentTermID = $objTerm->term_id;
354
+
355
+ $cacheKey = "term_".$currentTermID;
356
+
357
+ if(isset(self::$cacheTermParents[$cacheKey]))
358
+ return(self::$cacheTermParents[$cacheKey]);
359
+
360
+ $arrCurrentIDs = array($currentTermID);
361
+
362
+ if(!isset($objTerm->parent) || $objTerm->parent === 0){
363
+ self::$cacheTermParents[$cacheKey] = $arrCurrentIDs;
364
+ return($arrCurrentIDs);
365
+ }
366
+
367
+ $parents = get_ancestors( $currentTermID, $objTerm->taxonomy, 'taxonomy' );
368
+ if(!empty($parents))
369
+ $arrCurrentIDs = array_merge($arrCurrentIDs, $parents);
370
+
371
+ self::$cacheTermParents[$cacheKey] = $arrCurrentIDs;
372
+
373
+ return($arrCurrentIDs);
374
+ }
375
+
376
  /**
377
  * get term by slug
378
  */
707
  return($arrTaxNew);
708
  }
709
 
710
+ /**
711
+ * update terms counts (indexes)
712
+ */
713
+ public static function updateTermsIndexes(){
714
+
715
+ $db = HelperUC::getDB();
716
+
717
+ $tableTerms = GlobalsUC::$table_prefix."term_taxonomy";
718
+
719
+ $arrTerms = $db->fetch($tableTerms);
720
+
721
+ $arrTax = array();
722
+
723
+ foreach($arrTerms as $term){
724
+
725
+ $termID = UniteFunctionsUC::getVal($term, "term_id");
726
+ $taxonomy = UniteFunctionsUC::getVal($term, "taxonomy");
727
+
728
+ if(strpos($taxonomy, "translation_") !== false)
729
+ continue;
730
+
731
+ if(strpos($taxonomy, "elementor_") !== false)
732
+ continue;
733
+
734
+ if(!isset($arrTax[$taxonomy]))
735
+ $arrTax[$taxonomy] = array();
736
+
737
+ $arrTax[$taxonomy][] = $termID;
738
+ }
739
+
740
+ //do the update count
741
+ foreach($arrTax as $taxonomy=>$arrTerms){
742
+ @wp_update_term_count_now( $arrTerms, $taxonomy);
743
+ }
744
+
745
+ }
746
+
747
 
748
  public static function a_________CATEGORIES_AND_TAGS___________(){}
749
 
1496
 
1497
  //add the search item
1498
 
1499
+ $field = "id";
1500
+ if(is_numeric($catID) == false)
1501
+ $field = "slug";
1502
+
1503
+ //check for special chars
1504
+
1505
+ $lastChar = substr($catID, -1);
1506
+ switch($lastChar){
1507
+ case "*": //force include children
1508
+ $isIncludeChildren = true;
1509
+ $catID = substr($catID, 0, -1); //remove last char
1510
+ break;
1511
+ }
1512
+
1513
  $arrSearchItem = array();
1514
  $arrSearchItem["taxonomy"] = $taxName;
1515
+ $arrSearchItem["field"] = $field;
1516
  $arrSearchItem["terms"] = $catID;
1517
  $arrSearchItem["include_children"] = $isIncludeChildren;
1518
 
1609
  * get posts arguments by filters
1610
  * filters: search, category, category_relation, posttype, orderby, limit
1611
  */
1612
+ public static function getPostsArgs($filters, $isTaxonly = false){
1613
 
1614
  $args = array();
1615
 
1616
+ $category = UniteFunctionsUC::getVal($filters, "category");
1617
  $categoryRelation = UniteFunctionsUC::getVal($filters, "category_relation");
1618
  $categoryIncludeChildren = UniteFunctionsUC::getVal($filters, "category_include_children");
1619
 
1624
 
1625
  $arrTax = self::getPosts_getTaxQuery($category, $categoryRelation, $categoryIncludeChildren, $excludeCategory, $categoryExcludeChildren);
1626
 
1627
+ if($isTaxonly === true){
1628
+ if(!empty($arrTax))
1629
+ $args["tax_query"] = $arrTax;
1630
+ return($args);
1631
+ }
1632
+
1633
+
1634
  $search = UniteFunctionsUC::getVal($filters, "search");
1635
  if(!empty($search))
1636
  $args["s"] = $search;
1699
  public static function getPosts($filters){
1700
 
1701
  $args = self::getPostsArgs($filters);
1702
+
1703
  $arrPosts = get_posts($args);
1704
 
1705
  if(empty($arrPosts))
provider/provider_actions.class.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
provider/provider_admin.class.php CHANGED
@@ -208,9 +208,10 @@ defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
208
  * add ajax back end callback, on some action to some function.
209
  */
210
  protected function addActionAjax($ajaxAction, $eventFunction){
211
-
212
  $this->addAction('wp_ajax_'.GlobalsUC::PLUGIN_NAME."_".$ajaxAction, $eventFunction, true);
213
  $this->addAction('wp_ajax_nopriv_'.GlobalsUC::PLUGIN_NAME."_".$ajaxAction, $eventFunction, true);
 
214
  }
215
 
216
 
208
  * add ajax back end callback, on some action to some function.
209
  */
210
  protected function addActionAjax($ajaxAction, $eventFunction){
211
+
212
  $this->addAction('wp_ajax_'.GlobalsUC::PLUGIN_NAME."_".$ajaxAction, $eventFunction, true);
213
  $this->addAction('wp_ajax_nopriv_'.GlobalsUC::PLUGIN_NAME."_".$ajaxAction, $eventFunction, true);
214
+
215
  }
216
 
217
 
provider/provider_browser.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
provider/provider_categories.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
provider/provider_client_text.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
provider/provider_dialog_param.class.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
@@ -43,10 +43,7 @@ class UniteCreatorDialogParam extends UniteCreatorDialogParamWork{
43
  $this->arrParams[] = self::PARAM_WOO_CATS;
44
  $this->arrParams[] = self::PARAM_USERS;
45
  $this->arrParams[] = self::PARAM_TEMPLATE;
46
-
47
- if(GlobalsUC::$inDev == true)
48
- $this->arrParams[] = self::PARAM_LISTING;
49
-
50
  $this->arrParams[] = self::PARAM_TYPOGRAPHY;
51
  $this->arrParams[] = self::PARAM_MARGINS;
52
  $this->arrParams[] = self::PARAM_PADDING;
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
43
  $this->arrParams[] = self::PARAM_WOO_CATS;
44
  $this->arrParams[] = self::PARAM_USERS;
45
  $this->arrParams[] = self::PARAM_TEMPLATE;
46
+ $this->arrParams[] = self::PARAM_LISTING;
 
 
 
47
  $this->arrParams[] = self::PARAM_TYPOGRAPHY;
48
  $this->arrParams[] = self::PARAM_MARGINS;
49
  $this->arrParams[] = self::PARAM_PADDING;
provider/provider_front.class.php CHANGED
@@ -74,6 +74,7 @@ class UniteProviderFrontUC{
74
 
75
  }
76
 
 
77
 
78
  }
79
 
74
 
75
  }
76
 
77
+
78
 
79
  }
80
 
provider/provider_functions.class.php CHANGED
@@ -22,6 +22,8 @@ class UniteProviderFunctionsUC{
22
  $tablePrefix = $wpdb->prefix;
23
 
24
  self::$tablePrefix = $tablePrefix;
 
 
25
  self::$tablePosts = $tablePrefix."posts";
26
  self::$tablePostMeta = $tablePrefix."postmeta";
27
 
@@ -215,7 +217,7 @@ class UniteProviderFunctionsUC{
215
  $version = UNLIMITED_ELEMENTS_VERSION;
216
  if(GlobalsUC::$inDev == true)
217
  $version = time();
218
-
219
  wp_register_script($handle , $url, $deps, $version, $inFooter);
220
  wp_enqueue_script($handle);
221
  }
@@ -516,6 +518,9 @@ class UniteProviderFunctionsUC{
516
 
517
  $data["uc_lang"] = $activeLanguage;
518
  }
 
 
 
519
 
520
  return($data);
521
  }
22
  $tablePrefix = $wpdb->prefix;
23
 
24
  self::$tablePrefix = $tablePrefix;
25
+ GlobalsUC::$table_prefix = $tablePrefix;
26
+
27
  self::$tablePosts = $tablePrefix."posts";
28
  self::$tablePostMeta = $tablePrefix."postmeta";
29
 
217
  $version = UNLIMITED_ELEMENTS_VERSION;
218
  if(GlobalsUC::$inDev == true)
219
  $version = time();
220
+
221
  wp_register_script($handle , $url, $deps, $version, $inFooter);
222
  wp_enqueue_script($handle);
223
  }
518
 
519
  $data["uc_lang"] = $activeLanguage;
520
  }
521
+
522
+ $isInsideEditor = UniteCreatorElementorIntegrate::$isEditMode;
523
+ $data["uc_inside_editor"] = $isInsideEditor?"yes":"no";
524
 
525
  return($data);
526
  }
provider/provider_globals.class.php CHANGED
@@ -41,6 +41,16 @@ class GlobalsProviderUC{
41
  "elementor_icons"
42
  );
43
 
 
 
 
 
 
 
 
 
 
 
44
  const POST_ADDITION_CUSTOMFIELDS = "customfields";
45
  const POST_ADDITION_CATEGORY = "category";
46
  const POST_ADDITION_WOO = "woo";
41
  "elementor_icons"
42
  );
43
 
44
+ public static $arrAttrConstantKeys = array( //keys of constants that are added to the attributes
45
+ "uc_serial",
46
+ "uc_id",
47
+ "uc_assets_url",
48
+ "uc_url_home",
49
+ "uc_url_blog",
50
+ "uc_lang",
51
+ "uc_num_items"
52
+ );
53
+
54
  const POST_ADDITION_CUSTOMFIELDS = "customfields";
55
  const POST_ADDITION_CATEGORY = "category";
56
  const POST_ADDITION_WOO = "woo";
provider/provider_helper.class.php CHANGED
@@ -57,6 +57,8 @@ class HelperProviderUC{
57
  "month"=>__("Past Month","unlimited-elements-for-elementor"),
58
  "three_months"=>__("Past 3 Months","unlimited-elements-for-elementor"),
59
  "year"=>__("Past Year","unlimited-elements-for-elementor"),
 
 
60
  "custom"=>__("Custom","unlimited-elements-for-elementor")
61
  );
62
 
@@ -181,7 +183,7 @@ class HelperProviderUC{
181
  * modify memory limit setting
182
  */
183
  public static function modifyGeneralSettings_memoryLimit($objSettings){
184
-
185
  //modify memory limit
186
 
187
  $memoryLimit = ini_get('memory_limit');
57
  "month"=>__("Past Month","unlimited-elements-for-elementor"),
58
  "three_months"=>__("Past 3 Months","unlimited-elements-for-elementor"),
59
  "year"=>__("Past Year","unlimited-elements-for-elementor"),
60
+ "this_month"=>__("This Month","unlimited-elements-for-elementor"),
61
+ "next_month"=>__("Next Month","unlimited-elements-for-elementor"),
62
  "custom"=>__("Custom","unlimited-elements-for-elementor")
63
  );
64
 
183
  * modify memory limit setting
184
  */
185
  public static function modifyGeneralSettings_memoryLimit($objSettings){
186
+
187
  //modify memory limit
188
 
189
  $memoryLimit = ini_get('memory_limit');
provider/provider_layout.class.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  /**
4
  * @package Unlimited Elements
5
- * @author UniteCMS.net
6
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
7
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
8
  * */
2
 
3
  /**
4
  * @package Unlimited Elements
5
+ * @author unlimited-elements.com
6
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
7
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
8
  * */
provider/provider_layout_output.class.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
provider/provider_layouts.class.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
provider/provider_layouts_exporter.class.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
provider/provider_manager_addons.class.php CHANGED
@@ -2,8 +2,8 @@
2
 
3
  /**
4
  * @package Unlimited Elements
5
- * @author UniteCMS.net
6
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
7
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
8
  * */
9
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
2
 
3
  /**
4
  * @package Unlimited Elements
5
+ * @author unlimited-elements.com
6
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
7
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
8
  * */
9
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
provider/provider_operations.class.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
@@ -271,4 +271,5 @@ class ProviderOperationsUC extends UCOperations{
271
  }
272
 
273
 
 
274
  }
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
271
  }
272
 
273
 
274
+
275
  }
provider/provider_output.class.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
provider/provider_params_processor.class.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
@@ -51,7 +51,7 @@ class UniteCreatorParamsProcessor extends UniteCreatorParamsProcessorWork{
51
  /**
52
  * add other image thumbs based of the platform
53
  */
54
- protected function addOtherImageThumbs($data, $name, $imageID){
55
 
56
  if(empty($data))
57
  $data = array();
@@ -65,14 +65,14 @@ class UniteCreatorParamsProcessor extends UniteCreatorParamsProcessorWork{
65
  $metaData = wp_get_attachment_metadata($imageID);
66
  $imageWidth = UniteFunctionsUC::getVal($metaData, "width");
67
  $imageHeight = UniteFunctionsUC::getVal($metaData, "height");
68
-
69
- $urlFull = UniteFunctionsWPUC::getUrlAttachmentImage($imageID);
70
 
 
 
71
  $data["{$name}_width"] = $imageWidth;
72
  $data["{$name}_height"] = $imageHeight;
73
 
74
  $metaSizes = UniteFunctionsUC::getVal($metaData, "sizes");
75
-
76
  foreach($arrSizes as $size => $sizeTitle){
77
 
78
  if(empty($size))
@@ -81,6 +81,9 @@ class UniteCreatorParamsProcessor extends UniteCreatorParamsProcessorWork{
81
  if($size == "full")
82
  continue;
83
 
 
 
 
84
  //change the hypen to underscore
85
  $thumbName = $name."_thumb_".$size;
86
  if($size == "medium")
@@ -492,6 +495,24 @@ class UniteCreatorParamsProcessor extends UniteCreatorParamsProcessorWork{
492
  return($arrCategory);
493
  }
494
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
495
 
496
  /**
497
  * get post data
@@ -548,16 +569,8 @@ class UniteCreatorParamsProcessor extends UniteCreatorParamsProcessorWork{
548
  $arrData = $arrData + $arrWooData;
549
  }
550
 
551
- $featuredImageID = UniteFunctionsWPUC::getFeaturedImageID($postID);
552
 
553
- //try to get featured image from content
554
- if(empty($featuredImageID)){
555
-
556
- $imageID = UniteFunctionsWPUC::getFirstImageIDFromContent($content);
557
-
558
- if(!empty($imageID))
559
- $featuredImageID = $imageID;
560
- }
561
 
562
  if(!empty($featuredImageID)){
563
 
@@ -734,20 +747,30 @@ class UniteCreatorParamsProcessor extends UniteCreatorParamsProcessorWork{
734
  * get date query
735
  */
736
  private function getPostListData_dateQuery($value, $name){
737
-
738
  $dateString = UniteFunctionsUC::getVal($value, "{$name}_includeby_date");
739
-
740
  if($dateString == "all")
741
  return(array());
742
-
 
 
 
743
  $arrDateQuery = array();
744
-
 
745
  $after = "";
746
  $before = "";
 
 
 
 
 
747
 
748
  switch($dateString){
749
  case "today":
750
  $after = "-1 day";
 
751
  break;
752
  case "yesterday":
753
  $after = "-2 day";
@@ -764,10 +787,38 @@ class UniteCreatorParamsProcessor extends UniteCreatorParamsProcessorWork{
764
  case "year":
765
  $after = "-1 year";
766
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
767
  case "custom":
768
 
769
  $before = UniteFunctionsUC::getVal($value, "{$name}_include_date_before");
770
-
771
  $after = UniteFunctionsUC::getVal($value, "{$name}_include_date_after");
772
 
773
  if(!empty($before) || !empty($after))
@@ -776,13 +827,53 @@ class UniteCreatorParamsProcessor extends UniteCreatorParamsProcessorWork{
776
  break;
777
  }
778
 
779
- if(!empty($before))
780
- $arrDateQuery["before"] = $before;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
781
 
782
- if(!empty($after))
783
- $arrDateQuery["after"] = $after;
784
 
785
- return($arrDateQuery);
 
 
 
 
 
 
 
786
  }
787
 
788
 
@@ -813,6 +904,14 @@ class UniteCreatorParamsProcessor extends UniteCreatorParamsProcessorWork{
813
  $isForWoo = UniteFunctionsUC::getVal($param, "for_woocommerce_products");
814
  $isForWoo = UniteFunctionsUC::strToBool($isForWoo);
815
 
 
 
 
 
 
 
 
 
816
  $isRelatedPosts = $source == "related";
817
  if(is_single() == false)
818
  $isRelatedPosts = false;
@@ -820,7 +919,8 @@ class UniteCreatorParamsProcessor extends UniteCreatorParamsProcessorWork{
820
  $arrMetaQuery = array();
821
 
822
  $getRelatedProducts = false;
823
-
 
824
  //get post type
825
  $postType = UniteFunctionsUC::getVal($value, "{$name}_posttype", "post");
826
  if($isForWoo)
@@ -1005,9 +1105,12 @@ class UniteCreatorParamsProcessor extends UniteCreatorParamsProcessorWork{
1005
 
1006
  $filters = $this->getPostListData_addOrderBy($filters, $value, $name);
1007
 
1008
- if(GlobalsUC::$inDev == true)
1009
- $filters = $this->getPostListData_getPostGetFilters_filters($filters);
1010
-
 
 
 
1011
  //add debug for further use
1012
  HelperUC::addDebug("Post Filters", $filters);
1013
 
@@ -1128,10 +1231,17 @@ class UniteCreatorParamsProcessor extends UniteCreatorParamsProcessorWork{
1128
  break;
1129
  case "date":
1130
 
1131
- $arrDateQuery = $this->getPostListData_dateQuery($value, $name);
 
1132
 
1133
  if(!empty($arrDateQuery))
1134
  $args["date_query"] = $arrDateQuery;
 
 
 
 
 
 
1135
  break;
1136
  case "parent":
1137
 
@@ -1547,11 +1657,393 @@ class UniteCreatorParamsProcessor extends UniteCreatorParamsProcessorWork{
1547
  if($showDebugQuery == true){
1548
  dmp("Found Posts: ".count($arrPosts));
1549
  }
1550
-
1551
  return($arrPosts);
1552
 
1553
  }
1554
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1555
 
1556
  /**
1557
  * get post list data
@@ -1559,7 +2051,7 @@ class UniteCreatorParamsProcessor extends UniteCreatorParamsProcessorWork{
1559
  private function getPostListData($value, $name, $processType, $param, $data){
1560
 
1561
  if($processType != self::PROCESS_TYPE_OUTPUT && $processType != self::PROCESS_TYPE_OUTPUT_BACK)
1562
- return(null);
1563
 
1564
  HelperUC::addDebug("getPostList values", $value);
1565
  HelperUC::addDebug("getPostList param", $param);
@@ -1617,25 +2109,39 @@ class UniteCreatorParamsProcessor extends UniteCreatorParamsProcessorWork{
1617
  $imageSize = UniteFunctionsUC::getVal($value, "{$name}_imagesize","medium_large");
1618
  $arrImageSizes["desktop"] = $imageSize;
1619
  }
 
 
 
 
 
 
 
 
 
 
 
1620
 
1621
  //prepare listing output. no items prepare for the listing
1622
 
1623
  $useForListing = UniteFunctionsUC::getVal($param, "use_for_listing");
1624
  $useForListing = UniteFunctionsUC::strToBool($useForListing);
1625
-
1626
  if($useForListing == true){
1627
- $arrData = $arrPosts;
1628
- return($arrData);
 
 
1629
  }
1630
-
1631
  $arrData = array();
1632
  foreach($arrPosts as $post){
1633
 
1634
  $arrData[] = $this->getPostDataByObj($post, $arrPostAdditions, $arrImageSizes);
1635
  }
1636
 
 
1637
 
1638
- return($arrData);
1639
  }
1640
 
1641
  protected function z_______________FILTERS____________(){}
@@ -2247,16 +2753,19 @@ class UniteCreatorParamsProcessor extends UniteCreatorParamsProcessorWork{
2247
  /**
2248
  * get template data
2249
  */
2250
- private function getElementorTemplateData($value, $name, $processType, $param){
2251
-
2252
  $templateID = UniteFunctionsUC::getVal($value, $name."_templateid");
2253
 
2254
  if(empty($templateID))
2255
- return("");
2256
 
2257
  $shortcode = "[elementor-template id=\"$templateID\"]";
2258
 
2259
- return($shortcode);
 
 
 
2260
  }
2261
 
2262
  protected function z_______________GET_PARAMS____________(){}
@@ -2274,7 +2783,10 @@ class UniteCreatorParamsProcessor extends UniteCreatorParamsProcessorWork{
2274
  //special params
2275
  switch($type){
2276
  case UniteCreatorDialogParam::PARAM_POSTS_LIST:
2277
- $data[$name] = $this->getPostListData($value, $name, $processType, $param, $data);
 
 
 
2278
  break;
2279
  case UniteCreatorDialogParam::PARAM_POST_TERMS:
2280
  $data[$name] = $this->getWPTermsData($value, $name, $processType, $param);
@@ -2286,7 +2798,7 @@ class UniteCreatorParamsProcessor extends UniteCreatorParamsProcessorWork{
2286
  $data[$name] = $this->getWPUsersData($value, $name, $processType, $param);
2287
  break;
2288
  case UniteCreatorDialogParam::PARAM_TEMPLATE:
2289
- $data[$name] = $this->getElementorTemplateData($value, $name, $processType, $param);
2290
  break;
2291
  default:
2292
  $data = parent::getProcessedParamData($data, $value, $param, $processType);
@@ -2328,6 +2840,7 @@ class UniteCreatorParamsProcessor extends UniteCreatorParamsProcessorWork{
2328
 
2329
  switch($paramType){
2330
  case UniteCreatorDialogParam::PARAM_POSTS_LIST:
 
2331
  case UniteCreatorDialogParam::PARAM_POST_TERMS:
2332
  case UniteCreatorDialogParam::PARAM_WOO_CATS:
2333
  case UniteCreatorDialogParam::PARAM_USERS:
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
51
  /**
52
  * add other image thumbs based of the platform
53
  */
54
+ protected function addOtherImageThumbs($data, $name, $imageID, $filterSizes = null){
55
 
56
  if(empty($data))
57
  $data = array();
65
  $metaData = wp_get_attachment_metadata($imageID);
66
  $imageWidth = UniteFunctionsUC::getVal($metaData, "width");
67
  $imageHeight = UniteFunctionsUC::getVal($metaData, "height");
 
 
68
 
69
+ $urlFull = UniteFunctionsWPUC::getUrlAttachmentImage($imageID);
70
+
71
  $data["{$name}_width"] = $imageWidth;
72
  $data["{$name}_height"] = $imageHeight;
73
 
74
  $metaSizes = UniteFunctionsUC::getVal($metaData, "sizes");
75
+
76
  foreach($arrSizes as $size => $sizeTitle){
77
 
78
  if(empty($size))
81
  if($size == "full")
82
  continue;
83
 
84
+ if(!empty($filterSizes) && array_search($size, $filterSizes) === false)
85
+ continue;
86
+
87
  //change the hypen to underscore
88
  $thumbName = $name."_thumb_".$size;
89
  if($size == "medium")
495
  return($arrCategory);
496
  }
497
 
498
+ /**
499
+ * get post featured images id
500
+ */
501
+ private function getPostFeaturedImageID($postID, $content){
502
+
503
+ $featuredImageID = UniteFunctionsWPUC::getFeaturedImageID($postID);
504
+
505
+ //try to get featured image from content
506
+ if(empty($featuredImageID)){
507
+
508
+ $imageID = UniteFunctionsWPUC::getFirstImageIDFromContent($content);
509
+
510
+ if(!empty($imageID))
511
+ $featuredImageID = $imageID;
512
+ }
513
+
514
+ return($featuredImageID);
515
+ }
516
 
517
  /**
518
  * get post data
569
  $arrData = $arrData + $arrWooData;
570
  }
571
 
 
572
 
573
+ $featuredImageID = $this->getPostFeaturedImageID($postID, $content);
 
 
 
 
 
 
 
574
 
575
  if(!empty($featuredImageID)){
576
 
747
  * get date query
748
  */
749
  private function getPostListData_dateQuery($value, $name){
750
+
751
  $dateString = UniteFunctionsUC::getVal($value, "{$name}_includeby_date");
752
+
753
  if($dateString == "all")
754
  return(array());
755
+
756
+ $metaField = UniteFunctionsUC::getVal($value, "{$name}_include_date_meta");
757
+ $metaField = trim($metaField);
758
+
759
  $arrDateQuery = array();
760
+ $arrMetaQuery = array();
761
+
762
  $after = "";
763
  $before = "";
764
+ $year = "";
765
+ $month = "";
766
+
767
+ $afterMeta = null;
768
+ $beforeMeta = null;
769
 
770
  switch($dateString){
771
  case "today":
772
  $after = "-1 day";
773
+
774
  break;
775
  case "yesterday":
776
  $after = "-2 day";
787
  case "year":
788
  $after = "-1 year";
789
  break;
790
+ case "this_month":
791
+
792
+ if(!empty($metaField)){
793
+
794
+ $afterMeta = date('Ym01');
795
+ $beforeMeta = date('Ymt');
796
+
797
+ }else{
798
+ $year = $date("Y");
799
+ $month = date("m");
800
+ }
801
+
802
+ break;
803
+ case "next_month":
804
+
805
+ if(!empty($metaField)){
806
+
807
+ $afterMeta = date('Ymd',strtotime('first day of +1 month'));
808
+ $beforeMeta = date('Ymd',strtotime('last day of +1 month'));
809
+ }else{
810
+
811
+ $time = strtotime('first day of +1 month');
812
+
813
+ $year = date("Y",$time);
814
+ $month = date("m",$time);
815
+ }
816
+
817
+ break;
818
  case "custom":
819
 
820
  $before = UniteFunctionsUC::getVal($value, "{$name}_include_date_before");
821
+
822
  $after = UniteFunctionsUC::getVal($value, "{$name}_include_date_after");
823
 
824
  if(!empty($before) || !empty($after))
827
  break;
828
  }
829
 
830
+ if(!empty($metaField)){
831
+
832
+ if(!empty($after) && empty($afterMeta)){
833
+ $afterMeta = date("Ymd", strtotime($after));
834
+ }
835
+
836
+ if(!empty($afterMeta))
837
+ $arrMetaQuery[] = array(
838
+ 'key' => $metaField,
839
+ 'compare' => '>=',
840
+ 'value' => $afterMeta
841
+ );
842
+
843
+ if(!empty($before) && empty($beforeMeta))
844
+ $beforeMeta = date("Ymd", strtotime($before));
845
+
846
+ if(!empty($beforeMeta))
847
+ $arrMetaQuery[] = array(
848
+ 'key' => $metaField,
849
+ 'compare' => '<=',
850
+ 'value' => $beforeMeta
851
+ );
852
+
853
+ }else{
854
+ if(!empty($before))
855
+ $arrDateQuery["before"] = $before;
856
+
857
+ if(!empty($after))
858
+ $arrDateQuery["after"] = $after;
859
+
860
+ if(!empty($year))
861
+ $arrDateQuery["year"] = $year;
862
+
863
+ if(!empty($month))
864
+ $arrDateQuery["month"] = $month;
865
+
866
+ }
867
 
 
 
868
 
869
+ $response = array();
870
+ if(!empty($arrDateQuery))
871
+ $response["date_query"] = $arrDateQuery;
872
+
873
+ if(!empty($arrMetaQuery))
874
+ $response["meta_query"] = $arrMetaQuery;
875
+
876
+ return($response);
877
  }
878
 
879
 
904
  $isForWoo = UniteFunctionsUC::getVal($param, "for_woocommerce_products");
905
  $isForWoo = UniteFunctionsUC::strToBool($isForWoo);
906
 
907
+ //set if use get/post filters
908
+ $isFilterable = false;
909
+
910
+ $filterableOption = UniteFunctionsUC::getVal($value, $name."_filterable");
911
+ if($filterableOption == "using_widget")
912
+ $isFilterable = true;
913
+
914
+
915
  $isRelatedPosts = $source == "related";
916
  if(is_single() == false)
917
  $isRelatedPosts = false;
919
  $arrMetaQuery = array();
920
 
921
  $getRelatedProducts = false;
922
+
923
+
924
  //get post type
925
  $postType = UniteFunctionsUC::getVal($value, "{$name}_posttype", "post");
926
  if($isForWoo)
1105
 
1106
  $filters = $this->getPostListData_addOrderBy($filters, $value, $name);
1107
 
1108
+ if(GlobalsUC::$inDev == true){
1109
+
1110
+ if($isFilterable == true)
1111
+ $filters = $this->getPostListData_getPostGetFilters_filters($filters);
1112
+ }
1113
+
1114
  //add debug for further use
1115
  HelperUC::addDebug("Post Filters", $filters);
1116
 
1231
  break;
1232
  case "date":
1233
 
1234
+ $response = $this->getPostListData_dateQuery($value, $name);
1235
+ $arrDateQuery = UniteFunctionsUC::getVal($response, "date_query");
1236
 
1237
  if(!empty($arrDateQuery))
1238
  $args["date_query"] = $arrDateQuery;
1239
+
1240
+ $arrDateMetaQuery = UniteFunctionsUC::getVal($response, "meta_query");
1241
+ if(!empty($arrDateMetaQuery))
1242
+
1243
+ $arrMetaQuery = array_merge($arrMetaQuery, $arrDateMetaQuery);
1244
+
1245
  break;
1246
  case "parent":
1247
 
1657
  if($showDebugQuery == true){
1658
  dmp("Found Posts: ".count($arrPosts));
1659
  }
1660
+
1661
  return($arrPosts);
1662
 
1663
  }
1664
 
1665
+ protected function z_______________LISTING_GALLERY____________(){}
1666
+
1667
+ /**
1668
+ * get gallery item title
1669
+ */
1670
+ private function getGalleryItem_title($source, $data, $name, $post){
1671
+
1672
+ switch($source){
1673
+ case "post_title":
1674
+ $title = $post->post_title;
1675
+ break;
1676
+ case "post_excerpt":
1677
+ $title = $post->post_excerpt;
1678
+ break;
1679
+ case "post_content":
1680
+ $title = $post->post_content;
1681
+ break;
1682
+ case "image_title":
1683
+ $title = UniteFunctionsUC::getVal($data, $name."_title");
1684
+ break;
1685
+ case "image_alt":
1686
+ $title = UniteFunctionsUC::getVal($data, $name."_alt");
1687
+ break;
1688
+ case "image_caption":
1689
+ $title = UniteFunctionsUC::getVal($data, $name."_caption");
1690
+ break;
1691
+ case "image_description":
1692
+ $title = UniteFunctionsUC::getVal($data, $name."_description");
1693
+ break;
1694
+ default:
1695
+ case "image_auto":
1696
+
1697
+ $title = UniteFunctionsUC::getVal($data, $name."_title");
1698
+
1699
+ if(empty($title))
1700
+ $title = UniteFunctionsUC::getVal($data, $name."_caption");
1701
+
1702
+ if(empty($title))
1703
+ $title = UniteFunctionsUC::getVal($data, $name."_alt");
1704
+
1705
+ break;
1706
+ }
1707
+
1708
+ return($title);
1709
+ }
1710
+
1711
+
1712
+ /**
1713
+ * get gallery item
1714
+ */
1715
+ private function getGalleryItem($id, $url = null, $arrParams = null){
1716
+
1717
+ $data = array();
1718
+
1719
+ $arrFilters = UniteFunctionsUC::getVal($arrParams, "size_filters");
1720
+
1721
+ $thumbSize = UniteFunctionsUC::getVal($arrParams, "thumb_size");
1722
+ $imageSize = UniteFunctionsUC::getVal($arrParams, "image_size");
1723
+
1724
+ $titleSource = UniteFunctionsUC::getVal($arrParams, "title_source");
1725
+ $descriptionSource = UniteFunctionsUC::getVal($arrParams, "description_source");
1726
+ $post = UniteFunctionsUC::getVal($arrParams, "post");
1727
+
1728
+
1729
+ $name = "image";
1730
+
1731
+ $param = array();
1732
+ $param["name"] = $name;
1733
+ $param["size_filters"] = $arrFilters;
1734
+ $param["no_attributes"] = true;
1735
+
1736
+ //no extra data needed
1737
+ if( strpos($titleSource,"post_") !== false && strpos($descriptionSource, "pots_") !== false)
1738
+ $param["no_image_data"] = true;
1739
+
1740
+ $value = $id;
1741
+ if(empty($value))
1742
+ $value = $url;
1743
+
1744
+ if(empty($value))
1745
+ return(array());
1746
+
1747
+ $data = $this->getProcessedParamsValue_image($data, $value, $param);
1748
+
1749
+ $arrItem = array();
1750
+ $keyThumb = "{$name}_thumb_$thumbSize";
1751
+ $keyImage = "{$name}_thumb_$imageSize";
1752
+
1753
+ if(!isset($data[$keyThumb]))
1754
+ $keyThumb = $name;
1755
+
1756
+ if(!isset($data[$keyImage]))
1757
+ $keyImage = $name;
1758
+
1759
+ $item = array();
1760
+ $item["image"] = UniteFunctionsUC::getVal($data, $keyImage);
1761
+ $item["thumb"] = UniteFunctionsUC::getVal($data, $keyThumb);
1762
+
1763
+ $item["image_width"] = UniteFunctionsUC::getVal($data, $keyImage."_width");
1764
+ $item["image_height"] = UniteFunctionsUC::getVal($data, $keyImage."_height");
1765
+
1766
+ $item["thumb_width"] = UniteFunctionsUC::getVal($data, $keyThumb."_width");
1767
+ $item["thumb_height"] = UniteFunctionsUC::getVal($data, $keyThumb."_height");
1768
+
1769
+ $title = $this->getGalleryItem_title($titleSource, $data, $name, $post);
1770
+ $description = $this->getGalleryItem_title($descriptionSource, $data, $name, $post);
1771
+
1772
+ $item["title"] = $title;
1773
+ $item["description"] = $description;
1774
+ $item["imageid"] = $id;
1775
+
1776
+ return($item);
1777
+ }
1778
+
1779
+
1780
+ /**
1781
+ * convert grouped data for gallery
1782
+ * return the images data at the end
1783
+ */
1784
+ private function getGroupedData_convertForGallery($arrItems, $source, $value, $param){
1785
+
1786
+ $name = UniteFunctionsUC::getVal($param, "name");
1787
+
1788
+ $thumbSize = UniteFunctionsUC::getVal($value, $name."_thumb_size");
1789
+ $imageSize = UniteFunctionsUC::getVal($value, $name."_image_size");
1790
+
1791
+ $arrFilters = array();
1792
+ if(!empty($thumbSize))
1793
+ $arrFilters[] = $thumbSize;
1794
+
1795
+ if(!empty($imageSize))
1796
+ $arrFilters[] = $imageSize;
1797
+
1798
+ $params = array();
1799
+ $params["thumb_size"] = $thumbSize;
1800
+ $params["image_size"] = $imageSize;
1801
+ $params["size_filters"] = $arrFilters;
1802
+
1803
+
1804
+ //set title and description source
1805
+
1806
+ $titleSource = null;
1807
+ $descriptionSource = null;
1808
+
1809
+ switch($source){
1810
+ case "posts":
1811
+
1812
+ $titleSource = UniteFunctionsUC::getVal($value, $name."_title_source_post");
1813
+ $descriptionSource = UniteFunctionsUC::getVal($value, $name."_description_source_post");
1814
+
1815
+ break;
1816
+ case "gallery":
1817
+ $titleSource = UniteFunctionsUC::getVal($value, $name."_title_source_gallery");
1818
+ $descriptionSource = UniteFunctionsUC::getVal($value, $name."_description_source_gallery");
1819
+ break;
1820
+ }
1821
+
1822
+ $params["title_source"] = $titleSource;
1823
+ $params["description_source"] = $descriptionSource;
1824
+
1825
+
1826
+ $output = array();
1827
+ foreach($arrItems as $item){
1828
+
1829
+ switch($source){
1830
+ case "posts":
1831
+
1832
+ $postID = $item->ID;
1833
+ $content = $item->post_content;
1834
+
1835
+ $featuredImageID = $this->getPostFeaturedImageID($postID, $content);
1836
+
1837
+ $params["post"] = $item;
1838
+
1839
+ $galleryItem = $this->getGalleryItem($featuredImageID,null,$params);
1840
+
1841
+ $galleryItem["postid"] = $postID;
1842
+
1843
+ break;
1844
+ case "gallery":
1845
+
1846
+ $id = UniteFunctionsUC::getVal($item, "id");
1847
+ $url = UniteFunctionsUC::getVal($item, "url");
1848
+
1849
+ $galleryItem = $this->getGalleryItem($id, $url,$params);
1850
+
1851
+ break;
1852
+ case "current_post_meta":
1853
+
1854
+ //item is ID
1855
+ $galleryItem = $this->getGalleryItem($item,null,$params);
1856
+
1857
+ break;
1858
+ default:
1859
+ UniteFunctionsUC::throwError("group gallery error: unknown type: $source");
1860
+ break;
1861
+ }
1862
+
1863
+ if(!empty($galleryItem))
1864
+ $output[] = $galleryItem;
1865
+
1866
+
1867
+ }
1868
+
1869
+
1870
+ return($output);
1871
+ }
1872
+
1873
+ /**
1874
+ * get image ids from meta key
1875
+ */
1876
+ private function getGroupedData_getArrImageIDsFromMeta($value, $name){
1877
+
1878
+ if(is_single() == false)
1879
+ return(array());
1880
+
1881
+ $post = get_post();
1882
+ if(empty($post))
1883
+ return(array());
1884
+
1885
+ $postID = $post->ID;
1886
+
1887
+ $isShowMeta = UniteFunctionsUC::getVal($value, $name."_show_metafields");
1888
+ $isShowMeta = UniteFunctionsUC::strToBool($isShowMeta);
1889
+
1890
+ $arrMeta = array();
1891
+
1892
+ //--- output debug
1893
+ if($isShowMeta == true){
1894
+
1895
+ $arrMeta = UniteFunctionsWPUC::getPostMeta($postID);
1896
+
1897
+ $arrMetaDebug = UniteFunctionsUC::modifyDataArrayForShow($arrMeta);
1898
+
1899
+ dmp("<b>Debug Post Meta</b>, please turn it off on release");
1900
+ dmp($arrMetaDebug);
1901
+ }
1902
+
1903
+ //get meta key:
1904
+
1905
+ $metaKey = UniteFunctionsUC::getVal($value, $name."_current_metakey");
1906
+
1907
+ if(empty($metaKey)){
1908
+
1909
+ if($isShowMeta == true)
1910
+ dmp("empty meta key, please set it");
1911
+
1912
+ return(array());
1913
+ }
1914
+
1915
+ $metaValues = get_post_meta($postID, $metaKey, true);
1916
+
1917
+ if(empty($metaValues)){
1918
+
1919
+ if($isShowMeta)
1920
+ dmp("no value for this meta key: $metaKey");
1921
+
1922
+ return(array());
1923
+ }
1924
+
1925
+ if(is_array($metaValues))
1926
+ return(false);
1927
+
1928
+ $arrValues = explode(",", $metaValues);
1929
+
1930
+ $arrIDs = array();
1931
+ foreach($arrValues as $value){
1932
+ $value = trim($value);
1933
+ if(is_numeric($value) == false)
1934
+ continue;
1935
+
1936
+ $arrIDs[] = $value;
1937
+ }
1938
+
1939
+ return($arrIDs);
1940
+ }
1941
+
1942
+
1943
+ /**
1944
+ * get listing data
1945
+ */
1946
+ private function getListingData($value, $name, $processType, $param, $data){
1947
+
1948
+ if($processType != self::PROCESS_TYPE_OUTPUT && $processType != self::PROCESS_TYPE_OUTPUT_BACK)
1949
+ return($data);
1950
+
1951
+ $useFor = UniteFunctionsUC::getVal($param, "use_for");
1952
+ $isForGallery = ($useFor == "gallery");
1953
+
1954
+ $source = UniteFunctionsUC::getVal($value, $name."_source");
1955
+
1956
+ $templateID = UniteFunctionsUC::getVal($value, $name."_template_templateid");
1957
+
1958
+ $data[$name."_source"] = $source;
1959
+ $data[$name."_templateid"] = $templateID;
1960
+
1961
+ unset($data[$name]);
1962
+
1963
+ switch($source){
1964
+ case "posts":
1965
+
1966
+ $paramPosts = $param;
1967
+
1968
+ $paramPosts["name"] = $paramPosts["name"]."_posts";
1969
+ $paramPosts["name_listing"] = $name;
1970
+ $paramPosts["use_for_listing"] = true;
1971
+
1972
+ $data = $this->getPostListData($value, $paramPosts["name"], $processType, $paramPosts, $data);
1973
+
1974
+ break;
1975
+ case "terms":
1976
+
1977
+ dmp("get terms");
1978
+ $data[$name."_items"] = array();
1979
+
1980
+ break;
1981
+ case "gallery":
1982
+
1983
+ $data[$name."_items"] = UniteFunctionsUC::getVal($value, $name."_gallery");
1984
+
1985
+ break;
1986
+ case "current_post_meta": //meta field with image id's
1987
+
1988
+ $data[$name."_items"] = $this->getGroupedData_getArrImageIDsFromMeta($value, $name);
1989
+
1990
+ break;
1991
+ default:
1992
+ UniteFunctionsUC::throwError("Wrong listing source: $source");
1993
+ break;
1994
+ }
1995
+
1996
+ if($isForGallery == true){
1997
+
1998
+ $arrItems = $data[$name."_items"];
1999
+
2000
+ $data[$name."_items"] = $this->getGroupedData_convertForGallery($arrItems, $source, $value, $param);
2001
+
2002
+ return($data);
2003
+ }
2004
+
2005
+ //modify items output
2006
+ $arrItems = UniteFunctionsUC::getVal($data, $name."_items");
2007
+
2008
+ if(empty($arrItems))
2009
+ $arrItems = array();
2010
+
2011
+ //convert listing items
2012
+
2013
+ foreach($arrItems as $index => $item){
2014
+
2015
+ $numItem = $index+1;
2016
+
2017
+ switch($source){
2018
+ case "posts":
2019
+ $title = $item->post_title;
2020
+
2021
+ $newItem = array(
2022
+ "index"=>$numItem,
2023
+ "title"=>$title,
2024
+ "object"=>$item
2025
+ );
2026
+ break;
2027
+ case "terms":
2028
+ break;
2029
+ case "gallery":
2030
+ continue(2);
2031
+ break;
2032
+ default:
2033
+ $key = $index++;
2034
+ $title = "item_{$index}";
2035
+ break;
2036
+ }
2037
+
2038
+ $arrItems[$index] = $newItem;
2039
+ }
2040
+
2041
+ $data[$name."_items"] = $arrItems;
2042
+
2043
+ return($data);
2044
+ }
2045
+
2046
+
2047
 
2048
  /**
2049
  * get post list data
2051
  private function getPostListData($value, $name, $processType, $param, $data){
2052
 
2053
  if($processType != self::PROCESS_TYPE_OUTPUT && $processType != self::PROCESS_TYPE_OUTPUT_BACK)
2054
+ return($data);
2055
 
2056
  HelperUC::addDebug("getPostList values", $value);
2057
  HelperUC::addDebug("getPostList param", $param);
2109
  $imageSize = UniteFunctionsUC::getVal($value, "{$name}_imagesize","medium_large");
2110
  $arrImageSizes["desktop"] = $imageSize;
2111
  }
2112
+
2113
+ //add filterable params like uc_listing_addclass, uc_listing_attributes
2114
+
2115
+ $isFilterable = UniteFunctionsUC::getVal($value, $name."_filterable");
2116
+ $isFilterable = ($isFilterable == "using_widget");
2117
+
2118
+ if($isFilterable == true){
2119
+
2120
+ $objFilters = new UniteCreatorFiltersProcess();
2121
+ $data = $objFilters->addWidgetFilterableVariables($data);
2122
+ }
2123
 
2124
  //prepare listing output. no items prepare for the listing
2125
 
2126
  $useForListing = UniteFunctionsUC::getVal($param, "use_for_listing");
2127
  $useForListing = UniteFunctionsUC::strToBool($useForListing);
2128
+
2129
  if($useForListing == true){
2130
+ $nameListing = UniteFunctionsUC::getVal($param, "name_listing");
2131
+
2132
+ $data[$nameListing."_items"] = $arrPosts;
2133
+ return($data);
2134
  }
2135
+
2136
  $arrData = array();
2137
  foreach($arrPosts as $post){
2138
 
2139
  $arrData[] = $this->getPostDataByObj($post, $arrPostAdditions, $arrImageSizes);
2140
  }
2141
 
2142
+ $data[$name] = $arrData;
2143
 
2144
+ return($data);
2145
  }
2146
 
2147
  protected function z_______________FILTERS____________(){}
2753
  /**
2754
  * get template data
2755
  */
2756
+ private function getElementorTemplateData($value, $name, $processType, $param, $data){
2757
+
2758
  $templateID = UniteFunctionsUC::getVal($value, $name."_templateid");
2759
 
2760
  if(empty($templateID))
2761
+ return($data);
2762
 
2763
  $shortcode = "[elementor-template id=\"$templateID\"]";
2764
 
2765
+ $data[$name] = $shortcode;
2766
+ $data[$name."_templateid"] = $templateID;
2767
+
2768
+ return($data);
2769
  }
2770
 
2771
  protected function z_______________GET_PARAMS____________(){}
2783
  //special params
2784
  switch($type){
2785
  case UniteCreatorDialogParam::PARAM_POSTS_LIST:
2786
+ $data = $this->getPostListData($value, $name, $processType, $param, $data);
2787
+ break;
2788
+ case UniteCreatorDialogParam::PARAM_LISTING:
2789
+ $data = $this->getListingData($value, $name, $processType, $param, $data);
2790
  break;
2791
  case UniteCreatorDialogParam::PARAM_POST_TERMS:
2792
  $data[$name] = $this->getWPTermsData($value, $name, $processType, $param);
2798
  $data[$name] = $this->getWPUsersData($value, $name, $processType, $param);
2799
  break;
2800
  case UniteCreatorDialogParam::PARAM_TEMPLATE:
2801
+ $data = $this->getElementorTemplateData($value, $name, $processType, $param, $data);
2802
  break;
2803
  default:
2804
  $data = parent::getProcessedParamData($data, $value, $param, $processType);
2840
 
2841
  switch($paramType){
2842
  case UniteCreatorDialogParam::PARAM_POSTS_LIST:
2843
+ case UniteCreatorDialogParam::PARAM_LISTING:
2844
  case UniteCreatorDialogParam::PARAM_POST_TERMS:
2845
  case UniteCreatorDialogParam::PARAM_WOO_CATS:
2846
  case UniteCreatorDialogParam::PARAM_USERS:
provider/provider_settings.class.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
@@ -248,7 +248,7 @@ class UniteCreatorSettings extends UniteCreatorSettingsWork{
248
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
249
  $params["elementor_condition"] = $arrConditionCustom;
250
 
251
- $this->addHr("hr_before_max", $params);
252
 
253
  //---- max items -----
254
 
@@ -265,7 +265,7 @@ class UniteCreatorSettings extends UniteCreatorSettingsWork{
265
  $params = array();
266
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
267
 
268
- $this->addHr("hr_before_orderby", $params);
269
 
270
  //---- orderby -----
271
 
@@ -292,7 +292,7 @@ class UniteCreatorSettings extends UniteCreatorSettingsWork{
292
  $params = array();
293
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
294
 
295
- $this->addHr("hr_before_metakeys", $params);
296
 
297
  //---- meta keys addition -----
298
 
@@ -310,7 +310,7 @@ class UniteCreatorSettings extends UniteCreatorSettingsWork{
310
  $params = array();
311
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
312
 
313
- $this->addHr("hr_before_debug", $params);
314
 
315
  //---- show debug -----
316
 
@@ -363,7 +363,6 @@ class UniteCreatorSettings extends UniteCreatorSettingsWork{
363
  */
364
  protected function addPostTermsPicker($name, $value, $title, $extra){
365
 
366
-
367
  $isForWooCommerce = UniteFunctionsUC::getVal($extra, "for_woocommerce");
368
  $isForWooCommerce = UniteFunctionsUC::strToBool($isForWooCommerce);
369
 
@@ -494,7 +493,7 @@ class UniteCreatorSettings extends UniteCreatorSettingsWork{
494
  $addAttrib = "data-taxonomyname='{$name}_taxonomy'";
495
 
496
  $this->addPostIDSelect($name."_include_specific", __("Select Specific Terms", "unlimited-elements-for-elementor"), $elementorCondition, "terms", $addAttrib, $params);
497
-
498
  // --------- add terms parents -------------
499
 
500
  $params = array();
@@ -532,7 +531,7 @@ class UniteCreatorSettings extends UniteCreatorSettingsWork{
532
 
533
  $params = array();
534
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
535
- $this->addHr("after_include_by",$params);
536
 
537
  // --------- add exclude by -------------
538
 
@@ -973,39 +972,6 @@ class UniteCreatorSettings extends UniteCreatorSettingsWork{
973
 
974
  }
975
 
976
- /**
977
- * add advanced query controls for post selection
978
- */
979
- public function postSelection_addTaxQuery($objControls, $param){
980
-
981
- $name = UniteFunctionsUC::getVal($param, "name");
982
- $title = UniteFunctionsUC::getVal($param, "title");
983
-
984
- $repeater = new \Elementor\Repeater();
985
-
986
- $repeater->add_control(
987
- 'list_title', [
988
- 'label' => __( 'Title', 'unlimited-elements-for-elementor' ),
989
- 'type' => \Elementor\Controls_Manager::TEXT,
990
- 'default' => __( 'List Title' , 'unlimited-elements-for-elementor' ),
991
- 'label_block' => true,
992
- ]
993
- );
994
-
995
- $objControls->add_control(
996
- $name,
997
- [
998
- 'label' => $title,
999
- 'type' => \Elementor\Controls_Manager::REPEATER,
1000
- 'fields' => $repeater->get_controls(),
1001
- 'default' => [],
1002
- 'title_field' => '{{{ list_title }}}',
1003
- ]
1004
- );
1005
-
1006
-
1007
-
1008
- }
1009
 
1010
  /**
1011
  * add post list picker
@@ -1212,7 +1178,7 @@ class UniteCreatorSettings extends UniteCreatorSettingsWork{
1212
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
1213
  $params["elementor_condition"] = $arrCustomOnlyCondition;
1214
 
1215
- $this->addHr("post_before_include",$params);
1216
 
1217
  // --------- Include BY some options -------------
1218
 
@@ -1266,7 +1232,7 @@ class UniteCreatorSettings extends UniteCreatorSettingsWork{
1266
 
1267
  $params["elementor_condition"] = $arrConditionIncludeBy;
1268
 
1269
- $this->addHr("after_include_by",$params);
1270
 
1271
  //---- Include By Author -----
1272
 
@@ -1302,6 +1268,15 @@ class UniteCreatorSettings extends UniteCreatorSettingsWork{
1302
 
1303
  $this->addSelect($name."_includeby_date", $arrDates, __("Include By Date", "unlimited-elements-for-elementor"), "all", $params);
1304
 
 
 
 
 
 
 
 
 
 
1305
  //----- add date before and after -------
1306
 
1307
  $params = array();
@@ -1325,7 +1300,7 @@ class UniteCreatorSettings extends UniteCreatorSettingsWork{
1325
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
1326
  $params["elementor_condition"] = $arrConditionIncludeByDate;
1327
 
1328
- $this->addHr("hr_after_date",$params);
1329
 
1330
  //---- Include By Post Parent -----
1331
 
@@ -1473,7 +1448,7 @@ class UniteCreatorSettings extends UniteCreatorSettingsWork{
1473
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
1474
  $params["elementor_condition"] = $arrCustomOnlyCondition;
1475
 
1476
- $this->addHr("before_categories",$params);
1477
 
1478
 
1479
  //----- add categories -------
@@ -1553,7 +1528,7 @@ class UniteCreatorSettings extends UniteCreatorSettingsWork{
1553
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
1554
  $params["elementor_condition"] = $arrCustomOnlyCondition;
1555
 
1556
- $this->addHr("before_exclude_by",$params);
1557
 
1558
 
1559
  // --------- add exclude by -------------
@@ -1652,7 +1627,7 @@ class UniteCreatorSettings extends UniteCreatorSettingsWork{
1652
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
1653
  $params["elementor_condition"] = $arrNotManualElementorCondition;
1654
 
1655
- $this->addHr("post_after_exclude",$params);
1656
 
1657
  //------- Post Status --------
1658
 
@@ -1693,7 +1668,7 @@ class UniteCreatorSettings extends UniteCreatorSettingsWork{
1693
  $params = array();
1694
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
1695
 
1696
- $this->addHr("hr_before_orderby",$params);
1697
 
1698
 
1699
  //----- orderby --------
@@ -1748,7 +1723,7 @@ class UniteCreatorSettings extends UniteCreatorSettingsWork{
1748
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
1749
 
1750
 
1751
- $this->addHr("hr_after_order_dir", $params);
1752
 
1753
 
1754
  //---- query id -----
@@ -1799,15 +1774,260 @@ class UniteCreatorSettings extends UniteCreatorSettingsWork{
1799
  }
1800
 
1801
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1802
  /**
1803
  * add listing picker, function for override
1804
  */
1805
- protected function addListingPicker($name,$value,$title,$extra){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1806
 
 
 
 
 
 
1807
  $params = array();
1808
  $params["origtype"] = UniteCreatorDialogParam::PARAM_TEXTFIELD;
1809
 
1810
- $this->addTextBox($name."_type", "listing", "put listing here", $params);
 
1811
 
1812
 
1813
  }
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
248
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
249
  $params["elementor_condition"] = $arrConditionCustom;
250
 
251
+ $this->addHr($name."_hr_before_max", $params);
252
 
253
  //---- max items -----
254
 
265
  $params = array();
266
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
267
 
268
+ $this->addHr($name."_hr_before_orderby", $params);
269
 
270
  //---- orderby -----
271
 
292
  $params = array();
293
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
294
 
295
+ $this->addHr($name."_hr_before_metakeys", $params);
296
 
297
  //---- meta keys addition -----
298
 
310
  $params = array();
311
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
312
 
313
+ $this->addHr($name."_hr_before_debug", $params);
314
 
315
  //---- show debug -----
316
 
363
  */
364
  protected function addPostTermsPicker($name, $value, $title, $extra){
365
 
 
366
  $isForWooCommerce = UniteFunctionsUC::getVal($extra, "for_woocommerce");
367
  $isForWooCommerce = UniteFunctionsUC::strToBool($isForWooCommerce);
368
 
493
  $addAttrib = "data-taxonomyname='{$name}_taxonomy'";
494
 
495
  $this->addPostIDSelect($name."_include_specific", __("Select Specific Terms", "unlimited-elements-for-elementor"), $elementorCondition, "terms", $addAttrib, $params);
496
+
497
  // --------- add terms parents -------------
498
 
499
  $params = array();
531
 
532
  $params = array();
533
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
534
+ $this->addHr($name."_after_include_by",$params);
535
 
536
  // --------- add exclude by -------------
537
 
972
 
973
  }
974
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
975
 
976
  /**
977
  * add post list picker
1178
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
1179
  $params["elementor_condition"] = $arrCustomOnlyCondition;
1180
 
1181
+ $this->addHr($name."_post_before_include",$params);
1182
 
1183
  // --------- Include BY some options -------------
1184
 
1232
 
1233
  $params["elementor_condition"] = $arrConditionIncludeBy;
1234
 
1235
+ $this->addHr($name."_after_include_by",$params);
1236
 
1237
  //---- Include By Author -----
1238
 
1268
 
1269
  $this->addSelect($name."_includeby_date", $arrDates, __("Include By Date", "unlimited-elements-for-elementor"), "all", $params);
1270
 
1271
+ //----- date meta field -------
1272
+
1273
+ $params = array();
1274
+ $params["origtype"] = UniteCreatorDialogParam::PARAM_TEXTFIELD;
1275
+ $params["description"] = __("Optional, Select custom field (like ACF) with date format 20210310 (Ymd). For example: event_date","unlimited-elements-for-elementor");
1276
+ $params["elementor_condition"] = $arrConditionIncludeByDate;
1277
+
1278
+ $this->addTextBox($name."_include_date_meta","",__("Date by Meta Field","unlimited-elements-for-elementor"),$params);
1279
+
1280
  //----- add date before and after -------
1281
 
1282
  $params = array();
1300
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
1301
  $params["elementor_condition"] = $arrConditionIncludeByDate;
1302
 
1303
+ $this->addHr($name."_hr_after_date",$params);
1304
 
1305
  //---- Include By Post Parent -----
1306
 
1448
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
1449
  $params["elementor_condition"] = $arrCustomOnlyCondition;
1450
 
1451
+ $this->addHr($name."_before_categories",$params);
1452
 
1453
 
1454
  //----- add categories -------
1528
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
1529
  $params["elementor_condition"] = $arrCustomOnlyCondition;
1530
 
1531
+ $this->addHr($name."_before_exclude_by",$params);
1532
 
1533
 
1534
  // --------- add exclude by -------------
1627
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
1628
  $params["elementor_condition"] = $arrNotManualElementorCondition;
1629
 
1630
+ $this->addHr($name."_post_after_exclude",$params);
1631
 
1632
  //------- Post Status --------
1633
 
1668
  $params = array();
1669
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
1670
 
1671
+ $this->addHr($name."_hr_before_orderby",$params);
1672
 
1673
 
1674
  //----- orderby --------
1723
  $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
1724
 
1725
 
1726
+ $this->addHr($name."_hr_after_order_dir", $params);
1727
 
1728
 
1729
  //---- query id -----
1774
  }
1775
 
1776
 
1777
+ private function __________DYNAMIC_______(){}
1778
+
1779
+ /**
1780
+ * get gallery title title source options
1781
+ */
1782
+ protected function getGalleryTitleSourceOptions($isDescription = false, $hasPosts = false){
1783
+
1784
+ if($isDescription == false){
1785
+
1786
+ $arrTitleOptions = array();
1787
+
1788
+ if($hasPosts){
1789
+ $arrTitleOptions["post_title"] = __("Post Title", "unlimited-elements-for-elementor");
1790
+ $arrTitleOptions["post_excerpt"]= __("Post Excerpt", "unlimited-elements-for-elementor");
1791
+ }
1792
+
1793
+ $arrTitleOptions["image_auto"] = __("Image Auto (title or alt or caption)", "unlimited-elements-for-elementor");
1794
+ $arrTitleOptions["image_title"] = __("Image Title", "unlimited-elements-for-elementor");
1795
+ $arrTitleOptions["image_alt"] = __("Image Alt", "unlimited-elements-for-elementor");
1796
+ $arrTitleOptions["image_caption"] = __("Image Caption", "unlimited-elements-for-elementor");
1797
+
1798
+ $arrTitleOptions = array_flip($arrTitleOptions);
1799
+
1800
+ return($arrTitleOptions);
1801
+ }
1802
+
1803
+ //description
1804
+
1805
+ $arrDescOptions = array();
1806
+
1807
+ if($hasPosts == true){
1808
+ $arrDescOptions["post_excerpt"]= __("Post Excerpt", "unlimited-elements-for-elementor");
1809
+ $arrDescOptions["post_title"] = __("Post Title", "unlimited-elements-for-elementor");
1810
+ $arrDescOptions["post_content"] = __("Post Content", "unlimited-elements-for-elementor");
1811
+ }
1812
+
1813
+ $arrDescOptions["image_description"] = __("Image Description", "unlimited-elements-for-elementor");
1814
+ $arrDescOptions["image_title"] = __("Image Title", "unlimited-elements-for-elementor");
1815
+ $arrDescOptions["image_alt"] = __("Image Alt", "unlimited-elements-for-elementor");
1816
+ $arrDescOptions["image_caption"] = __("Image Caption", "unlimited-elements-for-elementor");
1817
+
1818
+ $arrDescOptions = array_flip($arrDescOptions);
1819
+
1820
+ return($arrDescOptions);
1821
+ }
1822
+
1823
+
1824
+ /**
1825
+ * add gallery field
1826
+ */
1827
+ protected function addListingPicker_gallery($name,$value,$title,$param){
1828
+
1829
+ //---- gallery option
1830
+
1831
+ $conditionGallery = array($name."_source" => "gallery");
1832
+
1833
+ $params = array();
1834
+ $params["origtype"] = UniteCreatorDialogParam::PARAM_GALLERY;
1835
+ $params["elementor_condition"] = $conditionGallery;
1836
+
1837
+ $this->addTextBox($name."_gallery", "", __("Choose Images","unlimited-elements-for-elementor"), $params);
1838
+
1839
+ //============
1840
+
1841
+ $conditionPost = array($name."_source" => "posts");
1842
+
1843
+ $params = array();
1844
+ $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
1845
+ $params["elementor_condition"] = $conditionPost;
1846
+
1847
+ $this->addHr($name."_hr_before_title_sources_post",$params);
1848
+
1849
+
1850
+ //---- posts options - title source
1851
+
1852
+ $arrTitleOptions = $this->getGalleryTitleSourceOptions(false, true);
1853
+
1854
+ $params = array();
1855
+ $params["origtype"] = UniteCreatorDialogParam::PARAM_DROPDOWN;
1856
+ $params["label_block"] = true;
1857
+ $params["elementor_condition"] = $conditionPost;
1858
+
1859
+ $this->addSelect($name."_title_source_post", $arrTitleOptions, __("Image Title Source", "unlimited-elements-for-elementor"), "post_title", $params);
1860
+
1861
+ //---- posts options - description source
1862
+
1863
+ $arrDescOptions = $this->getGalleryTitleSourceOptions(true, true);
1864
+
1865
+ $params = array();
1866
+ $params["origtype"] = UniteCreatorDialogParam::PARAM_DROPDOWN;
1867
+ $params["label_block"] = true;
1868
+ $params["elementor_condition"] = $conditionPost;
1869
+
1870
+ $this->addSelect($name."_description_source_post", $arrDescOptions, __("Image Description Source", "unlimited-elements-for-elementor"), "post_excerpt", $params);
1871
+
1872
+ //---- current post meta
1873
+
1874
+ $conditionCurrentMeta = array($name."_source" => "current_post_meta");
1875
+
1876
+ $params = array();
1877
+ $params["origtype"] = UniteCreatorDialogParam::PARAM_TEXTFIELD;
1878
+ $params["elementor_condition"] = $conditionCurrentMeta;
1879
+
1880
+ $this->addTextBox($name."_current_metakey", "", __("Meta Key","unlimited-elements-for-elementor"), $params);
1881
+
1882
+ //---- current post meta - DEBUG
1883
+
1884
+ $params = array();
1885
+ $params["origtype"] = UniteCreatorDialogParam::PARAM_RADIOBOOLEAN;
1886
+ $params["description"] = __("Show the current post meta fields, turn off it after choose the right one", "unlimited-elements-for-elementor");
1887
+ $params["elementor_condition"] = $conditionCurrentMeta;
1888
+
1889
+ $this->addRadioBoolean($name."_show_metafields", __("Debug - Show Meta Fields", "unlimited-elements-for-elementor"), false, "Yes", "No", $params);
1890
+
1891
+ //=========== GALLERY TITLE AND DESCRIPTION SOURCE =================
1892
+
1893
+ //---- hr before title source
1894
+
1895
+ $conditionTitleSource = array($name."_source" => array("gallery", "current_post_meta"));
1896
+
1897
+ $params = array();
1898
+ $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
1899
+ $params["elementor_condition"] = $conditionTitleSource;
1900
+
1901
+ $this->addHr($name."_hr_before_title_sources",$params);
1902
+
1903
+
1904
+ //---- gallery title source
1905
+
1906
+ $arrTitleOptions = $this->getGalleryTitleSourceOptions(false, false);
1907
+
1908
+ $params = array();
1909
+ $params["origtype"] = UniteCreatorDialogParam::PARAM_DROPDOWN;
1910
+ $params["label_block"] = true;
1911
+ $params["elementor_condition"] = $conditionTitleSource;
1912
+
1913
+ $this->addSelect($name."_title_source_gallery", $arrTitleOptions, __("Image Title Source", "unlimited-elements-for-elementor"), "image_auto", $params);
1914
+
1915
+
1916
+ //---- gallery description source
1917
+
1918
+ $arrDescOptions = $this->getGalleryTitleSourceOptions(true, false);
1919
+
1920
+ $params = array();
1921
+ $params["origtype"] = UniteCreatorDialogParam::PARAM_DROPDOWN;
1922
+ $params["label_block"] = true;
1923
+ $params["elementor_condition"] = $conditionTitleSource;
1924
+
1925
+ $this->addSelect($name."_description_source_gallery", $arrDescOptions, __("Image Description Source", "unlimited-elements-for-elementor"), "image_description", $params);
1926
+
1927
+ //----- hr before image size
1928
+ $params = array();
1929
+ $params["origtype"] = UniteCreatorDialogParam::PARAM_HR;
1930
+
1931
+ $this->addHr($name."_hr_before_imagesize",$params);
1932
+
1933
+ //----- thumb image size
1934
+
1935
+ $arrSizes = UniteFunctionsWPUC::getArrThumbSizes();
1936
+
1937
+ $params = array();
1938
+ $params["origtype"] = UniteCreatorDialogParam::PARAM_DROPDOWN;
1939
+ $params["label_block"] = true;
1940
+
1941
+ $arrSizes = array_flip($arrSizes);
1942
+ $this->addSelect($name."_thumb_size", $arrSizes, __("Thumb Image Size", "unlimited-elements-for-elementor"), "medium_large", $params);
1943
+
1944
+
1945
+ //----- big image size
1946
+
1947
+ $arrSizes = UniteFunctionsWPUC::getArrThumbSizes();
1948
+
1949
+ $params = array();
1950
+ $params["origtype"] = UniteCreatorDialogParam::PARAM_DROPDOWN;
1951
+ $params["label_block"] = true;
1952
+
1953
+ $arrSizes = array_flip($arrSizes);
1954
+ $this->addSelect($name."_image_size", $arrSizes, __("Big Image Size", "unlimited-elements-for-elementor"), "large", $params);
1955
+
1956
+ }
1957
+
1958
+
1959
  /**
1960
  * add listing picker, function for override
1961
  */
1962
+ protected function addListingPicker($name,$value,$title,$param){
1963
+
1964
+ //add template picker
1965
+ $useFor = UniteFunctionsUC::getVal($param, "use_for");
1966
+ $isForGallery = ($useFor == "gallery");
1967
+
1968
+ //set text prefix
1969
+ $textPrefix = __("Items ","unlimited-elements-for-elementor");
1970
+ if($isForGallery == true)
1971
+ $textPrefix = __("Gallery Items ","unlimited-elements-for-elementor");
1972
+
1973
+ if($isForGallery == false){
1974
+ $params = array();
1975
+ $params["origtype"] = UniteCreatorDialogParam::PARAM_TEMPLATE;
1976
+ $this->addTextBox($name."_template", "", $textPrefix.__(" Item Template","unlimited-elements-for-elementor"), $params);
1977
+ }
1978
+
1979
+ //-------------------
1980
+
1981
+ // add type select
1982
+
1983
+ $params = array();
1984
+ $params["origtype"] = UniteCreatorDialogParam::PARAM_DROPDOWN;
1985
+
1986
+ $arrSource = array();
1987
+
1988
+ if($isForGallery == true){
1989
+ $arrSource["gallery"] = __("Gallery", "unlimited-elements-for-elementor");
1990
+ }
1991
+
1992
+ $arrSource["posts"] = __("Posts", "unlimited-elements-for-elementor");
1993
+
1994
+ if($isForGallery == true){
1995
+ $arrSource["current_post_meta"] = __("Current Post Metafield", "unlimited-elements-for-elementor");
1996
+ }
1997
+
1998
+ //$arrSource["terms"] = __("Terms", "unlimited-elements-for-elementor");
1999
+
2000
+ $arrSource = array_flip($arrSource);
2001
+
2002
+ $default = "posts";
2003
+ if($isForGallery == true)
2004
+ $default = "gallery";
2005
+
2006
+ $this->addSelect($name."_source", $arrSource, $textPrefix.__("Items Source", "unlimited-elements-for-elementor"), $default, $params);
2007
+
2008
+ if($isForGallery == true)
2009
+ $this->addListingPicker_gallery($name,$value,$title,$param);
2010
+
2011
+ }
2012
+
2013
+
2014
+ private function __________FILTERS_______(){}
2015
+
2016
+ /**
2017
+ * add filter selector
2018
+ */
2019
+ protected function addFiltersItemSelector($param){
2020
 
2021
+ //-----------------
2022
+
2023
+ $this->addPostIDSelect("post_ids", "Select Posts", null, false);
2024
+
2025
+
2026
  $params = array();
2027
  $params["origtype"] = UniteCreatorDialogParam::PARAM_TEXTFIELD;
2028
 
2029
+ $this->addTextBox("filter_type", "", "Filter Type", $params);
2030
+
2031
 
2032
 
2033
  }
provider/provider_settings_output.class.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  /**
4
  * @package Unlimited Elements
5
- * @author UniteCMS.net
6
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
7
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
8
  * */
2
 
3
  /**
4
  * @package Unlimited Elements
5
+ * @author unlimited-elements.com
6
  * @copyright (C) 2012 Unite CMS, All Rights Reserved.
7
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
8
  * */
provider/provider_template_engine.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
provider/provider_web_api.class.php CHANGED
@@ -2,8 +2,8 @@
2
 
3
  /**
4
  * @package Unlimited Elements
5
- * @author UniteCMS.net
6
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
7
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
8
  * */
9
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
2
 
3
  /**
4
  * @package Unlimited Elements
5
+ * @author unlimited-elements.com
6
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
7
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
8
  * */
9
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
provider/views/provider_activation_view.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
provider/woocommerce_integrate.class.php CHANGED
@@ -298,6 +298,14 @@ class UniteCreatorWooIntegrate{
298
  $arrProduct["woo_".$propertyName] = $value;
299
  }
300
 
 
 
 
 
 
 
 
 
301
  //add prices of variations
302
 
303
  if($type == self::PRODUCT_TYPE_VARIABLE){
@@ -349,7 +357,8 @@ class UniteCreatorWooIntegrate{
349
 
350
  $arrKeys += $arrProperties;
351
 
352
- $arrKeys[] = "woo_discount_percent";
 
353
  $arrKeys[] = "woo_currency";
354
  $arrKeys[] = "woo_currency_symbol";
355
  $arrKeys[] = "woo_link_addcart_cart";
298
  $arrProduct["woo_".$propertyName] = $value;
299
  }
300
 
301
+ //make the rating stars array
302
+ $arrWooStars = array();
303
+ $rating = UniteFunctionsUC::getVal($arrData, "average_rating");
304
+ $rating = floatval($rating);
305
+
306
+ $arrWooStars = HelperHtmlUC::getRatingArray($rating);
307
+ $arrProduct["woo_rating_stars"] = $arrWooStars;
308
+
309
  //add prices of variations
310
 
311
  if($type == self::PRODUCT_TYPE_VARIABLE){
357
 
358
  $arrKeys += $arrProperties;
359
 
360
+ $arrKeys[] = "woo_rating_stars";
361
+ $arrKeys[] = "woo_discount_percent";
362
  $arrKeys[] = "woo_currency";
363
  $arrKeys[] = "woo_currency_symbol";
364
  $arrKeys[] = "woo_link_addcart_cart";
readme.txt CHANGED
@@ -19,13 +19,29 @@ Take your Elementor page building experience to the next level with Unlimited El
19
  Use any of are free widgets or upgrade to our pro version and enjoy +200 more unique widgets for Elementor. Each element comes with a bunch of options to control every possible setting. In case you are missing something you can easily add it using our unique Widget Creator Framework.
20
 
21
 
22
- <h3>Woocommerce for Elementor</h3>
23
  <ol>
24
- <li><a href="https://unlimited-elements.com/woocommerce-product-list-widget-for-elementor/">Woocommerce Product List for Elementor (Free)</li>
25
- <li><a href="https://unlimited-elements.com/woocommerce-product-carousel-widget-for-elementor">Woocommerce Product Carousel for Elementor (Pro)</li>
26
- <li><a href="https://unlimited-elements.com/woocommerce-product-grid-widget-for-elementor/">Woocommerce Product Grid for Elementor (Pro)</li>
27
- <li><a href="https://unlimited-elements.com/woocommerce-category-grid-for-elemenetor/">Woocommerce Category Grid for Elementor (Pro)</li>
28
- <li><a href="https://unlimited-elements.com/woocommerce-category-carousel-widget-for-elementor/">Woocommerce Category Carousel for Elementor (Pro)</li>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  </ol>
30
 
31
  <h3>Post Widgets for Elementor</h3>
@@ -50,58 +66,92 @@ Use any of are free widgets or upgrade to our pro version and enjoy +200 more un
50
  <li><a href="https://unlimited-elements.com/post-gallery-widget-for-elementor">Post Gallery for Elementor (Pro)</li>
51
  </ol>
52
 
53
- <h3>Creative Widgets for Elementor</h3>
54
  <ol>
55
- <li><a href="https://unlimited-elements.com/blob-shape-widget-for-elementor/">Blob Shapes for Elementor (Free)</li>
56
- <li><a href="https://unlimited-elements.com/animated-mouse-scroll-icon-widget-for-elementor/">Animated Mouse Scroll Icon for Elementor (Free)</li>
57
- <li><a href="https://unlimited-elements.com/animated-hamburger-icon-for-elementor/">Animated Hamburger Icon for Elementor (Free)</li>
58
- <li><a href="https://unlimited-elements.com/svg-animation-widget-for-elementor">SVG Animation for Elementor (Free)</li>
59
- <li><a href="https://unlimited-elements.com/image-tooltip-widget-for-elementor/">Image Tooltip for Elementor (Free)</li>
60
- <li><a href="https://unlimited-elements.com/circle-number-widget-widget-for-elementor/">Circle Number for Elementor (Free)</li>
61
- <li><a href="https://unlimited-elements.com/statistic-counters-for-elementor">Statistic Counter for Elementor (Free)</li>
62
- <li><a href="https://unlimited-elements.com/before-after-image-comparison-widget-for-elementor/">Before After for Elementor (Pro)</li>
63
- <li><a href="https://unlimited-elements.com/hotspots-for-elementor-page-builder/">Hotspots for Elementor (Pro)</li>
64
- <li><a href="https://unlimited-elements.com/background-switcher-widget-for-elementor/">Background Switcher for Elementor (Pro)</li>
65
- <li><a href="https://unlimited-elements.com/audio-playlist-widget-for-elementor">Audio Playlist for Elementor (Pro)</li>
66
- <li><a href="https://unlimited-elements.com/image-zoom-magnifier-widget-for-elementor/">Image Zoom Magnifier for Elementor (Pro)</li>
67
- <li><a href="https://unlimited-elements.com/image-shapes-for-elementor-page-builder/">Image Shapes for Elementor (Pro)</li>
68
- <li><a href="https://unlimited-elements.com/flip-box-widget-for-elementor/">Flip Box for Elementor (Pro)</li>
69
- <li><a href="https://unlimited-elements.com/notification-widget-for-elementor">Notification for Elementor (Pro)</li>
70
- <li><a href="https://unlimited-elements.com/image-accordion-widget-for-elementor/">Image Accordion for Elementor (Pro)</li>
71
- <li><a href="https://unlimited-elements.com/image-reveal-on-scroll-widget-for-elementor">Image Reveal On Scroll for Elementor (Pro)</li>
72
- <li><a href="https://unlimited-elements.com/interactive-circle-infographic-widget-for-elementor/">Interactive Circle Infographic for Elementor (Pro)</li>
73
- <li><a href="https://unlimited-elements.com/audio-player-widget-for-elementor/">Audio Player for Elementor (Pro)</li>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  </ol>
75
 
76
  <h3>Menu Widgets for Elementor</h3>
77
  <ol>
78
  <li><a href="https://unlimited-elements.com/simple-fullscreen-navigation-menu-widget-for-elementor/">Fullscreen Navigation Menu for Elementor (Free)</li>
79
- <li><a href="https://unlimited-elements.com/simple-list-menu-widget-for-elementor">Simple List Menu for Elementor (Free)</li>
80
  <li><a href="https://unlimited-elements.com/liquid-fullscreen-menu-widget-for-elementor">Liquid Full Screen Menu for Elementor (Pro)</li>
81
  <li><a href="http://unlimited-elements.com/side-menu-widget-for-elementor">Side Menu for Elementor (Pro)</li>
82
- <li><a href="https://unlimited-elements.com/bullet-one-page-scroll-navigation-widget-for-elementor">Bullet One Page Scroll Navigation for Elementor (Pro)</li>
83
- <li><a href="https://unlimited-elements.com/icon-one-page-scroll-navigation-widget-for-elementor/">Icon One Page Scroll Navigation for Elementor (Pro)</li>
84
  <li><a href="https://unlimited-elements.com/accordion-menu-widget-for-elementor">Accordion Menu for Elementor (Pro)</li>
 
85
  </ol>
86
 
87
- <h3>Marketing Widgets for Elementor</h3>
88
  <ol>
89
- <li><a href="https://unlimited-elements.com/event-box-widget-for-elementor">Event Box for Elementor (Free)</li>
90
- <li><a href="https://unlimited-elements.com/price-list-widget-for-elementor/">Price List for Elementor (Free)</li>
91
- <li><a href="https://unlimited-elements.com/pricing-table-widget-for-elementor/">Pricing Table for Elementor (Free)</li>
92
- <li><a href="https://unlimited-elements.com/timer-countdowns-for-elementor-page-builder/">Timer Countdown for Elementor (Free)</li>
93
- <li><a href="https://unlimited-elements.com/call-to-action-button-widget-for-elementor/">Call To Action Button for Elementor (Free)</li>
94
- <li><a href="https://unlimited-elements.com/review-box-widget-for-elementor">Review Box for Elementor (Free)</li>
95
- <li><a href="https://unlimited-elements.com/copy-coupon-code-widget-for-elementor">Copy Coupon Code for Elementor (Pro)</li>
96
- <li><a href="https://unlimited-elements.com/mobile-conversion-menu-for-elementor">Mobile Conversion Menu for Elementor (Pro)</li>
97
- <li><a href="https://unlimited-elements.com/icon-mobile-menu-for-elementor">Icon Mobile Menu for Elementor (Pro)</li>
98
- <li><a href="https://unlimited-elements.com/pricing-box-widget-for-elementor/">Price Box for Elementor (Pro)</li>
99
- <li><a href="https://unlimited-elements.com/event-list-widget-for-elementor/">Event List for Elementor (Pro)</li>
100
- <li><a href="https://unlimited-elements.com/pricing-flip-box-widget-for-elementor/">Pricing Table Flip Box for Elementor (Pro)</li>
101
- <li><a href="https://unlimited-elements.com/list-marquee-widget-for-elementor/">List Marquee for Elementor (Pro)</li>
102
- <li><a href="https://unlimited-elements.com/card-testimonial-review-carousel-widget-for-elementor">Review Carousel for Elementor (Pro)</li>
103
- <li><a href="https://unlimited-elements.com/timer-countdown-banner-widget-for-elementor">Timer Countdown Banner for Elementor (Pro)</li>
104
- <li><a href="https://unlimited-elements.com/business-hours-widget-for-elementor">Business Hours for Elementor (Pro)</li>
105
  </ol>
106
 
107
  <h3>Content Boxes for Elementor</h3>
@@ -116,11 +166,38 @@ Use any of are free widgets or upgrade to our pro version and enjoy +200 more un
116
  <li><a href="https://unlimited-elements.com/subtle-overlay-content-box-widget-for-elementor/">Subtle Overlay Content Box for Elementor (Pro)</li>
117
  <li><a href="https://unlimited-elements.com/border-hover-overlay-content-box-widget-for-elementor">Border Hover Overlay Content Box for Elementor (Pro)</li>
118
  <li><a href="https://unlimited-elements.com/animated-border-content-box-widget-for-elementor">Animated Border Content Box for Elementor (Pro)</li>
119
- <li><a href="https://unlimited-elements.com/image-card-content-box-widget-for-elementor/">Overlay Content Box for Elementor (Pro)</li>
120
  <li><a href="https://unlimited-elements.com/shrink-content-box-widget-for-elementor/">Shrink Content Box for Elementor (Pro)</li>
121
  <li><a href="https://unlimited-elements.com/sliding-content-box-widget-for-elementor/">Sliding Content Box for Elementor (Pro)</li>
122
  </ol>
123
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
124
  <h3>Button Widgets for Elementor</h3>
125
  <ol>
126
  <li><a href="https://unlimited-elements.com/toggle-text-button-widget-for-elementor/">Toggle Text Button for Elementor (Free)</li>
@@ -140,31 +217,26 @@ Use any of are free widgets or upgrade to our pro version and enjoy +200 more un
140
  <li><a href="https://unlimited-elements.com/glare-effect-button-widget-for-elementor/">Glare Effect Button for Elementor (Pro)</li>
141
  </ol>
142
 
143
- <h3>Carousel Widgets for Elementor</h3>
144
- <ol>
145
- <li><a href="https://unlimited-elements.com/card-carousel-widget-for-elementor/">Card Carousel for Elementor (Free)</li>
146
- <li><a href="https://unlimited-elements.com/justified-image-carousel-widget-for-elementor/">Justified Image Carousel for Elementor (Pro)</li>
147
- <li><a href="https://unlimited-elements.com/icon-carousel-widget-for-elementor/">Icon Carousel for Elementor (Pro)</li>
148
- <li><a href="https://unlimited-elements.com/image-card-carousel-widget-for-elementor">Image Card Carousel for Elementor (Pro)</li>
149
- <li><a href="https://unlimited-elements.com/material-carousel-widget-for-elementor/">Material Carousel for Elementor (Pro)</li>
150
- <li><a href="https://unlimited-elements.com/overlay-carousel-widget-for-elementor">Overlay Carousel for Elementor (Pro)</li>
151
- <li><a href="https://unlimited-elements.com/swipe-css-carousel-widget-for-elementor/">Swipe Css Carousel for Elementor (Pro)</li>
152
- <li><a href="https://unlimited-elements.com/portfolio-carousel-widget-for-elementor/">Portfolio Carousel for Elementor (Pro)</li>
153
- </ol>
154
-
155
  <h3>Image Galleries for Elementor</h3>
156
  <ol>
157
  <li><a href="https://unlimited-elements.com/minimalistic-image-gallery-for-elementor/">Minimalistic Image Gallery for Elementor (Free)</li>
158
  <li><a href="https://unlimited-elements.com/tile-grid-image-gallery-for-elementor/">Tile Grid Image Gallery for Elementor (Free)</li>
159
  <li><a href="https://unlimited-elements.com/slider-image-gallery-for-elementor/">Slider Image Gallery for Elementor (Free)</li>
160
  <li><a href="https://unlimited-elements.com/justified-columns-image-gallery-for-elementor">Justified Columns Image Gallery for Elementor (Pro)</li>
161
- <li><a href="https://unlimited-elements.com/carousel-slider-image-gallery-widget-for-elementor/">Carousel Slider Image Gallery for Elementor (Pro)</li>
162
  <li><a href="https://unlimited-elements.com/video-and-image-gallery-grid-panel-widget-for-elementor/">Video and Image Gallery Grid Panel for Elementor (Pro)</li>
163
  <li><a href="https://unlimited-elements.com/carousel-image-gallery-for-elementor">Carousel Image Gallery for Elementor (Pro)</li>
164
  <li><a href="https://unlimited-elements.com/grid-panel-image-gallery-for-elementor">Grid Panel Image Gallery for Elementor (Pro)</li>
165
  <li><a href="https://unlimited-elements.com/basic-image-gallery-for-elementor/">Basic Image Gallery for Elementor (Pro)</li>
166
  </ol>
167
 
 
 
 
 
 
 
 
 
168
  <h3>Hero Widgets for Elementor</h3>
169
  <ol>
170
  <li><a href="https://unlimited-elements.com/title-hero-widget-for-elementor">Title Hero for Elementor (Free)</li>
@@ -181,15 +253,6 @@ Use any of are free widgets or upgrade to our pro version and enjoy +200 more un
181
  <li><a href="https://unlimited-elements.com/solid-color-hero-widget-for-elementor">Solid Color Hero for Elementor (Pro)</li>
182
  </ol>
183
 
184
- <h3>Instagram Widgets for Elementor</h3>
185
- <ol>
186
- <li><a href="https://unlimited-elements.com/latest-instagram-image-widget-for-elementor">Latest Instagram Image for Elementor (Free)</li>
187
- <li><a href="https://unlimited-elements.com/grid-instagram-widget-for-elementor">Instagram Grid for Elementor (Pro)</li>
188
- <li><a href="https://unlimited-elements.com/instagram-card-widget-for-elementor/">Instagram Card Widget for Elementor (Pro)</li>
189
- <li><a href="https://unlimited-elements.com/metro-instagram-widget-for-elementor">Metro Instagram Widget for Elementor (Pro)</li>
190
- <li><a href="https://unlimited-elements.com/instagram-teaser-box-for-elementor/">Instagram Teaser Box for Elementor (Pro)</li>
191
- </ol>
192
-
193
  <h3>Logo Widgets for Elementor</h3>
194
  <ol>
195
  <li><a href="https://unlimited-elements.com/logo-grid-widget-for-elementor/">Logo Grid for Elementor (Free)</li>
@@ -198,24 +261,6 @@ Use any of are free widgets or upgrade to our pro version and enjoy +200 more un
198
  <li><a href="https://unlimited-elements.com/logo-marquee-widget-for-elementor">Logo Marquee for Elementor (Pro)</li>
199
  </ol>
200
 
201
- <h3>Typography for Elementor</h3>
202
- <ol>
203
- <li><a href="https://unlimited-elements.com/3d-text-effect-for-elementor/">3d Text for Elementor (Free)</li>
204
- <li><a href="https://unlimited-elements.com/3d-extrude-text-effect-widget-for-elementor">3D Extrude Text Effect for Elementor (Free)</li>
205
- <li><a href="https://unlimited-elements.com/gradient-underline-text-effect-widget-for-elementor/">Gradient Underline Text Effect for Elementor (Free)</li>
206
- <li><a href="https://unlimited-elements.com/dual-color-heading-widget-for-elementor/">Dual Color Heading for Elementor (Free)</li>
207
- <li><a href="https://unlimited-elements.com/text-marquee-for-elementor/">Text Marquee Effect for Elementor (Free)</li>
208
- <li><a href="https://unlimited-elements.com/stroke-text-effect-widget-for-elementor/">Stroke Text Effect for Elementor (Free)</li>
209
- <li><a href="https://unlimited-elements.com/gradient-text-effect-for-elementor/">Gradient Text Effect for Elementor (Free)</li>
210
- <li><a href="https://unlimited-elements.com/sideways-vertical-text-widget-for-elementor">Sideways Vertical Text for Elementor (Pro)</li>
211
- <li><a href="https://unlimited-elements.com/futuristic-typing-text-effect-widget-for-elementor/">Futuristic Typing Text Effect for Elementor (Pro)</li>
212
- <li><a href="https://unlimited-elements.com/text-rotator-for-elementor-page-builder/">Text Rotator for Elementor (Pro)</li>
213
- <li><a href="https://unlimited-elements.com/image-background-text-effect-widget-for-elementor/">Image Background Text Effect for Elementor (Pro)</li>
214
- <li><a href="https://unlimited-elements.com/type-writer-text-effect-for-elementor/">Typewriter Text Effect for Elementor (Pro)</li>
215
- <li><a href="https://unlimited-elements.com/scroll-reveal-text-widget-for-elementor/">Scroll Reveal Text for Elementor (Pro)</li>
216
- <li><a href="https://unlimited-elements.com/side-line-heading-widget-for-elementor/">Side Line Heading for Elementor (Pro)</li>
217
- </ol>
218
-
219
  <h3>Footer for Elementor</h3>
220
  <ol>
221
  <li><a href="https://unlimited-elements.com/material-footer-card-widget-for-elementor">Material Footer Card for Elementor (Free)</li>
@@ -270,39 +315,6 @@ Use any of are free widgets or upgrade to our pro version and enjoy +200 more un
270
  <li><a href="https://unlimited-elements.com/content-toggle-widget-for-elementor/">Content Toggle for Elementor (Pro)</li>
271
  </ol>
272
 
273
- <h3>Team Members for Elementor</h3>
274
- <ol>
275
- <li><a href="https://unlimited-elements.com/team-member-box-overlay-widget-for-elementor">Team Member Box Overlay for Elementor (Free)</li>
276
- <li><a href="https://unlimited-elements.com/overlay-card-team-member-widget-for-elementor">Overlay Card Team Member for Elementor (Free)</li>
277
- <li><a href="https://unlimited-elements.com/gradient-team-member-card-widget-for-elementor">Gradient Team Member Card for Elementor (Free)</li>
278
- <li><a href="https://unlimited-elements.com/material-card-team-member-widget-for-elementor/">Material Card Team Member for Elementor (Free)</li>
279
- <li><a href="https://unlimited-elements.com/round-team-member-card-widget-for-elementor">Round Team Member Card for Elementor (Free)</li>
280
- <li><a href="https://unlimited-elements.com/circle-overlay-team-member-widget-for-elementor">Circle Overlay Team Member for Elementor (Free)</li>
281
- <li><a href="https://unlimited-elements.com/subtle-overlay-team-member-widget-for-elementor/">Subtle Overlay Team Member for Elementor (Pro)</li>
282
- <li><a href="https://unlimited-elements.com/zoom-in-team-member-widget-for-elementor/">Zoom In Team Member for Elementor (Pro)</li>
283
- <li><a href="https://unlimited-elements.com/border-team-member-widget-for-elementor">Border Team Member for Elementor (Pro)</li>
284
- <li><a href="https://unlimited-elements.com/sliding-effect-team-member-widget-for-elementor">Sliding Effect Team Member for Elementor (Pro)</li>
285
- <li><a href="https://unlimited-elements.com/slide-up-zoom-team-member-widget-for-elementor">Slide Up Zoom Team Member for Elementor (Pro)</li>
286
- <li><a href="https://unlimited-elements.com/icon-team-member-widget-for-elementor">Icon Team Member for Elementor (Pro)</li>
287
- <li><a href="https://unlimited-elements.com/overlay-team-member-widget-for-elementor">Overlay Team Member for Elementor (Pro)</li>
288
- <li><a href="https://unlimited-elements.com/content-reveal-team-member-widget-for-elementor/">Content Reveal Team Member for Elementor (Pro)</li>
289
- <li><a href="https://unlimited-elements.com/round-team-member-carousel-widget-for-elementor">Round Team Member Carousel for Elementor (Pro)</li>
290
- <li><a href="https://unlimited-elements.com/team-member-card-carousel-widget-for-elementor">Card Team Member Carousel for Elementor (Pro)</li>
291
- <li><a href="https://unlimited-elements.com/contact-card-team-member-widget-for-elementor/">Contact Card Team Member for Elementor (Pro)</li>
292
- <li><a href="https://unlimited-elements.com/transparent-overlay-team-member-widget-for-elementor">Transparent Overlay Team Member for Elementor (Pro)</li>
293
- </ol>
294
-
295
- <h3>Testimonials for Elementor</h3>
296
- <ol>
297
- <li><a href="https://unlimited-elements.com/box-testimonial-widget-for-elementor/">Box Testimonial for Elementor (Free)</li>
298
- <li><a href="https://unlimited-elements.com/testimonial-carousel-widget-for-elementor/">Testimonial Carousel for Elementor (Pro)</li>
299
- <li><a href="https://unlimited-elements.com/3d-testimonial-card-carousel-widget-for-elementor">3D Testimonial Card Carousel for Elementor (Pro)</li>
300
- <li><a href="https://unlimited-elements.com/background-image-testimonial-widget-for-elementor">Background Image Testimonial for Elementor (Pro)</li>
301
- <li><a href="https://unlimited-elements.com/horizontal-box-testimonial-widget-for-elementor/">Horizontal Box Testimonial for Elementor (Pro)</li>
302
- <li><a href="https://unlimited-elements.com/testimonial-quote-slider-widget-for-elementor">Testimonial Quote Slider for Elementor (Pro)</li>
303
- <li><a href="https://unlimited-elements.com/logo-card-testimonial-widget-for-elementor">Logo Card Testimonial for Elementor (Pro)</li>
304
- </ol>
305
-
306
  <h3>Progress Bar for Elementor</h3>
307
  <ol>
308
  <li><a href="https://unlimited-elements.com/linear-progress-bar-widget-for-elementor">Linear Progress Bar for Elementor (Free)</li>
@@ -312,12 +324,6 @@ Use any of are free widgets or upgrade to our pro version and enjoy +200 more un
312
  <li><a href="https://unlimited-elements.com/vertical-progress-bar-widget-for-elementor">Vertical Progress Bar for Elementor (Pro)</li>
313
  </ol>
314
 
315
- <h3>Slider Widgets for Elementor</h3>
316
- <ol>
317
- <li><a href="https://unlimited-elements.com/simple-slider-widget-for-elementor/">Simple Slider for Elementor (Free)</li>
318
- <li><a href="https://unlimited-elements.com/image-video-content-slider-widget-for-elementor">Image and Video Content Slider for Elementor (Pro)</li>
319
- </ol>
320
-
321
  <h3>Hover Effects for Elementor</h3>
322
  <ol>
323
  <li><a href="https://unlimited-elements.com/link-hover-effects/">Link Hover Effects for Elementor (Free)</li>
@@ -364,7 +370,7 @@ Use any of are free widgets or upgrade to our pro version and enjoy +200 more un
364
 
365
  <h3>Separators and Dividers for Elementor</h3>
366
  <ol>
367
- <li><a href="https://unlimited-elements.com/separator-and-dividers-widgets-for-elementor/">Lind Diamond Separator for Elementor (Free)</li>
368
  <li><a href="https://unlimited-elements.com/separator-and-dividers-widgets-for-elementor/">Divider for Elementor (Free)</li>
369
  <li><a href="https://unlimited-elements.com/separator-and-dividers-widgets-for-elementor/">Line Separator for Elementor (Free)</li>
370
  <li><a href="https://unlimited-elements.com/separator-and-dividers-widgets-for-elementor/">Victorian Separator Style 1 for Elementor (Free)</li>
@@ -402,36 +408,6 @@ Use any of are free widgets or upgrade to our pro version and enjoy +200 more un
402
  <li><a href="https://unlimited-elements.com/alternating-card-timeline-widget-for-elementor">Alternating Card Timeline for Elementor (Pro)</li>
403
  </ol>
404
 
405
- <h3>Food Menus for Elementor</h3>
406
- <ol>
407
- <li><a href="https://unlimited-elements.com/food-menu-border-box-widget-for-elementor">Food Menu Border Box for Elementor (Free)</li>
408
- <li><a href="https://unlimited-elements.com/food-menu-box-overlay-widget-for-elementor">Food Menu Box Overlay for Elementor (Free)</li>
409
- <li><a href="https://unlimited-elements.com/food-menu-box-widget-for-elementor">Food Menu Box for Elementor (Free)</li>
410
- <li><a href="https://unlimited-elements.com/food-menu-widget-for-elementor/">Food Menu for Elementor (Pro)</li>
411
- <li><a href="https://unlimited-elements.com/food-menu-list-widget-for-elementor">Food Menu List for Elementor (Pro)</li>
412
- <li><a href="https://unlimited-elements.com/food-menu-carousel-widget-for-elementor">Food Menu Carousel for Elementor (Pro)</li>
413
- </ol>
414
-
415
- <h3>Content Accordions for Elementor</h3>
416
- <ol>
417
- <li><a href="https://unlimited-elements.com/faq-accordion-widget-for-elementor">Faq Accordion for Elementor (Free)</li>
418
- <li><a href="https://unlimited-elements.com/border-icon-accordion-widget-for-elementor/">Border Icon Accordion for Elementor (Pro)</li>
419
- <li><a href="https://unlimited-elements.com/icon-accordion-widget-for-elementor/">Icon Accordion for Elementor (Pro)</li>
420
- <li><a href="https://unlimited-elements.com/material-icon-accordion-widget-for-elementor">Material Icon Accordion for Elementor (Pro)</li>
421
- <li><a href="https://unlimited-elements.com/material-accordion-widget-for-elementor/">Material Accordion for Elementor (Pro)</li>
422
- <li><a href="https://unlimited-elements.com/rounded-accordion-widget-for-elementor/">Rounded accordion for Elementor (Pro)</li>
423
- <li><a href="https://unlimited-elements.com/rounded-color-accordion-widget-for-elementor">Rounded Color Accordion for Elementor (Pro)</li>
424
- </ol>
425
-
426
- <h3>Content Tabs for Elementor</h3>
427
- <ol>
428
- <li><a href="https://unlimited-elements.com/icon-bullet-tabs-widget-for-elementor">Icon Bullet Tabs for Elementor (Pro)</li>
429
- <li><a href="https://unlimited-elements.com/color-tabs-widget-for-elementor/">Color Tabs for Elementor (Pro)</li>
430
- <li><a href="https://unlimited-elements.com/vertical-tabs-widget-for-elementor/">Vertical Tabs for Elementor (Pro)</li>
431
- <li><a href="https://unlimited-elements.com/icon-tabs-widget-for-elementor">Icon Tabs for Elementor (Pro)</li>
432
- <li><a href="https://unlimited-elements.com/border-icon-tabs-widget-for-elementor/">Border Icon Tabs for Elementor (Pro)</li>
433
- </ol>
434
-
435
  <h3>Google Charts for Elementor</h3>
436
  <ol>
437
  <li><a href="https://unlimited-elements.com/pie-chart-for-elementor">Pie chart for Elementor (Free)</li>
@@ -454,6 +430,8 @@ Use any of are free widgets or upgrade to our pro version and enjoy +200 more un
454
  </ol>
455
 
456
 
 
 
457
 
458
 
459
  <h3>Clutter Free</h3>
@@ -521,6 +499,37 @@ Note : This plugin works with Elementor. Make sure you have [Elementor](https://
521
 
522
  == Changelog ==
523
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
524
 
525
  version 1.4.71 = 2021-04-22
526
 
19
  Use any of are free widgets or upgrade to our pro version and enjoy +200 more unique widgets for Elementor. Each element comes with a bunch of options to control every possible setting. In case you are missing something you can easily add it using our unique Widget Creator Framework.
20
 
21
 
22
+ <h3>Creative Widgets for Elementor</h3>
23
  <ol>
24
+ <li><a href="https://unlimited-elements.com/blob-shape-widget-for-elementor/">Blob Shapes for Elementor (Free)</li>
25
+ <li><a href="https://unlimited-elements.com/animated-mouse-scroll-icon-widget-for-elementor/">Animated Mouse Scroll Icon for Elementor (Free)</li>
26
+ <li><a href="https://unlimited-elements.com/animated-hamburger-icon-for-elementor/">Animated Hamburger Icon for Elementor (Free)</li>
27
+ <li><a href="https://unlimited-elements.com/svg-animation-widget-for-elementor">SVG Animation for Elementor (Free)</li>
28
+ <li><a href="https://unlimited-elements.com/image-tooltip-widget-for-elementor/">Image Tooltip for Elementor (Free)</li>
29
+ <li><a href="https://unlimited-elements.com/number-box-widget-widget-for-elementor/">Number Box for Elementor (Free)</li>
30
+ <li><a href="https://unlimited-elements.com/statistic-counters-for-elementor">Statistic Counter for Elementor (Free)</li>
31
+ <li><a href="https://unlimited-elements.com/flip-box-widget-for-elementor/">Flip Box for Elementor (Free)</li>
32
+ <li><a href="https://unlimited-elements.com/before-after-image-comparison-widget-for-elementor/">Before After for Elementor (Pro)</li>
33
+ <li><a href="https://unlimited-elements.com/hotspots-for-elementor-page-builder/">Hotspots for Elementor (Pro)</li>
34
+ <li><a href="https://unlimited-elements.com/audio-player-widget-for-elementor/">Audio Player for Elementor (Pro)</li>
35
+ <li><a href="https://unlimited-elements.com/icon-tabs-widget-for-elementor">Icon Tabs for Elementor (Pro)</li>
36
+ <li><a href="https://unlimited-elements.com/audio-playlist-widget-for-elementor">Audio Playlist for Elementor (Pro)</li>
37
+ <li><a href="https://unlimited-elements.com/background-switcher-widget-for-elementor/">Background Switcher for Elementor (Pro)</li>
38
+ <li><a href="https://unlimited-elements.com/image-zoom-magnifier-widget-for-elementor/">Image Zoom Magnifier for Elementor (Pro)</li>
39
+ <li><a href="https://unlimited-elements.com/image-shapes-for-elementor-page-builder/">Image Shapes for Elementor (Pro)</li>
40
+ <li><a href="https://unlimited-elements.com/notification-widget-for-elementor">Notification for Elementor (Pro)</li>
41
+ <li><a href="https://unlimited-elements.com/image-accordion-widget-for-elementor/">Image Accordion for Elementor (Pro)</li>
42
+ <li><a href="https://unlimited-elements.com/image-reveal-on-scroll-widget-for-elementor">Image Reveal On Scroll for Elementor (Pro)</li>
43
+ <li><a href="https://unlimited-elements.com/interactive-circle-infographic-widget-for-elementor/">Interactive Circle Infographic for Elementor (Pro)</li>
44
+ <li><a href="https://unlimited-elements.com/icon-accordion-widget-for-elementor/">Icon Accordion for Elementor (Pro)</li>
45
  </ol>
46
 
47
  <h3>Post Widgets for Elementor</h3>
66
  <li><a href="https://unlimited-elements.com/post-gallery-widget-for-elementor">Post Gallery for Elementor (Pro)</li>
67
  </ol>
68
 
69
+ <h3>Marketing Widgets for Elementor</h3>
70
  <ol>
71
+ <li><a href="https://unlimited-elements.com/timer-countdowns-for-elementor-page-builder/">Timer Countdown for Elementor (Free)</li>
72
+ <li><a href="https://unlimited-elements.com/price-list-widget-for-elementor/">Price List for Elementor (Free)</li>
73
+ <li><a href="https://unlimited-elements.com/pricing-table-widget-for-elementor/">Pricing Table for Elementor (Free)</li>
74
+ <li><a href="https://unlimited-elements.com/review-box-widget-for-elementor">Review Box for Elementor (Free)</li>
75
+ <li><a href="https://unlimited-elements.com/call-to-action-button-widget-for-elementor/">Call To Action Button for Elementor (Free)</li>
76
+ <li><a href="https://unlimited-elements.com/event-box-widget-for-elementor">Event Box for Elementor (Free)</li>
77
+ <li><a href="https://unlimited-elements.com/list-marquee-widget-for-elementor/">List Marquee for Elementor (Pro)</li>
78
+ <li><a href="https://unlimited-elements.com/timer-countdown-banner-widget-for-elementor">Timer Countdown Banner for Elementor (Pro)</li>
79
+ <li><a href="https://unlimited-elements.com/card-testimonial-review-carousel-widget-for-elementor">Review Carousel for Elementor (Pro)</li>
80
+ <li><a href="https://unlimited-elements.com/copy-coupon-code-widget-for-elementor">Copy Coupon Code for Elementor (Pro)</li>
81
+ <li><a href="https://unlimited-elements.com/pricing-flip-box-widget-for-elementor/">Pricing Table Flip Box for Elementor (Pro)</li>
82
+ <li><a href="https://unlimited-elements.com/event-list-widget-for-elementor/">Event List for Elementor (Pro)</li>
83
+ <li><a href="https://unlimited-elements.com/price-box-widget-for-elementor/">Price Box for Elementor (Pro)</li>
84
+ <li><a href="https://unlimited-elements.com/icon-mobile-menu-for-elementor">Icon Mobile Menu for Elementor (Pro)</li>
85
+ <li><a href="https://unlimited-elements.com/whatsapp-chat-widget-for-elementor">Whatsapp Chat for Elementor (Pro)</li>
86
+ <li><a href="https://unlimited-elements.com/mobile-conversion-menu-for-elementor">Mobile Conversion Menu for Elementor (Pro)</li>
87
+ <li><a href="https://unlimited-elements.com/business-hours-widget-for-elementor">Business Hours for Elementor (Pro)</li>
88
+ </ol>
89
+
90
+ <h3>Dynamic Loops for Elementor</h3>
91
+ <ol>
92
+ <li><a href="https://unlimited-elements.com/dynamic-loop-builder/">Dynamic Template Grid for Elementor (Pro)</li>
93
+ <li><a href="https://unlimited-elements.com/dynamic-loop-builder/">Dynamic Template Carousel for Elementor (Pro)</li>
94
+ <li><a href="https://unlimited-elements.com/dynamic-loop-builder/">Dynamic Template Tabs for Elementor (Pro)</li>
95
+ <li><a href="https://unlimited-elements.com/dynamic-loop-builder/">Dynamic Template Slider for Elementor (Pro)</li>
96
+ <li><a href="https://unlimited-elements.com/dynamic-loop-builder/">Dynamic Template Accordion for Elementor (Pro)</li>
97
+ </ol>
98
+
99
+ <h3>Woocommerce for Elementor</h3>
100
+ <ol>
101
+ <li><a href="https://unlimited-elements.com/woocommerce-product-list-widget-for-elementor/">Woocommerce Product List for Elementor (Free)</li>
102
+ <li><a href="https://unlimited-elements.com/woocommerce-product-carousel-widget-for-elementor">Woocommerce Product Carousel for Elementor (Pro)</li>
103
+ <li><a href="https://unlimited-elements.com/woocommerce-product-slider-widget-for-elementor">Woocommerce Product Slider for Elementor (Pro)</li>
104
+ <li><a href="https://unlimited-elements.com/woocommerce-product-grid-widget-for-elementor/">Woocommerce Product Grid for Elementor (Pro)</li>
105
+ <li><a href="https://unlimited-elements.com/woocommerce-category-grid-for-elemenetor/">Woocommerce Category Grid for Elementor (Pro)</li>
106
+ <li><a href="https://unlimited-elements.com/woocommerce-category-carousel-widget-for-elementor/">Woocommerce Category Carousel for Elementor (Pro)</li>
107
+ </ol>
108
+
109
+ <h3>Testimonials for Elementor</h3>
110
+ <ol>
111
+ <li><a href="https://unlimited-elements.com/box-testimonial-widget-for-elementor/">Testimonial Box for Elementor (Free)</li>
112
+ <li><a href="https://unlimited-elements.com/logo-card-testimonial-widget-for-elementor">Testimonial Card for Elementor (Free)</li>
113
+ <li><a href="https://unlimited-elements.com/testimonial-carousel-widget-for-elementor/">Testimonial Carousel for Elementor (Pro)</li>
114
+ <li><a href="https://unlimited-elements.com/3d-testimonial-card-carousel-widget-for-elementor">Testimonial Card Carousel for Elementor (Pro)</li>
115
+ </ol>
116
+
117
+ <h3>Team Members for Elementor</h3>
118
+ <ol>
119
+ <li><a href="http://unlimited-elements.com/team-member-card-widget-for-elementor/">Team Member Card for Elementor (Free)</li>
120
+ <li><a href="https://unlimited-elements.com/team-member-box-overlay-widget-for-elementor">Team Member Box for Elementor (Free)</li>
121
+ <li><a href="http://unlimited-elements.com/team-member-carousel-widget-for-elementor/">Team Member Carousel for Elementor (Pro)</li>
122
+ <li><a href="https://unlimited-elements.com/icon-team-member-widget-for-elementor">Icon Team Member for Elementor (Pro)</li>
123
+ <li><a href="http://unlimited-elements.com/team-member-grid-widget-for-elementor/">Team Member Grid for Elementor (Pro)</li>
124
+ <li><a href="https://unlimited-elements.com/sliding-effect-team-member-widget-for-elementor">Sliding Effect Team Member for Elementor (Pro)</li>
125
  </ol>
126
 
127
  <h3>Menu Widgets for Elementor</h3>
128
  <ol>
129
  <li><a href="https://unlimited-elements.com/simple-fullscreen-navigation-menu-widget-for-elementor/">Fullscreen Navigation Menu for Elementor (Free)</li>
130
+ <li><a href="https://unlimited-elements.com/simple-list-menu-widget-for-elementor">List Menu for Elementor (Free)</li>
131
  <li><a href="https://unlimited-elements.com/liquid-fullscreen-menu-widget-for-elementor">Liquid Full Screen Menu for Elementor (Pro)</li>
132
  <li><a href="http://unlimited-elements.com/side-menu-widget-for-elementor">Side Menu for Elementor (Pro)</li>
133
+ <li><a href="https://unlimited-elements.com/one-page-scroll-navigation-widget-for-elementor">One Page Scroll Navigation for Elementor (Pro)</li>
 
134
  <li><a href="https://unlimited-elements.com/accordion-menu-widget-for-elementor">Accordion Menu for Elementor (Pro)</li>
135
+ <li><a href="http://unlimited-elements.com/circle-menu-widget-for-elementor">Circle Menu for Elementor (Pro)</li>
136
  </ol>
137
 
138
+ <h3>Carousel Widgets for Elementor</h3>
139
  <ol>
140
+ <li><a href="https://unlimited-elements.com/card-carousel-widget-for-elementor/">Card Carousel for Elementor (Free)</li>
141
+ <li><a href="https://unlimited-elements.com/justified-image-carousel-widget-for-elementor/">Justified Image Carousel for Elementor (Pro)</li>
142
+ <li><a href="https://unlimited-elements.com/icon-carousel-widget-for-elementor/">Icon Carousel for Elementor (Pro)</li>
143
+ <li><a href="https://unlimited-elements.com/image-card-carousel-widget-for-elementor">Image Card Carousel for Elementor (Pro)</li>
144
+ <li><a href="https://unlimited-elements.com/material-carousel-widget-for-elementor/">Material Carousel for Elementor (Pro)</li>
145
+ <li><a href="https://unlimited-elements.com/overlay-carousel-widget-for-elementor">Overlay Carousel for Elementor (Pro)</li>
146
+ <li><a href="https://unlimited-elements.com/swipe-css-carousel-widget-for-elementor/">Swipe Css Carousel for Elementor (Pro)</li>
147
+ <li><a href="https://unlimited-elements.com/portfolio-carousel-widget-for-elementor/">Portfolio Carousel for Elementor (Pro)</li>
148
+ </ol>
149
+
150
+ <h3>Slider Widgets for Elementor</h3>
151
+ <ol>
152
+ <li><a href="https://unlimited-elements.com/simple-slider-widget-for-elementor/">Simple Slider for Elementor (Free)</li>
153
+ <li><a href="https://unlimited-elements.com/image-video-content-slider-widget-for-elementor">Image and Video Content Slider for Elementor (Pro)</li>
154
+ <li><a href="https://unlimited-elements.com/thumbnail-slider-widget-for-elementor/">Thumbnail Slider for Elementor (Pro)</li>
 
155
  </ol>
156
 
157
  <h3>Content Boxes for Elementor</h3>
166
  <li><a href="https://unlimited-elements.com/subtle-overlay-content-box-widget-for-elementor/">Subtle Overlay Content Box for Elementor (Pro)</li>
167
  <li><a href="https://unlimited-elements.com/border-hover-overlay-content-box-widget-for-elementor">Border Hover Overlay Content Box for Elementor (Pro)</li>
168
  <li><a href="https://unlimited-elements.com/animated-border-content-box-widget-for-elementor">Animated Border Content Box for Elementor (Pro)</li>
169
+ <li><a href="https://unlimited-elements.com/overlay-content-box-widget-for-elementor/">Overlay Content Box for Elementor (Pro)</li>
170
  <li><a href="https://unlimited-elements.com/shrink-content-box-widget-for-elementor/">Shrink Content Box for Elementor (Pro)</li>
171
  <li><a href="https://unlimited-elements.com/sliding-content-box-widget-for-elementor/">Sliding Content Box for Elementor (Pro)</li>
172
  </ol>
173
 
174
+ <h3>Instagram Widgets for Elementor</h3>
175
+ <ol>
176
+ <li><a href="https://unlimited-elements.com/latest-instagram-image-widget-for-elementor">Latest Instagram Image for Elementor (Free)</li>
177
+ <li><a href="https://unlimited-elements.com/grid-instagram-widget-for-elementor">Instagram Grid for Elementor (Pro)</li>
178
+ <li><a href="https://unlimited-elements.com/instagram-card-widget-for-elementor/">Instagram Card Widget for Elementor (Pro)</li>
179
+ <li><a href="https://unlimited-elements.com/metro-instagram-widget-for-elementor">Metro Instagram Widget for Elementor (Pro)</li>
180
+ <li><a href="https://unlimited-elements.com/instagram-teaser-box-for-elementor/">Instagram Teaser Box for Elementor (Pro)</li>
181
+ </ol>
182
+
183
+ <h3>Typography for Elementor</h3>
184
+ <ol>
185
+ <li><a href="https://unlimited-elements.com/3d-text-effect-for-elementor/">3d Text for Elementor (Free)</li>
186
+ <li><a href="https://unlimited-elements.com/3d-extrude-text-effect-widget-for-elementor">3D Extrude Text Effect for Elementor (Free)</li>
187
+ <li><a href="https://unlimited-elements.com/gradient-underline-text-effect-widget-for-elementor/">Gradient Underline Text Effect for Elementor (Free)</li>
188
+ <li><a href="https://unlimited-elements.com/dual-color-heading-widget-for-elementor/">Dual Color Heading for Elementor (Free)</li>
189
+ <li><a href="https://unlimited-elements.com/text-marquee-for-elementor/">Text Marquee Effect for Elementor (Free)</li>
190
+ <li><a href="https://unlimited-elements.com/stroke-text-effect-widget-for-elementor/">Stroke Text Effect for Elementor (Free)</li>
191
+ <li><a href="https://unlimited-elements.com/gradient-text-effect-for-elementor/">Gradient Text Effect for Elementor (Free)</li>
192
+ <li><a href="https://unlimited-elements.com/sideways-vertical-text-widget-for-elementor">Sideways Vertical Text for Elementor (Pro)</li>
193
+ <li><a href="https://unlimited-elements.com/futuristic-typing-text-effect-widget-for-elementor/">Futuristic Typing Text Effect for Elementor (Pro)</li>
194
+ <li><a href="https://unlimited-elements.com/text-rotator-for-elementor-page-builder/">Text Rotator for Elementor (Pro)</li>
195
+ <li><a href="https://unlimited-elements.com/image-background-text-effect-widget-for-elementor/">Image Background Text Effect for Elementor (Pro)</li>
196
+ <li><a href="https://unlimited-elements.com/typewriter-text-effect-for-elementor/">Typewriter Text Effect for Elementor (Pro)</li>
197
+ <li><a href="https://unlimited-elements.com/scroll-reveal-text-widget-for-elementor/">Scroll Reveal Text for Elementor (Pro)</li>
198
+ <li><a href="https://unlimited-elements.com/side-line-heading-widget-for-elementor/">Side Line Heading for Elementor (Pro)</li>
199
+ </ol>
200
+
201
  <h3>Button Widgets for Elementor</h3>
202
  <ol>
203
  <li><a href="https://unlimited-elements.com/toggle-text-button-widget-for-elementor/">Toggle Text Button for Elementor (Free)</li>
217
  <li><a href="https://unlimited-elements.com/glare-effect-button-widget-for-elementor/">Glare Effect Button for Elementor (Pro)</li>
218
  </ol>
219
 
 
 
 
 
 
 
 
 
 
 
 
 
220
  <h3>Image Galleries for Elementor</h3>
221
  <ol>
222
  <li><a href="https://unlimited-elements.com/minimalistic-image-gallery-for-elementor/">Minimalistic Image Gallery for Elementor (Free)</li>
223
  <li><a href="https://unlimited-elements.com/tile-grid-image-gallery-for-elementor/">Tile Grid Image Gallery for Elementor (Free)</li>
224
  <li><a href="https://unlimited-elements.com/slider-image-gallery-for-elementor/">Slider Image Gallery for Elementor (Free)</li>
225
  <li><a href="https://unlimited-elements.com/justified-columns-image-gallery-for-elementor">Justified Columns Image Gallery for Elementor (Pro)</li>
 
226
  <li><a href="https://unlimited-elements.com/video-and-image-gallery-grid-panel-widget-for-elementor/">Video and Image Gallery Grid Panel for Elementor (Pro)</li>
227
  <li><a href="https://unlimited-elements.com/carousel-image-gallery-for-elementor">Carousel Image Gallery for Elementor (Pro)</li>
228
  <li><a href="https://unlimited-elements.com/grid-panel-image-gallery-for-elementor">Grid Panel Image Gallery for Elementor (Pro)</li>
229
  <li><a href="https://unlimited-elements.com/basic-image-gallery-for-elementor/">Basic Image Gallery for Elementor (Pro)</li>
230
  </ol>
231
 
232
+ <h3>Restaurant Widgets for Elementor</h3>
233
+ <ol>
234
+ <li><a href="http://unlimited-elements.com/food-menu-box-widget-for-elementor/">Food Menu Box for Elementor (Free)</li>
235
+ <li><a href="https://unlimited-elements.com/food-menu-widget-for-elementor/">Food Menu for Elementor (Pro)</li>
236
+ <li><a href="https://unlimited-elements.com/food-menu-list-widget-for-elementor">Food Menu List for Elementor (Pro)</li>
237
+ <li><a href="https://unlimited-elements.com/food-menu-carousel-widget-for-elementor">Food Menu Carousel for Elementor (Pro)</li>
238
+ </ol>
239
+
240
  <h3>Hero Widgets for Elementor</h3>
241
  <ol>
242
  <li><a href="https://unlimited-elements.com/title-hero-widget-for-elementor">Title Hero for Elementor (Free)</li>
253
  <li><a href="https://unlimited-elements.com/solid-color-hero-widget-for-elementor">Solid Color Hero for Elementor (Pro)</li>
254
  </ol>
255
 
 
 
 
 
 
 
 
 
 
256
  <h3>Logo Widgets for Elementor</h3>
257
  <ol>
258
  <li><a href="https://unlimited-elements.com/logo-grid-widget-for-elementor/">Logo Grid for Elementor (Free)</li>
261
  <li><a href="https://unlimited-elements.com/logo-marquee-widget-for-elementor">Logo Marquee for Elementor (Pro)</li>
262
  </ol>
263
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
264
  <h3>Footer for Elementor</h3>
265
  <ol>
266
  <li><a href="https://unlimited-elements.com/material-footer-card-widget-for-elementor">Material Footer Card for Elementor (Free)</li>
315
  <li><a href="https://unlimited-elements.com/content-toggle-widget-for-elementor/">Content Toggle for Elementor (Pro)</li>
316
  </ol>
317
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
318
  <h3>Progress Bar for Elementor</h3>
319
  <ol>
320
  <li><a href="https://unlimited-elements.com/linear-progress-bar-widget-for-elementor">Linear Progress Bar for Elementor (Free)</li>
324
  <li><a href="https://unlimited-elements.com/vertical-progress-bar-widget-for-elementor">Vertical Progress Bar for Elementor (Pro)</li>
325
  </ol>
326
 
 
 
 
 
 
 
327
  <h3>Hover Effects for Elementor</h3>
328
  <ol>
329
  <li><a href="https://unlimited-elements.com/link-hover-effects/">Link Hover Effects for Elementor (Free)</li>
370
 
371
  <h3>Separators and Dividers for Elementor</h3>
372
  <ol>
373
+ <li><a href="https://unlimited-elements.com/separator-and-dividers-widgets-for-elementor/">Line Diamond Separator for Elementor (Free)</li>
374
  <li><a href="https://unlimited-elements.com/separator-and-dividers-widgets-for-elementor/">Divider for Elementor (Free)</li>
375
  <li><a href="https://unlimited-elements.com/separator-and-dividers-widgets-for-elementor/">Line Separator for Elementor (Free)</li>
376
  <li><a href="https://unlimited-elements.com/separator-and-dividers-widgets-for-elementor/">Victorian Separator Style 1 for Elementor (Free)</li>
408
  <li><a href="https://unlimited-elements.com/alternating-card-timeline-widget-for-elementor">Alternating Card Timeline for Elementor (Pro)</li>
409
  </ol>
410
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
411
  <h3>Google Charts for Elementor</h3>
412
  <ol>
413
  <li><a href="https://unlimited-elements.com/pie-chart-for-elementor">Pie chart for Elementor (Free)</li>
430
  </ol>
431
 
432
 
433
+
434
+
435
 
436
 
437
  <h3>Clutter Free</h3>
499
 
500
  == Changelog ==
501
 
502
+ version 1.4.74 = 2021-06-02
503
+
504
+ * Feature: added function put_date_range to twig functions. good for events widgets
505
+ * Feature: added integration with google map
506
+ * Feature: added function: "run_code_once" for twig
507
+ * Feature: added grouped options for the gallery
508
+ * Feature: added option to get posts by date from custom ACF field
509
+ * Feature: added gallery settings options for dynamic settings attribute
510
+ * Feature: added pagination to dynamic loop
511
+ * Change: improved dynamic settings attribute
512
+
513
+
514
+ version 1.4.73 = 2021-05-20
515
+
516
+ * Feature: added twig function: "put_attributes_json" that available in js tab in widget editor
517
+ * Feature: added constant - uc_inside_editor - for distinquish between editor and site front
518
+ * Feature: added multiple select attribute
519
+ * Feature: added listing attribute support
520
+ * Fix: fixed "request too long" message on a widget preview - shortened preview url
521
+ * Fix: fixed several bugs with condition field in widgets editor
522
+ * Fix: fixed hidden image size select on item attributes
523
+ * Fix: fixed acf group field output
524
+ * Fix: fixed elementor template in items, changed to specific function
525
+
526
+
527
+ version 1.4.72 = 2021-05-02
528
+
529
+ * Feature: added rating stars helper placeholder for woocommerce
530
+ * Feature: added option to include js file after elementor-frontend
531
+ * Fix: fixed new typography deprecation message
532
+
533
 
534
  version 1.4.71 = 2021-04-22
535
 
release_log.txt CHANGED
@@ -1,4 +1,35 @@
1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
  version 1.4.71
4
 
1
 
2
+ version 1.4.74
3
+
4
+ -feature: added function put_date_range to twig functions. good for events widgets
5
+ -feature: added integration with google map
6
+ -feature: added function: "run_code_once" for twig
7
+ -feature: added grouped options for the gallery
8
+ -feature: added option to get posts by date from custom ACF field
9
+ -change: improved dynamic settings attribute
10
+ -feature: added gallery settings options for dynamic settings attribute
11
+ -feature: added pagination to dynamic loop
12
+
13
+
14
+ version 1.4.73
15
+
16
+ -bug fix: fixed acf group field output
17
+ -feature: added twig function: "put_attributes_json" that available in js tab in widget editor
18
+ -feature: added constant - uc_inside_editor - for distinquish between editor and site front
19
+ -bug fix: fixed "request too long" message on a widget preview - shortened preview url
20
+ -bug fix: fixed several bugs with condition field in widgets editor
21
+ -bug fix: fixed hidden image size select on item attributes
22
+ -feature: added multiple select attribute
23
+ -feature: added dynamic settings attribute support
24
+ -bug fix: fixed elementor template in items, changed to specific function
25
+
26
+
27
+ version 1.4.72
28
+
29
+ -feature: added rating stars helper placeholder for woocommerce
30
+ -feature: added option to include js file after elementor-frontend
31
+ -bug fix: fixed new typography deprecation message
32
+
33
 
34
  version 1.4.71
35
 
settings/addon_fields.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
settings/font_panel_data.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
unitecreator_admin.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
unlimited_elements.php CHANGED
@@ -4,12 +4,12 @@ Plugin Name: Unlimited Elements for Elementor
4
  Plugin URI: http://unlimited-elements.com
5
  Description: Unlimited Elements - Huge Widgets Pack for Elementor Page Builder, with html/css/js widget creator and editor
6
  Author: Unlimited Elements
7
- Version: 1.4.71
8
  Author URI: http://unlimited-elements.com
9
  Text Domain: unlimited-elements-for-elementor
10
  Domain Path: /languages
11
- Elementor tested up to: 3.1.4
12
- Elementor Pro tested up to: 3.2.1
13
  */
14
 
15
  if(!defined("UNLIMITED_ELEMENTS_INC"))
4
  Plugin URI: http://unlimited-elements.com
5
  Description: Unlimited Elements - Huge Widgets Pack for Elementor Page Builder, with html/css/js widget creator and editor
6
  Author: Unlimited Elements
7
+ Version: 1.4.74
8
  Author URI: http://unlimited-elements.com
9
  Text Domain: unlimited-elements-for-elementor
10
  Domain Path: /languages
11
+ Elementor tested up to: 3.2.4
12
+ Elementor Pro tested up to: 3.2.2
13
  */
14
 
15
  if(!defined("UNLIMITED_ELEMENTS_INC"))
views/addon.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/addondefaults.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/addons.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/assets.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/layout.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/layout_outer.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/layout_preview.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/layouts.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/layouts_settings.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/library.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/license.php CHANGED
@@ -2,8 +2,8 @@
2
 
3
  /**
4
  * @package Unlimited Elements
5
- * @author UniteCMS.net
6
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
7
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
8
  * */
9
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
2
 
3
  /**
4
  * @package Unlimited Elements
5
+ * @author unlimited-elements.com
6
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
7
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
8
  * */
9
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/mappicker.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/master_view.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/mediaselect.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/objects/activation_view.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/objects/addon_view.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -610,6 +610,16 @@ class UniteCreatorAddonView{
610
  </span>
611
 
612
  <?php HelperHtmlUC::putDialogControlFieldsNotice() ?>
 
 
 
 
 
 
 
 
 
 
613
  </div>
614
  </div>
615
 
@@ -1203,6 +1213,21 @@ class UniteCreatorAddonView{
1203
 
1204
  }
1205
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1206
  /**
1207
  * add param for form item
1208
  */
@@ -1401,6 +1426,8 @@ class UniteCreatorAddonView{
1401
  protected function getAddParamKeys(){
1402
 
1403
  $arrAddKeys = array();
 
 
1404
  $arrAddKeys[UniteCreatorDialogParam::PARAM_NUMBER] = $this->getAddParams_responsive();
1405
 
1406
  $arrAddKeys[UniteCreatorDialogParam::PARAM_FORM] = $this->getAddParams_form();
@@ -1409,6 +1436,8 @@ class UniteCreatorAddonView{
1409
  $arrAddKeys[UniteCreatorDialogParam::PARAM_POST_TERMS] = $this->objChildParams->getAddParams_terms();
1410
  $arrAddKeys[UniteCreatorDialogParam::PARAM_WOO_CATS] = $this->objChildParams->getAddParams_terms(true);
1411
 
 
 
1412
  $arrAddKeys[UniteCreatorDialogParam::PARAM_USERS] = $this->objChildParams->getAddParams_users();
1413
 
1414
  $arrAddKeys[UniteCreatorDialogParam::PARAM_ICON_LIBRARY] = $this->objChildParams->getAddParams_iconLibrary();
@@ -1416,6 +1445,7 @@ class UniteCreatorAddonView{
1416
  $arrAddKeys[UniteCreatorDialogParam::PARAM_SLIDER] = $this->objChildParams->getAddParams_slider();
1417
 
1418
  $arrAddKeys[UniteCreatorDialogParam::PARAM_MENU] = $this->objChildParams->getAddParams_menu();
 
1419
 
1420
  return($arrAddKeys);
1421
  }
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
610
  </span>
611
 
612
  <?php HelperHtmlUC::putDialogControlFieldsNotice() ?>
613
+
614
+ <div class="vert_sap10"></div>
615
+
616
+ <label>
617
+ <input id="uc_dialog_include_after_elementor_frontend" type="checkbox" name="include_after_elementor_frontend">
618
+ &nbsp;
619
+ <?php _e("Include after elementor-frontend.js", "unlimited-elements-for-elementor")?>
620
+
621
+ </label>
622
+
623
  </div>
624
  </div>
625
 
1213
 
1214
  }
1215
 
1216
+ /**
1217
+ * add simple array
1218
+ */
1219
+ protected function getAddParams_array(){
1220
+
1221
+ $strText = "{% for value in [param_prefix] %}\n";
1222
+ $strText .= " {{value}}\n";
1223
+ $strText .= "{% endfor %}\n";
1224
+
1225
+ $arrParams = array();
1226
+ $arrParams[] = $this->createChildParam(null, null, array("raw_insert_text"=>$strText));
1227
+
1228
+ return($arrParams);
1229
+ }
1230
+
1231
  /**
1232
  * add param for form item
1233
  */
1426
  protected function getAddParamKeys(){
1427
 
1428
  $arrAddKeys = array();
1429
+
1430
+ $arrAddKeys[UniteCreatorDialogParam::PARAM_MULTIPLE_SELECT] = $this->getAddParams_array();
1431
  $arrAddKeys[UniteCreatorDialogParam::PARAM_NUMBER] = $this->getAddParams_responsive();
1432
 
1433
  $arrAddKeys[UniteCreatorDialogParam::PARAM_FORM] = $this->getAddParams_form();
1436
  $arrAddKeys[UniteCreatorDialogParam::PARAM_POST_TERMS] = $this->objChildParams->getAddParams_terms();
1437
  $arrAddKeys[UniteCreatorDialogParam::PARAM_WOO_CATS] = $this->objChildParams->getAddParams_terms(true);
1438
 
1439
+ $arrAddKeys[UniteCreatorDialogParam::PARAM_LISTING] = $this->objChildParams->getAddParams_listing();
1440
+
1441
  $arrAddKeys[UniteCreatorDialogParam::PARAM_USERS] = $this->objChildParams->getAddParams_users();
1442
 
1443
  $arrAddKeys[UniteCreatorDialogParam::PARAM_ICON_LIBRARY] = $this->objChildParams->getAddParams_iconLibrary();
1445
  $arrAddKeys[UniteCreatorDialogParam::PARAM_SLIDER] = $this->objChildParams->getAddParams_slider();
1446
 
1447
  $arrAddKeys[UniteCreatorDialogParam::PARAM_MENU] = $this->objChildParams->getAddParams_menu();
1448
+ $arrAddKeys[UniteCreatorDialogParam::PARAM_TEMPLATE] = $this->objChildParams->getAddParams_template();
1449
 
1450
  return($arrAddKeys);
1451
  }
views/objects/addon_view_childparams.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
@@ -273,6 +273,17 @@ class UniteCreatorAddonViewChildParams{
273
  ";
274
 
275
  $arrParams[] = $this->createChildParam_code($key, $text);
 
 
 
 
 
 
 
 
 
 
 
276
 
277
 
278
  //----- default value ------
@@ -359,7 +370,7 @@ jQuery(document).ready(function(){
359
 
360
  $strCode = "";
361
  $strCode .= "{% for cat in [param_prefix].categories %}\n";
362
-
363
  $strCode .= " <span> {{cat.id}} , {{cat.name}} , {{cat.slug}} , {{cat.description}}, {{cat.link}} </span> <br>\n\n ";
364
 
365
  $strCode .= " {# also you can use category custom fields #} \n";
@@ -508,7 +519,7 @@ jQuery(document).ready(function(){
508
  private function getCustomFieldKeyText($type, $key){
509
 
510
  //complex code (repeater)
511
-
512
  if(is_array($type)){
513
 
514
  $strCode = "";
@@ -544,9 +555,9 @@ jQuery(document).ready(function(){
544
  //--- simple array code
545
 
546
  if($type == "array"){
547
-
548
  $strCode = "";
549
- $strCode .= "{% for value in [param_prefix].{$key} %}\n";
550
  $strCode .= "<span> {{item}} </span>\n";
551
  $strCode .= "{% endfor %}\n";
552
 
@@ -1146,6 +1157,27 @@ jQuery(document).ready(function(){
1146
  return($arrParams);
1147
  }
1148
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1149
  /**
1150
  * get users child params
1151
  */
@@ -1203,6 +1235,23 @@ jQuery(document).ready(function(){
1203
 
1204
  return($arrParams);
1205
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1206
 
1207
 
1208
  /**
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
273
  ";
274
 
275
  $arrParams[] = $this->createChildParam_code($key, $text);
276
+
277
+ $key = "Date Functions";
278
+ $text = "
279
+ {# use the ucdate filter to convert timestamps to dates preserving wordpress format#}
280
+ {{ your_timestamp|ucdate(\"m/d/Y\") }}
281
+
282
+ {# to show data from - to range like 4-5 Mar 2021 use this function#}
283
+ {{ucfunc(\"put_date_range\",1617187095,1619187095)}}
284
+ ";
285
+
286
+ $arrParams[] = $this->createChildParam_code($key, $text);
287
 
288
 
289
  //----- default value ------
370
 
371
  $strCode = "";
372
  $strCode .= "{% for cat in [param_prefix].categories %}\n";
373
+
374
  $strCode .= " <span> {{cat.id}} , {{cat.name}} , {{cat.slug}} , {{cat.description}}, {{cat.link}} </span> <br>\n\n ";
375
 
376
  $strCode .= " {# also you can use category custom fields #} \n";
519
  private function getCustomFieldKeyText($type, $key){
520
 
521
  //complex code (repeater)
522
+
523
  if(is_array($type)){
524
 
525
  $strCode = "";
555
  //--- simple array code
556
 
557
  if($type == "array"){
558
+
559
  $strCode = "";
560
+ $strCode .= "{% for item in [param_prefix].{$key} %}\n";
561
  $strCode .= "<span> {{item}} </span>\n";
562
  $strCode .= "{% endfor %}\n";
563
 
1157
  return($arrParams);
1158
  }
1159
 
1160
+ /**
1161
+ * add listing child param
1162
+ */
1163
+ public function getAddParams_listing(){
1164
+
1165
+ $arrParams = array();
1166
+
1167
+ $strCode = "
1168
+ {% for item in [parent_name]_items %}
1169
+
1170
+ {{putDynamicLoopTemplate(item.object,[parent_name]_templateid)}}
1171
+
1172
+ {% endfor %}
1173
+
1174
+ ";
1175
+ $arrParams[] = $this->createChildParam_code("[parent_name]_output", $strCode);
1176
+
1177
+ return($arrParams);
1178
+ }
1179
+
1180
+
1181
  /**
1182
  * get users child params
1183
  */
1235
 
1236
  return($arrParams);
1237
  }
1238
+
1239
+
1240
+ /**
1241
+ * get post child params
1242
+ */
1243
+ public function getAddParams_template(){
1244
+
1245
+ $arrParams = array();
1246
+
1247
+ $strCode = "{{putElementorTemplate([param_prefix]_templateid)}}";
1248
+
1249
+ $arrParam = $this->createChildParam(null, null, array("raw_insert_text"=>$strCode));
1250
+
1251
+ $arrParams[] = $arrParam;
1252
+
1253
+ return($arrParams);
1254
+ }
1255
 
1256
 
1257
  /**
views/objects/addons_view.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/objects/layouts_view.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/objects/mappicker_view.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/objects/objects_list_view.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/objects/settings_view.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/objects/views_chooser.class.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/settings.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/system/video_dialog.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/templates.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/templates/addon_defaults.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/templates/header.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/templates/settings.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/templates/test_addon.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/test_settings.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
views/testaddon.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
- * @author UniteCMS.net
5
- * @copyright (C) 2017 Unite CMS, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
1
  <?php
2
  /**
3
  * @package Unlimited Elements
4
+ * @author unlimited-elements.com
5
+ * @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
6
  * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
7
  * */
8
  defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');