WordPress Page Builder – Beaver Builder - Version 1.10.9

Version Description

Download this release

Release Info

Developer pross
Plugin Icon 128x128 WordPress Page Builder – Beaver Builder
Version 1.10.9
Comparing to
See all releases

Code changes from version 1.10.8.3 to 1.10.9

changelog.txt CHANGED
@@ -1,3 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <h4>1.10.8.3 09/29/17</h4>
2
  <p><strong>Bug Fixes</strong></p>
3
  <ul>
1
+ <h4>1.10.9 10/10/17</h4>
2
+ <p><strong>Enhancements</strong></p>
3
+ <ul>
4
+ <li>Disable Auto-Optimize when the builder is active.</li>
5
+ <li>Numbers Module now supports decimals.</li>
6
+ <li>New filter <code>fl_builder_render_module_css</code>.</li>
7
+ <li>New filter <code>fl_is_debug</code>. This allows developers to run site with no caching without having to use WP_DEBUG.</li>
8
+ <li>Plugin info lightbox and plugin updates list are now white labeled correctly.</li>
9
+ <li>Contact Form Module placeholders are now configurable.</li>
10
+ <li>Added Themer field connection to video lightbox URL.</li>
11
+ <li>Updated language files.</li>
12
+ </ul>
13
+ <p><strong>Bug Fixes</strong></p>
14
+ <ul>
15
+ <li>Fixed an issue with Contact Form Module reCAPTCHA when cURL is not available.</li>
16
+ <li>Fixed possible JS error when more than one video is set to autoplay.</li>
17
+ <li>Fixed some PHP warnings in WP admin area on Windows servers.</li>
18
+ <li>Fixed an importer issue when PHP PCRE limit is set too low.</li>
19
+ <li>Fixed an issue where pages that are not under builder control inherit global settings when a theme layout is on the page.</li>
20
+ <li>Fixed issue with row background not waiting for images to be loaded before starting slideshow effect.</li>
21
+ <li>Fixed Menus Module disappearing on device orientation change.</li>
22
+ <li>Fixed module positioning issue with multiple nested columns.</li>
23
+ <li>Fixed row background video issues with Safari.</li>
24
+ <li>Fixed possible JS issue in Numbers Module, switched to using wp_add_inline_script()</li>
25
+ <li>Fixed possible XSS exploit on links that use _blank by adding noopener to rel.</li>
26
+ <li>Fixed the active class on hamburger toggle. Making sure that active class toggles only when clicking the hamburger icon.</li>
27
+ <li>Fixed issue with custom width for column not working if equal height is enabled.</li>
28
+ <li>Fixed submenu hover when the next row is using background overlay.</li>
29
+ </ul>
30
+
31
  <h4>1.10.8.3 09/29/17</h4>
32
  <p><strong>Bug Fixes</strong></p>
33
  <ul>
classes/class-fl-builder-debug.php CHANGED
@@ -105,6 +105,12 @@ final class FL_Debug {
105
  );
106
  self::register( 'wp_debug', $args );
107
 
 
 
 
 
 
 
