Page Builder: PageLayer – Drag and Drop website builder - Version 1.4.7

Version Description

(Feb 26, 2021) = * [Feature] Added the option to scroll to the top of any element or body in button widget. * [Bug-Fix] In some cases the background color of the checked radio button in the contact form widget was not working properly. This is fixed. * [Bug-Fix] In some cases the contact form custom template settings were not working properly. This is fixed. * [Bug-Fix] In some cases the default titles of the countdown were not shown in the countdown timer widget. This is fixed.

Download this release

Release Info

Developer pagelayer
Plugin Icon 128x128 Page Builder: PageLayer – Drag and Drop website builder
Version 1.4.7
Comparing to
See all releases

Code changes from version 1.4.6 to 1.4.7

css/combined.css CHANGED
@@ -3379,6 +3379,10 @@ box-shadow:0 0 5px 0px gray inset;
3379
  padding: 0 !important;
3380
  }
3381
 
 
 
 
 
3382
  .pagelayer-contact-holder input[type='radio']:hover {
3383
  box-shadow:0 0 5px 0px orange inset;
3384
  }
3379
  padding: 0 !important;
3380
  }
3381
 
3382
+ .pagelayer-contact-holder input[type="radio"]:checked:before {
3383
+ background: #333333;
3384
+ }
3385
+
3386
  .pagelayer-contact-holder input[type='radio']:hover {
3387
  box-shadow:0 0 5px 0px orange inset;
3388
  }
css/pagelayer-editor.css CHANGED
@@ -1856,6 +1856,8 @@ box-sizing: border-box;
1856
  line-height: 24px;
1857
  border-radius: 4px;
1858
  cursor: pointer;
 
 
1859
  }
1860
 
1861
  .pagelayer-dark .pagelayer-elp-typo-sele{
1856
  line-height: 24px;
1857
  border-radius: 4px;
1858
  cursor: pointer;
1859
+ overflow: hidden;
1860
+ white-space: nowrap;
1861
  }
1862
 
1863
  .pagelayer-dark .pagelayer-elp-typo-sele{
css/pagelayer-frontend.css CHANGED
@@ -3379,6 +3379,10 @@ box-shadow:0 0 5px 0px gray inset;
3379
  padding: 0 !important;
3380
  }
3381
 
 
 
 
 
3382
  .pagelayer-contact-holder input[type='radio']:hover {
3383
  box-shadow:0 0 5px 0px orange inset;
3384
  }
@@ -4955,4 +4959,4 @@ width:100%;
4955
 
4956
  /********************/
4957
  /*** Freemium End ***/
4958
- /********************/
3379
  padding: 0 !important;
3380
  }
3381
 
3382
+ .pagelayer-contact-holder input[type="radio"]:checked:before {
3383
+ background: #333333;
3384
+ }
3385
+
3386
  .pagelayer-contact-holder input[type='radio']:hover {
3387
  box-shadow:0 0 5px 0px orange inset;
3388
  }
4959
 
4960
  /********************/
4961
  /*** Freemium End ***/
4962
+ /********************/
init.php CHANGED
@@ -5,7 +5,7 @@ if (!defined('ABSPATH')) exit;
5
 
6
  define('PAGELAYER_BASE', plugin_basename(PAGELAYER_FILE));
7
  define('PAGELAYER_PRO_BASE', 'pagelayer-pro/pagelayer-pro.php');
8
- define('PAGELAYER_VERSION', '1.4.6');
9
  define('PAGELAYER_DIR', dirname(PAGELAYER_FILE));
10
  define('PAGELAYER_SLUG', 'pagelayer');
11
  define('PAGELAYER_URL', plugins_url('', PAGELAYER_FILE));
5
 
6
  define('PAGELAYER_BASE', plugin_basename(PAGELAYER_FILE));
7
  define('PAGELAYER_PRO_BASE', 'pagelayer-pro/pagelayer-pro.php');
8
+ define('PAGELAYER_VERSION', '1.4.7');
9
  define('PAGELAYER_DIR', dirname(PAGELAYER_FILE));
10
  define('PAGELAYER_SLUG', 'pagelayer');
11
  define('PAGELAYER_URL', plugins_url('', PAGELAYER_FILE));
js/combined.js CHANGED
@@ -86,11 +86,17 @@ jQuery(document).ready(function(){
86
  pagelayer_mega_menu_position(jQuery(this));
87
  });
