Saved: ' . size_format($size_diff) . ' ( ' . round($size_percent) . '% )
'; $html .= 'Size now: ' . size_format($stats['size_after'], 2) . '
'; $html .= count($stats['sizes']) . ' images reduced

'; $html .= ''; } else { $html = ''; } $html .= ''; return $html; } function abraia_media_javascript() { global $pagenow; if ($pagenow == 'upload.php') { ?> $path['basename']); $stats = array('size_before' => 0, 'size_after' => 0, 'sizes' => array()); foreach ($meta['sizes'] as $size => $values) { if (!$settings['thumbnails'] && ($size != 'original')) continue; $file = $values['file']; if (!empty($file)) { $stats['sizes'][$size] = array(); $image = path_join($path['dirname'], $file); $temp = path_join($path['dirname'], 'temp'); $size_before = filesize($image); $size_after = 0; if ($size_before > $min_size) { try { $abraia->fromFile($image)->resize($max_width, $max_height, 'thumb')->toFile($temp); $size_after = filesize($temp); if ($size_after < $size_before) rename($temp, $image); else unlink($temp); } catch (Exception $e) { // print_r($e->getCode() . $e->getMessage()); if ($e->getCode() === 402) { $stats = NULL; break; } } } if (!($size_after > 0 && $size_after < $size_before)) $size_after = $size_before; $stats['sizes'][$size]['size_before'] = $size_before; $stats['sizes'][$size]['size_after'] = $size_after; $stats['size_before'] += $size_before; $stats['size_after'] += $size_after; } } if (!is_null($stats)) update_post_meta($id, '_wpa_stats', $stats); } return $stats; } function abraia_restore_item() { if (check_ajax_referer('abraia-nonce', 'nonce')) { $id = intval($_POST['id']); $meta = wp_get_attachment_metadata($id); $stats = abraia_restore_image($id, $meta); echo json_encode($stats); wp_die(); } } function abraia_restore_image($id, $meta) { global $abraia; $stats = get_post_meta($id, '_wpa_stats', true); if ($stats) { $path = pathinfo(get_attached_file($id)); $meta['sizes']['original'] = array('file' => $path['basename']); foreach ($meta['sizes'] as $size => $values) { $sizes = $stats['sizes']; $file = $values['file']; if ($file && ($sizes[$size]['size_before'] > $sizes[$size]['size_after'])) { $image = path_join($path['dirname'], $file); try { $abraia->fromStore($file)->toFile($image); } catch (Exception $e) { // $stats = NULL; } } } delete_post_meta($id, '_wpa_stats'); } return NULL; //json_decode('{}'); } add_filter('wp_generate_attachment_metadata', 'abraia_upload_filter', 10, 2); function abraia_upload_filter($meta, $id) { $settings = get_abraia_settings(); if ($settings['upload']) abraia_compress_image($id, $meta); return $meta; }