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;
}