88
 
89
- jQuery('.pagelayer-bgimg-slider').each(function(){
 
 
 
 
90
  pagelayer_pl_row_slider(jQuery(this));
91
  });
92
 
93
- pagelayer_stars();
 
 
94
 
95
  // We need to call the is visible thing to show the widgets loading effect
96
  if(jQuery('.pagelayer-counter-content,.pagelayer-progress-container').length > 0){
@@ -589,49 +595,47 @@ function pagelayer_pl_image(jEle){
589
  });
590
  }
591
 
592
- function pagelayer_stars(){
593
- jQuery('.pagelayer-stars-container').each(function(){
594
- var jEle = jQuery(this);
595
- var setup = jEle.attr('pagelayer-setup');
596
- if(setup && setup.length > 0){
597
- return true;
598
- }
599
- var count = jEle.attr('pagelayer-stars-count');
600
 
601
- if (isNaN(count)) {
602
- count = '0';
603
- }
604
 
605
- i = 0;
606
- var stars = "";
607
- while(i < count){
608
- stars +='<div class="pagelayer-stars-icon pagelayer-stars-empty"><i class="fas fa-star" aria-hidden="true"></i></div>';
609
- i++;
610
- }
611
 
612
- jEle.empty();
613
- jEle.append(stars);
614
- var starsval = jEle.attr('pagelayer-stars-value');
615
 
616
- if (isNaN(starsval)) {
617
- starsval = count;
618
- }
619
 
620
- starsval = starsval.split('.');
621
- var fullstars = starsval[0];
622
- var value = starsval[1];
623
- var halfstar = parseInt(fullstars) + 1;
624
- var emptystars = parseInt(fullstars) + 2;
625
- jEle.children('.pagelayer-stars-icon').attr("class","pagelayer-stars-icon");
626
- jEle.children('.pagelayer-stars-icon:nth-child(-n+'+ fullstars +')').addClass('pagelayer-stars-full');
627
- if(value != undefined){
628
- jEle.children('.pagelayer-stars-icon:nth-child('+ halfstar +')').addClass('pagelayer-stars-'+value);
629
- }else{
630
- jEle.children('.pagelayer-stars-icon:nth-child('+ halfstar +')').addClass('pagelayer-stars-empty');
631
- }
632
- jEle.children('.pagelayer-stars-icon:nth-child(n+'+ emptystars +')').addClass('pagelayer-stars-empty');
633
- jEle.attr('pagelayer-setup', 1);
634
- });
635
  }
636
 
637
  // Grid Gallery pagination Off On function
@@ -863,6 +867,39 @@ function pagelayer_recaptcha_loader(jEle, loadScript){
863
 
864
  }
865
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
866
  ////////////
867
  // Freemium
868
  ////////////
86
  pagelayer_mega_menu_position(jQuery(this));
87
  });
88
 
89
+ jQuery('.pagelayer-scroll-to-element').each(function () {
90
+ pagelayer_button_element_scroll(jQuery(this));
91
+ });
92
+
93
+ jQuery('.pagelayer-bgimg-slider').each(function () {
94
  pagelayer_pl_row_slider(jQuery(this));
95
  });
96
 
97
+ jQuery('.pagelayer-stars-container').each(function(){
98
+ pagelayer_stars(jQuery(this));
99
+ });
100
 
101
  // We need to call the is visible thing to show the widgets loading effect
102
  if(jQuery('.pagelayer-counter-content,.pagelayer-progress-container').length > 0){
595
  });
596
  }
597
 
