aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB
diff options
context:
space:
mode:
authorMarc Alexander <admin@m-a-styles.de>2014-01-09 23:53:19 +0100
committerMarc Alexander <admin@m-a-styles.de>2014-06-23 21:37:47 +0200
commit94a81fa01d0106f6deba6cbb9000f4c8bbbf607a (patch)
tree0c33b9e5252b4c4f3d24b1aea49d4443db2ff44c /phpBB
parent9bc6e641bfbe53c3920662ee8e24a723ac34e6a1 (diff)
downloadforums-94a81fa01d0106f6deba6cbb9000f4c8bbbf607a.tar
forums-94a81fa01d0106f6deba6cbb9000f4c8bbbf607a.tar.gz
forums-94a81fa01d0106f6deba6cbb9000f4c8bbbf607a.tar.bz2
forums-94a81fa01d0106f6deba6cbb9000f4c8bbbf607a.tar.xz
forums-94a81fa01d0106f6deba6cbb9000f4c8bbbf607a.zip
[ticket/11148] Pass mimetype guesser to upload_attachment() function
PHPBB3-11148
Diffstat (limited to 'phpBB')
-rw-r--r--phpBB/includes/functions_posting.php5
-rw-r--r--phpBB/includes/message_parser.php21
-rw-r--r--phpBB/posting.php2
3 files changed, 25 insertions, 3 deletions
diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php
index 23fdd809e2..f9be0f10f6 100644
--- a/phpBB/includes/functions_posting.php
+++ b/phpBB/includes/functions_posting.php
@@ -398,11 +398,12 @@ function posting_gen_topic_types($forum_id, $cur_topic_type = POST_NORMAL)
* @param string $local_storage The path to the local file
* @param bool $is_message Whether it is a PM or not
* @param \filespec $local_filedata A filespec object created for the local file
+* @param \phpbb\mimetype\guesser $mimetype_guesser The mimetype guesser object if used
* @param \phpbb\plupload\plupload $plupload The plupload object if one is being used
*
* @return object filespec
*/
-function upload_attachment($form_name, $forum_id, $local = false, $local_storage = '', $is_message = false, $local_filedata = false, \phpbb\plupload\plupload $plupload = null)
+function upload_attachment($form_name, $forum_id, $local = false, $local_storage = '', $is_message = false, $local_filedata = false, \phpbb\mimetype\guesser $mimetype_guesser = null, \phpbb\plupload\plupload $plupload = null)
{
global $auth, $user, $config, $db, $cache;
global $phpbb_root_path, $phpEx;
@@ -434,7 +435,7 @@ function upload_attachment($form_name, $forum_id, $local = false, $local_storage
$extensions = $cache->obtain_attach_extensions((($is_message) ? false : (int) $forum_id));
$upload->set_allowed_extensions(array_keys($extensions['_allowed_']));
- $file = ($local) ? $upload->local_upload($local_storage, $local_filedata) : $upload->form_upload($form_name, $plupload);
+ $file = ($local) ? $upload->local_upload($local_storage, $local_filedata, $mimetype_guesser) : $upload->form_upload($form_name, $mimetype_guesser, $plupload);
if ($file->init_error)
{
diff --git a/phpBB/includes/message_parser.php b/phpBB/includes/message_parser.php
index 8d926ec70a..19571d6bd3 100644
--- a/phpBB/includes/message_parser.php
+++ b/phpBB/includes/message_parser.php
@@ -1083,6 +1083,12 @@ class parse_message extends bbcode_firstpass
protected $plupload;
/**
+ * The mimetype guesser object used for attachment mimetypes
+ * @var \phpbb\mimetype\guesser
+ */
+ protected $mimetype_guesser;
+
+ /**
* Init - give message here or manually
*/
function parse_message($message = '')
@@ -1560,7 +1566,7 @@ class parse_message extends bbcode_firstpass
{
if ($num_attachments < $cfg['max_attachments'] || $auth->acl_gets('m_', 'a_', $forum_id))
{
- $filedata = upload_attachment($form_name, $forum_id, false, '', $is_message, false, $this->plupload);
+ $filedata = upload_attachment($form_name, $forum_id, false, '', $is_message, false, $this->mimetype_guesser, $this->plupload);
$error = array_merge($error, $filedata['error']);
if (!sizeof($error))
@@ -1792,4 +1798,17 @@ class parse_message extends bbcode_firstpass
{
$this->plupload = $plupload;
}
+
+ /**
+ * Setter function for passing the mimetype_guesser object
+ *
+ * @param \phpbb\mimetype\guesser $mimetype_guesser The mimetype_guesser
+ * object
+ *
+ * @return null
+ */
+ public function set_mimetype_guesser(\phpbb\mimetype\guesser $mimetype_guesser)
+ {
+ $this->mimetype_guesser = $mimetype_guesser;
+ }
}
diff --git a/phpBB/posting.php b/phpBB/posting.php
index 1b8fa6debf..0e912330e0 100644
--- a/phpBB/posting.php
+++ b/phpBB/posting.php
@@ -523,7 +523,9 @@ $orig_poll_options_size = sizeof($post_data['poll_options']);
$message_parser = new parse_message();
$plupload = $phpbb_container->get('plupload');
+$mimetype_guesser = $phpbb_container->get('mimetype.guesser');
$message_parser->set_plupload($plupload);
+$message_parser->set_mimetype_guesser($mimetype_guesser);
if (isset($post_data['post_text']))
{