From 8a1b7a4e5fcafac9b769f9182804e378d59ad3ff Mon Sep 17 00:00:00 2001 From: patdenice Date: Sat, 24 Apr 2010 22:22:32 +0000 Subject: Add triggers for image and thumbnail resizing. git-svn-id: http://piwigo.org/svn/trunk@5957 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/include/functions_upload.inc.php | 18 +++++++++++++++--- admin/thumbnail.php | 20 ++++++++++++++++++-- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/admin/include/functions_upload.inc.php b/admin/include/functions_upload.inc.php index 39259ad34..fa8944d70 100644 --- a/admin/include/functions_upload.inc.php +++ b/admin/include/functions_upload.inc.php @@ -17,6 +17,10 @@ include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); // // 4) register in database +// add default event handler for image and thumbnail resize +add_event_handler('upload_image_resize', 'pwg_image_resize', EVENT_HANDLER_PRIORITY_NEUTRAL, 6); +add_event_handler('upload_thumbnail_resize', 'pwg_image_resize', EVENT_HANDLER_PRIORITY_NEUTRAL, 6); + function add_uploaded_file($source_filepath, $original_filename=null, $categories=null, $level=null) { global $conf; @@ -60,7 +64,8 @@ function add_uploaded_file($source_filepath, $original_filename=null, $categorie rename($file_path, $high_path); $high_infos = pwg_image_infos($high_path); - pwg_image_resize( + trigger_event('upload_image_resize', + false, $high_path, $file_path, $conf['upload_form_websize_maxwidth'], @@ -75,7 +80,8 @@ function add_uploaded_file($source_filepath, $original_filename=null, $categorie $thumb_dir = dirname($thumb_path); prepare_directory($thumb_dir); - pwg_image_resize( + trigger_event('upload_thumbnail_resize', + false, $file_path, $thumb_path, $conf['upload_form_thumb_maxwidth'], @@ -169,8 +175,14 @@ function need_resize($image_filepath, $max_width, $max_height) return false; } -function pwg_image_resize($source_filepath, $destination_filepath, $max_width, $max_height, $quality) +function pwg_image_resize($result, $source_filepath, $destination_filepath, $max_width, $max_height, $quality) { + if ($result !== false) + { + //someone hooked us - so we skip + return $result; + } + if (!function_exists('gd_info')) { return false; diff --git a/admin/thumbnail.php b/admin/thumbnail.php index b945fc7c2..06e14bd2a 100644 --- a/admin/thumbnail.php +++ b/admin/thumbnail.php @@ -32,10 +32,16 @@ check_status(ACCESS_ADMINISTRATOR); // RatioResizeImg creates a new picture (a thumbnail since it is supposed to // be smaller than original picture !) in the sub directory named // "thumbnail". -function RatioResizeImg($path, $newWidth, $newHeight, $tn_ext) +function RatioResizeImg($info, $path, $newWidth, $newHeight, $tn_ext) { global $conf, $lang, $page; + if ($info !== false) + { + //someone hooked us - so we skip + return $info; + } + if (!function_exists('gd_info')) { return; @@ -157,6 +163,9 @@ if (!function_exists('gd_info')) array_push($page['errors'], l10n('GD library is missing')); } +// add default event handler for thumbnail resize +add_event_handler('thumbnail_resize', 'RatioResizeImg', EVENT_HANDLER_PRIORITY_NEUTRAL, 5); + // +-----------------------------------------------------------------------+ // | template initialization | // +-----------------------------------------------------------------------+ @@ -251,7 +260,14 @@ if (isset($_POST['submit'])) } $starttime = get_moment(); - if ($info = RatioResizeImg($path,$_POST['width'],$_POST['height'],'jpg')) + if ($info = trigger_event('thumbnail_resize', + false, + $path, + $_POST['width'], + $_POST['height'], + 'jpg' + ) + ) { $endtime = get_moment(); $info['time'] = ($endtime - $starttime) * 1000; -- cgit v1.2.3