598
+ function pagelayer_stars(jEle){
599
+
600
+ var setup = jEle.attr('pagelayer-setup');
601
+ if(setup && setup.length > 0){
602
+ return true;
603
+ }
604
+ var count = jEle.attr('pagelayer-stars-count');
 
605
 
606
+ if (isNaN(count)) {
607
+ count = '0';
608
+ }
609
 
610
+ i = 0;
611
+ var stars = "";
612
+ while(i < count){
613
+ stars +='<div class="pagelayer-stars-icon pagelayer-stars-empty"><i class="fas fa-star" aria-hidden="true"></i></div>';
614
+ i++;
615
+ }
616
 
617
+ jEle.empty();
618
+ jEle.append(stars);
619
+ var starsval = jEle.attr('pagelayer-stars-value');
620
 
621
+ if (isNaN(starsval)) {
622
+ starsval = count;
623
+ }
624
 
625
+ starsval = starsval.split('.');
626
+ var fullstars = starsval[0];
627
+ var value = starsval[1];
628
+ var halfstar = parseInt(fullstars) + 1;
629
+ var emptystars = parseInt(fullstars) + 2;
630
+ jEle.children('.pagelayer-stars-icon').attr("class","pagelayer-stars-icon");
631
+ jEle.children('.pagelayer-stars-icon:nth-child(-n+'+ fullstars +')').addClass('pagelayer-stars-full');
632
+ if(value != undefined){
633
+ jEle.children('.pagelayer-stars-icon:nth-child('+ halfstar +')').addClass('pagelayer-stars-'+value);
634
+ }else{
635
+ jEle.children('.pagelayer-stars-icon:nth-child('+ halfstar +')').addClass('pagelayer-stars-empty');
636
+ }
637
+ jEle.children('.pagelayer-stars-icon:nth-child(n+'+ emptystars +')').addClass('pagelayer-stars-empty');
638
+ jEle.attr('pagelayer-setup', 1);
 
639
  }
640
 
641
  // Grid Gallery pagination Off On function
867
 
868
  }
869
 
870
+ // Scroll to element button effect
871
+ function pagelayer_button_element_scroll(jEle) {
872
+
873
+ var speed = parseInt(jEle.attr('pagelayer_scrollto_speed') * 1000);
874
+ var idspacing = 0;
875
+ var scrollId = jEle.attr('pagelayer_scrollto_id');
876
+
877
+ if(jEle.attr('pagelayer_scrollto_type') == 'toid'){
878
+
879
+ var scrolltoEle = jQuery('#' + scrollId);
880
+
881
+ if(pagelayer_empty(scrollId) || scrolltoEle.length < 1){
882
+ return;
883
+ }
884
+
885
+ var idpos = parseInt(scrolltoEle.offset().top);
886
+ var spacing = parseInt(jEle.attr('pagelayer_scrollto_id_viewport'));
887
+
888
+ if (isNaN(spacing)) {
889
+ spacing = 0;
890
+ }
891
+
892
+ idspacing = idpos + spacing;
893
+
894
+ }
895
+
896
+ jEle.on('click', function (e) {
897
+ e.preventDefault();
898
+ jQuery('html, body').animate({ scrollTop: idspacing }, speed);
899
+ });
900
+
901
+ }
902
+
903
  ////////////
904
  // Freemium
905
  ////////////
