diff options
author | Tristan Darricau <github@nicofuma.fr> | 2014-08-16 21:06:10 +0200 |
---|---|---|
committer | Tristan Darricau <github@nicofuma.fr> | 2014-08-16 21:46:03 +0200 |
commit | fe8096753566f4beb708e9070d8789eebdd1e70b (patch) | |
tree | cc1eb23e00a105adb4dac1089bcc86f43d4c5030 /phpBB/phpbb/db/migration | |
parent | e9f5b9d657b92f6d53d76c28ba4de64722700e7e (diff) | |
download | forums-fe8096753566f4beb708e9070d8789eebdd1e70b.tar forums-fe8096753566f4beb708e9070d8789eebdd1e70b.tar.gz forums-fe8096753566f4beb708e9070d8789eebdd1e70b.tar.bz2 forums-fe8096753566f4beb708e9070d8789eebdd1e70b.tar.xz forums-fe8096753566f4beb708e9070d8789eebdd1e70b.zip |
[ticket/12990] Use the full services name for the notification's types
PHPBB3-12990
Diffstat (limited to 'phpBB/phpbb/db/migration')
-rw-r--r-- | phpBB/phpbb/db/migration/data/v310/notifications_use_full_name.php | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/phpBB/phpbb/db/migration/data/v310/notifications_use_full_name.php b/phpBB/phpbb/db/migration/data/v310/notifications_use_full_name.php new file mode 100644 index 0000000000..5ae91e4044 --- /dev/null +++ b/phpBB/phpbb/db/migration/data/v310/notifications_use_full_name.php @@ -0,0 +1,117 @@ +<?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\v310; + +class notifications_use_full_name extends \phpbb\db\migration\migration +{ + private $notification_types = array( + 'admin_activate_user', + 'approve_post', + 'approve_topic', + 'bookmark', + 'disapprove_post', + 'disapprove_topic', + 'group_request', + 'group_request_approved', + 'pm', + 'post', + 'post_in_queue', + 'quote', + 'report_pm', + 'report_pm_closed', + 'report_post', + 'report_post_closed', + 'topic', + 'topic_in_queue'); + + private $notification_methods = array( + 'email', + 'jabber', + ); + + static public function depends_on() + { + return array('\phpbb\db\migration\data\v310\rc3'); + } + + public function update_data() + { + return array( + array('custom', array(array($this, 'update_notifications_name'))), + array('custom', array(array($this, 'update_notifications_method_name'))), + ); + } + + public function revert_data() + { + return array( + array('custom', array(array($this, 'revert_notifications_name'))), + array('custom', array(array($this, 'revert_notifications_method_name'))), + ); + } + + public function update_notifications_method_name() + { + foreach ($this->notification_methods as $notification_method) + { + $sql = 'UPDATE ' . USER_NOTIFICATIONS_TABLE . " + SET method = 'notification.method.${notification_method}' + WHERE method = '${notification_method}'"; + $this->db->sql_query($sql); + } + } + + public function revert_notifications_method_name() + { + foreach ($this->notification_methods as $notification_method) + { + $sql = 'UPDATE ' . USER_NOTIFICATIONS_TABLE . " + SET method = '${notification_method}' + WHERE method = 'notification.method.${notification_method}'"; + $this->db->sql_query($sql); + } + } + + public function update_notifications_name() + { + foreach ($this->notification_types as $notification_type) + { + $sql = 'UPDATE ' . NOTIFICATION_TYPES_TABLE . " + SET notification_type_name = 'notification.type.${notification_type}' + WHERE notification_type_name = '${notification_type}'"; + $this->db->sql_query($sql); + + $sql = 'UPDATE ' . USER_NOTIFICATIONS_TABLE . " + SET item_type = 'notification.type.${notification_type}' + WHERE item_type = '${notification_type}'"; + $this->db->sql_query($sql); + } + } + + public function revert_notifications_name() + { + foreach ($this->notification_types as $notification_type) + { + $sql = 'UPDATE ' . NOTIFICATION_TYPES_TABLE . " + SET notification_type_name = '${notification_type}' + WHERE notification_type_name = 'notification.type.${notification_type}'"; + $this->db->sql_query($sql); + + $sql = 'UPDATE ' . USER_NOTIFICATIONS_TABLE . " + SET item_type = '${notification_type}' + WHERE item_type = 'notification.type.${notification_type}'"; + $this->db->sql_query($sql); + } + } +} |