aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/functions_posting.php
diff options
context:
space:
mode:
authorMarc Alexander <admin@m-a-styles.de>2018-11-10 17:04:00 +0100
committerMarc Alexander <admin@m-a-styles.de>2018-11-10 17:04:00 +0100
commit0dfbb60bc322ccda7a6e670a5f5ec9ab2f536eac (patch)
tree03a2df99a9f37139f5d530b68a7b125eacd281b6 /phpBB/includes/functions_posting.php
parent65226168ee2841dbe7f6934b16ff38f0a27ac09b (diff)
parentc0a26e3d57e69fb1dc436379b4e3609bc10f9194 (diff)
downloadforums-0dfbb60bc322ccda7a6e670a5f5ec9ab2f536eac.tar
forums-0dfbb60bc322ccda7a6e670a5f5ec9ab2f536eac.tar.gz
forums-0dfbb60bc322ccda7a6e670a5f5ec9ab2f536eac.tar.bz2
forums-0dfbb60bc322ccda7a6e670a5f5ec9ab2f536eac.tar.xz
forums-0dfbb60bc322ccda7a6e670a5f5ec9ab2f536eac.zip
Merge pull request #42 from phpbb/ticket/security/227
[ticket/security/227] Replace ImageMagick support with thumbnail event
Diffstat (limited to 'phpBB/includes/functions_posting.php')
-rw-r--r--phpBB/includes/functions_posting.php42
1 files changed, 24 insertions, 18 deletions
diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php
index 1e8f1ad00d..c7d691287c 100644
--- a/phpBB/includes/functions_posting.php
+++ b/phpBB/includes/functions_posting.php
@@ -519,7 +519,7 @@ function get_supported_image_types($type = false)
*/
function create_thumbnail($source, $destination, $mimetype)
{
- global $config, $phpbb_filesystem;
+ global $config, $phpbb_filesystem, $phpbb_dispatcher;
$min_filesize = (int) $config['img_min_thumb_filesize'];
$img_filesize = (file_exists($source)) ? @filesize($source) : false;
@@ -551,25 +551,31 @@ function create_thumbnail($source, $destination, $mimetype)
return false;
}
- $used_imagick = false;
+ $thumbnail_created = false;
- // Only use ImageMagick if defined and the passthru function not disabled
- if ($config['img_imagick'] && function_exists('passthru'))
- {
- if (substr($config['img_imagick'], -1) !== '/')
- {
- $config['img_imagick'] .= '/';
- }
-
- @passthru(escapeshellcmd($config['img_imagick']) . 'convert' . ((defined('PHP_OS') && preg_match('#^win#i', PHP_OS)) ? '.exe' : '') . ' -quality 85 -geometry ' . $new_width . 'x' . $new_height . ' "' . str_replace('\\', '/', $source) . '" "' . str_replace('\\', '/', $destination) . '"');
-
- if (file_exists($destination))
- {
- $used_imagick = true;
- }
- }
+ /**
+ * Create thumbnail event to replace GD thumbnail creation with for example ImageMagick
+ *
+ * @event core.thumbnail_create_before
+ * @var string source Image source path
+ * @var string destination Thumbnail destination path
+ * @var string mimetype Image mime type
+ * @var float new_width Calculated thumbnail width
+ * @var float new_height Calculated thumbnail height
+ * @var bool thumbnail_created Set to true to skip default GD thumbnail creation
+ * @since 3.2.4
+ */
+ $vars = array(
+ 'source',
+ 'destination',
+ 'mimetype',
+ 'new_width',
+ 'new_height',
+ 'thumbnail_created',
+ );
+ extract($phpbb_dispatcher->trigger_event('core.thumbnail_create_before', compact($vars)));
- if (!$used_imagick)
+ if (!$thumbnail_created)
{
$type = get_supported_image_types($type);