/**
  * Renders and caches the JavaScript for a builder layout.
  *
  * @since 1.0
  * @return void
  */
 public static function render_js()
 {
     // Delete the old file.
     FLBuilderModel::delete_asset_cache('js');
     // Get info on the new file.
     $nodes = FLBuilderModel::get_categorized_nodes();
     $global_settings = FLBuilderModel::get_global_settings();
     $rows = FLBuilderModel::get_nodes('row');
     $asset_info = FLBuilderModel::get_asset_info();
     $compiled = array();
     $js = '';
     // Layout config object.
     ob_start();
     include FL_BUILDER_DIR . 'includes/layout-js-config.php';
     $js .= ob_get_clean();
     // Main JS
     $js .= file_get_contents(FL_BUILDER_DIR . 'js/fl-builder-layout.js');
     // Loop through the rows.
     foreach ($nodes['rows'] as $row) {
         // Setup row vars
         $settings = $row->settings;
         $id = $row->node;
         // Include the row instance JS
         ob_start();
         include FL_BUILDER_DIR . 'includes/row-js.php';
         $js .= ob_get_clean();
     }
     // Loop through the modules.
     foreach ($nodes['modules'] as $module) {
         // Global module JS
         $file = $module->dir . 'js/frontend.js';
         if (file_exists($file) && !in_array($module->settings->type, $compiled)) {
             $js .= "\n" . file_get_contents($file);
             $compiled[] = $module->settings->type;
         }
         // Instance module JS
         $file = $module->dir . 'includes/frontend.js.php';
         $settings = $module->settings;
         $id = $module->node;
         if (file_exists($file)) {
             ob_start();
             include $file;
             $js .= ob_get_clean();
         }
     }
     // Add the path legacy vars (FLBuilderLayoutConfig.paths should be used instead).
     $js .= "var wpAjaxUrl = '" . admin_url('admin-ajax.php') . "';";
     $js .= "var flBuilderUrl = '" . FL_BUILDER_URL . "';";
     // Call the FLBuilder._renderLayoutComplete method if we're currently editing.
     if (stristr($asset_info['js'], '-draft.js') || stristr($asset_info['js'], '-preview.js')) {
         $js .= "; if(typeof FLBuilder !== 'undefined' && typeof FLBuilder._renderLayoutComplete !== 'undefined') FLBuilder._renderLayoutComplete();";
     }
     // Include FLJSMin
     if (!class_exists('FLJSMin')) {
         include FL_BUILDER_DIR . 'classes/class-fl-jsmin.php';
     }
     // Save the js
     if (!empty($js)) {
         file_put_contents($asset_info['js'], FLJSMin::minify($js));
     }
 }
Esempio n. 2
0
 /**
  * Renders and caches the JavaScript for a builder layout.
  *
  * @since 1.0
  * @return void
  */
 public static function render_js()
 {
     // Delete the old file.
     FLBuilderModel::delete_asset_cache('js');
     // Get info on the new file.
     $nodes = FLBuilderModel::get_categorized_nodes();
     $global_settings = FLBuilderModel::get_global_settings();
     $layout_settings = FLBuilderModel::get_layout_settings();
     $rows = FLBuilderModel::get_nodes('row');
     $asset_info = FLBuilderModel::get_asset_info();
     $compiled = array();
     $js = '';
     // Layout config object.
     ob_start();
     include FL_BUILDER_DIR . 'includes/layout-js-config.php';
     $js .= ob_get_clean();
     // Main JS
     $js .= file_get_contents(FL_BUILDER_DIR . 'js/fl-builder-layout.js');
     // Loop through the rows.
     foreach ($nodes['rows'] as $row) {
         $js .= self::render_row_js($row);
     }
     // Loop through the modules.
     foreach ($nodes['modules'] as $module) {
         $js .= self::render_module_js($module, $compiled);
     }
     // Add the global and layout settings JS.
     $js .= $global_settings->js;
     $js .= self::render_global_nodes_custom_code('js');
     $js .= $layout_settings->js;
     // Add the path legacy vars (FLBuilderLayoutConfig.paths should be used instead).
     $js .= "var wpAjaxUrl = '" . admin_url('admin-ajax.php') . "';";
     $js .= "var flBuilderUrl = '" . FL_BUILDER_URL . "';";
     // Call the FLBuilder._renderLayoutComplete method if we're currently editing.
     if (stristr($asset_info['js'], '-draft.js') || stristr($asset_info['js'], '-preview.js')) {
         $js .= "; if(typeof FLBuilder !== 'undefined' && typeof FLBuilder._renderLayoutComplete !== 'undefined') FLBuilder._renderLayoutComplete();";
     }
     // Include FLJSMin
     if (!class_exists('FLJSMin')) {
         include FL_BUILDER_DIR . 'classes/class-fl-jsmin.php';
     }
     // Save the js
     if (!empty($js)) {
         if (!defined('WP_DEBUG') || !WP_DEBUG) {
             $js = FLJSMin::minify($js);
         }
         file_put_contents($asset_info['js'], $js);
     }
 }