aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/db
diff options
context:
space:
mode:
authorRubén Calvo <rubencm@gmail.com>2018-06-07 14:56:08 +0200
committerMarc Alexander <admin@m-a-styles.de>2019-05-09 18:54:49 +0200
commit35fef8333ad1adf510ce7f414bdccc70849ae059 (patch)
tree9bd415be28d21e60c2adaaad129a7a948aeda848 /phpBB/phpbb/db
parent65b0698ef703cef92723cc5f5adb08989179a47d (diff)
downloadforums-35fef8333ad1adf510ce7f414bdccc70849ae059.tar
forums-35fef8333ad1adf510ce7f414bdccc70849ae059.tar.gz
forums-35fef8333ad1adf510ce7f414bdccc70849ae059.tar.bz2
forums-35fef8333ad1adf510ce7f414bdccc70849ae059.tar.xz
forums-35fef8333ad1adf510ce7f414bdccc70849ae059.zip
[ticket/15663] Add migration
PHPBB3-15663
Diffstat (limited to 'phpBB/phpbb/db')
-rw-r--r--phpBB/phpbb/db/migration/data/v330/remove_attachment_flash.php87
1 files changed, 87 insertions, 0 deletions
diff --git a/phpBB/phpbb/db/migration/data/v330/remove_attachment_flash.php b/phpBB/phpbb/db/migration/data/v330/remove_attachment_flash.php
new file mode 100644
index 0000000000..2150b5c1c9
--- /dev/null
+++ b/phpBB/phpbb/db/migration/data/v330/remove_attachment_flash.php
@@ -0,0 +1,87 @@
+<?php
+/**
+*
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @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\v330;
+
+
+class remove_attachment_flash extends \phpbb\db\migration\migration
+{
+ // Following constants were deprecated in 3.3
+ // and moved from constants.php to compatibility_globals.php,
+ // thus define them as class constants
+ const ATTACHMENT_CATEGORY_FLASH = 5;
+
+ protected $cat_id = array(
+ self::ATTACHMENT_CATEGORY_FLASH,
+ );
+
+ public function update_data()
+ {
+ return array(
+ array('custom', array(array($this, 'remove_flash_group'))),
+ );
+ }
+
+ public function remove_flash_group()
+ {
+ // select group ids of outdated media
+ $sql = 'SELECT group_id
+ FROM ' . EXTENSION_GROUPS_TABLE . '
+ WHERE ' . $this->db->sql_in_set('cat_id', $this->cat_id);
+ $result = $this->db->sql_query($sql);
+
+ $group_ids = array();
+ while ($group_id = (int) $this->db->sql_fetchfield('group_id'))
+ {
+ $group_ids[] = $group_id;
+ }
+ $this->db->sql_freeresult($result);
+
+ // nothing to do, admin has removed all the outdated media extension groups
+ if (empty($group_ids))
+ {
+ return true;
+ }
+
+ // get the group id of downloadable files
+ $sql = 'SELECT group_id
+ FROM ' . EXTENSION_GROUPS_TABLE . "
+ WHERE group_name = 'DOWNLOADABLE_FILES'";
+ $result = $this->db->sql_query($sql);
+ $download_id = (int) $this->db->sql_fetchfield('group_id');
+ $this->db->sql_freeresult($result);
+
+ if (empty($download_id))
+ {
+ $sql = 'UPDATE ' . EXTENSIONS_TABLE . '
+ SET group_id = 0
+ WHERE ' . $this->db->sql_in_set('group_id', $group_ids);
+ }
+ else
+ {
+ // move outdated media extensions to downloadable files
+ $sql = 'UPDATE ' . EXTENSIONS_TABLE . "
+ SET group_id = $download_id" . '
+ WHERE ' . $this->db->sql_in_set('group_id', $group_ids);
+ }
+
+ $result = $this->db->sql_query($sql);
+ $this->db->sql_freeresult($result);
+
+ // delete the now empty, outdated media extension groups
+ $sql = 'DELETE FROM ' . EXTENSION_GROUPS_TABLE . '
+ WHERE ' . $this->db->sql_in_set('group_id', $group_ids);
+ $result = $this->db->sql_query($sql);
+ $this->db->sql_freeresult($result);
+ }
+}