From 07c972f5d71f7aa56d6623774e977ea7958a906e Mon Sep 17 00:00:00 2001 From: Nathaniel Guse Date: Thu, 2 May 2013 15:39:26 -0500 Subject: [PATCH] [ticket/11413] Remove changes for ticket 11420 from this branch PHPBB3-11413 --- .../db/migration/data/310/notifications.php | 64 ++++++++++ tests/notification/convert_test.php | 110 ------------------ tests/notification/fixtures/convert.xml | 52 --------- 3 files changed, 64 insertions(+), 162 deletions(-) delete mode 100644 tests/notification/convert_test.php delete mode 100644 tests/notification/fixtures/convert.xml diff --git a/phpBB/includes/db/migration/data/310/notifications.php b/phpBB/includes/db/migration/data/310/notifications.php index 17c939d95a..82bfd4cb2d 100644 --- a/phpBB/includes/db/migration/data/310/notifications.php +++ b/phpBB/includes/db/migration/data/310/notifications.php @@ -91,6 +91,70 @@ class phpbb_db_migration_data_310_notifications extends phpbb_db_migration ), )), array('config.add', array('load_notifications', 1)), + array('custom', array(array($this, 'convert_notifications'))), ); } + + public function convert_notifications() + { + $convert_notifications = array( + array( + 'check' => ($this->config['allow_topic_notify']), + 'item_type' => 'post', + ), + array( + 'check' => ($this->config['allow_forum_notify']), + 'item_type' => 'topic', + ), + array( + 'check' => ($this->config['allow_bookmarks']), + 'item_type' => 'bookmark', + ), + array( + 'check' => ($this->config['allow_privmsg']), + 'item_type' => 'pm', + ), + ); + + foreach ($convert_notifications as $convert_data) + { + if ($convert_data['check']) + { + $sql = 'SELECT user_id, user_notify_type + FROM ' . USERS_TABLE . ' + WHERE user_notify = 1'; + $result = $this->db->sql_query($sql); + while ($row = $this->db->sql_fetchrow($result)) + { + $this->sql_query('INSERT INTO ' . $this->table_prefix . 'user_notifications ' . $this->db->sql_build_array('INSERT', array( + 'item_type' => $convert_data['item_type'], + 'item_id' => 0, + 'user_id' => $row['user_id'], + 'method' => '', + ))); + + if ($row['user_notify_type'] == NOTIFY_EMAIL || $row['user_notify_type'] == NOTIFY_BOTH) + { + $this->sql_query('INSERT INTO ' . $this->table_prefix . 'user_notifications ' . $this->db->sql_build_array('INSERT', array( + 'item_type' => $convert_data['item_type'], + 'item_id' => 0, + 'user_id' => $row['user_id'], + 'method' => 'email', + ))); + } + + if ($row['user_notify_type'] == NOTIFY_IM || $row['user_notify_type'] == NOTIFY_BOTH) + { + $this->sql_query('INSERT INTO ' . $this->table_prefix . 'user_notifications ' . $this->db->sql_build_array('INSERT', array( + 'item_type' => $convert_data['item_type'], + 'item_id' => 0, + 'user_id' => $row['user_id'], + 'method' => 'jabber', + ))); + } + } + $this->db->sql_freeresult($result); + } + } + } } diff --git a/tests/notification/convert_test.php b/tests/notification/convert_test.php deleted file mode 100644 index ba586b681d..0000000000 --- a/tests/notification/convert_test.php +++ /dev/null @@ -1,110 +0,0 @@ -createXMLDataSet(dirname(__FILE__) . '/fixtures/convert.xml'); - } - - protected function setUp() - { - parent::setUp(); - - global $phpbb_root_path, $phpEx; - - $this->db = $this->new_dbal(); - - $this->migration = new phpbb_db_migration_data_310_notifications2( - new phpbb_config(array()), - $this->db, - new phpbb_db_tools($this->db), - $phpbb_root_path, - $phpEx, - 'phpbb_' - ); - } - - public function test_convert() - { - $buffer = new phpbb_mock_sql_insert_buffer($this->db, 'phpbb_user_notifications'); - $this->migration->perform_conversion($buffer, 'phpbb_user_notifications'); - - $expected = array_merge( - $this->create_expected('post', 1, 'email'), - $this->create_expected('topic', 1, 'email'), - - $this->create_expected('post', 2, 'email'), - $this->create_expected('topic', 2, 'email'), - $this->create_expected('pm', 2, 'email'), - - $this->create_expected('post', 3, 'jabber'), - $this->create_expected('topic', 3, 'jabber'), - - $this->create_expected('post', 4, 'jabber'), - $this->create_expected('topic', 4, 'jabber'), - $this->create_expected('pm', 4, 'jabber'), - - $this->create_expected('post', 5, 'both'), - $this->create_expected('topic', 5, 'both'), - - $this->create_expected('post', 6, 'both'), - $this->create_expected('topic', 6, 'both'), - $this->create_expected('pm', 6, 'both') - ); - - $this->assertEquals($expected, $buffer->get_buffer()); - } - - protected function create_expected($type, $user_id, $method = '') - { - $return = array(); - - if ($method != '') - { - $return[] = array( - 'item_type' => $type, - 'item_id' => 0, - 'user_id' => $user_id, - 'method' => '', - 'notify' => 1, - ); - } - - if ($method == 'email' || $method == 'both') - { - $return[] = array( - 'item_type' => $type, - 'item_id' => 0, - 'user_id' => $user_id, - 'method' => 'email', - 'notify' => 1, - ); - } - - if ($method == 'jabber' || $method == 'both') - { - $return[] = array( - 'item_type' => $type, - 'item_id' => 0, - 'user_id' => $user_id, - 'method' => 'jabber', - 'notify' => 1, - ); - } - - return $return; - } -} diff --git a/tests/notification/fixtures/convert.xml b/tests/notification/fixtures/convert.xml deleted file mode 100644 index a244070a95..0000000000 --- a/tests/notification/fixtures/convert.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - user_id - username - username_clean - user_notify_type - user_notify_pm - - 1 - 1 - 1 - 0 - 0 - - - 2 - 2 - 2 - 0 - 1 - - - 3 - 3 - 3 - 1 - 0 - - - 4 - 4 - 4 - 1 - 1 - - - 5 - 5 - 5 - 2 - 0 - - - 6 - 6 - 6 - 2 - 1 - -
-