From 8fab32abd7ccd992382da799183ff694bf2e551b Mon Sep 17 00:00:00 2001 From: hubaishan Date: Thu, 15 Nov 2018 13:02:34 +0300 Subject: [PATCH 01/15] [ticket/14771] Support playing audio attachments Add Audio attachments category, Audio attachments group. add most audio supported extensions to the audio group. presserve audio extensions MIMEtypes. modify the attachment style file to view the audio attachment in AUDIO HTML5 tag. PHPBB3-14771 --- phpBB/includes/acp/acp_attachments.php | 1 + phpBB/includes/constants.php | 1 + phpBB/includes/functions_content.php | 14 ++++++++++++++ phpBB/install/schemas/schema_data.sql | 8 ++++++-- phpBB/language/en/acp/attachments.php | 2 ++ phpBB/phpbb/mimetype/extension_guesser.php | 8 +++++++- phpBB/phpbb/storage/controller/attachment.php | 2 +- phpBB/styles/prosilver/template/attachment.html | 13 +++++++++++++ 8 files changed, 45 insertions(+), 4 deletions(-) diff --git a/phpBB/includes/acp/acp_attachments.php b/phpBB/includes/acp/acp_attachments.php index 92363b0ff9..f5b0b357e1 100644 --- a/phpBB/includes/acp/acp_attachments.php +++ b/phpBB/includes/acp/acp_attachments.php @@ -1410,6 +1410,7 @@ class acp_attachments $types = array( ATTACHMENT_CATEGORY_NONE => $user->lang['NO_FILE_CAT'], ATTACHMENT_CATEGORY_IMAGE => $user->lang['CAT_IMAGES'], + ATTACHMENT_CATEGORY_AUDIO => $user->lang['CAT_AUDIO_FILES'], ); if ($group_id) diff --git a/phpBB/includes/constants.php b/phpBB/includes/constants.php index be6916442b..a3aa519295 100644 --- a/phpBB/includes/constants.php +++ b/phpBB/includes/constants.php @@ -161,6 +161,7 @@ define('CONFIRM_REPORT', 4); define('ATTACHMENT_CATEGORY_NONE', 0); define('ATTACHMENT_CATEGORY_IMAGE', 1); // Inline Images define('ATTACHMENT_CATEGORY_THUMB', 4); // Not used within the database, only while displaying posts +define('ATTACHMENT_CATEGORY_AUDIO', 7); // Browser-playable audio files // BBCode UID length define('BBCODE_UID_LEN', 8); diff --git a/phpBB/includes/functions_content.php b/phpBB/includes/functions_content.php index e6dde54737..cdc51d8a9e 100644 --- a/phpBB/includes/functions_content.php +++ b/phpBB/includes/functions_content.php @@ -1228,6 +1228,7 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count_a $block_array += array( 'UPLOAD_ICON' => $upload_icon, 'FILESIZE' => $filesize['value'], + 'MIMETYPE' => $attachment['mimetype'], 'SIZE_LANG' => $filesize['unit'], 'DOWNLOAD_NAME' => utf8_basename($attachment['real_filename']), 'COMMENT' => $comment, @@ -1315,6 +1316,19 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count_a $update_count_ary[] = $attachment['attach_id']; break; + // Audio files + case ATTACHMENT_CATEGORY_AUDIO: + $inline_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'id=' . $attachment['attach_id']); + $block_array += array( + 'S_AUDIO_FILE' => true, + 'U_FORUM' => generate_board_url(), + 'ATTACH_ID' => $attachment['attach_id'], + ); + + // Heard File ... update the download count + $update_count_ary[] = $attachment['attach_id']; + break; + default: $l_downloaded_viewed = 'DOWNLOAD_COUNTS'; diff --git a/phpBB/install/schemas/schema_data.sql b/phpBB/install/schemas/schema_data.sql index e8294f0a8f..428ad031ba 100644 --- a/phpBB/install/schemas/schema_data.sql +++ b/phpBB/install/schemas/schema_data.sql @@ -783,6 +783,7 @@ INSERT INTO phpbb_extension_groups (group_name, cat_id, allow_group, upload_icon INSERT INTO phpbb_extension_groups (group_name, cat_id, allow_group, upload_icon, max_filesize, allowed_forums) VALUES ('PLAIN_TEXT', 0, 0, '', 0, ''); INSERT INTO phpbb_extension_groups (group_name, cat_id, allow_group, upload_icon, max_filesize, allowed_forums) VALUES ('DOCUMENTS', 0, 0, '', 0, ''); INSERT INTO phpbb_extension_groups (group_name, cat_id, allow_group, upload_icon, max_filesize, allowed_forums) VALUES ('DOWNLOADABLE_FILES', 0, 0, '', 0, ''); +INSERT INTO phpbb_extension_groups (group_name, cat_id, allow_group, upload_icon, max_filesize, allowed_forums) VALUES ('AUDIO_FILES', 7, 0, '', 0, ''); # -- extensions INSERT INTO phpbb_extensions (group_id, extension) VALUES (1, 'gif'); @@ -838,12 +839,15 @@ INSERT INTO phpbb_extensions (group_id, extension) VALUES (4, 'ods'); INSERT INTO phpbb_extensions (group_id, extension) VALUES (4, 'odt'); INSERT INTO phpbb_extensions (group_id, extension) VALUES (4, 'rtf'); -INSERT INTO phpbb_extensions (group_id, extension) VALUES (5, 'mp3'); INSERT INTO phpbb_extensions (group_id, extension) VALUES (5, 'mpeg'); INSERT INTO phpbb_extensions (group_id, extension) VALUES (5, 'mpg'); -INSERT INTO phpbb_extensions (group_id, extension) VALUES (5, 'ogg'); INSERT INTO phpbb_extensions (group_id, extension) VALUES (5, 'ogm'); +INSERT INTO phpbb_extensions (group_id, extension) VALUES (6, 'mp3'); +INSERT INTO phpbb_extensions (group_id, extension) VALUES (6, 'wav'); +INSERT INTO phpbb_extensions (group_id, extension) VALUES (6, 'm4a'); +INSERT INTO phpbb_extensions (group_id, extension) VALUES (6, 'ogg'); + # Add default profile fields INSERT INTO phpbb_profile_fields (field_name, field_type, field_ident, field_length, field_minlen, field_maxlen, field_novalue, field_default_value, field_validation, field_required, field_show_novalue, field_show_on_reg, field_show_on_pm, field_show_on_vt, field_show_on_ml, field_show_profile, field_hide, field_no_view, field_active, field_order, field_is_contact, field_contact_desc, field_contact_url) VALUES ('phpbb_location', 'profilefields.type.string', 'phpbb_location', '20', '2', '100', '', '', '.*', 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, '', ''); INSERT INTO phpbb_profile_fields (field_name, field_type, field_ident, field_length, field_minlen, field_maxlen, field_novalue, field_default_value, field_validation, field_required, field_show_novalue, field_show_on_reg, field_show_on_pm, field_show_on_vt, field_show_on_ml, field_show_profile, field_hide, field_no_view, field_active, field_order, field_is_contact, field_contact_desc, field_contact_url) VALUES ('phpbb_website', 'profilefields.type.url', 'phpbb_website', '40', '12', '255', '', '', '', 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 2, 1, 'VISIT_WEBSITE', '%s'); diff --git a/phpBB/language/en/acp/attachments.php b/phpBB/language/en/acp/attachments.php index 5e0332462a..4139f4f8b6 100644 --- a/phpBB/language/en/acp/attachments.php +++ b/phpBB/language/en/acp/attachments.php @@ -68,6 +68,7 @@ $lang = array_merge($lang, array( 'ATTACH_QUOTA_EXPLAIN' => 'Maximum drive space available for attachments for the whole board, with 0 being unlimited.', 'ATTACH_TO_POST' => 'Attach file to post', + 'CAT_AUDIO_FILES' => 'Audio files', 'CAT_IMAGES' => 'Images', 'CHECK_CONTENT' => 'Check attachment files', 'CHECK_CONTENT_EXPLAIN' => 'Some browsers can be tricked to assume an incorrect mimetype for uploaded files. This option ensures that such files likely to cause this are rejected.', @@ -100,6 +101,7 @@ $lang = array_merge($lang, array( 'EXT_GROUP_DOWNLOADABLE_FILES' => 'Downloadable Files', 'EXT_GROUP_IMAGES' => 'Images', 'EXT_GROUP_PLAIN_TEXT' => 'Plain Text', + 'EXT_GROUP_AUDIO_FILES' => 'Audio Files', 'FILES_GONE' => 'Some of the attachments you selected for deletion do not exist. They may have been already deleted. Attachments that did exist were deleted.', 'FILES_STATS_WRONG' => 'Your file statistics are likely inaccurate and need to be resynchronised. Actual values: number of attachments = %1$d, total size of attachments = %2$s.
Click %3$shere%4$s to resynchronise them.', diff --git a/phpBB/phpbb/mimetype/extension_guesser.php b/phpBB/phpbb/mimetype/extension_guesser.php index bbccf904d4..36553656e6 100644 --- a/phpBB/phpbb/mimetype/extension_guesser.php +++ b/phpBB/phpbb/mimetype/extension_guesser.php @@ -196,6 +196,8 @@ class extension_guesser extends guesser_base 'm2a' => 'audio/mpeg', 'm2v' => 'video/mpeg', 'm3u' => 'audio/x-mpequrl', + 'm4a' => 'audio/mp4', + 'm4v' => 'video/mp4', 'man' => 'application/x-troff-man', 'map' => 'application/x-navimap', 'mar' => 'text/plain', @@ -220,7 +222,8 @@ class extension_guesser extends guesser_base 'mov' => 'video/quicktime', 'movie' => 'video/x-sgi-movie', 'mp2' => 'audio/x-mpeg', - 'mp3' => 'audio/x-mpeg-3', + 'mp3' => 'audio/mpeg', + 'mp4' => 'video/mp4', 'mpa' => 'audio/mpeg', 'mpc' => 'application/x-project', 'mpe' => 'video/mpeg', @@ -248,6 +251,9 @@ class extension_guesser extends guesser_base 'o' => 'application/octet-stream', 'oda' => 'application/oda', 'omc' => 'application/x-omc', + 'oga' => 'audio/ogg', + 'ogg' => 'audio/ogg', + 'ogm' => 'video/ogg', 'omcd' => 'application/x-omcdatamaker', 'omcr' => 'application/x-omcregerator', 'p' => 'text/x-pascal', diff --git a/phpBB/phpbb/storage/controller/attachment.php b/phpBB/phpbb/storage/controller/attachment.php index c37644d973..7c3d355ad8 100644 --- a/phpBB/phpbb/storage/controller/attachment.php +++ b/phpBB/phpbb/storage/controller/attachment.php @@ -254,7 +254,7 @@ class attachment extends controller $response->headers->set('Content-Type', $attachment['mimetype']); // Display images in browser and force download for other file types - if (strpos($attachment['mimetype'], 'image') !== false) + if (strpos($attachment['mimetype'], 'image') !== false || strpos($attachment['mimetype'], 'audio') !== false) { $disposition = $response->headers->makeDisposition( ResponseHeaderBag::DISPOSITION_INLINE, diff --git a/phpBB/styles/prosilver/template/attachment.html b/phpBB/styles/prosilver/template/attachment.html index 45b9dc2145..7cff5f76c8 100644 --- a/phpBB/styles/prosilver/template/attachment.html +++ b/phpBB/styles/prosilver/template/attachment.html @@ -29,6 +29,19 @@ + +
+
{_file.UPLOAD_ICON} {_file.DOWNLOAD_NAME}
+
{_file.COMMENT}
+
{_file.DOWNLOAD_NAME} ({_file.FILESIZE} {_file.SIZE_LANG}) {_file.L_DOWNLOAD_COUNT}
+
+ +
+
+ + From a4852c175261b0074d39b8a3c0e3f5525884051d Mon Sep 17 00:00:00 2001 From: hubaishan Date: Thu, 15 Nov 2018 16:12:25 +0300 Subject: [PATCH 02/15] [ticket/14771] Fix tab and language to array fix tab in phpBB/includes/functions_download.php add language value to array in phpBB/includes/acp/acp_attachments.php PHPBB3-14771 --- phpBB/includes/acp/acp_attachments.php | 1 + 1 file changed, 1 insertion(+) diff --git a/phpBB/includes/acp/acp_attachments.php b/phpBB/includes/acp/acp_attachments.php index f5b0b357e1..56376ad0ae 100644 --- a/phpBB/includes/acp/acp_attachments.php +++ b/phpBB/includes/acp/acp_attachments.php @@ -636,6 +636,7 @@ class acp_attachments $cat_lang = array( ATTACHMENT_CATEGORY_NONE => $user->lang['NO_FILE_CAT'], ATTACHMENT_CATEGORY_IMAGE => $user->lang['CAT_IMAGES'], + ATTACHMENT_CATEGORY_AUDIO => $user->lang['CAT_AUDIO_FILES'], ); $group_id = $request->variable('g', 0); From a50de57dc414753cb6ab06dcc6eb290d0844d500 Mon Sep 17 00:00:00 2001 From: hubaishan Date: Fri, 16 Nov 2018 17:21:28 +0300 Subject: [PATCH 03/15] [ticket/14771] Fix direct property access Fix direct property access for language PHPBB3-14771 --- phpBB/includes/acp/acp_attachments.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/phpBB/includes/acp/acp_attachments.php b/phpBB/includes/acp/acp_attachments.php index 56376ad0ae..37a2ac807a 100644 --- a/phpBB/includes/acp/acp_attachments.php +++ b/phpBB/includes/acp/acp_attachments.php @@ -636,7 +636,7 @@ class acp_attachments $cat_lang = array( ATTACHMENT_CATEGORY_NONE => $user->lang['NO_FILE_CAT'], ATTACHMENT_CATEGORY_IMAGE => $user->lang['CAT_IMAGES'], - ATTACHMENT_CATEGORY_AUDIO => $user->lang['CAT_AUDIO_FILES'], + ATTACHMENT_CATEGORY_AUDIO => $user->lang('CAT_AUDIO_FILES'), ); $group_id = $request->variable('g', 0); @@ -1411,7 +1411,7 @@ class acp_attachments $types = array( ATTACHMENT_CATEGORY_NONE => $user->lang['NO_FILE_CAT'], ATTACHMENT_CATEGORY_IMAGE => $user->lang['CAT_IMAGES'], - ATTACHMENT_CATEGORY_AUDIO => $user->lang['CAT_AUDIO_FILES'], + ATTACHMENT_CATEGORY_AUDIO => $user->lang('CAT_AUDIO_FILES'), ); if ($group_id) From 77f46656d271bab6a8e86375bfd6a72dc2aa8692 Mon Sep 17 00:00:00 2001 From: Saeed Hubaishan Date: Wed, 17 Jun 2020 22:14:09 +0300 Subject: [PATCH 04/15] [ticket/14771] Add webm file extension to schema PHPBB3-14771 --- phpBB/install/schemas/schema_data.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/phpBB/install/schemas/schema_data.sql b/phpBB/install/schemas/schema_data.sql index 428ad031ba..0672c81876 100644 --- a/phpBB/install/schemas/schema_data.sql +++ b/phpBB/install/schemas/schema_data.sql @@ -847,6 +847,7 @@ INSERT INTO phpbb_extensions (group_id, extension) VALUES (6, 'mp3'); INSERT INTO phpbb_extensions (group_id, extension) VALUES (6, 'wav'); INSERT INTO phpbb_extensions (group_id, extension) VALUES (6, 'm4a'); INSERT INTO phpbb_extensions (group_id, extension) VALUES (6, 'ogg'); +INSERT INTO phpbb_extensions (group_id, extension) VALUES (6, 'webm'); # Add default profile fields INSERT INTO phpbb_profile_fields (field_name, field_type, field_ident, field_length, field_minlen, field_maxlen, field_novalue, field_default_value, field_validation, field_required, field_show_novalue, field_show_on_reg, field_show_on_pm, field_show_on_vt, field_show_on_ml, field_show_profile, field_hide, field_no_view, field_active, field_order, field_is_contact, field_contact_desc, field_contact_url) VALUES ('phpbb_location', 'profilefields.type.string', 'phpbb_location', '20', '2', '100', '', '', '.*', 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, '', ''); From 4bacbdd2a32abc8ee1c0b5a552eaf64e7d01bd3c Mon Sep 17 00:00:00 2001 From: Saeed Hubaishan Date: Wed, 17 Jun 2020 22:21:12 +0300 Subject: [PATCH 05/15] [ticket/14771] add webm mime type PHPBB3-14771 --- phpBB/phpbb/mimetype/extension_guesser.php | 1 + 1 file changed, 1 insertion(+) diff --git a/phpBB/phpbb/mimetype/extension_guesser.php b/phpBB/phpbb/mimetype/extension_guesser.php index 36553656e6..19de618df6 100644 --- a/phpBB/phpbb/mimetype/extension_guesser.php +++ b/phpBB/phpbb/mimetype/extension_guesser.php @@ -425,6 +425,7 @@ class extension_guesser extends guesser_base 'wb1' => 'application/x-qpro', 'wbmp' => 'image/vnd.wap.wbmp', 'web' => 'application/vnd.xara', + 'webm' => 'audio/webm', 'wiz' => 'application/msword', 'wk1' => 'application/x-123', 'wmf' => 'windows/metafile', From 298edde4b193e32225783044e481451f934de5ea Mon Sep 17 00:00:00 2001 From: hubaishan Date: Tue, 23 Jun 2020 13:12:15 +0300 Subject: [PATCH 06/15] [ticket/14771] Use twig syntax and short array PHPBB3-14771 --- phpBB/includes/functions_content.php | 4 ++-- phpBB/styles/prosilver/template/attachment.html | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/phpBB/includes/functions_content.php b/phpBB/includes/functions_content.php index cdc51d8a9e..dfcd2460db 100644 --- a/phpBB/includes/functions_content.php +++ b/phpBB/includes/functions_content.php @@ -1319,11 +1319,11 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count_a // Audio files case ATTACHMENT_CATEGORY_AUDIO: $inline_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'id=' . $attachment['attach_id']); - $block_array += array( + $block_array += [ 'S_AUDIO_FILE' => true, 'U_FORUM' => generate_board_url(), 'ATTACH_ID' => $attachment['attach_id'], - ); + ]; // Heard File ... update the download count $update_count_ary[] = $attachment['attach_id']; diff --git a/phpBB/styles/prosilver/template/attachment.html b/phpBB/styles/prosilver/template/attachment.html index 7cff5f76c8..6c1ed01da9 100644 --- a/phpBB/styles/prosilver/template/attachment.html +++ b/phpBB/styles/prosilver/template/attachment.html @@ -29,18 +29,18 @@ - + {% if _file.S_AUDIO_FILE %}
-
{_file.UPLOAD_ICON} {_file.DOWNLOAD_NAME}
-
{_file.COMMENT}
-
{_file.DOWNLOAD_NAME} ({_file.FILESIZE} {_file.SIZE_LANG}) {_file.L_DOWNLOAD_COUNT}
+
{% if _file.UPLOAD_ICON %}{{ _file.UPLOAD_ICON }} {% endif %}{{ _file.DOWNLOAD_NAME }}
+ {% if _file.COMMENT %}
{{ _file.COMMENT }}
{% endif %} +
{{ _file.DOWNLOAD_NAME }} ({{ _file.FILESIZE }} {{ _file.SIZE_LANG }}) {{ _file.L_DOWNLOAD_COUNT }}
- + {% endif %} From b2291e4e3c255d5984876b50cecb96bb58f760c5 Mon Sep 17 00:00:00 2001 From: hubaishan Date: Wed, 24 Jun 2020 11:26:18 +0300 Subject: [PATCH 07/15] [ticket/14771] Add audio_files migration add or modify audio_files attachment group add or modify audio extensions mp3, m4a, wav, ogg, webm PHPBB3-14771 --- .../v400/add_audio_files_attachment_group.php | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 phpBB/phpbb/db/migration/data/v400/add_audio_files_attachment_group.php diff --git a/phpBB/phpbb/db/migration/data/v400/add_audio_files_attachment_group.php b/phpBB/phpbb/db/migration/data/v400/add_audio_files_attachment_group.php new file mode 100644 index 0000000000..6fe61f94e6 --- /dev/null +++ b/phpBB/phpbb/db/migration/data/v400/add_audio_files_attachment_group.php @@ -0,0 +1,86 @@ + + * @license GNU General Public License, version 2 (GPL-2.0) + * + * For full copyright and license information, please see + * the docs/CREDITS.txt file. + * + */ + +namespace phpbb\db\migration\data\v400; + +class add_audio_files_attachment_group extends \phpbb\db\migration\migration +{ + static public function depends_on() + { + return ['\phpbb\db\migration\data\v400\dev']; + } + + public function update_data() + { + return [ + ['custom', [[$this, 'add_audio_files_attachment_group']]], + ]; + } + + public function add_audio_files_attachment_group() + { + $sql = 'SELECT group_id + FROM ' . $this->table_prefix . 'extension_groups + WHERE ' . $this->db->sql_build_array('SELECT', ['group_name' => 'AUDIO_FILES']); + $result = $this->db->sql_query($sql); + $audio_group_id = $this->db->sql_fetchfield('group_id'); + $this->db->sql_freeresult($result); + + if ($audio_group_id === false) + { + $sql = 'INSERT INTO ' . $this->table_prefix . 'extension_groups ' . $this->db->sql_build_array('INSERT', [ + 'group_name' => 'AUDIO_FILES', + 'cat_id' => 7, + 'allow_group' => 0, + 'upload_icon' => '', + 'max_filesize' => 0, + 'allowed_forums' => '', + ]); + $this->db->sql_query($sql); + $audio_group_id = $this->db->sql_nextid(); + } + else + { + $sql = 'UPDATE ' . $this->table_prefix . 'extension_groups SET cat_id = 7 + WHERE ' . $this->db->sql_build_array('SELECT', ['group_id' => $audio_group_id]); + $this->db->sql_query($sql); + } + + $audio_extensions = ['mp3', 'wav', 'm4a', 'ogg', 'webm']; + + foreach($audio_extensions as $audio_extension) + { + $sql = 'SELECT group_id + FROM ' . $this->table_prefix . 'extensions + WHERE ' . $this->db->sql_build_array('SELECT', ['extension' => $audio_extension]); + $result = $this->db->sql_query($sql); + $extension_group_id = $this->db->sql_fetchfield('group_id'); + $this->db->sql_freeresult($result); + + if ($extension_group_id === false) + { + $sql = 'INSERT INTO ' . $this->table_prefix . 'extensions ' . $this->db->sql_build_array('INSERT', [ + 'group_id' => $audio_group_id, + 'extension' => $audio_extension, + ]); + $this->db->sql_query($sql); + } + else if ($extension_group_id != $audio_group_id) + { + $sql = 'UPDATE ' . $this->table_prefix . "extensions SET group_id = $audio_group_id + WHERE " . $this->db->sql_build_array('SELECT', ['extension' => $audio_extension]); + $this->db->sql_query($sql); + } + } + } +} From 11fb872e33b9d2fd3ff837a33f3f217a2b4e31a4 Mon Sep 17 00:00:00 2001 From: hubaishan Date: Wed, 24 Jun 2020 17:51:21 +0300 Subject: [PATCH 08/15] [ticket/14771] fix white space PHPBB3-14771 --- .../v400/add_audio_files_attachment_group.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/phpBB/phpbb/db/migration/data/v400/add_audio_files_attachment_group.php b/phpBB/phpbb/db/migration/data/v400/add_audio_files_attachment_group.php index 6fe61f94e6..0150f45117 100644 --- a/phpBB/phpbb/db/migration/data/v400/add_audio_files_attachment_group.php +++ b/phpBB/phpbb/db/migration/data/v400/add_audio_files_attachment_group.php @@ -23,13 +23,13 @@ class add_audio_files_attachment_group extends \phpbb\db\migration\migration public function update_data() { return [ - ['custom', [[$this, 'add_audio_files_attachment_group']]], + ['custom', [[$this, 'add_audio_files']]], ]; } - public function add_audio_files_attachment_group() + public function add_audio_files() { - $sql = 'SELECT group_id + $sql = 'SELECT group_id FROM ' . $this->table_prefix . 'extension_groups WHERE ' . $this->db->sql_build_array('SELECT', ['group_name' => 'AUDIO_FILES']); $result = $this->db->sql_query($sql); @@ -48,8 +48,8 @@ class add_audio_files_attachment_group extends \phpbb\db\migration\migration ]); $this->db->sql_query($sql); $audio_group_id = $this->db->sql_nextid(); - } - else + } + else { $sql = 'UPDATE ' . $this->table_prefix . 'extension_groups SET cat_id = 7 WHERE ' . $this->db->sql_build_array('SELECT', ['group_id' => $audio_group_id]); @@ -58,7 +58,7 @@ class add_audio_files_attachment_group extends \phpbb\db\migration\migration $audio_extensions = ['mp3', 'wav', 'm4a', 'ogg', 'webm']; - foreach($audio_extensions as $audio_extension) + foreach ($audio_extensions as $audio_extension) { $sql = 'SELECT group_id FROM ' . $this->table_prefix . 'extensions @@ -74,10 +74,10 @@ class add_audio_files_attachment_group extends \phpbb\db\migration\migration 'extension' => $audio_extension, ]); $this->db->sql_query($sql); - } + } else if ($extension_group_id != $audio_group_id) { - $sql = 'UPDATE ' . $this->table_prefix . "extensions SET group_id = $audio_group_id + $sql = 'UPDATE ' . $this->table_prefix . "extensions SET group_id = $audio_group_id WHERE " . $this->db->sql_build_array('SELECT', ['extension' => $audio_extension]); $this->db->sql_query($sql); } From cf6d6d3445be1af2a40e16f8d24633910f33690f Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Thu, 1 Jul 2021 20:52:55 +0200 Subject: [PATCH 09/15] [ticket/14771] Add CSS class for audio controls PHPBB3-14771 --- phpBB/styles/prosilver/template/attachment.html | 2 +- phpBB/styles/prosilver/theme/content.css | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/phpBB/styles/prosilver/template/attachment.html b/phpBB/styles/prosilver/template/attachment.html index 6c1ed01da9..58c82cb7ea 100644 --- a/phpBB/styles/prosilver/template/attachment.html +++ b/phpBB/styles/prosilver/template/attachment.html @@ -35,7 +35,7 @@ {% if _file.COMMENT %}
{{ _file.COMMENT }}
{% endif %}
{{ _file.DOWNLOAD_NAME }} ({{ _file.FILESIZE }} {{ _file.SIZE_LANG }}) {{ _file.L_DOWNLOAD_COUNT }}
-
diff --git a/phpBB/styles/prosilver/theme/content.css b/phpBB/styles/prosilver/theme/content.css index 338016ac2c..1313e6b604 100644 --- a/phpBB/styles/prosilver/theme/content.css +++ b/phpBB/styles/prosilver/theme/content.css @@ -682,6 +682,10 @@ dl.thumbnail dt a:hover img { border: 1px solid transparent; } +audio.file-audio-controls { + max-width: 100%; +} + /* Post poll styles ---------------------------------------- */ fieldset.polls { From a72ce76fadf71d55eb58fa37ff538d495adf244e Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Thu, 1 Jul 2021 20:53:20 +0200 Subject: [PATCH 10/15] [ticket/14771] Set preload to metadata to display length of audio PHPBB3-14771 --- phpBB/styles/prosilver/template/attachment.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpBB/styles/prosilver/template/attachment.html b/phpBB/styles/prosilver/template/attachment.html index 58c82cb7ea..e7c47cc6b6 100644 --- a/phpBB/styles/prosilver/template/attachment.html +++ b/phpBB/styles/prosilver/template/attachment.html @@ -35,7 +35,7 @@ {% if _file.COMMENT %}
{{ _file.COMMENT }}
{% endif %}
{{ _file.DOWNLOAD_NAME }} ({{ _file.FILESIZE }} {{ _file.SIZE_LANG }}) {{ _file.L_DOWNLOAD_COUNT }}
-
From 9201081461d4692cb72b448823b857d9fd110362 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Thu, 1 Jul 2021 21:05:25 +0200 Subject: [PATCH 11/15] [ticket/14771] Re-arrange audio controls and make it less cluttered PHPBB3-14771 --- phpBB/styles/prosilver/template/attachment.html | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/phpBB/styles/prosilver/template/attachment.html b/phpBB/styles/prosilver/template/attachment.html index e7c47cc6b6..0fc9972eb1 100644 --- a/phpBB/styles/prosilver/template/attachment.html +++ b/phpBB/styles/prosilver/template/attachment.html @@ -31,14 +31,9 @@ {% if _file.S_AUDIO_FILE %}
-
{% if _file.UPLOAD_ICON %}{{ _file.UPLOAD_ICON }} {% endif %}{{ _file.DOWNLOAD_NAME }}
+
{% if _file.COMMENT %}
{{ _file.COMMENT }}
{% endif %} -
{{ _file.DOWNLOAD_NAME }} ({{ _file.FILESIZE }} {{ _file.SIZE_LANG }}) {{ _file.L_DOWNLOAD_COUNT }}
-
- -
+
{% if _file.UPLOAD_ICON %}{{ _file.UPLOAD_ICON }} {% endif %}{{ _file.DOWNLOAD_NAME }} ({{ _file.FILESIZE }} {{ _file.SIZE_LANG }}) {{ _file.L_DOWNLOAD_COUNT }}
{% endif %} From 21759572c26a3431014355915762aa6b911190e4 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Thu, 1 Jul 2021 21:06:09 +0200 Subject: [PATCH 12/15] [ticket/14771] Remove not needed code from parse_attachments() PHPBB3-14771 --- phpBB/includes/functions_content.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/phpBB/includes/functions_content.php b/phpBB/includes/functions_content.php index dfcd2460db..9400b53181 100644 --- a/phpBB/includes/functions_content.php +++ b/phpBB/includes/functions_content.php @@ -1318,14 +1318,10 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count_a // Audio files case ATTACHMENT_CATEGORY_AUDIO: - $inline_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'id=' . $attachment['attach_id']); $block_array += [ 'S_AUDIO_FILE' => true, - 'U_FORUM' => generate_board_url(), - 'ATTACH_ID' => $attachment['attach_id'], ]; - // Heard File ... update the download count $update_count_ary[] = $attachment['attach_id']; break; From 9099bdb2ad4eedc0798d88da373e843e17972d05 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Thu, 1 Jul 2021 21:09:31 +0200 Subject: [PATCH 13/15] [ticket/14771] Make phing sniff happy PHPBB3-14771 --- .../db/migration/data/v400/add_audio_files_attachment_group.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpBB/phpbb/db/migration/data/v400/add_audio_files_attachment_group.php b/phpBB/phpbb/db/migration/data/v400/add_audio_files_attachment_group.php index 0150f45117..d6932e6a92 100644 --- a/phpBB/phpbb/db/migration/data/v400/add_audio_files_attachment_group.php +++ b/phpBB/phpbb/db/migration/data/v400/add_audio_files_attachment_group.php @@ -15,7 +15,7 @@ namespace phpbb\db\migration\data\v400; class add_audio_files_attachment_group extends \phpbb\db\migration\migration { - static public function depends_on() + public static function depends_on() { return ['\phpbb\db\migration\data\v400\dev']; } From 3c63116fe78f4455a60f50940ceb61f134ecad02 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Sun, 4 Jul 2021 21:21:53 +0200 Subject: [PATCH 14/15] [ticket/14771] Add classes and clean up audio attachment HTML PHPBB3-14771 --- .../styles/prosilver/template/attachment.html | 22 ++++++++++++++----- phpBB/styles/prosilver/theme/content.css | 6 ++++- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/phpBB/styles/prosilver/template/attachment.html b/phpBB/styles/prosilver/template/attachment.html index 0fc9972eb1..ceeea21d24 100644 --- a/phpBB/styles/prosilver/template/attachment.html +++ b/phpBB/styles/prosilver/template/attachment.html @@ -30,11 +30,23 @@ {% if _file.S_AUDIO_FILE %} -
-
- {% if _file.COMMENT %}
{{ _file.COMMENT }}
{% endif %} -
{% if _file.UPLOAD_ICON %}{{ _file.UPLOAD_ICON }} {% endif %}{{ _file.DOWNLOAD_NAME }} ({{ _file.FILESIZE }} {{ _file.SIZE_LANG }}) {{ _file.L_DOWNLOAD_COUNT }}
-
+
+
+ +
+ {% if _file.COMMENT %} +
{{ _file.COMMENT }}
+ {% endif %} +
+ {% if _file.UPLOAD_ICON %} + {{ _file.UPLOAD_ICON }} + {% endif %} + {{ _file.DOWNLOAD_NAME }} + ({{ _file.FILESIZE }} {{ _file.SIZE_LANG }}) {{ _file.L_DOWNLOAD_COUNT }} +
+
{% endif %} diff --git a/phpBB/styles/prosilver/theme/content.css b/phpBB/styles/prosilver/theme/content.css index 1313e6b604..5b795815a2 100644 --- a/phpBB/styles/prosilver/theme/content.css +++ b/phpBB/styles/prosilver/theme/content.css @@ -682,7 +682,11 @@ dl.thumbnail dt a:hover img { border: 1px solid transparent; } -audio.file-audio-controls { +.c-file-comment { + font-style: italic; +} + +.c-file-audio-controls { max-width: 100%; } From b55595fa876fae24b2ccff7253d5e029f049b4cb Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Tue, 13 Jul 2021 22:22:43 +0200 Subject: [PATCH 15/15] [ticket/14771] Use constants instead of magic numbers in migration PHPBB3-14771 --- .../migration/data/v400/add_audio_files_attachment_group.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/phpBB/phpbb/db/migration/data/v400/add_audio_files_attachment_group.php b/phpBB/phpbb/db/migration/data/v400/add_audio_files_attachment_group.php index d6932e6a92..97387720ab 100644 --- a/phpBB/phpbb/db/migration/data/v400/add_audio_files_attachment_group.php +++ b/phpBB/phpbb/db/migration/data/v400/add_audio_files_attachment_group.php @@ -40,7 +40,7 @@ class add_audio_files_attachment_group extends \phpbb\db\migration\migration { $sql = 'INSERT INTO ' . $this->table_prefix . 'extension_groups ' . $this->db->sql_build_array('INSERT', [ 'group_name' => 'AUDIO_FILES', - 'cat_id' => 7, + 'cat_id' => ATTACHMENT_CATEGORY_AUDIO, 'allow_group' => 0, 'upload_icon' => '', 'max_filesize' => 0, @@ -51,7 +51,7 @@ class add_audio_files_attachment_group extends \phpbb\db\migration\migration } else { - $sql = 'UPDATE ' . $this->table_prefix . 'extension_groups SET cat_id = 7 + $sql = 'UPDATE ' . $this->table_prefix . 'extension_groups SET cat_id = ' . ATTACHMENT_CATEGORY_AUDIO . ' WHERE ' . $this->db->sql_build_array('SELECT', ['group_id' => $audio_group_id]); $this->db->sql_query($sql); }