js/pagelayer-editor.js CHANGED
@@ -2802,9 +2802,15 @@ function pagelayer_set_atts(jEle, atts, val){
2802
  // Record History
2803
  if(pagelayer.history_action){
2804
  var old_val = pagelayer_get_att(jEle, x) || '';
 
 
 
 
 
 
2805
  pagelayer_history_action_push({
2806
  'title' : all_props['name'],
2807
- 'subTitle' : _props[x]['label'],
2808
  'action' : 'Edited',
2809
  'attrType' : 'a_attr',
2810
  'pl_id' : pagelayer_id(jEle),
@@ -5616,8 +5622,8 @@ function pagelayer_show_msg(msg, time){
5616
  // Pagelayer confirmation box
5617
  function pagelayer_confirmation_box(message, yesCallback, noCallback, yesText, noText) {
5618
 
5619
- yesText = yesText || 'Yes';
5620
- noText = noText || 'No';
5621
 
5622
  var dialog = jQuery('<div class="pagelayer-confirm-box-holder">'+
5623
  '<div class="pagelayer-confirm-box" style="border-radius:5px">'+
2802
  // Record History
2803
  if(pagelayer.history_action){
2804
  var old_val = pagelayer_get_att(jEle, x) || '';
2805
+ var label = x;
2806
+
2807
+ if(x in _props && 'label' in _props[x]){
2808
+ label = _props[x]['label'];
2809
+ }
2810
+
2811
  pagelayer_history_action_push({
2812
  'title' : all_props['name'],
2813
+ 'subTitle' : label,
2814
  'action' : 'Edited',
2815
  'attrType' : 'a_attr',
2816
  'pl_id' : pagelayer_id(jEle),
5622
  // Pagelayer confirmation box
5623
  function pagelayer_confirmation_box(message, yesCallback, noCallback, yesText, noText) {
5624
 
5625
+ yesText = yesText || pagelayer_l('Yes');
5626
+ noText = noText || pagelayer_l('No');
5627
 
5628
  var dialog = jQuery('<div class="pagelayer-confirm-box-holder">'+
5629
  '<div class="pagelayer-confirm-box" style="border-radius:5px">'+
js/pagelayer-frontend.js CHANGED
@@ -86,11 +86,17 @@ jQuery(document).ready(function(){
86
  pagelayer_mega_menu_position(jQuery(this));
87
  });
88
 
89
- jQuery('.pagelayer-bgimg-slider').each(function(){
 
 
 
 
90
  pagelayer_pl_row_slider(jQuery(this));
91
  });
92
 
93
- pagelayer_stars();
 
 
94
 
95
  // We need to call the is visible thing to show the widgets loading effect
96
  if(jQuery('.pagelayer-counter-content,.pagelayer-progress-container').length > 0){
@@ -589,49 +595,47 @@ function pagelayer_pl_image(jEle){
589
  });
590
  }
591
 
592
- function pagelayer_stars(){
593
- jQuery('.pagelayer-stars-container').each(function(){
594
- var jEle = jQuery(this);
595
- var setup = jEle.attr('pagelayer-setup');
596
- if(setup && setup.length > 0){
597
- return true;
598
- }
599
- var count = jEle.attr('pagelayer-stars-count');
600
 
601
- if (isNaN(count)) {
602
- count = '0';
603
- }
604
 
605
- i = 0;
606
- var stars = "";
607
- while(i < count){
608
- stars +='<div class="pagelayer-stars-icon pagelayer-stars-empty"><i class="fas fa-star" aria-hidden="true"></i></div>';
609
- i++;
610
- }
611
 
612
- jEle.empty();
613
- jEle.append(stars);
614
- var starsval = jEle.attr('pagelayer-stars-value');
615
 
616
- if (isNaN(starsval)) {
617
- starsval = count;
618
- }
619
 
620
- starsval = starsval.split('.');
621
- var fullstars = starsval[0];
622
- var value = starsval[1];
623
- var halfstar = parseInt(fullstars) + 1;
624
- var emptystars = parseInt(fullstars) + 2;
625
- jEle.children('.pagelayer-stars-icon').attr("class","pagelayer-stars-icon");
626
- jEle.children('.pagelayer-stars-icon:nth-child(-n+'+ fullstars +')').addClass('pagelayer-stars-full');
627
- if(value != undefined){
628
- jEle.children('.pagelayer-stars-icon:nth-child('+ halfstar +')').addClass('pagelayer-stars-'+value);
629
- }else{
630
- jEle.children('.pagelayer-stars-icon:nth-child('+ halfstar +')').addClass('pagelayer-stars-empty');
631
- }
632
- jEle.children('.pagelayer-stars-icon:nth-child(n+'+ emptystars +')').addClass('pagelayer-stars-empty');
633
- jEle.attr('pagelayer-setup', 1);
634
- });
635
  }
636
 
637
  // Grid Gallery pagination Off On function
@@ -863,6 +867,39 @@ function pagelayer_recaptcha_loader(jEle, loadScript){
863
 
864
  }
865
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
866
  ////////////
867
  // Freemium
868
  ////////////
86
  pagelayer_mega_menu_position(jQuery(this));
87
  });
88
 
89
+ jQuery('.pagelayer-scroll-to-element').each(function () {
90
+ pagelayer_button_element_scroll(jQuery(this));
91
+ });
92
+
93
+ jQuery('.pagelayer-bgimg-slider').each(function () {
94
  pagelayer_pl_row_slider(jQuery(this));
95
  });
96
 
97
+ jQuery('.pagelayer-stars-container').each(function(){
98
+ pagelayer_stars(jQuery(this));
99
+ });
100
 
101
  // We need to call the is visible thing to show the widgets loading effect
102
  if(jQuery('.pagelayer-counter-content,.pagelayer-progress-container').length > 0){
595
  });
596
  }
597
 
598
+ function pagelayer_stars(jEle){
599
+
600
+ var setup = jEle.attr('pagelayer-setup');
601
+ if(setup && setup.length > 0){
602
+ return true;
603
+ }
604
+ var count = jEle.attr('pagelayer-stars-count');
 
605
 
606
+ if (isNaN(count)) {
607
+ count = '0';
608
+ }
609
 
610
+ i = 0;
611
+ var stars = "";
612
+ while(i < count){
613
+ stars +='<div class="pagelayer-stars-icon pagelayer-stars-empty"><i class="fas fa-star" aria-hidden="true"></i></div>';
614
+ i++;
615
+ }
616
 
617
+ jEle.empty();
618
+ jEle.append(stars);
619
+ var starsval = jEle.attr('pagelayer-stars-value');
620
 
621
+ if (isNaN(starsval)) {
622
+ starsval = count;
623
+ }
624
 
625
+ starsval = starsval.split('.');
626
+ var fullstars = starsval[0];
627
+ var value = starsval[1];
628
+ var halfstar = parseInt(fullstars) + 1;
629
+ var emptystars = parseInt(fullstars) + 2;
630
+ jEle.children('.pagelayer-stars-icon').attr("class","pagelayer-stars-icon");
631
+ jEle.children('.pagelayer-stars-icon:nth-child(-n+'+ fullstars +')').addClass('pagelayer-stars-full');
632
+ if(value != undefined){
633
+ jEle.children('.pagelayer-stars-icon:nth-child('+ halfstar +')').addClass('pagelayer-stars-'+value);
634
+ }else{
635
+ jEle.children('.pagelayer-stars-icon:nth-child('+ halfstar +')').addClass('pagelayer-stars-empty');
636
+ }
637
+ jEle.children('.pagelayer-stars-icon:nth-child(n+'+ emptystars +')').addClass('pagelayer-stars-empty');
638
+ jEle.attr('pagelayer-setup', 1);
 
639
  }
640
 
641
  // Grid Gallery pagination Off On function
867
 
868
  }
869
 
870
+ // Scroll to element button effect
871
+ function pagelayer_button_element_scroll(jEle) {
872
+
873
+ var speed = parseInt(jEle.attr('pagelayer_scrollto_speed') * 1000);
874
+ var idspacing = 0;
875
+ var scrollId = jEle.attr('pagelayer_scrollto_id');
876
+
877
+ if(jEle.attr('pagelayer_scrollto_type') == 'toid'){
878
+
879
+ var scrolltoEle = jQuery('#' + scrollId);
880
+
881
+ if(pagelayer_empty(scrollId) || scrolltoEle.length < 1){
882
+ return;
883
+ }
884
+
885
+ var idpos = parseInt(scrolltoEle.offset().top);
886
+ var spacing = parseInt(jEle.attr('pagelayer_scrollto_id_viewport'));
887
+
888
+ if (isNaN(spacing)) {
889
+ spacing = 0;
890
+ }
891
+
892
+ idspacing = idpos + spacing;
893
+
894
+ }
895
+
896
+ jEle.on('click', function (e) {
897
+ e.preventDefault();
898
+ jQuery('html, body').animate({ scrollTop: idspacing }, speed);
899
+ });
900
+
901
+ }
902
+
903
  ////////////
904
  // Freemium
905
  ////////////
js/widgets.js CHANGED
@@ -354,7 +354,8 @@ function pagelayer_render_pl_testimonial(el){
354
 
355
  // Render the stars
356
  function pagelayer_render_end_pl_stars(el){
357
- pagelayer_stars();
 
358
  };
359
 
360
 
@@ -959,8 +960,7 @@ function pagelayer_render_pl_contact(el){
959
 
960
  // Set post id in atts
961
  el.atts['con_post_id'] = pagelayer_postID;
962
- el.atts['grecaptcha'] = pagelayer_recaptch_site_key;
963
- el.$.attr('pagelayer-a-con_post_id', pagelayer_postID);
964
  }
965
 
966
  // Render the contact form
@@ -976,6 +976,9 @@ function pagelayer_render_end_pl_contact(el){
976
  pagelayer_recaptcha_loader(recaptcha, true);
977
  }
978
  });
 
 
 
979
  }
980
 
981
  // Render the contact form
@@ -1033,7 +1036,7 @@ function pagelayer_render_pl_contact_item(el){
1033
  options = el.atts['values'].split("\n");
1034
  html += '<div class="pagelayer-radcheck-holder">';
1035
  for(var x in options){
1036
- html += '<div><input type="checkbox" id="'+options[x].trim()+'" name="'+el.atts['field_name']+'" '+
1037
  'value="'+options[x].trim()+'" '+required+'/><label for="'+options[x].trim()+'" class="pagelayer-form-label">'+options[x].trim()+'</label></div>';
1038
  }
1039
  html += '</div>';
@@ -1096,6 +1099,16 @@ function pagelayer_render_end_pl_testimonial_slider(el){
1096
  pagelayer_pl_testimonial_slider(el.$);
1097
  }
1098
 
 
 
 
 
 
 
 
 
 
 
1099
  // Render the countdown
1100
  function pagelayer_render_end_pl_countdown(el){
1101
  var jEle = el.$;
354
 
355
  // Render the stars
356
  function pagelayer_render_end_pl_stars(el){
357
+ var jEle = el.$.find('.pagelayer-stars-container');
358
+ pagelayer_stars(jEle);
359
  };
360
 
361
 
960
 
961
  // Set post id in atts
962
  el.atts['con_post_id'] = pagelayer_postID;
963
+ el.atts['grecaptcha'] = pagelayer_recaptch_site_key;
 
964
  }
965
 
966
  // Render the contact form
976
  pagelayer_recaptcha_loader(recaptcha, true);
977
  }
978
  });
979
+
980
+ pagelayer_set_atts(el.$, 'con_post_id', pagelayer_postID);
981
+
982
  }
983
 
984
  // Render the contact form
1036
  options = el.atts['values'].split("\n");
1037
  html += '<div class="pagelayer-radcheck-holder">';
1038
  for(var x in options){
1039
+ html += '<div><input type="checkbox" id="'+options[x].trim()+'" name="'+el.atts['field_name']+'[]" '+
1040
  'value="'+options[x].trim()+'" '+required+'/><label for="'+options[x].trim()+'" class="pagelayer-form-label">'+options[x].trim()+'</label></div>';
1041
  }
1042
  html += '</div>';
1099
  pagelayer_pl_testimonial_slider(el.$);
1100
  }
