diff options
Diffstat (limited to 'phpBB/install/convertors/functions_phpbb20.php')
| -rw-r--r-- | phpBB/install/convertors/functions_phpbb20.php | 141 | 
1 files changed, 121 insertions, 20 deletions
diff --git a/phpBB/install/convertors/functions_phpbb20.php b/phpBB/install/convertors/functions_phpbb20.php index 466f57a572..84e9e8c462 100644 --- a/phpBB/install/convertors/functions_phpbb20.php +++ b/phpBB/install/convertors/functions_phpbb20.php @@ -1,10 +1,13 @@  <?php  /**  * -* @package install -* @version $Id$ -* @copyright (c) 2006 phpBB Group -* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* 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.  *  */ @@ -14,7 +17,7 @@ if (!defined('IN_PHPBB'))  }  /** -* Helper functions for phpBB 2.0.x to phpBB 3.0.x conversion +* Helper functions for phpBB 2.0.x to phpBB 3.1.x conversion  */  /** @@ -72,7 +75,6 @@ function phpbb_insert_forums()  	$prune_enabled = (int) $src_db->sql_fetchfield('config_value');  	$src_db->sql_freeresult($result); -  	// Insert categories  	$sql = 'SELECT cat_id, cat_title  		FROM ' . $convert->src_table_prefix . 'categories @@ -221,7 +223,7 @@ function phpbb_insert_forums()  			'forum_desc'		=> htmlspecialchars(phpbb_set_default_encoding($row['forum_desc']), ENT_COMPAT, 'UTF-8'),  			'forum_type'		=> FORUM_POST,  			'forum_status'		=> is_item_locked($row['forum_status']), -			'enable_prune'		=> ($prune_enabled) ? (int)$row['prune_enable'] : 0, +			'enable_prune'		=> ($prune_enabled) ? (int) $row['prune_enable'] : 0,  			'prune_next'		=> (int) null_to_zero($row['prune_next']),  			'prune_days'		=> (int) null_to_zero($row['prune_days']),  			'prune_viewed'		=> 0, @@ -244,9 +246,12 @@ function phpbb_insert_forums()  			'forum_rules_options'		=> 7,  			'forum_rules_uid'			=> '',  			'forum_topics_per_page'		=> 0, -			'forum_posts'				=> 0, -			'forum_topics'				=> 0, -			'forum_topics_real'			=> 0, +			'forum_posts_approved'		=> 0, +			'forum_posts_unapproved'	=> 0, +			'forum_posts_softdeleted'	=> 0, +			'forum_topics_approved'		=> 0, +			'forum_topics_unapproved'	=> 0, +			'forum_topics_softdeleted'	=> 0,  			'forum_last_post_id'		=> 0,  			'forum_last_poster_id'		=> 0,  			'forum_last_post_subject'	=> '', @@ -458,7 +463,7 @@ function phpbb_get_birthday($birthday = '')  	{  		$birthday = (int) $birthday; -		if (!$birthday || $birthday == 999999 || ((version_compare(PHP_VERSION, '5.1.0') < 0) && $birthday < 0)) +		if (!$birthday || $birthday == 999999)  		{  			return ' 0- 0-   0';  		} @@ -538,6 +543,15 @@ function phpbb_user_id($user_id)  	return (int) $user_id;  } +/** +* Return correct user id value +* Everyone's id will be one higher to allow the guest/anonymous user to have a positive id as well +*/ +function phpbb_topic_replies_to_posts($num_replies) +{ +	return (int) $num_replies + 1; +} +  /* Copy additional table fields from old forum to new forum if user wants this (for Mod compatibility for example)  function phpbb_copy_table_fields()  { @@ -560,7 +574,6 @@ function phpbb_convert_authentication($mode)  		// What we will do is handling all 2.0.x admins as founder to replicate what is common in 2.0.x.  		// After conversion the main admin need to make sure he is removing permissions and the founder status if wanted. -  		// Grab user ids of users with user_level of ADMIN  		$sql = "SELECT user_id  			FROM {$convert->src_table_prefix}users @@ -1404,6 +1417,55 @@ function phpbb_attachment_category($cat_id)  }  /** +* Convert the attachment extension names +* This is only used if the Attachment MOD was installed +*/ +function phpbb_attachment_extension_group_name() +{ +	global $db, $phpbb_root_path, $phpEx; + +	// Update file extension group names to use language strings. +	$sql = 'SELECT lang_dir +		FROM ' . LANG_TABLE; +	$result = $db->sql_query($sql); + +	$extension_groups_updated = array(); +	while ($lang_dir = $db->sql_fetchfield('lang_dir')) +	{ +		$lang_dir = basename($lang_dir); +		$lang_file = $phpbb_root_path . 'language/' . $lang_dir . '/acp/attachments.' . $phpEx; + +		if (!file_exists($lang_file)) +		{ +			continue; +		} + +		$lang = array(); +		include($lang_file); + +		foreach ($lang as $lang_key => $lang_val) +		{ +			if (isset($extension_groups_updated[$lang_key]) || strpos($lang_key, 'EXT_GROUP_') !== 0) +			{ +				continue; +			} + +			$sql_ary = array( +				'group_name'	=> substr($lang_key, 10), // Strip off 'EXT_GROUP_' +			); + +			$sql = 'UPDATE ' . EXTENSION_GROUPS_TABLE . ' +				SET ' . $db->sql_build_array('UPDATE', $sql_ary) . " +					WHERE group_name = '" . $db->sql_escape($lang_val) . "'"; +			$db->sql_query($sql); + +			$extension_groups_updated[$lang_key] = true; +		} +	} +	$db->sql_freeresult($result); +} + +/**  * Obtain list of forums in which different attachment categories can be used  */  function phpbb_attachment_forum_perms($forum_permissions) @@ -1742,13 +1804,6 @@ function phpbb_create_userconv_table()  	$drop_sql = 'DROP TABLE ' . USERCONV_TABLE;  	switch ($map_dbms)  	{ -		case 'firebird': -			$create_sql = 'CREATE TABLE ' . USERCONV_TABLE . ' ( -				user_id INTEGER NOT NULL, -				username_clean VARCHAR(255) CHARACTER SET UTF8 DEFAULT \'\' NOT NULL COLLATE UNICODE -			)'; -		break; -  		case 'mssql':  			$create_sql = 'CREATE TABLE [' . USERCONV_TABLE . '] (  				[user_id] [int] NOT NULL , @@ -1785,6 +1840,7 @@ function phpbb_create_userconv_table()  		break;  		case 'sqlite': +		case 'sqlite3':  			$create_sql = 'CREATE TABLE ' . USERCONV_TABLE . ' (  				user_id INTEGER NOT NULL DEFAULT \'0\',  				username_clean varchar(255) NOT NULL DEFAULT \'\' @@ -1867,4 +1923,49 @@ function phpbb_check_username_collisions()  	$db->sql_query($drop_sql);  } -?>
\ No newline at end of file +function phpbb_convert_timezone($timezone) +{ +	global $config, $db, $phpbb_root_path, $phpEx, $table_prefix; +	$timezone_migration = new \phpbb\db\migration\data\v310\timezone($config, $db, new \phpbb\db\tools($db), $phpbb_root_path, $phpEx, $table_prefix); +	return $timezone_migration->convert_phpbb30_timezone($timezone, 0); +} + +function phpbb_add_notification_options($user_notify_pm) +{ +	global $convert_row, $db; + +	$user_id = phpbb_user_id($convert_row['user_id']); +	if ($user_id == ANONYMOUS) +	{ +		return; +	} + +	$rows = array(); + +	$rows[] = array( +		'item_type'		=> 'post', +		'item_id'		=> 0, +		'user_id'		=> (int) $user_id, +		'notify'		=> 1, +		'method'		=> 'email', +	); +	$rows[] = array( +		'item_type'		=> 'topic', +		'item_id'		=> 0, +		'user_id'		=> (int) $user_id, +		'notify'		=> 1, +		'method'		=> 'email', +	); +	if ($user_notify_pm) +	{ +		$rows[] = array( +			'item_type'		=> 'pm', +			'item_id'		=> 0, +			'user_id'		=> (int) $user_id, +			'notify'		=> 1, +			'method'		=> 'email', +		); +	} + +	$sql = $db->sql_multi_insert(USER_NOTIFICATIONS_TABLE, $rows); +}  | 
