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

Version Description

(October 13, 2020) = * [Improvement] Added the option to save the popup cookie on closing as well. * [Improvement] Added Cell Width options for Table Cells. * [Improvement] In Social Share Widget, added the profile name option for Instagram, Skype, Dribbble, etc. * [Improvement] Added option to disable title in site title widget. Now you can disable the site title if the logo is enabled. * [Improvement] Added auto-detection for reply-to email in contact form. Now if the user does not add reply-to in addition fields then we will detect email from user-submitted data. * [Improvement] Added $site_title variable in contact form, now user can use use $site_title to print site title. * [Improvement] Copyright text can now be saved from the Widget itself while editing in Pagelayer. * [Task] In some cases givecss.php was blocked by certain plugins to execute due to PHP. We have improved detection of the same and it will be served over admin-ajax.php to by pass such plugins. Pagelayer will also detect if givecss.php is functional and access it directly for better speed if possible. * [Task] Default values for Archive Posts have been set for better compatibility in responsive mode. * [Task] For contact forms, an only Label option type has been added. * [Task] In testimonial sliders if there is no image set for a testimonial, then no image will be shown. Earlier the pagelayer default image was shown. * [Bug-fix] The detection script for givejs.php and givecss.php which serves compressed CSS and JS files was not working correctly in certain cases. This is fixed. * [Bug-Fix] The Star widget would not show full coverage when a 5 stars was set. This is fixed. * [Bug-Fix] Unnecessary new lines were being entered in certain widgets. This is fixed. * [Bug-Fix] While saving the Address, Phone Number, etc in Pagelayer Contact Settings, certain special characters were getting a Slash Prefix. This is fixed. * [Bug-Fix] In Modal Popup, the live view was not being set correctly when the close option was set to outside. This is fixed.

Download this release

Release Info

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

Code changes from version 1.3.0 to 1.3.1

css/combined.css CHANGED
@@ -1948,6 +1948,7 @@ border-color: 1px solid #ccd6df;
1948
  .pagelayer-stars-container .pagelayer-stars-icon{
1949
  position: relative;
1950
  display:inline-block;
 
1951
  }
1952
 
1953
  .pagelayer-stars-container .pagelayer-stars-icon:before{
@@ -2003,7 +2004,7 @@ width:0.9em;
2003
  }
2004
 
2005
  .pagelayer-stars-icon.pagelayer-stars-full:before{
2006
- width:1em;
2007
  }
2008
  /*Stars widget end*/
2009
 
@@ -2020,12 +2021,17 @@ font-weight: 500;
2020
  text-decoration-style: solid !important;
2021
  margin: 0px;
2022
  transition: all 400ms;
 
2023
  }
2024
 
2025
  .pagelayer-wp-title-img{
2026
  box-shadow: none !important;
2027
  }
2028
 
 
 
 
 
2029
  .pagelayer-wp-title-align-left,
2030
  .pagelayer-wp-title-align-right{
2031
  display: flex;
@@ -2958,6 +2964,9 @@ font-weight: 100;
2958
  /*** Archive Posts ***/
2959
  .pagelayer-posts-container{
2960
  display: grid;
 
 
 
2961
  }
2962
 
2963
  .pagelayer-wposts-meta *{
@@ -2985,6 +2994,12 @@ background-position:center !important;
2985
  width:100%;
2986
  }
2987
 
 
 
 
 
 
 
2988
  /*** Archive Posts End ***/
2989
 
2990
  /* WordPress Posts */
1948
  .pagelayer-stars-container .pagelayer-stars-icon{
1949
  position: relative;
1950
  display:inline-block;
1951
+ line-height: 1;
1952
  }
1953
 
1954
  .pagelayer-stars-container .pagelayer-stars-icon:before{
2004
  }
2005
 
2006
  .pagelayer-stars-icon.pagelayer-stars-full:before{
2007
+ width:1.1em;
2008
  }
2009
  /*Stars widget end*/
2010
 
2021
  text-decoration-style: solid !important;
2022
  margin: 0px;
2023
  transition: all 400ms;
2024
+ flex-grow:1;
2025
  }
2026
 
2027
  .pagelayer-wp-title-img{
2028
  box-shadow: none !important;
2029
  }
2030
 
2031
+ .pagelayer-wp-title-desc{
2032
+ padding: 5px 20px;
2033
+ }
2034
+
2035
  .pagelayer-wp-title-align-left,