1101
 
1102
+ // Render the countdown
1103
+ function pagelayer_render_pl_countdown(el){
1104
+ if(pagelayer_empty(el.atts['custom_label_text'])){
1105
+ el.atts['days_label_text'] = 'Days';
1106
+ el.atts['hours_label_text'] = 'Hours';
1107
+ el.atts['minutes_label_text'] = 'Minutes';
1108
+ el.atts['seconds_label_text'] = 'Seconds';
1109
+ }
1110
+ }
1111
+
1112
  // Render the countdown
1113
  function pagelayer_render_end_pl_countdown(el){
1114
  var jEle = el.$;
languages/en.json CHANGED
@@ -15,6 +15,11 @@
15
  "animation_styles": "Animation",
16
  "responsive_styles": "Responsive",
17
  "custom_styles": "Custom CSS",
 
 
 
 
 
18
  "params": "Params",
19
  "hotspot": "Hotspot",
20
  "hotspots": "Hotspots",
15
  "animation_styles": "Animation",
16
  "responsive_styles": "Responsive",
17
  "custom_styles": "Custom CSS",
18
+ "scroll_to_element": "Scroll To Element",
19
+ "scroll_to": "Scroll To",
20
+ "spacing_from_id": "Top Spacing From Element",
21
+ "ele_scroll_id_desc": "Add your Element ID without Hash(#)",
22
+ "ele_scroll_speed": "Speed x 1000",
23
  "params": "Params",
24
  "hotspot": "Hotspot",
25
  "hotspots": "Hotspots",
main/ajax.php CHANGED
@@ -1089,6 +1089,11 @@ function pagelayer_contact_submit(){
1089
  // If we are using HTML, then we should escape html as well
1090
  if(!empty($use_html)){
1091
  foreach($formdata as $k => $i){
 
 
 
 
 
1092
  $formdata[$k] = esc_html($i);
1093
  }
1094
  }
1089
  // If we are using HTML, then we should escape html as well
1090
  if(!empty($use_html)){
1091
  foreach($formdata as $k => $i){
1092
+
1093
+ if(is_array($i)){
1094
+ $i = pagelayer_flat_join($i);
1095
+ }
1096
+
1097
  $formdata[$k] = esc_html($i);
1098
  }
1099
  }
main/shortcodes.php CHANGED
@@ -4851,7 +4851,8 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_btn', array(
4851
  'type' => 'link',
4852
  'label' => __pl('button_link_label'),
4853
  'desc' => __pl('button_link_desc'),
4854
- 'addAttr' => ['{{element}} .pagelayer-btn-holder' => 'href="{{{link}}}"']
 
4855
  ),
4856
  'rel' => array(
4857
  'type' => 'text',
@@ -4861,7 +4862,8 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_btn', array(
4861
  'target' => array(
4862
  'type' => 'checkbox',
4863
  'label' => __pl('open_link_in_new_window'),
4864
- 'addAttr' => ['{{element}} a' => 'target="_blank"']
 
4865
  ),
4866
  'full_width' => array(
4867
  'type' => 'checkbox',
@@ -5221,10 +5223,59 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_btn', array(
5221
  ),
5222
  ),
5223
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5224
  'styles' => [
5225
  'btn_style' => __pl('btn_style'),
5226
  'icon_style' => __pl('icon'),
5227
  'border_style' => __pl('border_style'),
 
5228
  ]
5229
  )
