diff options
author | patdenice <patdenice@piwigo.org> | 2010-04-24 22:22:32 +0000 |
---|---|---|
committer | patdenice <patdenice@piwigo.org> | 2010-04-24 22:22:32 +0000 |
commit | 8a1b7a4e5fcafac9b769f9182804e378d59ad3ff (patch) | |
tree | cf1f6bffe2718633408fae3ba899f504b61d8a36 /admin | |
parent | 9ffeaaf2c8d913b41cfcf1ce96a475b53d4c045a (diff) |
Add triggers for image and thumbnail resizing.
git-svn-id: http://piwigo.org/svn/trunk@5957 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to '')
-rw-r--r-- | admin/include/functions_upload.inc.php | 18 | ||||
-rw-r--r-- | 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; |