2036
  .pagelayer-wp-title-align-right{
2037
  display: flex;
2964
  /*** Archive Posts ***/
2965
  .pagelayer-posts-container{
2966
  display: grid;
2967
+ grid-template-columns: repeat(3,1fr);
2968
+ grid-column-gap: 20px;
2969
+ grid-row-gap: 40px;
2970
  }
2971
 
2972
  .pagelayer-wposts-meta *{
2994
  width:100%;
2995
  }
2996
 
2997
+ @media all and (max-width:599px){
2998
+ .pagelayer-posts-container{
2999
+ grid-template-columns: repeat(1,1fr);
3000
+ }
3001
+ }
3002
+
3003
  /*** Archive Posts End ***/
3004
 
3005
  /* WordPress Posts */
css/givecss.php CHANGED
@@ -124,6 +124,10 @@ if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && (@strtotime($_SERVER['HTTP_IF_M
124
 
125
  }
126
 
 
 
 
 
127
  echo $data;
128
  echo $data_premium;
129
 
124
 
125
  }
126
 
127
+ if(defined('DOING_AJAX') && !defined('SITEPAD')){
128
+ $data = str_replace('../fonts/', '../wp-content/plugins/'.(basename(dirname(dirname(__FILE__)))).'/fonts/', $data);
129
+ }
130
+
131
  echo $data;
132
  echo $data_premium;
133
 
css/pagelayer-frontend.css CHANGED
@@ -1948,6 +1948,7 @@ border-color: 1px solid #ccd6df;
1948
  .pagelayer-stars-container .pagelayer-stars-icon{
1949
  position: relative;
1950
  display:inline-block;
 
1951
  }
1952
 
1953
  .pagelayer-stars-container .pagelayer-stars-icon:before{
@@ -2003,7 +2004,7 @@ width:0.9em;
2003
  }
2004
 
2005
  .pagelayer-stars-icon.pagelayer-stars-full:before{
2006
- width:1em;
2007
  }
2008
  /*Stars widget end*/
2009
 
@@ -2020,12 +2021,17 @@ font-weight: 500;
2020
  text-decoration-style: solid !important;
2021
  margin: 0px;
2022
  transition: all 400ms;
 
2023
  }
2024
 
2025
  .pagelayer-wp-title-img{
2026
  box-shadow: none !important;
2027
  }
2028
 
 
 
 
 
2029
  .pagelayer-wp-title-align-left,
2030
  .pagelayer-wp-title-align-right{
2031
  display: flex;
@@ -2958,6 +2964,9 @@ font-weight: 100;
2958
  /*** Archive Posts ***/
2959
  .pagelayer-posts-container{
2960
  display: grid;
 
 
 
2961
  }
2962
 
2963
  .pagelayer-wposts-meta *{
@@ -2985,6 +2994,12 @@ background-position:center !important;
2985
  width:100%;
2986
  }
2987
 
 
 
 
 
 
 
2988
  /*** Archive Posts End ***/
2989
 
2990
  /* WordPress Posts */
1948
  .pagelayer-stars-container .pagelayer-stars-icon{
1949
  position: relative;
1950
  display:inline-block;
1951
+ line-height: 1;
1952
  }
1953
 
1954
  .pagelayer-stars-container .pagelayer-stars-icon:before{
2004
  }
2005
 
2006
  .pagelayer-stars-icon.pagelayer-stars-full:before{
2007
+ width:1.1em;
2008
  }
2009
  /*Stars widget end*/
2010
 
2021
  text-decoration-style: solid !important;
2022
  margin: 0px;
2023
  transition: all 400ms;
2024
+ flex-grow:1;
2025
  }
2026
 
2027
  .pagelayer-wp-title-img{
2028
  box-shadow: none !important;
2029
  }
2030
 
2031
+ .pagelayer-wp-title-desc{
2032
+ padding: 5px 20px;
2033
+ }
2034
+
2035
  .pagelayer-wp-title-align-left,
2036
  .pagelayer-wp-title-align-right{
2037
  display: flex;
2964
  /*** Archive Posts ***/
2965
  .pagelayer-posts-container{
2966
  display: grid;
2967
+ grid-template-columns: repeat(3,1fr);
2968
+ grid-column-gap: 20px;
2969
+ grid-row-gap: 40px;
2970
  }
2971
 
2972
  .pagelayer-wposts-meta *{
2994
  width:100%;
2995
  }
2996
 
2997
+ @media all and (max-width:599px){
2998
+ .pagelayer-posts-container{
2999
+ grid-template-columns: repeat(1,1fr);
3000
+ }
3001
+ }
3002
+
3003
  /*** Archive Posts End ***/
3004
 
3005
  /* WordPress Posts */
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.3.0');
9
  define('PAGELAYER_DIR', dirname(PAGELAYER_FILE));
10
  define('PAGELAYER_SLUG', 'pagelayer');
11
  define('PAGELAYER_URL', plugins_url('', PAGELAYER_FILE));
@@ -104,7 +104,7 @@ function pagelayer_load_plugin(){
104
 
105
  // Load settings
106
  $pagelayer->settings['post_types'] = empty(get_option('pl_support_ept')) ? ['post', 'page'] : get_option('pl_support_ept');
107
- $pagelayer->settings['enable_giver'] = empty(get_option('pagelayer_enable_giver')) ? 0 : 1;
108
  $pagelayer->settings['max_width'] = (int) (empty(get_option('pagelayer_content_width')) ? 1170 : get_option('pagelayer_content_width'));
109
  $pagelayer->settings['tablet_breakpoint'] = (int) (empty(get_option('pagelayer_tablet_breakpoint')) ? 768 : get_option('pagelayer_tablet_breakpoint'));
110
  $pagelayer->settings['mobile_breakpoint'] = (int) (empty(get_option('pagelayer_mobile_breakpoint')) ? 360 : get_option('pagelayer_mobile_breakpoint'));
@@ -388,7 +388,7 @@ function pagelayer_enqueue_frontend($force = false){
388
  }
389
  }
390
 
391
- if((!empty($pagelayer->settings['enable_giver']) && $pagelayer->settings['enable_giver'] == 1) || defined('SITEPAD')){
392
 
393
  $write = '';
394
 
5
 
6
  define('PAGELAYER_BASE', plugin_basename(PAGELAYER_FILE));
7
  define('PAGELAYER_PRO_BASE', 'pagelayer-pro/pagelayer-pro.php');
8
+ define('PAGELAYER_VERSION', '1.3.1');
9
  define('PAGELAYER_DIR', dirname(PAGELAYER_FILE));
10
  define('PAGELAYER_SLUG', 'pagelayer');
11
  define('PAGELAYER_URL', plugins_url('', PAGELAYER_FILE));
104
 
105
  // Load settings
106
  $pagelayer->settings['post_types'] = empty(get_option('pl_support_ept')) ? ['post', 'page'] : get_option('pl_support_ept');
107
+ $pagelayer->settings['enable_giver'] = get_option('pagelayer_enable_giver');
108
  $pagelayer->settings['max_width'] = (int) (empty(get_option('pagelayer_content_width')) ? 1170 : get_option('pagelayer_content_width'));
109
  $pagelayer->settings['tablet_breakpoint'] = (int) (empty(get_option('pagelayer_tablet_breakpoint')) ? 768 : get_option('pagelayer_tablet_breakpoint'));
110
  $pagelayer->settings['mobile_breakpoint'] = (int) (empty(get_option('pagelayer_mobile_breakpoint')) ? 360 : get_option('pagelayer_mobile_breakpoint'));
388
  }
389
  }
390
 
391
+ if(pagelayer_enable_giver()){
392
 
393
  $write = '';
394
 
js/combined.js CHANGED
@@ -583,6 +583,11 @@ function pagelayer_stars(){
583
  return true;
584
  }
585
  var count = jEle.attr('pagelayer-stars-count');
 
 
 
 
 
586
  i = 0;
587
  var stars = "";
588
  while(i < count){
@@ -593,6 +598,11 @@ function pagelayer_stars(){
593
  jEle.empty();
594
  jEle.append(stars);
595
  var starsval = jEle.attr('pagelayer-stars-value');
 
 
 
 
 
596
  starsval = starsval.split('.');
597
  var fullstars = starsval[0];
598
  var value = starsval[1];
@@ -857,6 +867,10 @@ function pagelayer_contact_form(jEle){
857
  // Contact Form Submit handler - Premium
858
  function pagelayer_contact_submit(jEle, e){
859
  e.preventDefault();
 
 
 
 
860
  //var fdata = jQuery(jEle).closest('form').serialize();
861
  var redirect = jQuery(jEle).find('input[name="cfa-redirect"]');
862
  var formData = new FormData( jQuery(jEle)[0] );
583
  return true;
584
  }
585
  var count = jEle.attr('pagelayer-stars-count');
586
+
587
+ if (isNaN(count)) {
588
+ count = '0';
589
+ }
590
+
591
  i = 0;
592
  var stars = "";
593
  while(i < count){
598
  jEle.empty();
599
  jEle.append(stars);
600
  var starsval = jEle.attr('pagelayer-stars-value');
601
+
602
+ if (isNaN(starsval)) {
603
+ starsval = count;
604
+ }
605
+
606
  starsval = starsval.split('.');
607
  var fullstars = starsval[0];
608
  var value = starsval[1];
867
  // Contact Form Submit handler - Premium
868
  function pagelayer_contact_submit(jEle, e){
869
  e.preventDefault();
870
+
871
+ // Trigger an action
872
+ jQuery(document).trigger('pagelayer_contact_submit', e, jEle);
873
+
874
  //var fdata = jQuery(jEle).closest('form').serialize();
875
  var redirect = jQuery(jEle).find('input[name="cfa-redirect"]');
876
  var formData = new FormData( jQuery(jEle)[0] );
js/pagelayer-editor.js CHANGED
@@ -196,7 +196,7 @@ function pagelayer_loader_hide(){
196
  var loaderWrapper = pagelayer.$$('#pagelayer-loader-wrapper');
197
  loaderWrapper.addClass('pagelayer-loaded');
198
  loaderWrapper.animate({opacity:0}, function(){
199
- loaderWrapper.remove();
200
  });
201
  }
202
  }, 1);
@@ -3181,7 +3181,7 @@ function pagelayer_sc_render(jEle){
3181
  pagelayer_sc_render(pagelayer_ele_by_id(par));
3182
  }
3183
 
3184
- // Render End trigger
3185
  pagelayer_trigger_action('pagelayer_sc_render_end', [el]);
3186
 
3187
  var gEle = pagelayer_ele_by_id(eleId);
@@ -3290,7 +3290,8 @@ function pagelayer_save(){
3290
  pagelayer_nonce: pagelayer_ajax_nonce,
3291
  page_props: props,
3292
  global_widgets: global_data,
3293
- contacts: contacts_props
 
3294
  },
3295
  success: function(response, status, xhr){
3296
  //alert(data);
@@ -3397,7 +3398,7 @@ function pagelayer_generate_sc(selector, selfEle){
3397
  data = data+']';
3398
 
3399
  // Add to the text
3400
- txt = txt+data+"\n";
3401
 
3402
  // Any internal function to handle the save ?
3403
  var func = window['pagelayer_tag_'+tag];
196
  var loaderWrapper = pagelayer.$$('#pagelayer-loader-wrapper');
197
  loaderWrapper.addClass('pagelayer-loaded');
198
  loaderWrapper.animate({opacity:0}, function(){
199
+ loaderWrapper.remove();
200
  });
201
  }
202
  }, 1);
3181
  pagelayer_sc_render(pagelayer_ele_by_id(par));
3182
  }
3183
 
3184
+ // Render End trigger
3185
  pagelayer_trigger_action('pagelayer_sc_render_end', [el]);
3186
 
3187
  var gEle = pagelayer_ele_by_id(eleId);
3290
  pagelayer_nonce: pagelayer_ajax_nonce,
3291
  page_props: props,
3292
  global_widgets: global_data,
3293
+ contacts: contacts_props,
3294
+ copyright: pagelayer_copyright
3295
  },
3296
  success: function(response, status, xhr){
3297
  //alert(data);
3398
  data = data+']';
3399
 
3400
  // Add to the text
3401
+ txt = txt+data;
3402
 
3403
  // Any internal function to handle the save ?
3404
  var func = window['pagelayer_tag_'+tag];
js/pagelayer-frontend.js CHANGED
@@ -583,6 +583,11 @@ function pagelayer_stars(){
583
  return true;
584
  }
585
  var count = jEle.attr('pagelayer-stars-count');
 
 
 
 
 
586
  i = 0;
587
  var stars = "";
588
  while(i < count){
@@ -593,6 +598,11 @@ function pagelayer_stars(){
593
  jEle.empty();
594
  jEle.append(stars);
595
  var starsval = jEle.attr('pagelayer-stars-value');
 
 
 
 
 
596
  starsval = starsval.split('.');
597
  var fullstars = starsval[0];
598
  var value = starsval[1];
@@ -857,6 +867,10 @@ function pagelayer_contact_form(jEle){
857
  // Contact Form Submit handler - Premium
858
  function pagelayer_contact_submit(jEle, e){
859
  e.preventDefault();
 
 
 
 
860
  //var fdata = jQuery(jEle).closest('form').serialize();
861
  var redirect = jQuery(jEle).find('input[name="cfa-redirect"]');
862
  var formData = new FormData( jQuery(jEle)[0] );
583
  return true;
584
  }
585
  var count = jEle.attr('pagelayer-stars-count');
586
+
587
+ if (isNaN(count)) {
588
+ count = '0';
589
+ }
590
+
591
  i = 0;
592
  var stars = "";
593
  while(i < count){
598
  jEle.empty();
599
  jEle.append(stars);
600
  var starsval = jEle.attr('pagelayer-stars-value');
601
+
602
+ if (isNaN(starsval)) {
603
+ starsval = count;
604
+ }
605
+
606
  starsval = starsval.split('.');
607
  var fullstars = starsval[0];
608
  var value = starsval[1];
867
  // Contact Form Submit handler - Premium
868
  function pagelayer_contact_submit(jEle, e){
869
  e.preventDefault();
870
+
871
+ // Trigger an action
872
+ jQuery(document).trigger('pagelayer_contact_submit', e, jEle);
873
+
874
  //var fdata = jQuery(jEle).closest('form').serialize();
875
  var redirect = jQuery(jEle).find('input[name="cfa-redirect"]');
876
  var formData = new FormData( jQuery(jEle)[0] );
js/properties.js CHANGED
@@ -1233,6 +1233,7 @@ function pagelayer_elp_image(row, prop){
1233
  // Set to blank and render
1234
  _pagelayer_set_atts(row, '', true);
1235
 
 
1236
  _pagelayer_set_tmp_atts(row, 'url', def);
1237
  _pagelayer_set_atts(row, def);
1238
  });
@@ -2351,6 +2352,17 @@ function pagelayer_elp_modal(row, prop){
2351
  row.find('.pagelayer-elp-modal-close').on('click', function(){
2352
  wrapper.hide();
2353
  });
 
 
 
 
 
 
 
 
 
 
 
2354
 
2355
  };
2356
 
1233
  // Set to blank and render
1234
  _pagelayer_set_atts(row, '', true);
1235
 
1236
+ _pagelayer_set_tmp_atts(row, 'no-image-set', 1);
1237
  _pagelayer_set_tmp_atts(row, 'url', def);
1238
  _pagelayer_set_atts(row, def);
1239
  });
2352
  row.find('.pagelayer-elp-modal-close').on('click', function(){
2353
  wrapper.hide();
2354
  });
2355
+
2356
+ // On click Pagelayer setting icon
2357
+ wrapper.on('click', function(event){
2358
+ var target = jQuery(event.target);
2359
+
2360
+ if(target.closest('.pagelayer-elp-modal-wrap').length > 0){
2361
+ return;
2362
+ }
2363
+
2364
+ wrapper.hide();
2365
+ });
2366
 
2367
  };
2368
 
js/widgets.js CHANGED
@@ -338,7 +338,14 @@ function pagelayer_render_end_pl_video(el){
338
 
339
  // Render the testimonial
340
  function pagelayer_render_pl_testimonial(el){
 
 
 
 
 
 
341
  //console.log(el);
 
342
  // Decide the image URL
343
  el.atts['func_image'] = el.tmp['avatar-'+el.atts['custom_size']+'-url'] || el.tmp['avatar-url'];
344
  el.atts['func_image'] = el.atts['func_image'] || el.atts['avatar'];
@@ -1032,6 +1039,8 @@ function pagelayer_render_pl_contact_item(el){
1032
  }else if(el.atts['field_type'] == 'file'){
1033
  html += '<input type="'+el.atts['field_type']+'" '+
1034
  'name="'+el.atts['field_name']+'" placeholder="'+placeholder+'" accept="'+file_accept+'" '+required+' />';
 
 
1035
  }else{
1036
  html += '<input type="'+el.atts['field_type']+'" '+
1037
  'name="'+el.atts['field_name']+'" placeholder="'+placeholder+'" '+required+'/>';
@@ -1110,7 +1119,15 @@ function pagelayer_render_end_pl_share(el){
1110
  pagelayer_social(el.$, '.pagelayer-share-content');
1111
  }
1112
 
1113
-
 
 
 
 
 
 
 
 
1114
 
1115
  // Render the animated heading
1116
  function pagelayer_render_pl_anim_heading(el){
338
 
339
  // Render the testimonial
340
  function pagelayer_render_pl_testimonial(el){
341
+
342
+ if(!pagelayer_empty(el.tmp['avatar-no-image-set'])){
343
+ el.atts['avatar'] = '';
344
+ return;
345
+ }
346
+
347
  //console.log(el);
348
+
349
  // Decide the image URL
350
  el.atts['func_image'] = el.tmp['avatar-'+el.atts['custom_size']+'-url'] || el.tmp['avatar-url'];
351
  el.atts['func_image'] = el.atts['func_image'] || el.atts['avatar'];
1039
  }else if(el.atts['field_type'] == 'file'){
1040
  html += '<input type="'+el.atts['field_type']+'" '+
1041
  'name="'+el.atts['field_name']+'" placeholder="'+placeholder+'" accept="'+file_accept+'" '+required+' />';
1042
+ }else if(el.atts['field_type'] == 'label'){
1043
+ html += '';
1044
  }else{
1045
  html += '<input type="'+el.atts['field_type']+'" '+
1046
  'name="'+el.atts['field_name']+'" placeholder="'+placeholder+'" '+required+'/>';
1119
  pagelayer_social(el.$, '.pagelayer-share-content');
1120
  }
1121
 
1122
+ // copyright rendering function
1123
+ var pagelayer_copyright;
1124
+ function pagelayer_render_pl_copyright(el){
1125
+ if(pagelayer_empty(el.atts['copyright_text'])){
1126
+ return;
1127
+ }
1128
+ pagelayer_copyright = el.atts['copyright_text'];
1129
+
1130
+ }
1131
 
1132
  // Render the animated heading
1133
  function pagelayer_render_pl_anim_heading(el){
languages/en.json CHANGED
@@ -1695,9 +1695,11 @@
1695
  "tooltip" : "Tooltip",
1696
  "enable_overlay" : "Enable Overlay",
1697
  "popup_cookie_session" : "Set Cookie Session",
1698
- "popup_cookie_selector" : "Selector To Set Cookie and Close Popup",
 
 
1699
  "popup_cookie_name" : "Cookie Name",
1700
- "popup_cookie_exp" : "Cookie Expires",
1701
  "select_images" : "Please select images from the left Widget properties !",
1702
  "ele_id" : "Element ID",
1703
  "prefix_suffix" : "Prefix and Suffix",
@@ -1822,5 +1824,10 @@
1822
  "copied_msg" : "Widget copied successfully",
1823
  "replace_img" : "Replace Image",
1824
  "paste_after" : "Paste After Widget",
1825
- "img_paste_conf" : "You have pasted over an existing image. How do you want to use the image ?"
 
 
 
 
 
1826
  }
1695
  "tooltip" : "Tooltip",
1696
  "enable_overlay" : "Enable Overlay",
1697
  "popup_cookie_session" : "Set Cookie Session",
1698
+ "popup_cookie_close" : "On Close set Cookie",
1699
+ "popup_cookie_selector" : "CSS Selector(s) to Set Cookie and Close Popup",
1700
+ "popup_cookie_selector_exp" : "Either <b>On Close</b> or <b>CSS Selectors</b> must be set for cookies to work",
1701
  "popup_cookie_name" : "Cookie Name",
1702
+ "popup_cookie_exp" : "Cookie Expires (In Days)",
1703
  "select_images" : "Please select images from the left Widget properties !",
1704
  "ele_id" : "Element ID",
1705
  "prefix_suffix" : "Prefix and Suffix",
1824
  "copied_msg" : "Widget copied successfully",
1825
  "replace_img" : "Replace Image",
1826
  "paste_after" : "Paste After Widget",
1827
+ "active" : "Active",
1828
+ "disable_title" : "Disable Title",
1829
+ "disable_title_exp" : "It will disable only if the logo is enabled !",
1830
+ "img_paste_conf" : "You have pasted over an existing image. How do you want to use the image ?",
1831
+ "custom_profile" : "Profile Name",
1832
+ "disable_sep" : "Disable Separator"
1833
  }
main/ajax.php CHANGED
@@ -231,7 +231,12 @@ function pagelayer_save_content(){
231
  }else{
232
  delete_post_meta($postID, 'pagelayer_contact_templates');
233
  }
234
-
 
 
 
 
 
235
  // Apply a filter
236
  $post = apply_filters('pagelayer_save_content', $post);
237
 
@@ -425,6 +430,23 @@ function pagelayer_givejs(){
425
 
426
  }
427
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
428
  // Shortcodes Widget Handler
429
  add_action('wp_ajax_pagelayer_get_section_shortcodes', 'pagelayer_get_section_shortcodes');
430
  function pagelayer_get_section_shortcodes(){
@@ -937,6 +959,12 @@ function pagelayer_contact_submit(){
937
  // Some AJAX security
938
  check_ajax_referer('pagelayer_global', 'pagelayer_nonce');
939
 
 
 
 
 
 
 
940
  $formdata = $_POST;
941
 
942
  if(isset($_POST['g-recaptcha-response']) ){
@@ -956,6 +984,7 @@ function pagelayer_contact_submit(){
956
  $from_mail = get_option('pagelayer_cf_from_email');
957
  $subject = get_option('pagelayer_cf_subject');
958
  $additional_headers = get_option('pagelayer_cf_headers');
 
959
  $body = '';
960
  $headers = '';
961
  $custom_templ = array();
@@ -1022,6 +1051,11 @@ function pagelayer_contact_submit(){
1022
  continue;
1023
  }
1024
 
 
 
 
 
 
1025
  $body .= $k."\t : \t $".$k."\n";
1026
  }
1027
 
@@ -1029,11 +1063,19 @@ function pagelayer_contact_submit(){
1029
 
1030
  }
1031
 
 
 
 
 
 
1032
  // Add attachment
1033
  if(!empty($_FILES)){
1034
  add_action('phpmailer_init', 'pagelayer_cf_email_attachment', 10, 1);
1035
  }
1036
 
 
 
 
1037
  // Do parse a variables
1038
  $to_mail = pagelayer_replace_vars($to_mail, $formdata, '$');
1039
  $from_mail = pagelayer_replace_vars($from_mail, $formdata, '$');
@@ -1052,8 +1094,12 @@ function pagelayer_contact_submit(){
1052
  $body = $header . wpautop( $body ) . $footer;
1053
  }
1054
 
 
 
1055
  // Send the email
1056
- $r = wp_mail( $to_mail, $subject, $body, $headers );
 
 
1057
 
1058
  if($r == TRUE){
1059
  $wp['success'] = get_option( 'pagelayer_cf_success' );
@@ -1212,6 +1258,21 @@ function pagelayer_search_ids() {
1212
  $sel_opt .= '<span class="pagelayer-temp-search-sel-span" value="'. $author->ID .'">'. $author->display_name .'</span>';
1213
  }
1214
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1215
  default:
1216
  $sel_opt = 'Result Not Found';
1217
  }
231
  }else{
232
  delete_post_meta($postID, 'pagelayer_contact_templates');
233
  }
234
+
235
+ // Save copyright
236
+ if(isset($_REQUEST['copyright']) && current_user_can('manage_options')){
237
+ update_option('pagelayer-copyright', wp_unslash($_REQUEST['copyright']));
238
+ }
239
+
240
  // Apply a filter
241
  $post = apply_filters('pagelayer_save_content', $post);
242
 
430
 
431
  }
432
 
433
+ add_action('wp_ajax_pagelayer_givecss', 'pagelayer_givecss');
434
+ add_action('wp_ajax_nopriv_pagelayer_givecss', 'pagelayer_givecss');
435
+ function pagelayer_givecss(){
436
+
437
+ global $pagelayer;
438
+
439
+ // WordPress adds the Expires header in all AJAX calls. We need to remove it for cache to work
440
+ header_remove("Expires");
441
+ header_remove("Cache-Control");
442
+
443
+ // Pagelayer Template Loading Mechanism
444
+ include_once(PAGELAYER_DIR.'/css/givecss.php');
445
+
446
+ exit();
447
+
448
+ }
449
+
450
  // Shortcodes Widget Handler
451
  add_action('wp_ajax_pagelayer_get_section_shortcodes', 'pagelayer_get_section_shortcodes');
452
  function pagelayer_get_section_shortcodes(){
959
  // Some AJAX security
960
  check_ajax_referer('pagelayer_global', 'pagelayer_nonce');
961
 
962
+ // A filter to short circuit this contact form
963
+ $continue = apply_filters('pagelayer_contact_submit_start', 1);
964
+ if(empty($continue)){
965
+ return false;
966
+ }
967
+
968
  $formdata = $_POST;
969
 
970
  if(isset($_POST['g-recaptcha-response']) ){
984
  $from_mail = get_option('pagelayer_cf_from_email');
985
  $subject = get_option('pagelayer_cf_subject');
986
  $additional_headers = get_option('pagelayer_cf_headers');
987
+ $reply_to = '';
988
  $body = '';
989
  $headers = '';
990
  $custom_templ = array();
1051
  continue;
1052
  }
1053
 
1054
+ // Record a reply to if it is to be used
1055
+ if(is_email(trim($i)) && empty($reply_to)){
1056
+ $reply_to = trim($i);
1057
+ }
1058
+
1059
  $body .= $k."\t : \t $".$k."\n";
1060
  }
1061
 
1063
 
1064
  }
1065
 
1066
+ // Dow we have a reply to in the headers ?
1067
+ if(!preg_match('/reply\-to/is', $headers) && !empty($reply_to)){
1068
+ $headers .= "Reply-To: $reply_to\n";
1069
+ }
1070
+
1071
  // Add attachment
1072
  if(!empty($_FILES)){
1073
  add_action('phpmailer_init', 'pagelayer_cf_email_attachment', 10, 1);
1074
  }
1075
 
1076
+ // Add Site Title as option in formdata
1077
+ $formdata['site_title'] = get_bloginfo( 'name' );
1078
+
1079
  // Do parse a variables
1080
  $to_mail = pagelayer_replace_vars($to_mail, $formdata, '$');
1081
  $from_mail = pagelayer_replace_vars($from_mail, $formdata, '$');
1094
  $body = $header . wpautop( $body ) . $footer;
1095
  }
1096
 
1097
+ $to_mail = apply_filters('pagelayer_contact_send', $to_mail, $formdata);
1098
+
1099
  // Send the email
1100
+ if(!empty($to_mail)){
1101
+ $r = wp_mail( $to_mail, $subject, $body, $headers );
1102
+ }
1103
 
1104
  if($r == TRUE){
1105
  $wp['success'] = get_option( 'pagelayer_cf_success' );
1258
  $sel_opt .= '<span class="pagelayer-temp-search-sel-span" value="'. $author->ID .'">'. $author->display_name .'</span>';
1259
  }
1260
  break;
1261
+
1262
+ /* case 'menu':
1263
+
1264
+ $menuItems = wp_get_nav_menu_items( $_POST['object_type']);
1265
+
1266
+ foreach ( $menuItems as $item ) {
1267
+ if($item -> menu_item_parent !=0){
1268
+ continue;
1269
+ }
1270
+ $sel_opt .= '<span class="pagelayer-temp-search-sel-span" value="'. $item -> ID .'">'. $item -> title .'</span>';
1271
+ }
1272
+
1273
+ break;*/
1274
+
1275
+
1276
  default:
1277
  $sel_opt = 'Result Not Found';
1278
  }
main/functions.php CHANGED
@@ -743,7 +743,7 @@ function pagelayer_freemium_shortcode($tag, $params = array()){
743
  $params['not_visible'] = 1;
744
  $params['freemium'] = 1;
745
 
746
- $cats = $params['styles'];
747
 
748
  if(!empty($params['settings'])){
749
  $cats = array_merge($cats, $params['settings']);
@@ -852,6 +852,10 @@ function pagelayer_image($id){
852
  $ret['caption'] = @$caption;
853
 
854
  $ret = apply_filters('pagelayer_image', $ret);
 
 
 
 
855
 
856
  return $ret;
857
 
@@ -872,6 +876,17 @@ function pagelayer_is_external_img($img = ''){
872
 
873
  }
874
 
 
 
 
 
 
 
 
 
 
 
 
875
  // Returns the attachment url
876
  function pagelayer_attachment($id){
877
 
@@ -2528,6 +2543,12 @@ function pagelayer_captcha_verify(){
2528
  return false;
2529
  }
2530
 
 
 
 
 
 
 
2531
  function pagelayer_load_font_options(){
2532
  include_once(PAGELAYER_DIR.'/main/font-options.php');
2533
  }
743
  $params['not_visible'] = 1;
744
  $params['freemium'] = 1;
745
 
746
+ $cats = empty($params['styles']) ? array() : $params['styles'];
747
 
748
  if(!empty($params['settings'])){
749
  $cats = array_merge($cats, $params['settings']);
852
  $ret['caption'] = @$caption;
853
 
854
  $ret = apply_filters('pagelayer_image', $ret);
855
+
856
+ if(pagelayer_is_default_img($ret['url'])){
857
+ $ret['no-image-set'] = 1;
858
+ }
859
 
860
  return $ret;
861
 
876
 
877
  }
878
 
879
+ // Checks if the given parameter is the default image
880
+ function pagelayer_is_default_img($img){
881
+
882
+ if($img == PAGELAYER_URL.'/images/default-image.png'){
883
+ return true;
884
+ }
885
+
886
+ return false;
887
+
888
+ }
889
+
890
  // Returns the attachment url
891
  function pagelayer_attachment($id){
892
 
2543
  return false;
2544
  }
2545
 
2546
+
2547
+ function pagelayer_enable_giver(){
2548
+ global $pagelayer;
2549
+ return (!empty($pagelayer->settings['enable_giver']) && $pagelayer->settings['enable_giver'] == 1) || defined('SITEPAD');
2550
+ }
2551
+
2552
  function pagelayer_load_font_options(){
2553
  include_once(PAGELAYER_DIR.'/main/font-options.php');
2554
  }
main/live-body.php CHANGED
@@ -36,12 +36,17 @@ global $post, $pagelayer;
36
  foreach($icons as $icon){
37
  $icons_list[] = $icon.'.min.css';
38
  }
39
-
 
 
 
 
 
40
  echo '
41
  <html>
42
  <head>
43
  <link href="https://fonts.googleapis.com/css?family=Roboto&display=swap" rel="stylesheet">
44
- <link rel="stylesheet" href="'.PAGELAYER_CSS.'/givecss.php?give=pagelayer-editor.css,trumbowyg.min.css,pagelayer-icons.css,'.implode(',' ,$icons_list).'&ver='.PAGELAYER_VERSION.'">';
45
 
46
  do_action('pagelayer_live_body_head');
47
 
36
  foreach($icons as $icon){
37
  $icons_list[] = $icon.'.min.css';
38
  }
39
+
40
+ $css_url = admin_url('admin-ajax.php?action=pagelayer_givecss&pagelayer_nonce=1&');
41
+ if(pagelayer_enable_giver()){
42
+ $css_url = PAGELAYER_CSS.'/givecss.php?';
43
+ }
44
+
45
  echo '
46
  <html>
47
  <head>
48
  <link href="https://fonts.googleapis.com/css?family=Roboto&display=swap" rel="stylesheet">
49
+ <link rel="stylesheet" href="'.$css_url.'give=pagelayer-editor.css,trumbowyg.min.css,pagelayer-icons.css,'.implode(',' ,$icons_list).'&ver='.PAGELAYER_VERSION.'">';
50
 
51
  do_action('pagelayer_live_body_head');
52
 
main/live.php CHANGED
@@ -52,10 +52,16 @@ class PageLayer_LiveEditor{
52
 
53
  // Enqueue our Editor's JS
54
  wp_register_script('pagelayer-editor', admin_url( 'admin-ajax.php?action=pagelayer_givejs' ).'&give=pagelayer-editor.js,widgets.js,'.(defined('PAGELAYER_PREMIUM') ? 'premium.js,' : '').'properties.js,base-64.js,slimscroll.js,vanilla-picker.min.js,trumbowyg.js,trumbowyg.fontfamily.js,trumbowyg-pagelayer.js,pen.js,tlite.min.js&pagelayer_nonce=1&scmd5='.$scmd5, array('jquery'), PAGELAYER_VERSION);
 
55
  wp_enqueue_script('pagelayer-editor');
56
 
 
 
 
 
 
57
  // Enqueue the Editor's CSS
58
- wp_register_style('pagelayer-editor', PAGELAYER_CSS.'/givecss.php?give=pagelayer-editor-frontend.css,pen.css'.(defined('PAGELAYER_PREMIUM') ? ',owl.theme.default.min.css,owl.carousel.min.css' : ''), array(), PAGELAYER_VERSION);
59
  wp_enqueue_style('pagelayer-editor');
60
 
61
  // Enqueue the DateTime picker CSS
52
 
53
  // Enqueue our Editor's JS
54
  wp_register_script('pagelayer-editor', admin_url( 'admin-ajax.php?action=pagelayer_givejs' ).'&give=pagelayer-editor.js,widgets.js,'.(defined('PAGELAYER_PREMIUM') ? 'premium.js,' : '').'properties.js,base-64.js,slimscroll.js,vanilla-picker.min.js,trumbowyg.js,trumbowyg.fontfamily.js,trumbowyg-pagelayer.js,pen.js,tlite.min.js&pagelayer_nonce=1&scmd5='.$scmd5, array('jquery'), PAGELAYER_VERSION);
55
+
56
  wp_enqueue_script('pagelayer-editor');
57
 
58
+ $css_url = admin_url('admin-ajax.php?action=pagelayer_givecss&pagelayer_nonce=1&');
59
+ if(pagelayer_enable_giver()){
60
+ $css_url = PAGELAYER_CSS.'/givecss.php?';
61
+ }
62
+
63
  // Enqueue the Editor's CSS
64
+ wp_register_style('pagelayer-editor', $css_url.'give=pagelayer-editor-frontend.css,pen.css'.(defined('PAGELAYER_PREMIUM') ? ',owl.theme.default.min.css,owl.carousel.min.css' : ''), array(), PAGELAYER_VERSION);
65
  wp_enqueue_style('pagelayer-editor');
66
 
67
  // Enqueue the DateTime picker CSS
main/settings.php CHANGED
@@ -159,6 +159,7 @@ echo '
159
 
160
  function pagelayer_settings_page(){
161
 
 
162
  $post_type = array();
163
  $exclude = [ 'attachment', 'pagelayer-template' ];
164
  $pt_objects = get_post_types(['public' => true,], 'objects');
@@ -537,10 +538,12 @@ function pagelayer_settings_page(){
537
  </td>
538
  </tr>
539
  <tr>
540
- <th scope="row"><?php _e('To Email');?>:</th>
 
 
541
  <td>
542
  <label>
543
- <input name="pagelayer_cf_to_email" type="email" placeholder="email@domain.com" <?php if(get_option('pagelayer_cf_to_email')){
544
  echo 'value="'.get_option('pagelayer_cf_to_email').'"';
545
  }?>/>
546
  </label>
159
 
160
  function pagelayer_settings_page(){
161
 
162
+ $_REQUEST = wp_unslash($_REQUEST);
163
  $post_type = array();
164
  $exclude = [ 'attachment', 'pagelayer-template' ];
165
  $pt_objects = get_post_types(['public' => true,], 'objects');
538
  </td>
539
  </tr>
540
  <tr>
541
+ <td scope="row" width="50%">
542
+ <?php echo '<b>'.__('To Email').' :</b><br><p>'.__('You can use comma seperated values for multiple emails').'</p>';?>
543
+ </td>
544
  <td>
545
  <label>
546
+ <input name="pagelayer_cf_to_email" type="text" placeholder="email@domain.com" <?php if(get_option('pagelayer_cf_to_email')){
547
  echo 'value="'.get_option('pagelayer_cf_to_email').'"';
548
  }?>/>
549
  </label>
main/shortcode_functions.php CHANGED
@@ -1143,15 +1143,13 @@ function pagelayer_sc_grid_gallery(&$el){
1143
  // Testimonial Handler
1144
  function pagelayer_sc_testimonial(&$el){
1145
 
 
 
 
 
1146
  $custom_size = empty($el['atts']['custom_size']) ? '' : @$el['tmp']['avatar-'.$el['atts']['custom_size'].'-url'];
1147
  $el['atts']['func_image'] = empty($custom_size) ? @$el['tmp']['avatar-url'] : $custom_size;
1148
 
1149
- if(!empty($image)){
1150
- foreach($image as $k => $v){
1151
- $el['tmp']['avatar-'.$k] = $v;
1152
- }
1153
- }
1154
-
1155
  }
1156
 
1157
  // Video Handler
1143
  // Testimonial Handler
1144
  function pagelayer_sc_testimonial(&$el){
1145
 
1146
+ if(empty($el['atts']['avatar']) || !empty($el['tmp']['avatar-no-image-set'])){
1147
+ $el['atts']['avatar'] = '';
1148
+ }
1149
+
1150
  $custom_size = empty($el['atts']['custom_size']) ? '' : @$el['tmp']['avatar-'.$el['atts']['custom_size'].'-url'];
1151
  $el['atts']['func_image'] = empty($custom_size) ? @$el['tmp']['avatar-url'] : $custom_size;
1152
 
 
 
 
 
 
 
1153
  }
1154
 
1155
  // Video Handler
main/shortcodes.php CHANGED
@@ -315,6 +315,7 @@ $pagelayer->slider_options = [
315
  'slide_items' => array(
316
  'type' => 'spinner',
317
  'label' => __pl('number_of_items'),
 
318
  'min' => 1,
319
  'step' => 1,
320
  'max' => 10,
@@ -7838,8 +7839,8 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_testimonial', array(
7838
  'innerHTML' => 'quote_content',
7839
  'html' => '<div if="{{quote_content}}" class="pagelayer-testimonial-content">{{quote_content}}</div>
7840
  <div class="pagelayer-testimonial-author-details">
7841
- <div class="pagelayer-{{image_position}}">
7842
- <img if="{{avatar}}" class="pagelayer-img pagelayer-testimonial-image pagelayer-testimonial-{{img_shape}}" src="{{func_image}}" />
7843
  </div>
7844
  <div class="pagelayer-{{image_position}}">
7845
  <div if="{{cite}}" class="pagelayer-testimonial-cite">
@@ -7898,7 +7899,6 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_testimonial', array(
7898
  'type' => 'image',
7899
  'label' => __pl('testimonial_image_label'),
7900
  'desc' => __pl('testimonial_image_desc'),
7901
- 'default' => PAGELAYER_URL.'/images/default-image.png',
7902
  ),
7903
  'testimonial_image_size' => array(
7904
  'label' => __pl('testimonial_image_sizes'),
315
  'slide_items' => array(
316
  'type' => 'spinner',
317
  'label' => __pl('number_of_items'),
318
+ 'np' => 1,
319
  'min' => 1,
320
  'step' => 1,
321
  'max' => 10,
7839
  'innerHTML' => 'quote_content',
7840
  'html' => '<div if="{{quote_content}}" class="pagelayer-testimonial-content">{{quote_content}}</div>
7841
  <div class="pagelayer-testimonial-author-details">
7842
+ <div if="{{avatar}}" class="pagelayer-{{image_position}}">
7843
+ <img class="pagelayer-img pagelayer-testimonial-image pagelayer-testimonial-{{img_shape}}" src="{{func_image}}" />
7844
  </div>
7845
  <div class="pagelayer-{{image_position}}">
7846
  <div if="{{cite}}" class="pagelayer-testimonial-cite">
7899
  'type' => 'image',
7900
  'label' => __pl('testimonial_image_label'),
7901
  'desc' => __pl('testimonial_image_desc'),
 
7902
  ),
7903
  'testimonial_image_size' => array(
7904
  'label' => __pl('testimonial_image_sizes'),
main/template.php CHANGED
@@ -1035,10 +1035,10 @@ function pagelayer_template_check_conditons($ids = [], $file = false, $return_al
1035
  $check = 0;
1036
 
1037
  // Get template array
1038
- $tmpl_array = pagelayer_multi_array_search( $pagelayer->builder['dispay_on'], $condi['template'] );
1039
 
1040
  // Get sub_template array
1041
- $sub_tmpl_array = pagelayer_multi_array_search( $pagelayer->builder[$condi['template'].'_templates'], $condi['sub_template']);
1042
 
1043
  // If the condition name is general priority
1044
  if(empty($condi['template'])){
1035
  $check = 0;
1036
 
1037
  // Get template array
1038
+ $tmpl_array = (array) pagelayer_multi_array_search( $pagelayer->builder['dispay_on'], $condi['template'] );
1039
 
1040
  // Get sub_template array
1041
+ $sub_tmpl_array = (array) pagelayer_multi_array_search( $pagelayer->builder[$condi['template'].'_templates'], $condi['sub_template']);
1042
 
1043
  // If the condition name is general priority
1044
  if(empty($condi['template'])){
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.3.0
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.3.1
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, landing page, drag-and-drop, pagelayer, form-builder
4
  Requires at least: 4.7
5
  Tested up to: 5.5
6
  Requires PHP: 5.5
7
- Stable tag: 1.3.0
8
  License: LGPL v2.1
9
  License URI: http://www.gnu.org/licenses/lgpl-2.1.html
10
 
@@ -109,6 +109,24 @@ Do you have questions related to PageLayer ? Use the following links :
109
 
110
  == Changelog ==
111
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
  = 1.3.0 (September 26, 2020) =
113
  * [Improvement] We have improved the Editor UX. Now we will show you a small notice modal for 5 seconds for your actions.
114
  * [Improvement] The copy-paste method has been further improved.
4
  Requires at least: 4.7
5
  Tested up to: 5.5
6
  Requires PHP: 5.5
7
+ Stable tag: 1.3.1
8
  License: LGPL v2.1
9
  License URI: http://www.gnu.org/licenses/lgpl-2.1.html
10
 
109
 
110
  == Changelog ==
111
 
112
+ = 1.3.1 (October 13, 2020) =
113
+ * [Improvement] Added the option to save the popup cookie on closing as well.
114
+ * [Improvement] Added Cell Width options for Table Cells.
115
+ * [Improvement] In Social Share Widget, added the profile name option for Instagram, Skype, Dribbble, etc.
116
+ * [Improvement] Added option to disable title in site title widget. Now you can disable the site title if the logo is enabled.
117
+ * [Improvement] Added auto-detection for reply-to email in contact form. Now if the user does not add reply-to in addition fields then we will detect email from user-submitted data.
118
+ * [Improvement] Added $site_title variable in contact form, now user can use use $site_title to print site title.
119
+ * [Improvement] Copyright text can now be saved from the Widget itself while editing in Pagelayer.
120
+ * [Task] In some cases givecss.php was blocked by certain plugins to execute due to PHP. We have improved detection of the same and it will be served over admin-ajax.php to by pass such plugins. Pagelayer will also detect if givecss.php is functional and access it directly for better speed if possible.
121
+ * [Task] Default values for Archive Posts have been set for better compatibility in responsive mode.
122
+ * [Task] For contact forms, an only Label option type has been added.
123
+ * [Task] In testimonial sliders if there is no image set for a testimonial, then no image will be shown. Earlier the pagelayer default image was shown.
124
+ * [Bug-fix] The detection script for givejs.php and givecss.php which serves compressed CSS and JS files was not working correctly in certain cases. This is fixed.
125
+ * [Bug-Fix] The Star widget would not show full coverage when a 5 stars was set. This is fixed.
126
+ * [Bug-Fix] Unnecessary new lines were being entered in certain widgets. This is fixed.
127
+ * [Bug-Fix] While saving the Address, Phone Number, etc in Pagelayer Contact Settings, certain special characters were getting a Slash Prefix. This is fixed.
128
+ * [Bug-Fix] In Modal Popup, the live view was not being set correctly when the close option was set to outside. This is fixed.
129
+
130
  = 1.3.0 (September 26, 2020) =
131
  * [Improvement] We have improved the Editor UX. Now we will show you a small notice modal for 5 seconds for your actions.
132
  * [Improvement] The copy-paste method has been further improved.