5230
  );
4851
  'type' => 'link',
4852
  'label' => __pl('button_link_label'),
4853
  'desc' => __pl('button_link_desc'),
4854
+ 'addAttr' => ['{{element}} .pagelayer-btn-holder' => 'href="{{{link}}}"'],
4855
+ 'req' => ['ele_scrollto' => '']
4856
  ),
4857
  'rel' => array(
4858
  'type' => 'text',
4862
  'target' => array(
4863
  'type' => 'checkbox',
4864
  'label' => __pl('open_link_in_new_window'),
4865
+ 'addAttr' => ['{{element}} a' => 'target="_blank"'],
4866
+ 'req' => ['ele_scrollto' => '']
4867
  ),
4868
  'full_width' => array(
4869
  'type' => 'checkbox',
5223
  ),
5224
  ),
5225
  ],
5226
+ 'scroll_to_element' => [
5227
+ 'ele_scrollto' => array(
5228
+ 'type' => 'checkbox',
5229
+ 'label' => __pl('Enable'),
5230
+ 'addClass' => 'pagelayer-scroll-to-element',
5231
+ ),
5232
+ 'ele_scrollto_type' => array(
5233
+ 'type' => 'select',
5234
+ 'label' => __pl('scroll_to'),
5235
+ 'default' => 'totop',
5236
+ 'list' => array(
5237
+ 'toid' => __pl('Element'),
5238
+ 'totop' => __pl('Top'),
5239
+ ),
5240
+ 'addAttr' => 'pagelayer_scrollto_type="{{ele_scrollto_type}}"',
5241
+ 'req' => ['!ele_scrollto' => ''],
5242
+ ),
5243
+ 'ele_scrollto_id' => array(
5244
+ 'type' => 'text',
5245
+ 'label' => __pl('ele_id'),
5246
+ 'default' => '',
5247
+ 'desc' => __pl('ele_scroll_id_desc'),
5248
+ 'addAttr' => 'pagelayer_scrollto_id="{{ele_scrollto_id}}"',
5249
+ 'req' => [ '!ele_scrollto' => '', 'ele_scrollto_type' => 'toid'],
5250
+ ),
5251
+ 'ele_scrollto_id_viewport' => array(
5252
+ 'type' => 'slider',
5253
+ 'label' => __pl('spacing_from_id'),
5254
+ 'min' => -200,
5255
+ 'step' => 1,
5256
+ 'max' => 200,
5257
+ 'default' => 0,
5258
+ 'addAttr' => 'pagelayer_scrollto_id_viewport="{{ele_scrollto_id_viewport}}"',
5259
+ 'req' => [ '!ele_scrollto' => '', 'ele_scrollto_type' => 'toid'],
5260
+ ),
5261
+ 'ele_scrollto_speed' => array(
5262
+ 'type' => 'slider',
5263
+ 'label' => __pl('slider_animation_speed'),
5264
+ 'min' => 0,
5265
+ 'step' => 0.1,
5266
+ 'max' => 10,
5267
+ 'default' => 0.4,
5268
+ 'screen' => 1,
5269
+ 'desc' => __pl('ele_scroll_speed'),
5270
+ 'addAttr' => 'pagelayer_scrollto_speed="{{ele_scrollto_speed}}"',
5271
+ 'req' => [ '!ele_scrollto' => ''],
5272
+ ),
5273
+ ],
5274
  'styles' => [
5275
  'btn_style' => __pl('btn_style'),
5276
  'icon_style' => __pl('icon'),
5277
  'border_style' => __pl('border_style'),
5278
+ 'scroll_to_element' => __pl('scroll_to_element'),
5279
  ]
