Example #1
0
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;
 }
Example #4
0
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;
}
Example #5
0
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;
}