Version 2.0.0-RC3
This commit is contained in:
@@ -11,59 +11,60 @@
|
||||
|
||||
namespace dmzx\mchat\migrations;
|
||||
|
||||
class install_mchat extends \phpbb\db\migration\migration
|
||||
class mchat_2_0_0_rc3 extends \phpbb\db\migration\migration
|
||||
{
|
||||
public function effectively_installed()
|
||||
{
|
||||
return isset($this->config['mchat_version']) && version_compare($this->config['mchat_version'], '1.0.0-RC2', '>=');
|
||||
}
|
||||
/** @const string */
|
||||
const MCHAT_VERSION = '2.0.0-RC3';
|
||||
|
||||
/** @var array */
|
||||
protected $mchat_config = null;
|
||||
|
||||
static public function depends_on()
|
||||
{
|
||||
return array('\phpbb\db\migration\data\v31x\v311');
|
||||
return array('\phpbb\db\migration\data\v31x\v317pl1');
|
||||
}
|
||||
|
||||
public function effectively_installed()
|
||||
{
|
||||
return isset($this->config['mchat_version']) && version_compare($this->config['mchat_version'], self::MCHAT_VERSION, '>=');
|
||||
}
|
||||
|
||||
protected function get_config()
|
||||
{
|
||||
if ($this->mchat_config == null)
|
||||
{
|
||||
$yml_config_file = $this->phpbb_root_path . '/ext/dmzx/mchat/config/config_2_0_0.yml';
|
||||
$yml_data = \Symfony\Component\Yaml\Yaml::parse($yml_config_file);
|
||||
$this->mchat_config = $yml_data['parameters'];
|
||||
}
|
||||
|
||||
return $this->mchat_config;
|
||||
}
|
||||
|
||||
public function update_data()
|
||||
{
|
||||
return array(
|
||||
// Add configs
|
||||
array('config.add', array('mchat_version', '1.0.0-RC2')),
|
||||
array('config.add', array('mchat_archive_limit', 25)),
|
||||
array('config.add', array('mchat_avatars', 1)),
|
||||
array('config.add', array('mchat_bbcode_disallowed', '')),
|
||||
array('config.add', array('mchat_custom_height', 350)),
|
||||
array('config.add', array('mchat_custom_page', 1)),
|
||||
array('config.add', array('mchat_relative_time', 1)),
|
||||
array('config.add', array('mchat_date', 'D M d, Y g:i a')),
|
||||
array('config.add', array('mchat_edit_delete_limit', 0)),
|
||||
array('config.add', array('mchat_flood_time', 0)),
|
||||
array('config.add', array('mchat_index_height', 250)),
|
||||
array('config.add', array('mchat_live_updates', 1)),
|
||||
array('config.add', array('mchat_location', 0)),
|
||||
array('config.add', array('mchat_max_message_lngth', 500)),
|
||||
array('config.add', array('mchat_message_limit', 10)),
|
||||
array('config.add', array('mchat_message_num', 10)),
|
||||
array('config.add', array('mchat_navbar_link', 1)),
|
||||
array('config.add', array('mchat_message_top', 1)),
|
||||
array('config.add', array('mchat_new_posts_edit', 0)),
|
||||
array('config.add', array('mchat_new_posts_quote', 0)),
|
||||
array('config.add', array('mchat_new_posts_reply', 0)),
|
||||
array('config.add', array('mchat_new_posts_topic', 0)),
|
||||
array('config.add', array('mchat_on_index', 1)),
|
||||
array('config.add', array('mchat_override_min_post_chars', 0)),
|
||||
array('config.add', array('mchat_override_smilie_limit', 0)),
|
||||
array('config.add', array('mchat_pause_on_input', 0)),
|
||||
array('config.add', array('mchat_prune', 0)),
|
||||
array('config.add', array('mchat_prune_num', 0)),
|
||||
array('config.add', array('mchat_refresh', 10)),
|
||||
array('config.add', array('mchat_rules', '')),
|
||||
array('config.add', array('mchat_static_message', '')),
|
||||
array('config.add', array('mchat_stats_index', 0)),
|
||||
array('config.add', array('mchat_timeout', 0)),
|
||||
array('config.add', array('mchat_whois', 1)),
|
||||
array('config.add', array('mchat_whois_refresh', 60)),
|
||||
$config = $this->get_config();
|
||||
$update_data = array();
|
||||
|
||||
// Add permissions
|
||||
// Add configs
|
||||
foreach (array('dmzx.mchat.config_global', 'dmzx.mchat.config_ucp') as $section)
|
||||
{
|
||||
foreach ($config[$section] as $key => $value)
|
||||
{
|
||||
$update_data[] = array('config.add', array($key, $value['default']));
|
||||
}
|
||||
}
|
||||
|
||||
// Add user permissions for customizing config values
|
||||
foreach ($config['dmzx.mchat.config_ucp'] as $key => $value)
|
||||
{
|
||||
$update_data[] = array('permission.add', array('u_' . $key, true));
|
||||
}
|
||||
|
||||
return array_merge($update_data, array(
|
||||
array('config.add', array('mchat_version', self::MCHAT_VERSION)),
|
||||
|
||||
// Add user permissions
|
||||
array('permission.add', array('u_mchat_use', true)),
|
||||
array('permission.add', array('u_mchat_view', true)),
|
||||
array('permission.add', array('u_mchat_edit', true)),
|
||||
@@ -77,23 +78,17 @@ class install_mchat extends \phpbb\db\migration\migration
|
||||
array('permission.add', array('u_mchat_bbcode', true)),
|
||||
array('permission.add', array('u_mchat_smilies', true)),
|
||||
array('permission.add', array('u_mchat_urls', true)),
|
||||
|
||||
// Add admin permissions
|
||||
array('permission.add', array('a_mchat', true)),
|
||||
|
||||
// Set permissions
|
||||
array('permission.permission_set', array('ADMINISTRATORS', 'u_mchat_use', 'group')),
|
||||
array('permission.permission_set', array('ADMINISTRATORS', 'u_mchat_view', 'group')),
|
||||
array('permission.permission_set', array('ADMINISTRATORS', 'u_mchat_edit', 'group')),
|
||||
array('permission.permission_set', array('ADMINISTRATORS', 'u_mchat_delete', 'group')),
|
||||
array('permission.permission_set', array('ADMINISTRATORS', 'u_mchat_ip', 'group')),
|
||||
array('permission.permission_set', array('ADMINISTRATORS', 'u_mchat_pm', 'group')),
|
||||
array('permission.permission_set', array('ADMINISTRATORS', 'u_mchat_like', 'group')),
|
||||
array('permission.permission_set', array('ADMINISTRATORS', 'u_mchat_quote', 'group')),
|
||||
array('permission.permission_set', array('ADMINISTRATORS', 'u_mchat_flood_ignore', 'group')),
|
||||
array('permission.permission_set', array('ADMINISTRATORS', 'u_mchat_archive', 'group')),
|
||||
array('permission.permission_set', array('ADMINISTRATORS', 'u_mchat_bbcode', 'group')),
|
||||
array('permission.permission_set', array('ADMINISTRATORS', 'u_mchat_smilies', 'group')),
|
||||
array('permission.permission_set', array('ADMINISTRATORS', 'u_mchat_urls', 'group')),
|
||||
array('permission.permission_set', array('ADMINISTRATORS', 'a_mchat', 'group')),
|
||||
|
||||
array('permission.permission_set', array('REGISTERED', 'u_mchat_use', 'group')),
|
||||
array('permission.permission_set', array('REGISTERED', 'u_mchat_view', 'group')),
|
||||
array('permission.permission_set', array('REGISTERED', 'u_mchat_pm', 'group')),
|
||||
@@ -104,6 +99,17 @@ class install_mchat extends \phpbb\db\migration\migration
|
||||
array('permission.permission_set', array('REGISTERED', 'u_mchat_smilies', 'group')),
|
||||
array('permission.permission_set', array('REGISTERED', 'u_mchat_urls', 'group')),
|
||||
|
||||
array('permission.permission_set', array('REGISTERED', 'u_mchat_avatars', 'group')),
|
||||
array('permission.permission_set', array('REGISTERED', 'u_mchat_capital_letter', 'group')),
|
||||
array('permission.permission_set', array('REGISTERED', 'u_mchat_character_count', 'group')),
|
||||
array('permission.permission_set', array('REGISTERED', 'u_mchat_index', 'group')),
|
||||
array('permission.permission_set', array('REGISTERED', 'u_mchat_input_area', 'group')),
|
||||
array('permission.permission_set', array('REGISTERED', 'u_mchat_location', 'group')),
|
||||
array('permission.permission_set', array('REGISTERED', 'u_mchat_message_top', 'group')),
|
||||
array('permission.permission_set', array('REGISTERED', 'u_mchat_posts', 'group')),
|
||||
array('permission.permission_set', array('REGISTERED', 'u_mchat_relative_time', 'group')),
|
||||
array('permission.permission_set', array('REGISTERED', 'u_mchat_sound', 'group')),
|
||||
|
||||
// Add ACP extension category
|
||||
array('module.add', array(
|
||||
'acp',
|
||||
@@ -115,17 +121,13 @@ class install_mchat extends \phpbb\db\migration\migration
|
||||
array('module.add', array(
|
||||
'acp',
|
||||
'ACP_CAT_MCHAT',
|
||||
array(
|
||||
'module_basename' => '\dmzx\mchat\acp\acp_mchat_module',
|
||||
'modes' => array('configuration'),
|
||||
'module_auth' => 'acl_a_mchat',
|
||||
),
|
||||
array('module_basename' => '\dmzx\mchat\acp\acp_mchat_module'),
|
||||
)),
|
||||
|
||||
// Add UCP category
|
||||
array('module.add', array(
|
||||
'ucp',
|
||||
false,
|
||||
0,
|
||||
'UCP_MCHAT_CONFIG'
|
||||
)),
|
||||
|
||||
@@ -133,17 +135,21 @@ class install_mchat extends \phpbb\db\migration\migration
|
||||
array('module.add', array(
|
||||
'ucp',
|
||||
'UCP_MCHAT_CONFIG',
|
||||
array(
|
||||
'module_basename' => '\dmzx\mchat\ucp\ucp_mchat_module',
|
||||
'modes' => array('configuration'),
|
||||
'auth' => 'acl_u_mchat_use',
|
||||
),
|
||||
array('module_basename' => '\dmzx\mchat\ucp\ucp_mchat_module'),
|
||||
)),
|
||||
);
|
||||
));
|
||||
}
|
||||
|
||||
public function update_schema()
|
||||
{
|
||||
$config = $this->get_config();
|
||||
$user_columns = array();
|
||||
|
||||
foreach ($config['dmzx.mchat.config_ucp'] as $key => $value)
|
||||
{
|
||||
$user_columns['user_' . $key] = array($value['type'], $value['default']);
|
||||
}
|
||||
|
||||
return array(
|
||||
'add_tables' => array(
|
||||
$this->table_prefix . 'mchat' => array(
|
||||
@@ -181,21 +187,21 @@ class install_mchat extends \phpbb\db\migration\migration
|
||||
),
|
||||
|
||||
'add_columns' => array(
|
||||
$this->table_prefix . 'users' => array(
|
||||
'user_mchat_index' => array('BOOL', '1'),
|
||||
'user_mchat_sound' => array('BOOL', '1'),
|
||||
'user_mchat_stats_index' => array('BOOL', '1'),
|
||||
'user_mchat_topics' => array('BOOL', '1'),
|
||||
'user_mchat_avatars' => array('BOOL', '1'),
|
||||
'user_mchat_capital_letter' => array('BOOL', '1'),
|
||||
'user_mchat_input_area' => array('BOOL', '1'),
|
||||
),
|
||||
$this->table_prefix . 'users' => $user_columns,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
public function revert_schema()
|
||||
{
|
||||
$config = $this->get_config();
|
||||
$user_columns = array();
|
||||
|
||||
foreach (array_keys($config['dmzx.mchat.config_ucp']) as $key)
|
||||
{
|
||||
$user_columns[] = 'user_' . $key;
|
||||
}
|
||||
|
||||
return array(
|
||||
'drop_tables' => array(
|
||||
$this->table_prefix . 'mchat',
|
||||
@@ -204,14 +210,7 @@ class install_mchat extends \phpbb\db\migration\migration
|
||||
),
|
||||
|
||||
'drop_columns' => array(
|
||||
$this->table_prefix . 'users' => array(
|
||||
'user_mchat_index',
|
||||
'user_mchat_sound',
|
||||
'user_mchat_stats_index',
|
||||
'user_mchat_topics',
|
||||
'user_mchat_avatars',
|
||||
'user_mchat_input_area',
|
||||
),
|
||||
$this->table_prefix . 'users' => $user_columns,
|
||||
),
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user