5280
  )
5281
  );
main/template.php CHANGED
@@ -359,7 +359,8 @@ function pagelayer_builder_admin_head(){
359
  return;
360
  }
361
 
362
- echo '<script type="text/javascript">
 
363
 
364
  jQuery(document).ready(function(){
365
  var but = jQuery(".page-title-action");
@@ -380,6 +381,7 @@ jQuery(document).ready(function(){
380
  });
381
 
382
  </script>';
 
383
 
384
  }
385
 
@@ -620,7 +622,7 @@ function pagelayer_builder_template_tabs( $views ) {
620
  $all_title = __( 'All' );
621
  }
622
 
623
- echo '<div id="pagelayer-template-tabs-wrapper" class="nav-tab-wrapper" style="margin-bottom:10px">
624
  <a class="nav-tab'. $active_class .'" href="'. $baseurl .'"> '. $all_title .'</a>';
625
 
626
  foreach ( $template_types as $type => $class_name ) {
359
  return;
360
  }
361
 
362
+ if(!defined('SITEPAD')){
363
+ echo '<script type="text/javascript">
364
 
365
  jQuery(document).ready(function(){
366
  var but = jQuery(".page-title-action");
381
  });
382
 
383
  </script>';
384
+ }
385
 
386
  }
387
 
622
  $all_title = __( 'All' );
