/** * generate_custom_js * * Generate custom javascript code in head of page that will not be cached */ function generte_custom_js_precompiled() { if ($this->is_plugin_deactivated_on()) { return; } // -- loading non cachble and noasync code first if (count($this->js_social_apis) > 0) { if (!ESSBCoreHelper::is_module_deactivate_on('native')) { foreach ($this->js_social_apis as $network => $loaded) { $this->load_social_api_code($network); } } } if (count($this->js_static_noasync_footer)) { foreach ($this->js_static_noasync_footer as $key => $file) { $this->manual_script_load($key, $file); } } // loading in precompiled cache mode $cache_key = "essb-precompiled"; $cached_data = ESSBPrecompiledResources::get_resource($cache_key, 'js'); if ($cached_data != '') { echo "<script type='text/javascript' src='" . $cached_data . "' async></script>"; return; } $static_content = array(); $scripts = array(); $current_site_url = get_site_url(); $scripts[] = implode(" ", $this->js_code); if (count($this->js_static) > 0) { foreach ($this->js_static as $key => $file) { $relative_path = ESSBPrecompiledResources::get_asset_relative_path($current_site_url, $file); $code = file_get_contents(ABSPATH . $relative_path); $scripts[] = $code; $static_content[$key] = $file; } } if (count($this->js_static_footer)) { foreach ($this->js_static_footer as $key => $file) { $relative_path = ESSBPrecompiledResources::get_asset_relative_path($current_site_url, $file); $code = file_get_contents(ABSPATH . $relative_path); $scripts[] = $code; $static_content[$key] = $file; } } $toc = array(); foreach ($static_content as $handle => $item_content) { $toc[] = sprintf(' - %s', $handle . '-' . $item_content); } $scripts[] = sprintf("\n\n\n/* TOC:\n%s\n*/", implode("\n", $toc)); ESSBPrecompiledResources::put_resource($cache_key, implode(' ', $scripts), 'js'); $cached_data = ESSBPrecompiledResources::get_resource($cache_key, 'js'); if ($cached_data != '') { echo "<script type='text/javascript' src='" . $cached_data . "' async></script>"; } }