function ewww_image_optimizer_admin_init() { global $ewww_debug; $ewww_debug .= "<b>ewww_image_optimizer_admin_init()</b><br>"; // make sure the bundled tools are installed if (!ewww_image_optimizer_get_option('ewww_image_optimizer_skip_bundle')) { ewww_image_optimizer_install_tools(); } ewww_image_optimizer_init(); // Check if this is an unsupported OS (not Linux or Mac OSX or FreeBSD or Windows or SunOS) if (EWWW_IMAGE_OPTIMIZER_CLOUD) { ewww_image_optimizer_disable_tools(); } elseif ('Linux' != PHP_OS && 'Darwin' != PHP_OS && 'FreeBSD' != PHP_OS && 'WINNT' != PHP_OS && 'SunOS' != PHP_OS) { // call the function to display a notice add_action('network_admin_notices', 'ewww_image_optimizer_notice_os'); add_action('admin_notices', 'ewww_image_optimizer_notice_os'); // turn off all the tools ewww_image_optimizer_disable_tools(); } else { //Otherwise, we run the function to check for optimization utilities add_action('network_admin_notices', 'ewww_image_optimizer_notice_utils'); add_action('admin_notices', 'ewww_image_optimizer_notice_utils'); } if (function_exists('is_plugin_active_for_network') && is_plugin_active_for_network('ewww-image-optimizer/ewww-image-optimizer.php')) { // network version is simply incremented any time we need to make changes to this section for new defaults if (get_site_option('ewww_image_optimizer_network_version') < 1) { add_site_option('ewww_image_optimizer_disable_pngout', TRUE); add_site_option('ewww_image_optimizer_optipng_level', 2); add_site_option('ewww_image_optimizer_pngout_level', 2); update_site_option('ewww_image_optimizer_network_version', '1'); } // set network settings if they have been POSTed if (!empty($_POST['ewww_image_optimizer_optipng_level'])) { if (empty($_POST['ewww_image_optimizer_skip_check'])) { $_POST['ewww_image_optimizer_skip_check'] = ''; } update_site_option('ewww_image_optimizer_skip_check', $_POST['ewww_image_optimizer_skip_check']); if (empty($_POST['ewww_image_optimizer_skip_bundle'])) { $_POST['ewww_image_optimizer_skip_bundle'] = ''; } update_site_option('ewww_image_optimizer_skip_bundle', $_POST['ewww_image_optimizer_skip_bundle']); if (empty($_POST['ewww_image_optimizer_debug'])) { $_POST['ewww_image_optimizer_debug'] = ''; } update_site_option('ewww_image_optimizer_debug', $_POST['ewww_image_optimizer_debug']); if (empty($_POST['ewww_image_optimizer_jpegtran_copy'])) { $_POST['ewww_image_optimizer_jpegtran_copy'] = ''; } update_site_option('ewww_image_optimizer_jpegtran_copy', $_POST['ewww_image_optimizer_jpegtran_copy']); if (empty($_POST['ewww_image_optimizer_png_lossy'])) { $_POST['ewww_image_optimizer_png_lossy'] = ''; } update_site_option('ewww_image_optimizer_png_lossy', $_POST['ewww_image_optimizer_png_lossy']); if (empty($_POST['ewww_image_optimizer_lossy_skip_full'])) { $_POST['ewww_image_optimizer_lossy_skip_full'] = ''; } update_site_option('ewww_image_optimizer_lossy_skip_full', $_POST['ewww_image_optimizer_lossy_skip_full']); update_site_option('ewww_image_optimizer_optipng_level', $_POST['ewww_image_optimizer_optipng_level']); update_site_option('ewww_image_optimizer_pngout_level', $_POST['ewww_image_optimizer_pngout_level']); if (empty($_POST['ewww_image_optimizer_disable_jpegtran'])) { $_POST['ewww_image_optimizer_disable_jpegtran'] = ''; } update_site_option('ewww_image_optimizer_disable_jpegtran', $_POST['ewww_image_optimizer_disable_jpegtran']); if (empty($_POST['ewww_image_optimizer_disable_optipng'])) { $_POST['ewww_image_optimizer_disable_optipng'] = ''; } update_site_option('ewww_image_optimizer_disable_optipng', $_POST['ewww_image_optimizer_disable_optipng']); if (empty($_POST['ewww_image_optimizer_disable_gifsicle'])) { $_POST['ewww_image_optimizer_disable_gifsicle'] = ''; } update_site_option('ewww_image_optimizer_disable_gifsicle', $_POST['ewww_image_optimizer_disable_gifsicle']); if (empty($_POST['ewww_image_optimizer_disable_pngout'])) { $_POST['ewww_image_optimizer_disable_pngout'] = ''; } update_site_option('ewww_image_optimizer_disable_pngout', $_POST['ewww_image_optimizer_disable_pngout']); if (empty($_POST['ewww_image_optimizer_delete_originals'])) { $_POST['ewww_image_optimizer_delete_originals'] = ''; } update_site_option('ewww_image_optimizer_delete_originals', $_POST['ewww_image_optimizer_delete_originals']); if (empty($_POST['ewww_image_optimizer_jpg_to_png'])) { $_POST['ewww_image_optimizer_jpg_to_png'] = ''; } update_site_option('ewww_image_optimizer_jpg_to_png', $_POST['ewww_image_optimizer_jpg_to_png']); if (empty($_POST['ewww_image_optimizer_png_to_jpg'])) { $_POST['ewww_image_optimizer_png_to_jpg'] = ''; } update_site_option('ewww_image_optimizer_png_to_jpg', $_POST['ewww_image_optimizer_png_to_jpg']); if (empty($_POST['ewww_image_optimizer_gif_to_png'])) { $_POST['ewww_image_optimizer_gif_to_png'] = ''; } update_site_option('ewww_image_optimizer_gif_to_png', $_POST['ewww_image_optimizer_gif_to_png']); if (empty($_POST['ewww_image_optimizer_jpg_background'])) { $_POST['ewww_image_optimizer_jpg_background'] = ''; } update_site_option('ewww_image_optimizer_jpg_background', $_POST['ewww_image_optimizer_jpg_background']); if (empty($_POST['ewww_image_optimizer_jpg_quality'])) { $_POST['ewww_image_optimizer_jpg_quality'] = ''; } update_site_option('ewww_image_optimizer_jpg_quality', $_POST['ewww_image_optimizer_jpg_quality']); if (empty($_POST['ewww_image_optimizer_disable_convert_links'])) { $_POST['ewww_image_optimizer_disable_convert_links'] = ''; } update_site_option('ewww_image_optimizer_disable_convert_links', $_POST['ewww_image_optimizer_disable_convert_links']); if (empty($_POST['ewww_image_optimizer_cloud_key'])) { $_POST['ewww_image_optimizer_cloud_key'] = ''; } update_site_option('ewww_image_optimizer_cloud_key', $_POST['ewww_image_optimizer_cloud_key']); if (empty($_POST['ewww_image_optimizer_cloud_jpg'])) { $_POST['ewww_image_optimizer_cloud_jpg'] = ''; } update_site_option('ewww_image_optimizer_cloud_jpg', $_POST['ewww_image_optimizer_cloud_jpg']); if (empty($_POST['ewww_image_optimizer_cloud_png'])) { $_POST['ewww_image_optimizer_cloud_png'] = ''; } update_site_option('ewww_image_optimizer_cloud_png', $_POST['ewww_image_optimizer_cloud_png']); if (empty($_POST['ewww_image_optimizer_cloud_png_compress'])) { $_POST['ewww_image_optimizer_cloud_png_compress'] = ''; } update_site_option('ewww_image_optimizer_cloud_png_compress', $_POST['ewww_image_optimizer_cloud_png_compress']); if (empty($_POST['ewww_image_optimizer_cloud_gif'])) { $_POST['ewww_image_optimizer_cloud_gif'] = ''; } update_site_option('ewww_image_optimizer_cloud_gif', $_POST['ewww_image_optimizer_cloud_gif']); if (empty($_POST['ewww_image_optimizer_auto'])) { $_POST['ewww_image_optimizer_auto'] = ''; } update_site_option('ewww_image_optimizer_auto', $_POST['ewww_image_optimizer_auto']); if (empty($_POST['ewww_image_optimizer_aux_paths'])) { $_POST['ewww_image_optimizer_aux_paths'] = ''; } update_site_option('ewww_image_optimizer_aux_paths', ewww_image_optimizer_aux_paths_sanitize($_POST['ewww_image_optimizer_aux_paths'])); if (empty($_POST['ewww_image_optimizer_enable_cloudinary'])) { $_POST['ewww_image_optimizer_enable_cloudinary'] = ''; } update_site_option('ewww_image_optimizer_enable_cloudinary', $_POST['ewww_image_optimizer_enable_cloudinary']); if (empty($_POST['ewww_image_optimizer_delay'])) { $_POST['ewww_image_optimizer_delay'] = ''; } update_site_option('ewww_image_optimizer_delay', intval($_POST['ewww_image_optimizer_delay'])); if (empty($_POST['ewww_image_optimizer_interval'])) { $_POST['ewww_image_optimizer_interval'] = ''; } update_site_option('ewww_image_optimizer_interval', intval($_POST['ewww_image_optimizer_interval'])); add_action('network_admin_notices', 'ewww_image_optimizer_network_settings_saved'); } } // register all the EWWW IO settings register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_skip_check'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_skip_bundle'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_debug'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_jpegtran_copy'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_png_lossy'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_lossy_skip_full'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_optipng_level'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_pngout_level'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_jpegtran_path'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_optipng_path'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_gifsicle_path'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_disable_jpegtran'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_disable_optipng'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_disable_gifsicle'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_disable_pngout'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_delete_originals'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_jpg_to_png'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_png_to_jpg'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_gif_to_png'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_jpg_background', 'ewww_image_optimizer_jpg_background_sanitize'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_jpg_quality', 'ewww_image_optimizer_jpg_quality_sanitize'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_disable_convert_links'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_bulk_resume'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_bulk_attachments'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_aux_resume'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_aux_attachments'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_aux_type'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_cloud_key'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_cloud_jpg'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_cloud_png'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_cloud_png_compress'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_cloud_gif'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_auto'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_aux_paths', 'ewww_image_optimizer_aux_paths_sanitize'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_enable_cloudinary'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_delay', 'intval'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_interval', 'intval'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_import_status'); // setup scheduled optimization if the user has enabled it, and it isn't already scheduled if (ewww_image_optimizer_get_option('ewww_image_optimizer_auto') == TRUE && !wp_next_scheduled('ewww_image_optimizer_auto')) { $ewww_debug .= "scheduling auto-optimization<br>"; wp_schedule_event(time(), 'hourly', 'ewww_image_optimizer_auto'); } elseif (ewww_image_optimizer_get_option('ewww_image_optimizer_auto') == TRUE) { $ewww_debug .= "auto-optimization already scheduled: " . wp_next_scheduled('ewww_image_optimizer_auto') . "<br>"; } elseif (wp_next_scheduled('ewww_image_optimizer_auto')) { $ewww_debug .= "un-scheduling auto-optimization<br>"; wp_clear_scheduled_hook('ewww_image_optimizer_auto'); if (function_exists('is_plugin_active_for_network') && is_plugin_active_for_network('ewww-image-optimizer/ewww-image-optimizer.php')) { global $wpdb; if (function_exists('wp_get_sites')) { add_filter('wp_is_large_network', 'ewww_image_optimizer_large_network', 20, 0); $blogs = wp_get_sites(array('network_id' => $wpdb->siteid, 'limit' => 10000)); remove_filter('wp_is_large_network', 'ewww_image_optimizer_large_network', 20, 0); } else { $query = "SELECT blog_id FROM {$wpdb->blogs} WHERE site_id = '{$wpdb->siteid}' "; $blogs = $wpdb->get_results($query, ARRAY_A); } foreach ($blogs as $blog) { switch_to_blog($blog['blog_id']); wp_clear_scheduled_hook('ewww_image_optimizer_auto'); } restore_current_blog(); } } // require the files that do the bulk processing require_once EWWW_IMAGE_OPTIMIZER_PLUGIN_PATH . 'bulk.php'; require_once EWWW_IMAGE_OPTIMIZER_PLUGIN_PATH . 'aux-optimize.php'; // queue the function that contains custom styling for our progressbars, but only in wp 3.8+ global $wp_version; if (substr($wp_version, 0, 3) >= 3.8) { add_action('admin_enqueue_scripts', 'ewww_image_optimizer_progressbar_style'); } }
function ewww_image_optimizer_tool_init() { global $ewww_debug; // global $ewww_admin; $ewww_debug .= "<b>ewww_image_optimizer_tool_init()</b><br>"; /* if ( $admin ) { $ewww_debug .= 'we are in the admin, feel free to shout<br>'; } else { $ewww_debug .= 'no admin, be quiet<br>'; }*/ // make sure the bundled tools are installed if (!ewww_image_optimizer_get_option('ewww_image_optimizer_skip_bundle')) { ewww_image_optimizer_install_tools(); } // if ( $admin ) { //then we run the function to check for optimization utilities add_action('network_admin_notices', 'ewww_image_optimizer_notice_utils'); add_action('admin_notices', 'ewww_image_optimizer_notice_utils'); // } else { if (EWWW_IMAGE_OPTIMIZER_CLOUD) { $ewww_debug .= 'cloud options enabled, shutting off binaries<br>'; ewww_image_optimizer_disable_tools(); } // ewww_image_optimizer_notice_utils(); // } }
function ewww_image_optimizer_exec_init() { global $ewww_debug; $ewww_debug .= "<b>ewww_image_optimizer_exec_init()</b><br>"; if (function_exists('is_plugin_active_for_network') && is_plugin_active_for_network(EWWW_IMAGE_OPTIMIZER_PLUGIN_FILE_REL)) { // set the binary-specific network settings if they have been POSTed if (isset($_POST['ewww_image_optimizer_delay'])) { if (empty($_POST['ewww_image_optimizer_skip_check'])) { $_POST['ewww_image_optimizer_skip_check'] = ''; } update_site_option('ewww_image_optimizer_skip_check', $_POST['ewww_image_optimizer_skip_check']); if (empty($_POST['ewww_image_optimizer_skip_bundle'])) { $_POST['ewww_image_optimizer_skip_bundle'] = ''; } update_site_option('ewww_image_optimizer_skip_bundle', $_POST['ewww_image_optimizer_skip_bundle']); if (!empty($_POST['ewww_image_optimizer_optipng_level'])) { update_site_option('ewww_image_optimizer_optipng_level', $_POST['ewww_image_optimizer_optipng_level']); update_site_option('ewww_image_optimizer_pngout_level', $_POST['ewww_image_optimizer_pngout_level']); } if (empty($_POST['ewww_image_optimizer_disable_jpegtran'])) { $_POST['ewww_image_optimizer_disable_jpegtran'] = ''; } update_site_option('ewww_image_optimizer_disable_jpegtran', $_POST['ewww_image_optimizer_disable_jpegtran']); if (empty($_POST['ewww_image_optimizer_disable_optipng'])) { $_POST['ewww_image_optimizer_disable_optipng'] = ''; } update_site_option('ewww_image_optimizer_disable_optipng', $_POST['ewww_image_optimizer_disable_optipng']); if (empty($_POST['ewww_image_optimizer_disable_gifsicle'])) { $_POST['ewww_image_optimizer_disable_gifsicle'] = ''; } update_site_option('ewww_image_optimizer_disable_gifsicle', $_POST['ewww_image_optimizer_disable_gifsicle']); if (empty($_POST['ewww_image_optimizer_disable_pngout'])) { $_POST['ewww_image_optimizer_disable_pngout'] = ''; } update_site_option('ewww_image_optimizer_disable_pngout', $_POST['ewww_image_optimizer_disable_pngout']); } } // register all the binary-specific EWWW IO settings register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_skip_check'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_skip_bundle'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_optipng_level'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_pngout_level'); // register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_jpegtran_path'); // register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_optipng_path'); // register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_gifsicle_path'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_disable_jpegtran'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_disable_optipng'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_disable_gifsicle'); register_setting('ewww_image_optimizer_options', 'ewww_image_optimizer_disable_pngout'); // If cloud is fully enabled, we're going to skip all the checks related to the bundled tools if (EWWW_IMAGE_OPTIMIZER_CLOUD) { ewww_image_optimizer_disable_tools(); // Check if this is an unsupported OS (not Linux or Mac OSX or FreeBSD or Windows or SunOS) } elseif ('Linux' != PHP_OS && 'Darwin' != PHP_OS && 'FreeBSD' != PHP_OS && 'WINNT' != PHP_OS && 'SunOS' != PHP_OS) { // call the function to display a notice add_action('network_admin_notices', 'ewww_image_optimizer_notice_os'); add_action('admin_notices', 'ewww_image_optimizer_notice_os'); // turn off all the tools ewww_image_optimizer_disable_tools(); } else { // make sure the bundled tools are installed if (!ewww_image_optimizer_get_option('ewww_image_optimizer_skip_bundle')) { ewww_image_optimizer_install_tools(); } //then we run the function to check for optimization utilities add_action('network_admin_notices', 'ewww_image_optimizer_notice_utils'); add_action('admin_notices', 'ewww_image_optimizer_notice_utils'); } }
function ewww_image_optimizer_tool_init() { ewwwio_debug_message('<b>' . __FUNCTION__ . '()</b>'); // make sure the bundled tools are installed if (!ewww_image_optimizer_get_option('ewww_image_optimizer_skip_bundle')) { ewww_image_optimizer_install_tools(); } // check for optimization utilities and register a notice if something is missing add_action('network_admin_notices', 'ewww_image_optimizer_notice_utils'); add_action('admin_notices', 'ewww_image_optimizer_notice_utils'); if (EWWW_IMAGE_OPTIMIZER_CLOUD) { ewwwio_debug_message('cloud options enabled, shutting off binaries'); ewww_image_optimizer_disable_tools(); } // ewww_image_optimizer_debug_log(); }
function ewww_image_optimizer_notice_utils() { global $ewww_debug; $ewww_debug = "{$ewww_debug} <b>ewww_image_optimizer_notice_utils()</b><br>"; // query the php settings for safe mode if (ini_get('safe_mode')) { // display a warning to the user echo "<div id='ewww-image-optimizer-warning-opt-png' class='error'><p><strong>PHP's Safe Mode is turned on. This plugin cannot operate in safe mode.</strong></p></div>"; } // make sure the bundled tools are installed if (!get_site_option('ewww_image_optimizer_skip_bundle')) { ewww_image_optimizer_install_tools(); } // attempt to retrieve values for utility paths, and store them in the appropriate variables list($jpegtran_path, $optipng_path, $gifsicle_path, $pngout_path) = ewww_image_optimizer_path_check(); // store those values back into an array, probably a more efficient way of doing this $required = array('JPEGTRAN' => $jpegtran_path, 'OPTIPNG' => $optipng_path, 'GIFSICLE' => $gifsicle_path, 'PNGOUT' => $pngout_path); // if the user has disabled the utility checks if (get_site_option('ewww_image_optimizer_skip_check') == TRUE) { // set a variable for each tool $skip_jpegtran_check = true; $skip_optipng_check = true; $skip_gifsicle_check = true; $skip_pngout_check = true; } else { // set the variables false otherwise $skip_jpegtran_check = false; $skip_optipng_check = false; $skip_gifsicle_check = false; $skip_pngout_check = false; } // if the user has disabled a variable, we aren't going to bother checking to see if it is there if (get_site_option('ewww_image_optimizer_disable_jpegtran')) { $skip_jpegtran_check = true; } if (get_site_option('ewww_image_optimizer_disable_optipng')) { $skip_optipng_check = true; } if (get_site_option('ewww_image_optimizer_disable_gifsicle')) { $skip_gifsicle_check = true; } if (get_site_option('ewww_image_optimizer_disable_pngout')) { $skip_pngout_check = true; } // we are going to store our validation results in $missing $missing = array(); // go through each of the required tools foreach ($required as $key => $req) { // if the tool wasn't found, add it to the $missing array if we are supposed to check the tool in question switch ($key) { case 'JPEGTRAN': if (!$skip_jpegtran_check && $req === false) { $missing[] = 'jpegtran'; } define('EWWW_IMAGE_OPTIMIZER_' . $key, $jpegtran_path); break; case 'OPTIPNG': if (!$skip_optipng_check && $req === false) { $missing[] = 'optipng'; } define('EWWW_IMAGE_OPTIMIZER_' . $key, $optipng_path); break; case 'GIFSICLE': if (!$skip_gifsicle_check && $req === false) { $missing[] = 'gifsicle'; } define('EWWW_IMAGE_OPTIMIZER_' . $key, $gifsicle_path); break; case 'PNGOUT': if (!$skip_pngout_check && $req === false) { $missing[] = 'pngout'; } define('EWWW_IMAGE_OPTIMIZER_' . $key, $pngout_path); break; } } // expand the missing utilities list for use in the error message $msg = implode(', ', $missing); // if there is a message, display the warning if (!empty($msg)) { echo "<div id='ewww-image-optimizer-warning-opt-png' class='updated'><p><strong>EWWW Image Optimizer requires <a href='http://jpegclub.org/jpegtran/'>jpegtran</a>, <a href='http://optipng.sourceforge.net/'>optipng</a> or <a href='http://advsys.net/ken/utils.htm'>pngout</a>, and <a href='http://www.lcdf.org/gifsicle/'>gifsicle</a>.</strong> You are missing: {$msg}. Please install via the <a href='options-general.php?page=ewww-image-optimizer/ewww-image-optimizer.php'>Settings Page</a>. If the one-click install links don't work for you, try the <a href='http://wordpress.org/extend/plugins/ewww-image-optimizer/installation/'>Installation Instructions</a>.</p></div>"; } // Check if exec is disabled $disabled = ini_get('disable_functions'); if (preg_match('/[^_]exec/', $disabled)) { //display a warning if exec() is disabled, can't run much of anything without it echo "<div id='ewww-image-optimizer-warning-opt-png' class='error'><p><strong>EWWW Image Optimizer requires exec().</strong> Your system administrator has disabled this function.</p></div>"; } }
function ewww_image_optimizer_tool_init($admin = true) { // make sure the bundled tools are installed if (!ewww_image_optimizer_get_option('ewww_image_optimizer_skip_bundle')) { ewww_image_optimizer_install_tools(); } if ($admin) { //then we run the function to check for optimization utilities add_action('network_admin_notices', 'ewww_image_optimizer_notice_utils'); add_action('admin_notices', 'ewww_image_optimizer_notice_utils'); } else { ewww_image_optimizer_notice_utils(); } }