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); + } + } + } +}