function ewww_image_optimizer_auto() { global $ewww_debug; $ewww_debug .= "<b>ewww_image_optimizer_auto()</b><br>"; require_once EWWW_IMAGE_OPTIMIZER_PLUGIN_PATH . 'bulk.php'; require_once EWWW_IMAGE_OPTIMIZER_PLUGIN_PATH . 'aux-optimize.php'; if (ewww_image_optimizer_get_option('ewww_image_optimizer_auto') == TRUE) { $ewww_debug .= "running scheduled optimization<br>"; update_option('ewww_image_optimizer_aux_resume', ''); update_option('ewww_image_optimizer_aux_attachments', ''); ewww_image_optimizer_aux_images_script('ewww-image-optimizer-auto'); ewww_image_optimizer_aux_images_initialize(true); $delay = ewww_image_optimizer_get_option('ewww_image_optimizer_delay'); $attachments = get_option('ewww_image_optimizer_aux_attachments'); if (!empty($attachments)) { foreach ($attachments as $attachment) { if (!get_option('ewww_image_optimizer_aux_resume')) { // ewww_image_optimizer_debug_log(); return; } ewww_image_optimizer_aux_images_loop($attachment, true); if (!empty($delay)) { sleep($delay); } ewww_image_optimizer_debug_log(); } } ewww_image_optimizer_aux_images_cleanup(true); } ewwwio_memory(__FUNCTION__); return; }
protected function _save($image, $filename = null, $mime_type = null) { global $ewww_debug; if (!defined('EWWW_IMAGE_OPTIMIZER_DOMAIN')) { require_once plugin_dir_path(__FILE__) . 'ewww-image-optimizer.php'; } if (!defined('EWWW_IMAGE_OPTIMIZER_JPEGTRAN')) { ewww_image_optimizer_init(); } list($filename, $extension, $mime_type) = $this->get_output_format($filename, $mime_type); if (!$filename) { $filename = $this->generate_filename(null, null, $extension); } try { // Store initial Format $orig_format = $this->image->getimageformat(); $this->image->setimageformat(strtoupper($this->get_extension($mime_type))); $this->make_image($filename, array($image, 'writeImage'), array($filename)); // Reset original Format $this->image->setimageformat($orig_format); } catch (Exception $e) { return new WP_Error('image_save_error', $e->getMessage(), $filename); } // Set correct file permissions $stat = stat(dirname($filename)); $perms = $stat['mode'] & 0666; //same permissions as parent folder, strip off the executable bits @chmod($filename, $perms); ewww_image_optimizer_aux_images_loop($filename, true); $ewww_debug = "{$ewww_debug} image editor (gmagick) saved : {$filename} <br>"; $image_size = filesize($filename); $ewww_debug = "{$ewww_debug} image editor size: {$image_size} <br>"; ewww_image_optimizer_debug_log(); $ewww_debug = ''; return array('path' => $filename, 'file' => wp_basename(apply_filters('image_make_intermediate_size', $filename)), 'width' => $this->size['width'], 'height' => $this->size['height'], 'mime-type' => $mime_type); }
function generate_image_size($image, $size, $params = null, $skip_defaults = false) { global $ewww_debug; if (!defined('EWWW_IMAGE_OPTIMIZER_CLOUD')) { ewww_image_optimizer_init(); } $success = $this->call_parent('generate_image_size', $image, $size, $params, $skip_defaults); if ($success) { //$filename = $this->object->get_image_abspath($image, $size); $filename = $success->fileName; ewww_image_optimizer_aux_images_loop($filename, true); $ewww_debug .= "nextgen dynamic thumb saved: {$filename} <br>"; $image_size = filesize($filename); $ewww_debug .= "optimized size: {$image_size} <br>"; } ewww_image_optimizer_debug_log(); ewwwio_memory(__FUNCTION__); return $success; }
function ewww_image_optimizer_auto() { ewwwio_debug_message('<b>' . __FUNCTION__ . '()</b>'); global $ewww_defer; $ewww_defer = false; require_once EWWW_IMAGE_OPTIMIZER_PLUGIN_PATH . 'bulk.php'; require_once EWWW_IMAGE_OPTIMIZER_PLUGIN_PATH . 'aux-optimize.php'; if (ewww_image_optimizer_get_option('ewww_image_optimizer_auto') == TRUE) { ewwwio_debug_message('running scheduled optimization'); ewww_image_optimizer_aux_images_script('ewww-image-optimizer-auto'); ewww_image_optimizer_aux_images_initialize(true); // generate our own nonce value, wp_create_nonce() will return the same value for 12-24 hours $nonce = wp_hash(time() . '|' . 'ewww-image-optimizer-auto'); update_option('ewww_image_optimizer_aux_resume', $nonce); $delay = ewww_image_optimizer_get_option('ewww_image_optimizer_delay'); $attachments = get_option('ewww_image_optimizer_aux_attachments'); if (!empty($attachments)) { global $wpdb; $query = "SELECT path,image_size FROM {$wpdb->ewwwio_images}"; $already_optimized = $wpdb->get_results($query, ARRAY_A); foreach ($attachments as $attachment) { // if the nonce has changed since we started, bail out, since that means another aux scan/optimize is running // we do a query using $wpdb, because get_option() is cached $current_nonce = $wpdb->get_var("SELECT option_value FROM {$wpdb->options} WHERE option_name = 'ewww_image_optimizer_aux_resume'"); if ($nonce !== $current_nonce) { ewwwio_debug_message('detected another optimization, nonce changed, bailing'); ewww_image_optimizer_debug_log(); return; } else { ewwwio_debug_message("{$nonce} is fine, compared to {$current_nonce}"); } ewww_image_optimizer_aux_images_loop($attachment, true); if (!empty($delay)) { sleep($delay); } ewww_image_optimizer_debug_log(); } } ewww_image_optimizer_aux_images_cleanup(true); } ewwwio_memory(__FUNCTION__); return; }
function ewww_image_optimizer_auto() { ewwwio_debug_message('<b>' . __FUNCTION__ . '()</b>'); global $ewww_defer; $ewww_defer = false; require_once EWWW_IMAGE_OPTIMIZER_PLUGIN_PATH . 'bulk.php'; require_once EWWW_IMAGE_OPTIMIZER_PLUGIN_PATH . 'aux-optimize.php'; if (ewww_image_optimizer_get_option('ewww_image_optimizer_auto') == TRUE) { ewwwio_debug_message('running scheduled optimization'); // update_option('ewww_image_optimizer_aux_resume', ''); // update_option('ewww_image_optimizer_aux_attachments', ''); ewww_image_optimizer_aux_images_script('ewww-image-optimizer-auto'); ewww_image_optimizer_aux_images_initialize(true); $nonce = wp_create_nonce('ewww-image-optimizer-auto'); update_option('ewww_image_optimizer_aux_resume', $nonce); $delay = ewww_image_optimizer_get_option('ewww_image_optimizer_delay'); $attachments = get_option('ewww_image_optimizer_aux_attachments'); if (!empty($attachments)) { global $wpdb; $query = "SELECT path,image_size FROM {$wpdb->ewwwio_images}"; $already_optimized = $wpdb->get_results($query, ARRAY_A); foreach ($attachments as $attachment) { if ($nonce !== get_option('ewww_image_optimizer_aux_resume')) { // ewww_image_optimizer_debug_log(); return; } foreach ($already_optimized as $optimized) { if ($optimized['path'] === $attachment) { $image_size = filesize($attachment); //$image_size = $file->getSize(); if ($optimized['image_size'] == $image_size) { ewwwio_debug_message("match found for {$attachment}"); $skip_optimized = true; continue 2; } else { ewwwio_debug_message("mismatch found for {$attachment}, db says " . $optimized['image_size'] . " vs. current {$image_size}"); } } } ewww_image_optimizer_aux_images_loop($attachment, true); if (!empty($delay)) { sleep($delay); } ewww_image_optimizer_debug_log(); } } ewww_image_optimizer_aux_images_cleanup(true); } ewwwio_memory(__FUNCTION__); return; }