1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-27 08:14:46 +02:00

Issue #2869 Media-Manager: Auto-convert to jpeg option added.

This commit is contained in:
Cameron
2017-11-16 20:17:07 -08:00
parent a6ede510a9
commit c10d350d8b
4 changed files with 183 additions and 17 deletions

View File

@@ -132,9 +132,11 @@ class media_admin extends e_admin_dispatcher
'main/list' => array('caption'=> LAN_IMA_M_01, 'perm' => 'A'),
// 'main/create' => array('caption'=> "Add New Media", 'perm' => 'A'), // Should be handled in Media-Import.
'main/import' => array('caption'=> LAN_IMA_M_02, 'perm' => 'A|A1'),
'divider/01' => array('divider'=>true),
'cat/list' => array('caption'=> LAN_IMA_M_03, 'perm' => 'A|A2'),
'cat/create' => array('caption'=> LAN_IMA_M_04, 'perm' => 'A|A2'), // is automatic.
// 'main/settings' => array('caption'=> LAN_PREFS, 'perm' => 'A'), // legacy
'divider/02' => array('divider'=>true),
'main/prefs' => array('caption'=> LAN_PREFS, 'perm' => 'A'),
'main/avatar' => array('caption'=> LAN_IMA_M_05, 'perm' => 'A')
);
@@ -361,7 +363,7 @@ class media_form_ui extends e_admin_form_ui
asort($this->cats);*/
// require(e_HANDLER.'phpthumb/ThumbLib.inc.php'); // For resizing on import.
if(varset($_POST['multiselect']) && varset($_POST['e__execute_batch']) && (varset($_POST['etrigger_batch']) == 'options__rotate_cw' || varset($_POST['etrigger_batch']) == 'options__rotate_ccw'))
if(!empty($_POST['multiselect']) && varset($_POST['e__execute_batch']) && (varset($_POST['etrigger_batch']) == 'options__rotate_cw' || varset($_POST['etrigger_batch']) == 'options__rotate_ccw'))
{
$type = str_replace('options__','',$_POST['etrigger_batch']);
$ids = implode(",", e107::getParser()->filter($_POST['multiselect'],'int'));
@@ -371,14 +373,26 @@ class media_form_ui extends e_admin_form_ui
}
if(varset($_POST['multiselect']) && varset($_POST['e__execute_batch']) && (varset($_POST['etrigger_batch']) == 'options__resize_2048' ))
if(!empty($_POST['multiselect']) && varset($_POST['e__execute_batch']) && (varset($_POST['etrigger_batch']) == 'options__resize_2048' ))
{
$type = str_replace('options__','',$_POST['etrigger_batch']);
$ids = implode(",", e107::getParser()->filter($_POST['multiselect'],'int'));
$this->resizeImages($ids,$type);
}
if(!empty($_POST['multiselect']) && varset($_POST['e__execute_batch']) && (varset($_POST['etrigger_batch']) == 'options__convert_to_jpeg' ))
{
// $type = str_replace('options__','',$_POST['etrigger_batch']);
$ids = implode(",", e107::getParser()->filter($_POST['multiselect'],'int'));
$this->convertImagesToJpeg($ids);
}
if(!empty($_POST['multiselect']) && varset($_POST['e__execute_batch']) && (varset($_POST['etrigger_batch']) == 'options__convert_all_to_jpeg' ))
{
// $type = str_replace('options__','',$_POST['etrigger_batch']);
$ids = implode(",", e107::getParser()->filter($_POST['multiselect'],'int'));
$this->convertImagesToJpeg($ids,'all');
}
}
@@ -523,6 +537,55 @@ class media_form_ui extends e_admin_form_ui
}
private function convertImagesToJpeg($ids,$mode=null)
{
$sql = e107::getDb();
$tp = e107::getParser();
$mm = e107::getMedia();
$insert = empty($mode) ? "media_id IN (".$ids.") AND " : " media_size > 225000 AND ";
$data = $sql->retrieve("core_media","media_id,media_url", $insert."(media_type = 'image/png' OR media_type = 'image/gif') ", true, true);
if(empty($data))
{
return null;
}
foreach($data as $row)
{
$path = $tp->replaceConstants($row['media_url']);
if($jpegFile = $mm->convertImageToJpeg($path,true))
{
$url = $tp->createConstants($jpegFile);
$size = filesize($jpegFile);
$update = array (
'media_size' => $size,
'media_url' => $url,
'media_type' => 'image/jpeg',
'WHERE' => 'media_id = '.$row['media_id']
);
$message = basename($path).SEP.basename($url);
if($sql->update("core_media",$update))
{
e107::getMessage()->addSuccess($message);
}
else
{
e107::getMessage()->addError($message);
}
}
}
}
@@ -579,16 +642,24 @@ class media_form_ui extends e_admin_form_ui
//return print_a($_GET,true);
if($value == 'batch')
{
return array(
"resize_2048" => "Reduce Oversized Images",
"rotate_cw" => "Rotate 90° cw",
"rotate_ccw" => "Rotate 90° ccw"
);
$arr = array(
"resize_2048" => "Reduce Oversized Images",
"rotate_cw" => "Rotate 90° cw",
"rotate_ccw" => "Rotate 90° ccw",
'convert_to_jpeg' => "Convert to jpeg format"
);
if(deftrue('e_DEBUG'))
{
$arr['convert_all_to_jpeg'] = "Convert All Oversized to jpeg format"; // rare situations.
}
return $arr;
}
if($_GET['action'] == 'edit')
{
return;
return null;
}
$tagid = vartrue($_GET['tagid']);
@@ -808,10 +879,13 @@ class media_admin_ui extends e_admin_ui
'image_post_class' => array('title'=> IMALAN_10, 'type' => 'userclass', 'data'=>'int', 'writeParms'=>'help=IMALAN_11&classlist=public,guest,nobody,member,admin,main,classes' ),
'image_post_disabled_method' => array('title'=> IMALAN_12, 'type' => 'boolean','writeParms'=>'enabled=IMALAN_15&disabled=IMALAN_14'),
'resize_method' => array('title'=> IMALAN_3, 'type'=>'method', 'data'=>'str'),
'thumbnail_quality' => array('title'=> IMALAN_73, 'type'=>'number', 'data'=>'int', 'writeParms'=>'help=IMALAN_74'),
'im_width' => array('title'=> IMALAN_75, 'type'=>'number', 'data'=>'int', 'writeParms'=>'help=IMALAN_76'),
'im_height' => array('title'=> IMALAN_77, 'type'=>'number', 'data'=>'int', 'writeParms'=>'help=IMALAN_76'),
'thumbnail_quality' => array('title'=> IMALAN_73, 'type'=>'number', 'data'=>'int', 'writeParms'=>'', 'help'=>IMALAN_74),
// 'convert_to_jpeg' => array('title'=> IMALAN_182, 'type'=>'number', 'data'=>'int', 'writeParms'=> array('tdClassRight'=>'form-inline', 'post'=> CORE_LAN_KB), 'help'=>IMALAN_183),
'convert_to_jpeg' => array('title'=> IMALAN_182, 'type'=>'boolean', 'data'=>'int', 'writeParms'=>'', 'help'=>IMALAN_183),
'im_width' => array('title'=> IMALAN_75, 'type'=>'number', 'data'=>'int', 'writeParms'=>'', 'help'=>IMALAN_76),
'im_height' => array('title'=> IMALAN_77, 'type'=>'number', 'data'=>'int', 'writeParms'=>'', 'help'=>IMALAN_76),
'resize_dimensions' => array('title'=> IMALAN_79, 'type'=>'method', 'data'=>'str'),
'watermark_activate' => array('title'=> IMALAN_80, 'tab'=>1, 'type' => 'number', 'data' => 'str', 'help'=>IMALAN_81), // 'validate' => 'regex', 'rule' => '#^[\d]+$#i', 'help' => 'allowed characters are a-zA-Z and underscore')),