/** * 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)); } }
/** * 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); } }