aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpatdenice <patdenice@piwigo.org>2010-04-24 22:22:32 +0000
committerpatdenice <patdenice@piwigo.org>2010-04-24 22:22:32 +0000
commit8a1b7a4e5fcafac9b769f9182804e378d59ad3ff (patch)
treecf1f6bffe2718633408fae3ba899f504b61d8a36
parent9ffeaaf2c8d913b41cfcf1ce96a475b53d4c045a (diff)
Add triggers for image and thumbnail resizing.
git-svn-id: http://piwigo.org/svn/trunk@5957 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r--admin/include/functions_upload.inc.php18
-rw-r--r--admin/thumbnail.php20
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;