108
  $args = array(
109
  'name' => 'SSL Enabled',
110
  'data' => is_ssl() ? 'Yes' : 'No',
@@ -212,6 +218,18 @@ final class FL_Debug {
212
  );
213
  self::register( 'curl', $args );
214
 
 
 
 
 
 
 
 
 
 
 
 
 
215
  $args = array(
216
  'name' => 'BB Products',
217
  'data' => self::divider(),
105
  );
106
  self::register( 'wp_debug', $args );
107
 
108
+ $args = array(
109
+ 'name' => 'FL Debug',
110
+ 'data' => FLBuilder::is_debug() ? 'Yes' : 'No',
111
+ );
112
+ self::register( 'fl_debug', $args );
113
+
114
  $args = array(
115
  'name' => 'SSL Enabled',
116
  'data' => is_ssl() ? 'Yes' : 'No',
218
  );
219
  self::register( 'curl', $args );
220
 
221
+ $args = array(
222
+ 'name' => 'PCRE Backtrack Limit ( default 1000000 )',
223
+ 'data' => self::safe_ini_get( 'pcre.backtrack_limit' ),
224
+ );
225
+ self::register( 'backtrack', $args );
226
+
227
+ $args = array(
228
+ 'name' => 'PCRE Recursion Limit ( default 100000 )',
229
+ 'data' => self::safe_ini_get( 'pcre.recursion_limit' ),
230
+ );
231
+ self::register( 'recursion', $args );
232
+
233
  $args = array(
234
  'name' => 'BB Products',
235
  'data' => self::divider(),
classes/class-fl-builder-importer.php CHANGED
@@ -88,7 +88,11 @@ class FLBuilderImportParserRegex extends WXR_Parser_Regex {
88
  }
89
  if ( false !== strpos( $importline, '</item>' ) ) {
90
  $in_post = false;
 
 
91
  $this->posts[] = $this->process_post( $post );
 
 
92
  continue;
93
  }
94
  if ( $in_post ) {
@@ -125,6 +129,31 @@ class FLBuilderImportParserRegex extends WXR_Parser_Regex {
125
  'version' => $wxr_version,
126
  );
127
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
  }
129
 
130
  /**
88
  }
89
  if ( false !== strpos( $importline, '</item>' ) ) {
90
  $in_post = false;
91
+
92
+ $this->set_pcre_limit( '23001337' );
93
  $this->posts[] = $this->process_post( $post );
94
+ $this->set_pcre_limit( 'default' );
95
+
96
  continue;
97
  }
98
  if ( $in_post ) {
129
  'version' => $wxr_version,
130
  );
131
  }
132
+
133
+ /**
134
+ * Try increasing PCRE limit to avoid failing of importing huge postmeta data.
135
+ *
136
+ * @since 1.10.9
137
+ * @param string $value
138
+ */
139
+ function set_pcre_limit( $value ) {
140
+ $default_backtrack_limit = @ini_get( 'pcre.backtrack_limit' ); // @codingStandardsIgnoreLine
141
+ $default_recursion_limit = @ini_get( 'pcre.recursion_limit' ); // @codingStandardsIgnoreLine
142
+
143
+ if ( 'default' != $value ) {
144
+ @ini_set( 'pcre.backtrack_limit', $value ); // @codingStandardsIgnoreLine
145
+ @ini_set( 'pcre.recursion_limit', $value ); // @codingStandardsIgnoreLine
146
+ } else {
147
+ // Reset limit back to default.
148
+ if ( is_numeric( $default_backtrack_limit ) ) {
149
+ @ini_set( 'pcre.backtrack_limit', $default_backtrack_limit ); // @codingStandardsIgnoreLine
150
+ }
151
+
152
+ if ( is_numeric( $default_recursion_limit ) ) {
153
+ @ini_set( 'pcre.recursion_limit', $default_recursion_limit ); // @codingStandardsIgnoreLine
154
+ }
155
+ }
156
+ }
157
  }
158
 
159
  /**
classes/class-fl-builder-loader.php CHANGED
@@ -43,7 +43,7 @@ if ( ! class_exists( 'FLBuilderLoader' ) ) {
43
  * @return void
44
  */
45
  static private function define_constants() {
46
- define( 'FL_BUILDER_VERSION', '1.10.8.3' );
47
  define( 'FL_BUILDER_FILE', trailingslashit( dirname( dirname( __FILE__ ) ) ) . 'fl-builder.php' );
48
  define( 'FL_BUILDER_DIR', plugin_dir_path( FL_BUILDER_FILE ) );
49
  define( 'FL_BUILDER_URL', plugins_url( '/', FL_BUILDER_FILE ) );
43
  * @return void
44
  */
45
  static private function define_constants() {
46
+ define( 'FL_BUILDER_VERSION', '1.10.9' );
47
  define( 'FL_BUILDER_FILE', trailingslashit( dirname( dirname( __FILE__ ) ) ) . 'fl-builder.php' );
48
  define( 'FL_BUILDER_DIR', plugin_dir_path( FL_BUILDER_FILE ) );
49
  define( 'FL_BUILDER_URL', plugins_url( '/', FL_BUILDER_FILE ) );
classes/class-fl-builder-loop.php CHANGED
@@ -63,6 +63,7 @@ final class FLBuilderLoop {
63
  // Actions
64
  add_action( 'fl_builder_before_control_suggest', __CLASS__ . '::render_match_select', 10, 4 );
65
  add_action( 'init', __CLASS__ . '::init_rewrite_rules', 20 );
 
66
  add_action( 'registered_post_type', __CLASS__ . '::post_type_rewrite_rules', 10, 2 );
67
  add_action( 'registered_taxonomy', __CLASS__ . '::taxonomy_rewrite_rules', 10, 3 );
68
  add_action( 'wp_loaded', __CLASS__ . '::flush_rewrite_rules', 1 );
63
  // Actions
64
  add_action( 'fl_builder_before_control_suggest', __CLASS__ . '::render_match_select', 10, 4 );
65
  add_action( 'init', __CLASS__ . '::init_rewrite_rules', 20 );
66
+ add_action( 'fl_builder_activated', __CLASS__ . '::init_rewrite_rules', 10 );
67
  add_action( 'registered_post_type', __CLASS__ . '::post_type_rewrite_rules', 10, 2 );
68
  add_action( 'registered_taxonomy', __CLASS__ . '::taxonomy_rewrite_rules', 10, 3 );
69
  add_action( 'wp_loaded', __CLASS__ . '::flush_rewrite_rules', 1 );
classes/class-fl-builder-model.php CHANGED
@@ -1351,7 +1351,7 @@ final class FLBuilderModel {
1351
  unset( $data[ $node_id ] );
1352
 
1353
  // Reorder sibling nodes.
1354
- $siblings = self::get_nodes( $node->type, $node->parent );
1355
  $position = 0;
1356
 
1357
  foreach ( $siblings as $sibling_id => $sibling ) {
1351
  unset( $data[ $node_id ] );
1352
 
1353
  // Reorder sibling nodes.
1354
+ $siblings = self::get_nodes( null, $node->parent );
1355
  $position = 0;
1356
 
1357
  foreach ( $siblings as $sibling_id => $sibling ) {
classes/class-fl-builder.php CHANGED
@@ -325,7 +325,7 @@ final class FLBuilder {
325
  $ver = FL_BUILDER_VERSION;
326
  $css_url = plugins_url( '/css/', FL_BUILDER_FILE );
327
  $js_url = plugins_url( '/js/', FL_BUILDER_FILE );
328
- $min = defined( 'WP_DEBUG' ) && WP_DEBUG ? '' : '.min';
329
 
330
  // Register additional CSS
331
  wp_register_style( 'fl-slideshow', $css_url . 'fl-slideshow.css', array( 'yui3' ), $ver );
@@ -412,6 +412,7 @@ final class FLBuilder {
412
  if ( 'slideshow' == $row->settings->bg_type ) {
413
  wp_enqueue_script( 'yui3' );
414
  wp_enqueue_script( 'fl-slideshow' );
 
415
  wp_enqueue_style( 'fl-slideshow' );
416
  } elseif ( 'video' == $row->settings->bg_type ) {
417
  wp_enqueue_script( 'jquery-imagesloaded' );
@@ -498,7 +499,7 @@ final class FLBuilder {
498
  }
499
 
500
  // Render if the file doesn't exist.
501
- if ( ! file_exists( $path ) || $rerender || ( defined( 'WP_DEBUG' ) && WP_DEBUG ) ) {
502
  call_user_func_array( array( 'FLBuilder', 'render_' . $type ), array( $global ) );
503
  }
504
 
@@ -551,7 +552,7 @@ final class FLBuilder {
551
  wp_enqueue_style( 'bootstrap-tour', $css_url . 'bootstrap-tour-standalone.min.css', array(), $ver );
552
 
553
  // Enqueue individual builder styles if WP_DEBUG is on.
554
- if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
555
  wp_enqueue_style( 'fl-color-picker', $css_url . 'fl-color-picker.css', array(), $ver );
556
  wp_enqueue_style( 'fl-lightbox', $css_url . 'fl-lightbox.css', array(), $ver );
557
  wp_enqueue_style( 'fl-icon-selector', $css_url . 'fl-icon-selector.css', array(), $ver );
@@ -599,7 +600,7 @@ final class FLBuilder {
599
  wp_enqueue_script( 'ace-language-tools', $js_url . 'ace/ext-language_tools.js', array(), $ver );
600
 
601
  // Enqueue individual builder scripts if WP_DEBUG is on.
602
- if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
603
  wp_enqueue_script( 'fl-color-picker', $js_url . 'fl-color-picker.js', array(), $ver );
604
  wp_enqueue_script( 'fl-lightbox', $js_url . 'fl-lightbox.js', array(), $ver );
605
  wp_enqueue_script( 'fl-icon-selector', $js_url . 'fl-icon-selector.js', array(), $ver );
@@ -1971,6 +1972,12 @@ final class FLBuilder {
1971
  /**
1972
  * Renders the CSS for a single module.
1973
  *
 
 
 
 
 
 
1974
  * @since 1.0
1975
  * @param string $type The type of module.
1976
  * @param object $id A module node ID.
@@ -1988,7 +1995,12 @@ final class FLBuilder {
1988
  $module = new $class();
1989
  $module->settings = $settings;
1990
 
 
 
1991
  include $module->dir . 'includes/frontend.css.php';
 
 
 
1992
  }
1993
 
1994
  /**
@@ -2144,7 +2156,7 @@ final class FLBuilder {
2144
  // Save the css
2145
  $css = apply_filters( 'fl_builder_render_css', $css, $nodes, $global_settings, $include_global );
2146
 
2147
- if ( ! defined( 'WP_DEBUG' ) || ! WP_DEBUG ) {
2148
  $css = preg_replace( '!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $css );
2149
  $css = str_replace( array( "\r\n", "\r", "\n", "\t", ' ', ' ', ' ' ), '', $css );
2150
  }
@@ -2249,17 +2261,19 @@ final class FLBuilder {
2249
  }// End if().
2250
 
2251
  // Default page heading
2252
- if ( ! $global_settings->show_default_heading && ! empty( $global_settings->default_heading_selector ) ) {
2253
- $heading_selector = esc_attr( $global_settings->default_heading_selector );
 
2254
 
2255
- // If the value starts with `body` or `.fl-builder` selector, we use custom selectors
2256
- if ( 0 === strpos( $heading_selector, 'body' ) || 0 === strpos( $heading_selector, '.fl-builder' ) ) {
2257
- $css .= $heading_selector;
2258
- } else {
2259
- $css .= '.page ' . $heading_selector . ', .single-fl-builder-template ' . $heading_selector;
2260
- }
2261
 
2262
- $css .= ' { display:none; }';
 
2263
  }
2264
 
2265
  return $css;
@@ -2572,7 +2586,7 @@ final class FLBuilder {
2572
  // Save the JS.
2573
  if ( ! empty( $js ) ) {
2574
 
2575
- if ( ! defined( 'WP_DEBUG' ) || ! WP_DEBUG ) {
2576
  try {
2577
  $min = FLJSMin::minify( $js );
2578
  } catch ( Exception $e ) {}
@@ -2809,6 +2823,22 @@ final class FLBuilder {
2809
  return sprintf( '<img src="%s" class="%s" />', FL_BUILDER_URL . 'img/no-image.png', $classes );
2810
  }
2811
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2812
  /**
2813
  * @since 1.0
2814
  * @deprecated 1.7.4
325
  $ver = FL_BUILDER_VERSION;
326
  $css_url = plugins_url( '/css/', FL_BUILDER_FILE );
327
  $js_url = plugins_url( '/js/', FL_BUILDER_FILE );
328
+ $min = ( self::is_debug() ) ? '' : '.min';
329
 
330
  // Register additional CSS
331
  wp_register_style( 'fl-slideshow', $css_url . 'fl-slideshow.css', array( 'yui3' ), $ver );
412
  if ( 'slideshow' == $row->settings->bg_type ) {
413
  wp_enqueue_script( 'yui3' );
414
  wp_enqueue_script( 'fl-slideshow' );
415
+ wp_enqueue_script( 'jquery-imagesloaded' );
416
  wp_enqueue_style( 'fl-slideshow' );
417
  } elseif ( 'video' == $row->settings->bg_type ) {
418
  wp_enqueue_script( 'jquery-imagesloaded' );
499
  }
500
 
501
  // Render if the file doesn't exist.
502
+ if ( ! file_exists( $path ) || $rerender || self::is_debug() ) {
503
  call_user_func_array( array( 'FLBuilder', 'render_' . $type ), array( $global ) );
504
  }
505
 
552
  wp_enqueue_style( 'bootstrap-tour', $css_url . 'bootstrap-tour-standalone.min.css', array(), $ver );
553
 
554
  // Enqueue individual builder styles if WP_DEBUG is on.
555
+ if ( self::is_debug() ) {
556
  wp_enqueue_style( 'fl-color-picker', $css_url . 'fl-color-picker.css', array(), $ver );
557
  wp_enqueue_style( 'fl-lightbox', $css_url . 'fl-lightbox.css', array(), $ver );
558
  wp_enqueue_style( 'fl-icon-selector', $css_url . 'fl-icon-selector.css', array(), $ver );
600
  wp_enqueue_script( 'ace-language-tools', $js_url . 'ace/ext-language_tools.js', array(), $ver );
601
 
602
  // Enqueue individual builder scripts if WP_DEBUG is on.
603
+ if ( self::is_debug() ) {
604
  wp_enqueue_script( 'fl-color-picker', $js_url . 'fl-color-picker.js', array(), $ver );
605
  wp_enqueue_script( 'fl-lightbox', $js_url . 'fl-lightbox.js', array(), $ver );
606
  wp_enqueue_script( 'fl-icon-selector', $js_url . 'fl-icon-selector.js', array(), $ver );
1972
  /**
1973
  * Renders the CSS for a single module.
1974
  *
1975
+ * NOTE: This is not used to render CSS for modules in the FLBuilder::render_css
1976
+ * method. Instead it is used to render CSS for one module inside of another.
1977
+ * For example, you can use this along with FLBuilder::render_module_html to
1978
+ * render a button module inside of a callout module. If you need to filter the
1979
+ * CSS for the layout, consider using the fl_builder_render_css filter instead.
1980
+ *
1981
  * @since 1.0
1982
  * @param string $type The type of module.
1983
  * @param object $id A module node ID.
1995
  $module = new $class();
1996
  $module->settings = $settings;
1997
 
1998
+ // CSS
1999
+ ob_start();
2000
  include $module->dir . 'includes/frontend.css.php';
2001
+ $css = ob_get_clean();
2002
+
2003
+ echo apply_filters( 'fl_builder_render_module_css', $css, $module );
2004
  }
2005
 
2006
  /**
2156
  // Save the css
2157
  $css = apply_filters( 'fl_builder_render_css', $css, $nodes, $global_settings, $include_global );
2158
 
2159
+ if ( ! self::is_debug() ) {
2160
  $css = preg_replace( '!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $css );
2161
  $css = str_replace( array( "\r\n", "\r", "\n", "\t", ' ', ' ', ' ' ), '', $css );
2162
  }
2261
  }// End if().
2262
 
2263
  // Default page heading
2264
+ if ( FLBuilderModel::is_builder_active() ) {
2265
+ if ( ! $global_settings->show_default_heading && ! empty( $global_settings->default_heading_selector ) ) {
2266
+ $heading_selector = esc_attr( $global_settings->default_heading_selector );
2267
 
2268
+ // If the value starts with `body` or `.fl-builder` selector, we use custom selectors
2269
+ if ( 0 === strpos( $heading_selector, 'body' ) || 0 === strpos( $heading_selector, '.fl-builder' ) ) {
2270
+ $css .= $heading_selector;
2271
+ } else {
2272
+ $css .= '.page ' . $heading_selector . ', .single-fl-builder-template ' . $heading_selector;
2273
+ }
2274
 
2275
+ $css .= ' { display:none; }';
2276
+ }
2277
  }
2278
 
2279
  return $css;
2586
  // Save the JS.
2587
  if ( ! empty( $js ) ) {
2588
 
2589
+ if ( ! self::is_debug() ) {
2590
  try {
2591
  $min = FLJSMin::minify( $js );
2592
  } catch ( Exception $e ) {}
2823
  return sprintf( '<img src="%s" class="%s" />', FL_BUILDER_URL . 'img/no-image.png', $classes );
2824
  }
2825
 
2826
+ /**
2827
+ * Check if debug is enabled.
2828
+ * @since 1.10.8.2
2829
+ * @return bool
2830
+ */
2831
+ static public function is_debug() {
2832
+
2833
+ $debug = false;
2834
+
2835
+ if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
2836
+ $debug = true;
2837
+ }
2838
+
2839
+ return apply_filters( 'fl_is_debug', $debug );
2840
+ }
2841
+
2842
  /**
2843
  * @since 1.0
2844
  * @deprecated 1.7.4
fl-builder.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Beaver Builder Plugin (Lite Version)
4
  * Plugin URI: https://www.wpbeaverbuilder.com/?utm_medium=bb&utm_source=plugins-admin-page&utm_campaign=plugins-admin-uri
5
  * Description: A drag and drop frontend WordPress page builder plugin that works with almost any theme!
6
- * Version: 1.10.8.3
7
  * Author: The Beaver Builder Team
8
  * Author URI: https://www.wpbeaverbuilder.com/?utm_medium=bb&utm_source=plugins-admin-page&utm_campaign=plugins-admin-author
9
  * Copyright: (c) 2014 Beaver Builder
3
  * Plugin Name: Beaver Builder Plugin (Lite Version)
4
  * Plugin URI: https://www.wpbeaverbuilder.com/?utm_medium=bb&utm_source=plugins-admin-page&utm_campaign=plugins-admin-uri
5
  * Description: A drag and drop frontend WordPress page builder plugin that works with almost any theme!
6
+ * Version: 1.10.9
7
  * Author: The Beaver Builder Team
8
  * Author URI: https://www.wpbeaverbuilder.com/?utm_medium=bb&utm_source=plugins-admin-page&utm_campaign=plugins-admin-author
9
  * Copyright: (c) 2014 Beaver Builder
includes/column-css.php CHANGED
@@ -105,6 +105,11 @@
105
  .fl-builder-content .fl-node-<?php echo $col->node; ?> {
106
  max-width: none;
107
  width: <?php echo $col->settings->custom_medium_size; ?>% !important;
 
 
 
 
 
108
  }
109
  }
110
  <?php endif; ?>
105
  .fl-builder-content .fl-node-<?php echo $col->node; ?> {
106
  max-width: none;
107
  width: <?php echo $col->settings->custom_medium_size; ?>% !important;
108
+ -webkit-box-flex: 0 1 auto;
109
+ -moz-box-flex: 0 1 auto;
110
+ -webkit-flex: 0 1 auto;
111
+ -ms-flex: 0 1 auto;
112
+ flex: 0 1 auto;
113
  }
114
  }
115
  <?php endif; ?>
includes/compatibility.php CHANGED
@@ -248,3 +248,27 @@ function fl_builder_template_meta_add( $meta_id, $object_id, $meta_key, $meta_va
248
  update_post_meta( $object_id, '_fl_builder_template_id', $template_id );
249
  }
250
  add_action( 'added_post_meta', 'fl_builder_template_meta_add', 10, 4 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
248
  update_post_meta( $object_id, '_fl_builder_template_id', $template_id );
249
  }
250
  add_action( 'added_post_meta', 'fl_builder_template_meta_add', 10, 4 );
251
+
252
+ /**
253
+ * Stop bw-minify from optimizing when builder is open.
254
+ * @since 1.10.9
255
+ */
256
+ function fl_bwp_minify_is_loadable_filter( $args ) {
257
+ if ( FLBuilderModel::is_builder_active() ) {
258
+ return false;
259
+ }
260
+ return $args;
261
+ }
262
+ add_filter( 'bwp_minify_is_loadable', 'fl_bwp_minify_is_loadable_filter' );
263
+
264
+ /**
265
+ * Stop autoptimize from optimizing when builder is open.
266
+ * @since 1.10.9
267
+ */
268
+ function fl_autoptimize_filter_noptimize_filter( $args ) {
269
+ if ( FLBuilderModel::is_builder_active() ) {
270
+ return true;
271
+ }
272
+ return $args;
273
+ }
274
+ add_filter( 'autoptimize_filter_noptimize', 'fl_autoptimize_filter_noptimize_filter' );
includes/row-js.php CHANGED
@@ -32,7 +32,9 @@ YUI({'logExclude': { 'yui': true } }).use('fl-slideshow', function(Y) {
32
  oldSlideshow.remove(true);
33
  }
34
 
35
- newSlideshow.render('.fl-node-<?php echo $id; ?> .fl-bg-slideshow');
 
 
36
  });
37
  <?php
38
 
32
  oldSlideshow.remove(true);
33
  }
34
 
35
+ jQuery( '.fl-node-<?php echo $id; ?>' ).imagesLoaded( function(){
36
+ newSlideshow.render('.fl-node-<?php echo $id; ?> .fl-bg-slideshow');
37
+ } );
38
  });
39
  <?php
40
 
includes/ui-js-config.php CHANGED
@@ -7,7 +7,7 @@ echo 'FLBuilderConfig = ' . json_encode( apply_filters('fl_builder_ui_js_config'
7
  'builderEnabled' => get_post_meta( $post_id, '_fl_builder_enabled', true ) ? true : false,
8
  'colorPresets' => FLBuilderModel::get_color_presets(),
9
  'customImageSizeTitles' => apply_filters( 'image_size_names_choose', array() ),
10
- 'debug' => ( defined( 'WP_DEBUG' ) && WP_DEBUG ),
11
  'enabledTemplates' => 'core',
12
  'global' => $global_settings,
13
  'help' => FLBuilderModel::get_help_button_settings(),
7
  'builderEnabled' => get_post_meta( $post_id, '_fl_builder_enabled', true ) ? true : false,
8
  'colorPresets' => FLBuilderModel::get_color_presets(),
9
  'customImageSizeTitles' => apply_filters( 'image_size_names_choose', array() ),
10
+ 'debug' => FLBuilder::is_debug(),
11
  'enabledTemplates' => 'core',
12
  'global' => $global_settings,
13
  'help' => FLBuilderModel::get_help_button_settings(),
includes/updater-config.php CHANGED
@@ -3,7 +3,7 @@
3
  if ( class_exists( 'FLUpdater' ) ) {
4
  FLUpdater::add_product(array(
5
  'name' => 'Beaver Builder Plugin (Lite Version)',
6
- 'version' => '1.10.8.3',
7
  'slug' => 'bb-plugin',
8
  'type' => 'plugin',
9
  ));
3
  if ( class_exists( 'FLUpdater' ) ) {
4
  FLUpdater::add_product(array(
5
  'name' => 'Beaver Builder Plugin (Lite Version)',
6
+ 'version' => '1.10.9',
7
  'slug' => 'bb-plugin',
8
  'type' => 'plugin',
9
  ));
includes/updater/classes/class-fl-updater.php CHANGED
@@ -183,8 +183,7 @@ final class FLUpdater {
183
  $info->last_updated = $response->last_updated;
184
  $info->download_link = $response->package;
185
  $info->sections = (array) $response->sections;
186
-
187
- return $info;
188
  }
189
 
190
  return $false;
183
  $info->last_updated = $response->last_updated;
184
  $info->download_link = $response->package;
185
  $info->sections = (array) $response->sections;
186
+ return apply_filters( 'fl_plugin_info_data', $info, $response );
 
187
  }
188
 
189
  return $false;
js/fl-builder-layout.js CHANGED
@@ -599,7 +599,12 @@
599
  fallback = wrap.data( 'fallback' ),
600
  fallbackTag = '';
601
 
602
- if ( '' !== fallback ) {
 
 
 
 
 
603
  fallbackTag = $( '<div></div>' );
604
  fallbackTag.addClass( 'fl-bg-video-fallback' );
605
  fallbackTag.css( 'background-image', 'url(' + fallback + ')' );
599
  fallback = wrap.data( 'fallback' ),
600
  fallbackTag = '';
601
 
602
+ source.remove();
603
+
604
+ if ( vid.find( 'source' ).length ) {
605
+ // Don't show the fallback if we still have other sources to check.
606
+ return;
607
+ } else if ( '' !== fallback ) {
608
  fallbackTag = $( '<div></div>' );
609
  fallbackTag.addClass( 'fl-bg-video-fallback' );
610
  fallbackTag.css( 'background-image', 'url(' + fallback + ')' );
json/fonts.json CHANGED
@@ -186,11 +186,6 @@
186
  "regular",
187
  "700"
188
  ]
189
- }, {
190
- "Amatica SC": [
191
- "regular",
192
- "700"
193
- ]
194
  }, {
195
  "Amethysta": [
196
  "regular"
186
  "regular",
187
  "700"
188
  ]
 
 
 
 
 
189
  }, {
190
  "Amethysta": [
191
  "regular"
languages/de_DE.mo CHANGED
Binary file
languages/fr_CA.mo CHANGED
Binary file
languages/hu_HU.mo CHANGED
Binary file
languages/it_IT.mo CHANGED
Binary file
languages/nl_NL.mo CHANGED
Binary file
languages/pt_PT.mo CHANGED
Binary file
modules/photo/includes/frontend.php CHANGED
@@ -7,17 +7,18 @@ $link = $module->get_link();
7
  $alt = $module->get_alt();
8
  $attrs = $module->get_attributes();
9
  $filetype = pathinfo( $src, PATHINFO_EXTENSION );
 
10
 
11
  ?>
12
  <div class="fl-photo<?php if ( ! empty( $settings->crop ) ) { echo ' fl-photo-crop-' . $settings->crop ;} ?> fl-photo-align-<?php echo $settings->align; ?>" itemscope itemtype="http://schema.org/ImageObject">
13
  <div class="fl-photo-content fl-photo-img-<?php echo $filetype; ?>">
14
  <?php if ( ! empty( $link ) ) : ?>
15
- <a href="<?php echo $link; ?>" target="<?php echo $settings->link_target; ?>" itemprop="url">
16
  <?php endif; ?>
17
  <img class="<?php echo $classes; ?>" src="<?php echo $src; ?>" alt="<?php echo $alt; ?>" itemprop="image" <?php echo $attrs; ?> />
18
  <?php if ( ! empty( $link ) ) : ?>
19
  </a>
20
- <?php endif; ?>
21
  <?php if ( $photo && ! empty( $photo->caption ) && 'hover' == $settings->show_caption ) : ?>
22
  <div class="fl-photo-caption fl-photo-caption-hover" itemprop="caption"><?php echo $photo->caption; ?></div>
23
  <?php endif; ?>
7
  $alt = $module->get_alt();
8
  $attrs = $module->get_attributes();
9
  $filetype = pathinfo( $src, PATHINFO_EXTENSION );
10
+ $rel = ( ! empty( $link ) && '_blank' == $settings->link_target ) ? ' rel="noopener" ' : '';
11
 
12
  ?>
13
  <div class="fl-photo<?php if ( ! empty( $settings->crop ) ) { echo ' fl-photo-crop-' . $settings->crop ;} ?> fl-photo-align-<?php echo $settings->align; ?>" itemscope itemtype="http://schema.org/ImageObject">
14
  <div class="fl-photo-content fl-photo-img-<?php echo $filetype; ?>">
15
  <?php if ( ! empty( $link ) ) : ?>
16
+ <a href="<?php echo $link; ?>" target="<?php echo $settings->link_target; ?>"<?php echo $rel; ?>itemprop="url">
17
  <?php endif; ?>
18
  <img class="<?php echo $classes; ?>" src="<?php echo $src; ?>" alt="<?php echo $alt; ?>" itemprop="image" <?php echo $attrs; ?> />
19
  <?php if ( ! empty( $link ) ) : ?>
20
  </a>
21
+ <?php endif; ?>
22
  <?php if ( $photo && ! empty( $photo->caption ) && 'hover' == $settings->show_caption ) : ?>
23
  <div class="fl-photo-caption fl-photo-caption-hover" itemprop="caption"><?php echo $photo->caption; ?></div>
24
  <?php endif; ?>
modules/video/js/frontend.js CHANGED
@@ -1,7 +1,12 @@
1
  (function($) {
2
-
3
  $(function() {
4
  $('.fl-embed-video').fitVids();
 
 
 
 
 
5
  });
6
-
7
- })(jQuery);
1
  (function($) {
2
+
3
  $(function() {
4
  $('.fl-embed-video').fitVids();
5
+
6
+ // Fix multiple videos where autoplay is enabled.
7
+ if ( $('.fl-module-video video').length > 1 ) {
8
+ $('.fl-module-video video').mediaelementplayer( {pauseOtherPlayers: false} );
9
+ }
10
  });
11
+
12
+ })(jQuery);