623
  }
624
 
625
+ echo '<div id="pagelayer-template-tabs-wrapper" class="nav-tab-wrapper" style="margin-bottom:15px">
626
  <a class="nav-tab'. $active_class .'" href="'. $baseurl .'"> '. $all_title .'</a>';
627
 
628
  foreach ( $template_types as $type => $class_name ) {
pagelayer.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: PageLayer
4
  Plugin URI: http://wordpress.org/plugins/pagelayer/
5
  Description: PageLayer is a WordPress page builder plugin. Its very easy to use and very light on the browser.
6
- Version: 1.4.6
7
  Author: Pagelayer Team
8
  Author URI: https://pagelayer.com/
9
  License: LGPL v2.1
3
  Plugin Name: PageLayer
4
  Plugin URI: http://wordpress.org/plugins/pagelayer/
5
  Description: PageLayer is a WordPress page builder plugin. Its very easy to use and very light on the browser.
6
+ Version: 1.4.7
7
  Author: Pagelayer Team
8
  Author URI: https://pagelayer.com/
9
  License: LGPL v2.1
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: page builder, editor, drag-and-drop, landing page, replace image, pagelaye
4
  Requires at least: 4.7
5
  Tested up to: 5.6
6
  Requires PHP: 5.5
7
- Stable tag: 1.4.6
8
  License: LGPL v2.1
9
  License URI: http://www.gnu.org/licenses/lgpl-2.1.html
10
 
@@ -109,6 +109,12 @@ Do you have questions related to PageLayer ? Use the following links :
109
 
110
  == Changelog ==
111
 
 
 
 
 
 
 
112
  = 1.4.6 (Feb 13, 2021) =
113
  * [Feature] Added image replacement option inside the media library.
114
  * [Bug-Fix] In some cases the video was not playing inside the safari browser. This is fixed.
4
  Requires at least: 4.7
5
  Tested up to: 5.6
6
  Requires PHP: 5.5
7
+ Stable tag: 1.4.7
8
  License: LGPL v2.1
9
  License URI: http://www.gnu.org/licenses/lgpl-2.1.html
10
 
109
 
110
  == Changelog ==
111
 
112
+ = 1.4.7 (Feb 26, 2021) =
113
+ * [Feature] Added the option to scroll to the top of any element or body in button widget.
114
+ * [Bug-Fix] In some cases the background color of the checked radio button in the contact form widget was not working properly. This is fixed.
115
+ * [Bug-Fix] In some cases the contact form custom template settings were not working properly. This is fixed.
116
+ * [Bug-Fix] In some cases the default titles of the countdown were not shown in the countdown timer widget. This is fixed.
117
+
118
  = 1.4.6 (Feb 13, 2021) =
119
  * [Feature] Added image replacement option inside the media library.
120
  * [Bug-Fix] In some cases the video was not playing inside the safari browser. This is fixed.