[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * 4 * @package install 5 * @version $Id$ 6 * @copyright (c) 2006 phpBB Group 7 * @license http://opensource.org/licenses/gpl-license.php GNU Public License 8 * 9 */ 10 11 /** 12 * NOTE to potential convertor authors. Please use this file to get 13 * familiar with the structure since we added some bare explanations here. 14 * 15 * Since this file gets included more than once on one page you are not able to add functions to it. 16 * Instead use a functions_ file. 17 * 18 * @ignore 19 */ 20 if (!defined('IN_PHPBB')) 21 { 22 exit; 23 } 24 25 include($phpbb_root_path . 'config.' . $phpEx); 26 unset($dbpasswd); 27 28 /** 29 * $convertor_data provides some basic information about this convertor which is 30 * used on the initial list of convertors and to populate the default settings 31 */ 32 $convertor_data = array( 33 'forum_name' => 'phpBB 2.0.x', 34 'version' => '1.0.3', 35 'phpbb_version' => '3.0.12', 36 'author' => '<a href="https://www.phpbb.com/">phpBB Group</a>', 37 'dbms' => $dbms, 38 'dbhost' => $dbhost, 39 'dbport' => $dbport, 40 'dbuser' => $dbuser, 41 'dbpasswd' => '', 42 'dbname' => $dbname, 43 'table_prefix' => 'phpbb_', 44 'forum_path' => '../forums', 45 'author_notes' => '', 46 ); 47 48 /** 49 * $tables is a list of the tables (minus prefix) which we expect to find in the 50 * source forum. It is used to guess the prefix if the specified prefix is incorrect 51 */ 52 $tables = array( 53 'auth_access', 54 'banlist', 55 'categories', 56 'disallow', 57 'forum_prune', 58 'forums', 59 'groups', 60 'posts', 61 'posts_text', 62 'privmsgs', 63 'privmsgs_text', 64 'ranks', 65 'smilies', 66 'topics', 67 'topics_watch', 68 'user_group', 69 'users', 70 'vote_desc', 71 'vote_results', 72 'vote_voters', 73 'words' 74 ); 75 76 /** 77 * $config_schema details how the board configuration information is stored in the source forum. 78 * 79 * 'table_format' can take the value 'file' to indicate a config file. In this case array_name 80 * is set to indicate the name of the array the config values are stored in 81 * Example of using a file: 82 * $config_schema = array( 83 * 'table_format' => 'file', 84 * 'filename' => 'NAME OF FILE', // If the file is not in the root directory, the path needs to be added with no leading slash 85 * 'array_name' => 'NAME OF ARRAY', // Only used if the configuration file stores the setting in an array. 86 * 'settings' => array( 87 * 'board_email' => 'SUPPORT_EMAIL', // target config name => source target name 88 * ) 89 * ); 90 * 'table_format' can be an array if the values are stored in a table which is an assosciative array 91 * (as per phpBB 2.0.x) 92 * If left empty, values are assumed to be stored in a table where each config setting is 93 * a column (as per phpBB 1.x) 94 * 95 * In either of the latter cases 'table_name' indicates the name of the table in the database 96 * 97 * 'settings' is an array which maps the name of the config directive in the source forum 98 * to the config directive in phpBB3. It can either be a direct mapping or use a function. 99 * Please note that the contents of the old config value are passed to the function, therefore 100 * an in-built function requiring the variable passed by reference is not able to be used. Since 101 * empty() is such a function we created the function is_empty() to be used instead. 102 */ 103 $config_schema = array( 104 'table_name' => 'config', 105 'table_format' => array('config_name' => 'config_value'), 106 'settings' => array( 107 'allow_bbcode' => 'allow_bbcode', 108 'allow_smilies' => 'allow_smilies', 109 'allow_sig' => 'allow_sig', 110 'allow_namechange' => 'allow_namechange', 111 'allow_avatar_local' => 'allow_avatar_local', 112 'allow_avatar_remote' => 'allow_avatar_remote', 113 'allow_avatar_upload' => 'allow_avatar_upload', 114 'board_disable' => 'board_disable', 115 'sitename' => 'phpbb_set_encoding(sitename)', 116 'site_desc' => 'phpbb_set_encoding(site_desc)', 117 'session_length' => 'session_length', 118 'board_email_sig' => 'phpbb_set_encoding(board_email_sig)', 119 'posts_per_page' => 'posts_per_page', 120 'topics_per_page' => 'topics_per_page', 121 'enable_confirm' => 'enable_confirm', 122 'board_email_form' => 'board_email_form', 123 'override_user_style' => 'override_user_style', 124 'hot_threshold' => 'hot_threshold', 125 'max_poll_options' => 'max_poll_options', 126 'max_sig_chars' => 'max_sig_chars', 127 'pm_max_msgs' => 'max_inbox_privmsgs', 128 'smtp_delivery' => 'smtp_delivery', 129 'smtp_host' => 'smtp_host', 130 'smtp_username' => 'smtp_username', 131 'smtp_password' => 'smtp_password', 132 'require_activation' => 'require_activation', 133 'flood_interval' => 'flood_interval', 134 'avatar_filesize' => 'avatar_filesize', 135 'avatar_max_width' => 'avatar_max_width', 136 'avatar_max_height' => 'avatar_max_height', 137 'default_dateformat' => 'phpbb_set_encoding(default_dateformat)', 138 'board_timezone' => 'board_timezone', 139 'allow_privmsg' => 'not(privmsg_disable)', 140 'gzip_compress' => 'gzip_compress', 141 'coppa_enable' => '!is_empty(coppa_mail)', 142 'coppa_fax' => 'coppa_fax', 143 'coppa_mail' => 'coppa_mail', 144 'record_online_users' => 'record_online_users', 145 'record_online_date' => 'record_online_date', 146 'board_startdate' => 'board_startdate', 147 ) 148 ); 149 150 /** 151 * $test_file is the name of a file which is present on the source 152 * forum which can be used to check that the path specified by the 153 * user was correct 154 */ 155 $test_file = 'modcp.php'; 156 157 /** 158 * If this is set then we are not generating the first page of information but getting the conversion information. 159 */ 160 if (!$get_info) 161 { 162 // Test to see if the birthday MOD is installed on the source forum 163 // Niels' birthday mod 164 if (get_config_value('birthday_required') !== false || get_config_value('bday_require') !== false) 165 { 166 define('MOD_BIRTHDAY', true); 167 } 168 169 // TerraFrost's validated birthday mod 170 if (get_config_value('bday_require') !== false) 171 { 172 define('MOD_BIRTHDAY_TERRA', true); 173 } 174 175 // Test to see if the attachment MOD is installed on the source forum 176 // If it is, we will convert this data as well 177 $src_db->sql_return_on_error(true); 178 179 $sql = "SELECT config_value 180 FROM {$convert->src_table_prefix}attachments_config 181 WHERE config_name = 'upload_dir'"; 182 $result = $src_db->sql_query($sql); 183 184 if ($result && $row = $src_db->sql_fetchrow($result)) 185 { 186 // Here the constant is defined 187 define('MOD_ATTACHMENT', true); 188 189 // Here i add more tables to be checked in the old forum 190 $tables += array( 191 'attachments', 192 'attachments_desc', 193 'extensions', 194 'extension_groups' 195 ); 196 197 $src_db->sql_freeresult($result); 198 } 199 else if ($result) 200 { 201 $src_db->sql_freeresult($result); 202 } 203 204 205 /** 206 * Tests for further MODs can be included here. 207 * Please use constants for this, prefixing them with MOD_ 208 */ 209 210 $src_db->sql_return_on_error(false); 211 212 // Now let us set a temporary config variable for user id incrementing 213 $sql = "SELECT user_id 214 FROM {$convert->src_table_prefix}users 215 WHERE user_id = 1"; 216 $result = $src_db->sql_query($sql); 217 $user_id = (int) $src_db->sql_fetchfield('user_id'); 218 $src_db->sql_freeresult($result); 219 220 // If there is a user id 1, we need to increment user ids. :/ 221 if ($user_id === 1) 222 { 223 // Try to get the maximum user id possible... 224 $sql = "SELECT MAX(user_id) AS max_user_id 225 FROM {$convert->src_table_prefix}users"; 226 $result = $src_db->sql_query($sql); 227 $user_id = (int) $src_db->sql_fetchfield('max_user_id'); 228 $src_db->sql_freeresult($result); 229 230 set_config('increment_user_id', ($user_id + 1), true); 231 } 232 else 233 { 234 set_config('increment_user_id', 0, true); 235 } 236 237 // Overwrite maximum avatar width/height 238 @define('DEFAULT_AVATAR_X_CUSTOM', get_config_value('avatar_max_width')); 239 @define('DEFAULT_AVATAR_Y_CUSTOM', get_config_value('avatar_max_height')); 240 241 // additional table used only during conversion 242 @define('USERCONV_TABLE', $table_prefix . 'userconv'); 243 244 /** 245 * Description on how to use the convertor framework. 246 * 247 * 'schema' Syntax Description 248 * -> 'target' => Target Table. If not specified the next table will be handled 249 * -> 'primary' => Primary Key. If this is specified then this table is processed in batches 250 * -> 'query_first' => array('target' or 'src', Query to execute before beginning the process 251 * (if more than one then specified as array)) 252 * -> 'function_first' => Function to execute before beginning the process (if more than one then specified as array) 253 * (This is mostly useful if variables need to be given to the converting process) 254 * -> 'test_file' => This is not used at the moment but should be filled with a file from the old installation 255 * 256 * // DB Functions 257 * 'distinct' => Add DISTINCT to the select query 258 * 'where' => Add WHERE to the select query 259 * 'group_by' => Add GROUP BY to the select query 260 * 'left_join' => Add LEFT JOIN to the select query (if more than one joins specified as array) 261 * 'having' => Add HAVING to the select query 262 * 263 * // DB INSERT array 264 * This one consist of three parameters 265 * First Parameter: 266 * The key need to be filled within the target table 267 * If this is empty, the target table gets not assigned the source value 268 * Second Parameter: 269 * Source value. If the first parameter is specified, it will be assigned this value. 270 * If the first parameter is empty, this only gets added to the select query 271 * Third Parameter: 272 * Custom Function. Function to execute while storing source value into target table. 273 * The functions return value get stored. 274 * The function parameter consist of the value of the second parameter. 275 * 276 * types: 277 * - empty string == execute nothing 278 * - string == function to execute 279 * - array == complex execution instructions 280 * 281 * Complex execution instructions: 282 * @todo test complex execution instructions - in theory they will work fine 283 * 284 * By defining an array as the third parameter you are able to define some statements to be executed. The key 285 * is defining what to execute, numbers can be appended... 286 * 287 * 'function' => execute function 288 * 'execute' => run code, whereby all occurrences of {VALUE} get replaced by the last returned value. 289 * The result *must* be assigned/stored to {RESULT}. 290 * 'typecast' => typecast value 291 * 292 * The returned variables will be made always available to the next function to continue to work with. 293 * 294 * example (variable inputted is an integer of 1): 295 * 296 * array( 297 * 'function1' => 'increment_by_one', // returned variable is 2 298 * 'typecast' => 'string', // typecast variable to be a string 299 * 'execute' => '{RESULT} = {VALUE} . ' is good';', // returned variable is '2 is good' 300 * 'function2' => 'replace_good_with_bad', // returned variable is '2 is bad' 301 * ), 302 * 303 */ 304 305 $convertor = array( 306 'test_file' => 'viewtopic.php', 307 308 'avatar_path' => get_config_value('avatar_path') . '/', 309 'avatar_gallery_path' => get_config_value('avatar_gallery_path') . '/', 310 'smilies_path' => get_config_value('smilies_path') . '/', 311 'upload_path' => (defined('MOD_ATTACHMENT')) ? phpbb_get_files_dir() . '/' : '', 312 'thumbnails' => (defined('MOD_ATTACHMENT')) ? array('thumbs/', 't_') : '', 313 'ranks_path' => false, // phpBB 2.0.x had no config value for a ranks path 314 315 // We empty some tables to have clean data available 316 'query_first' => array( 317 array('target', $convert->truncate_statement . SEARCH_RESULTS_TABLE), 318 array('target', $convert->truncate_statement . SEARCH_WORDLIST_TABLE), 319 array('target', $convert->truncate_statement . SEARCH_WORDMATCH_TABLE), 320 array('target', $convert->truncate_statement . LOG_TABLE), 321 ), 322 323 // with this you are able to import all attachment files on the fly. For large boards this is not an option, therefore commented out by default. 324 // Instead every file gets copied while processing the corresponding attachment entry. 325 // if (defined("MOD_ATTACHMENT")) { import_attachment_files(); phpbb_copy_thumbnails(); } 326 327 // phpBB2 allowed some similar usernames to coexist which would have the same 328 // username_clean in phpBB3 which is not possible, so we'll give the admin a list 329 // of user ids and usernames and let him deicde what he wants to do with them 330 'execute_first' => ' 331 phpbb_create_userconv_table(); 332 import_avatar_gallery(); 333 if (defined("MOD_ATTACHMENT")) phpbb_import_attach_config(); 334 phpbb_insert_forums(); 335 ', 336 337 'execute_last' => array(' 338 add_bots(); 339 ', ' 340 update_folder_pm_count(); 341 ', ' 342 update_unread_count(); 343 ', ' 344 phpbb_convert_authentication(\'start\'); 345 ', ' 346 phpbb_convert_authentication(\'first\'); 347 ', ' 348 phpbb_convert_authentication(\'second\'); 349 ', ' 350 phpbb_convert_authentication(\'third\'); 351 '), 352 353 'schema' => array( 354 array( 355 'target' => USERCONV_TABLE, 356 'query_first' => array('target', $convert->truncate_statement . USERCONV_TABLE), 357 358 359 array('user_id', 'users.user_id', ''), 360 array('username_clean', 'users.username', array('function1' => 'phpbb_set_encoding', 'function2' => 'utf8_clean_string')), 361 ), 362 363 array( 364 'target' => (defined('MOD_ATTACHMENT')) ? ATTACHMENTS_TABLE : '', 365 'primary' => 'attachments.attach_id', 366 'query_first' => (defined('MOD_ATTACHMENT')) ? array('target', $convert->truncate_statement . ATTACHMENTS_TABLE) : '', 367 'autoincrement' => 'attach_id', 368 369 array('attach_id', 'attachments.attach_id', ''), 370 array('post_msg_id', 'attachments.post_id', ''), 371 array('topic_id', 'posts.topic_id', ''), 372 array('in_message', 0, ''), 373 array('is_orphan', 0, ''), 374 array('poster_id', 'attachments.user_id_1 AS poster_id', 'phpbb_user_id'), 375 array('physical_filename', 'attachments_desc.physical_filename', 'import_attachment'), 376 array('real_filename', 'attachments_desc.real_filename', 'phpbb_set_encoding'), 377 array('download_count', 'attachments_desc.download_count', ''), 378 array('attach_comment', 'attachments_desc.comment', array('function1' => 'phpbb_set_encoding', 'function2' => 'utf8_htmlspecialchars')), 379 array('extension', 'attachments_desc.extension', ''), 380 array('mimetype', 'attachments_desc.mimetype', ''), 381 array('filesize', 'attachments_desc.filesize', ''), 382 array('filetime', 'attachments_desc.filetime', ''), 383 array('thumbnail', 'attachments_desc.thumbnail', ''), 384 385 'where' => 'attachments_desc.attach_id = attachments.attach_id AND attachments.privmsgs_id = 0 AND posts.post_id = attachments.post_id', 386 'group_by' => 'attachments.attach_id' 387 ), 388 389 array( 390 'target' => (defined('MOD_ATTACHMENT')) ? ATTACHMENTS_TABLE : '', 391 'primary' => 'attachments.attach_id', 392 'autoincrement' => 'attach_id', 393 394 array('attach_id', 'attachments.attach_id', ''), 395 array('post_msg_id', 'attachments.privmsgs_id', ''), 396 array('topic_id', 0, ''), 397 array('in_message', 1, ''), 398 array('is_orphan', 0, ''), 399 array('poster_id', 'attachments.user_id_1 AS poster_id', 'phpbb_user_id'), 400 array('physical_filename', 'attachments_desc.physical_filename', 'import_attachment'), 401 array('real_filename', 'attachments_desc.real_filename', ''), 402 array('download_count', 'attachments_desc.download_count', ''), 403 array('attach_comment', 'attachments_desc.comment', array('function1' => 'phpbb_set_encoding', 'function2' => 'utf8_htmlspecialchars')), 404 array('extension', 'attachments_desc.extension', ''), 405 array('mimetype', 'attachments_desc.mimetype', ''), 406 array('filesize', 'attachments_desc.filesize', ''), 407 array('filetime', 'attachments_desc.filetime', ''), 408 array('thumbnail', 'attachments_desc.thumbnail', ''), 409 410 'where' => 'attachments_desc.attach_id = attachments.attach_id AND attachments.post_id = 0', 411 'group_by' => 'attachments.attach_id' 412 ), 413 414 array( 415 'target' => (defined('MOD_ATTACHMENT')) ? EXTENSIONS_TABLE : '', 416 'query_first' => (defined('MOD_ATTACHMENT')) ? array('target', $convert->truncate_statement . EXTENSIONS_TABLE) : '', 417 'autoincrement' => 'extension_id', 418 419 array('extension_id', 'extensions.ext_id', ''), 420 array('group_id', 'extensions.group_id', ''), 421 array('extension', 'extensions.extension', ''), 422 ), 423 424 array( 425 'target' => (defined('MOD_ATTACHMENT')) ? EXTENSION_GROUPS_TABLE : '', 426 'query_first' => (defined('MOD_ATTACHMENT')) ? array('target', $convert->truncate_statement . EXTENSION_GROUPS_TABLE) : '', 427 'autoincrement' => 'group_id', 428 429 array('group_id', 'extension_groups.group_id', ''), 430 array('group_name', 'extension_groups.group_name', array('function1' => 'phpbb_set_encoding', 'function2' => 'utf8_htmlspecialchars')), 431 array('cat_id', 'extension_groups.cat_id', 'phpbb_attachment_category'), 432 array('allow_group', 'extension_groups.allow_group', ''), 433 array('download_mode', 1, ''), 434 array('upload_icon', '', ''), 435 array('max_filesize', 'extension_groups.max_filesize', ''), 436 array('allowed_forums', 'extension_groups.forum_permissions', 'phpbb_attachment_forum_perms'), 437 array('allow_in_pm', 1, ''), 438 ), 439 440 array( 441 'target' => BANLIST_TABLE, 442 'execute_first' => 'phpbb_check_username_collisions();', 443 'query_first' => array('target', $convert->truncate_statement . BANLIST_TABLE), 444 445 array('ban_ip', 'banlist.ban_ip', 'decode_ban_ip'), 446 array('ban_userid', 'banlist.ban_userid', 'phpbb_user_id'), 447 array('ban_email', 'banlist.ban_email', ''), 448 array('ban_reason', '', ''), 449 array('ban_give_reason', '', ''), 450 451 'where' => "banlist.ban_ip NOT LIKE '%.%'", 452 ), 453 454 array( 455 'target' => BANLIST_TABLE, 456 457 array('ban_ip', 'banlist.ban_ip', ''), 458 array('ban_userid', 0, ''), 459 array('ban_email', '', ''), 460 array('ban_reason', '', ''), 461 array('ban_give_reason', '', ''), 462 463 'where' => "banlist.ban_ip LIKE '%.%'", 464 ), 465 466 array( 467 'target' => DISALLOW_TABLE, 468 'query_first' => array('target', $convert->truncate_statement . DISALLOW_TABLE), 469 470 array('disallow_username', 'disallow.disallow_username', 'phpbb_disallowed_username'), 471 ), 472 473 array( 474 'target' => RANKS_TABLE, 475 'query_first' => array('target', $convert->truncate_statement . RANKS_TABLE), 476 'autoincrement' => 'rank_id', 477 478 array('rank_id', 'ranks.rank_id', ''), 479 array('rank_title', 'ranks.rank_title', array('function1' => 'phpbb_set_default_encoding', 'function2' => 'utf8_htmlspecialchars')), 480 array('rank_min', 'ranks.rank_min', array('typecast' => 'int', 'execute' => '{RESULT} = ({VALUE}[0] < 0) ? 0 : {VALUE}[0];')), 481 array('rank_special', 'ranks.rank_special', ''), 482 array('rank_image', 'ranks.rank_image', 'import_rank'), 483 ), 484 485 array( 486 'target' => TOPICS_TABLE, 487 'query_first' => array('target', $convert->truncate_statement . TOPICS_TABLE), 488 'primary' => 'topics.topic_id', 489 'autoincrement' => 'topic_id', 490 491 array('topic_id', 'topics.topic_id', ''), 492 array('forum_id', 'topics.forum_id', ''), 493 array('icon_id', 0, ''), 494 array('topic_poster', 'topics.topic_poster AS poster_id', 'phpbb_user_id'), 495 array('topic_attachment', ((defined('MOD_ATTACHMENT')) ? 'topics.topic_attachment' : 0), ''), 496 array('topic_title', 'topics.topic_title', 'phpbb_set_encoding'), 497 array('topic_time', 'topics.topic_time', ''), 498 array('topic_views', 'topics.topic_views', ''), 499 array('topic_replies', 'topics.topic_replies', ''), 500 array('topic_replies_real', 'topics.topic_replies', ''), 501 array('topic_last_post_id', 'topics.topic_last_post_id', ''), 502 array('topic_status', 'topics.topic_status', 'is_topic_locked'), 503 array('topic_moved_id', 0, ''), 504 array('topic_type', 'topics.topic_type', 'phpbb_convert_topic_type'), 505 array('topic_first_post_id', 'topics.topic_first_post_id', ''), 506 array('topic_last_view_time', 'posts.post_time', 'intval'), 507 array('poll_title', 'vote_desc.vote_text', array('function1' => 'null_to_str', 'function2' => 'phpbb_set_encoding', 'function3' => 'htmlspecialchars_decode', 'function4' => 'utf8_htmlspecialchars')), 508 array('poll_start', 'vote_desc.vote_start', 'null_to_zero'), 509 array('poll_length', 'vote_desc.vote_length', 'null_to_zero'), 510 array('poll_max_options', 1, ''), 511 array('poll_vote_change', 0, ''), 512 513 'left_join' => array ( 'topics LEFT JOIN vote_desc ON topics.topic_id = vote_desc.topic_id AND topics.topic_vote = 1', 514 'topics LEFT JOIN posts ON topics.topic_last_post_id = posts.post_id', 515 ), 516 'where' => 'topics.topic_moved_id = 0', 517 ), 518 519 array( 520 'target' => TOPICS_TABLE, 521 'primary' => 'topics.topic_id', 522 'autoincrement' => 'topic_id', 523 524 array('topic_id', 'topics.topic_id', ''), 525 array('forum_id', 'topics.forum_id', ''), 526 array('icon_id', 0, ''), 527 array('topic_poster', 'topics.topic_poster AS poster_id', 'phpbb_user_id'), 528 array('topic_attachment', ((defined('MOD_ATTACHMENT')) ? 'topics.topic_attachment' : 0), ''), 529 array('topic_title', 'topics.topic_title', 'phpbb_set_encoding'), 530 array('topic_time', 'topics.topic_time', ''), 531 array('topic_views', 'topics.topic_views', ''), 532 array('topic_replies', 'topics.topic_replies', ''), 533 array('topic_replies_real', 'topics.topic_replies', ''), 534 array('topic_last_post_id', 'topics.topic_last_post_id', ''), 535 array('topic_status', ITEM_MOVED, ''), 536 array('topic_moved_id', 'topics.topic_moved_id', ''), 537 array('topic_type', 'topics.topic_type', 'phpbb_convert_topic_type'), 538 array('topic_first_post_id', 'topics.topic_first_post_id', ''), 539 540 array('poll_title', 'vote_desc.vote_text', array('function1' => 'null_to_str', 'function2' => 'phpbb_set_encoding', 'function3' => 'htmlspecialchars_decode', 'function4' => 'utf8_htmlspecialchars')), 541 array('poll_start', 'vote_desc.vote_start', 'null_to_zero'), 542 array('poll_length', 'vote_desc.vote_length', 'null_to_zero'), 543 array('poll_max_options', 1, ''), 544 array('poll_vote_change', 0, ''), 545 546 'left_join' => 'topics LEFT JOIN vote_desc ON topics.topic_id = vote_desc.topic_id AND topics.topic_vote = 1', 547 'where' => 'topics.topic_moved_id <> 0', 548 ), 549 550 array( 551 'target' => TOPICS_WATCH_TABLE, 552 'primary' => 'topics_watch.topic_id', 553 'query_first' => array('target', $convert->truncate_statement . TOPICS_WATCH_TABLE), 554 555 array('topic_id', 'topics_watch.topic_id', ''), 556 array('user_id', 'topics_watch.user_id', 'phpbb_user_id'), 557 array('notify_status', 'topics_watch.notify_status', ''), 558 ), 559 560 array( 561 'target' => SMILIES_TABLE, 562 'query_first' => array('target', $convert->truncate_statement . SMILIES_TABLE), 563 'autoincrement' => 'smiley_id', 564 565 array('smiley_id', 'smilies.smilies_id', ''), 566 array('code', 'smilies.code', array('function1' => 'phpbb_smilie_html_decode', 'function2' => 'phpbb_set_encoding', 'function3' => 'utf8_htmlspecialchars')), 567 array('emotion', 'smilies.emoticon', 'phpbb_set_encoding'), 568 array('smiley_url', 'smilies.smile_url', 'import_smiley'), 569 array('smiley_width', 'smilies.smile_url', 'get_smiley_width'), 570 array('smiley_height', 'smilies.smile_url', 'get_smiley_height'), 571 array('smiley_order', 'smilies.smilies_id', ''), 572 array('display_on_posting', 'smilies.smilies_id', 'get_smiley_display'), 573 574 'order_by' => 'smilies.smilies_id ASC', 575 ), 576 577 array( 578 'target' => POLL_OPTIONS_TABLE, 579 'primary' => 'vote_results.vote_option_id', 580 'query_first' => array('target', $convert->truncate_statement . POLL_OPTIONS_TABLE), 581 582 array('poll_option_id', 'vote_results.vote_option_id', ''), 583 array('topic_id', 'vote_desc.topic_id', ''), 584 array('', 'topics.topic_poster AS poster_id', 'phpbb_user_id'), 585 array('poll_option_text', 'vote_results.vote_option_text', array('function1' => 'phpbb_set_encoding', 'function2' => 'htmlspecialchars_decode', 'function3' => 'utf8_htmlspecialchars')), 586 array('poll_option_total', 'vote_results.vote_result', ''), 587 588 'where' => 'vote_results.vote_id = vote_desc.vote_id', 589 'left_join' => 'vote_desc LEFT JOIN topics ON topics.topic_id = vote_desc.topic_id', 590 ), 591 592 array( 593 'target' => POLL_VOTES_TABLE, 594 'primary' => 'vote_desc.topic_id', 595 'query_first' => array('target', $convert->truncate_statement . POLL_VOTES_TABLE), 596 597 array('poll_option_id', VOTE_CONVERTED, ''), 598 array('topic_id', 'vote_desc.topic_id', ''), 599 array('vote_user_id', 'vote_voters.vote_user_id', 'phpbb_user_id'), 600 array('vote_user_ip', 'vote_voters.vote_user_ip', 'decode_ip'), 601 602 'where' => 'vote_voters.vote_id = vote_desc.vote_id', 603 ), 604 605 array( 606 'target' => WORDS_TABLE, 607 'primary' => 'words.word_id', 608 'query_first' => array('target', $convert->truncate_statement . WORDS_TABLE), 609 'autoincrement' => 'word_id', 610 611 array('word_id', 'words.word_id', ''), 612 array('word', 'words.word', 'phpbb_set_encoding'), 613 array('replacement', 'words.replacement', 'phpbb_set_encoding'), 614 ), 615 616 array( 617 'target' => POSTS_TABLE, 618 'primary' => 'posts.post_id', 619 'autoincrement' => 'post_id', 620 'query_first' => array('target', $convert->truncate_statement . POSTS_TABLE), 621 'execute_first' => ' 622 $config["max_post_chars"] = 0; 623 $config["min_post_chars"] = 0; 624 $config["max_quote_depth"] = 0; 625 ', 626 627 array('post_id', 'posts.post_id', ''), 628 array('topic_id', 'posts.topic_id', ''), 629 array('forum_id', 'posts.forum_id', ''), 630 array('poster_id', 'posts.poster_id', 'phpbb_user_id'), 631 array('icon_id', 0, ''), 632 array('poster_ip', 'posts.poster_ip', 'decode_ip'), 633 array('post_time', 'posts.post_time', ''), 634 array('enable_bbcode', 'posts.enable_bbcode', ''), 635 array('', 'posts.enable_html', ''), 636 array('enable_smilies', 'posts.enable_smilies', ''), 637 array('enable_sig', 'posts.enable_sig', ''), 638 array('enable_magic_url', 1, ''), 639 array('post_username', 'posts.post_username', 'phpbb_set_encoding'), 640 array('post_subject', 'posts_text.post_subject', 'phpbb_set_encoding'), 641 array('post_attachment', ((defined('MOD_ATTACHMENT')) ? 'posts.post_attachment' : 0), ''), 642 array('post_edit_time', 'posts.post_edit_time', array('typecast' => 'int')), 643 array('post_edit_count', 'posts.post_edit_count', ''), 644 array('post_edit_reason', '', ''), 645 array('post_edit_user', '', 'phpbb_post_edit_user'), 646 647 array('bbcode_uid', 'posts.post_time', 'make_uid'), 648 array('post_text', 'posts_text.post_text', 'phpbb_prepare_message'), 649 array('', 'posts_text.bbcode_uid AS old_bbcode_uid', ''), 650 array('bbcode_bitfield', '', 'get_bbcode_bitfield'), 651 array('post_checksum', '', ''), 652 653 // Commented out inline search indexing, this takes up a LOT of time. :D 654 // @todo We either need to enable this or call the rebuild search functionality post convert 655 /* array('', '', 'search_indexing'), 656 array('', 'posts_text.post_text AS message', ''), 657 array('', 'posts_text.post_subject AS title', ''),*/ 658 659 'where' => 'posts.post_id = posts_text.post_id' 660 ), 661 662 array( 663 'target' => PRIVMSGS_TABLE, 664 'primary' => 'privmsgs.privmsgs_id', 665 'autoincrement' => 'msg_id', 666 'query_first' => array( 667 array('target', $convert->truncate_statement . PRIVMSGS_TABLE), 668 array('target', $convert->truncate_statement . PRIVMSGS_RULES_TABLE), 669 ), 670 671 'execute_first' => ' 672 $config["max_post_chars"] = 0; 673 $config["min_post_chars"] = 0; 674 $config["max_quote_depth"] = 0; 675 ', 676 677 array('msg_id', 'privmsgs.privmsgs_id', ''), 678 array('root_level', 0, ''), 679 array('author_id', 'privmsgs.privmsgs_from_userid AS poster_id', 'phpbb_user_id'), 680 array('icon_id', 0, ''), 681 array('author_ip', 'privmsgs.privmsgs_ip', 'decode_ip'), 682 array('message_time', 'privmsgs.privmsgs_date', ''), 683 array('enable_bbcode', 'privmsgs.privmsgs_enable_bbcode AS enable_bbcode', ''), 684 array('', 'privmsgs.privmsgs_enable_html AS enable_html', ''), 685 array('enable_smilies', 'privmsgs.privmsgs_enable_smilies AS enable_smilies', ''), 686 array('enable_magic_url', 1, ''), 687 array('enable_sig', 'privmsgs.privmsgs_attach_sig', ''), 688 array('message_subject', 'privmsgs.privmsgs_subject', 'phpbb_set_encoding'), // Already specialchared in 2.0.x 689 array('message_attachment', ((defined('MOD_ATTACHMENT')) ? 'privmsgs.privmsgs_attachment' : 0), ''), 690 array('message_edit_reason', '', ''), 691 array('message_edit_user', 0, ''), 692 array('message_edit_time', 0, ''), 693 array('message_edit_count', 0, ''), 694 695 array('bbcode_uid', 'privmsgs.privmsgs_date AS post_time', 'make_uid'), 696 array('message_text', 'privmsgs_text.privmsgs_text', 'phpbb_prepare_message'), 697 array('', 'privmsgs_text.privmsgs_bbcode_uid AS old_bbcode_uid', ''), 698 array('bbcode_bitfield', '', 'get_bbcode_bitfield'), 699 array('to_address', 'privmsgs.privmsgs_to_userid', 'phpbb_privmsgs_to_userid'), 700 array('bcc_address', '', ''), 701 702 'where' => 'privmsgs.privmsgs_id = privmsgs_text.privmsgs_text_id' 703 ), 704 705 array( 706 'target' => PRIVMSGS_FOLDER_TABLE, 707 'primary' => 'users.user_id', 708 'query_first' => array('target', $convert->truncate_statement . PRIVMSGS_FOLDER_TABLE), 709 710 array('user_id', 'users.user_id', 'phpbb_user_id'), 711 array('folder_name', $user->lang['CONV_SAVED_MESSAGES'], ''), 712 array('pm_count', 0, ''), 713 714 'where' => 'users.user_id <> -1', 715 ), 716 717 // Inbox 718 array( 719 'target' => PRIVMSGS_TO_TABLE, 720 'primary' => 'privmsgs.privmsgs_id', 721 'query_first' => array('target', $convert->truncate_statement . PRIVMSGS_TO_TABLE), 722 723 array('msg_id', 'privmsgs.privmsgs_id', ''), 724 array('user_id', 'privmsgs.privmsgs_to_userid', 'phpbb_user_id'), 725 array('author_id', 'privmsgs.privmsgs_from_userid', 'phpbb_user_id'), 726 array('pm_deleted', 0, ''), 727 array('pm_new', 'privmsgs.privmsgs_type', 'phpbb_new_pm'), 728 array('pm_unread', 'privmsgs.privmsgs_type', 'phpbb_unread_pm'), 729 array('pm_replied', 0, ''), 730 array('pm_marked', 0, ''), 731 array('pm_forwarded', 0, ''), 732 array('folder_id', PRIVMSGS_INBOX, ''), 733 734 'where' => 'privmsgs.privmsgs_id = privmsgs_text.privmsgs_text_id 735 AND (privmsgs.privmsgs_type = 0 OR privmsgs.privmsgs_type = 1 OR privmsgs.privmsgs_type = 5)', 736 ), 737 738 // Outbox 739 array( 740 'target' => PRIVMSGS_TO_TABLE, 741 'primary' => 'privmsgs.privmsgs_id', 742 743 array('msg_id', 'privmsgs.privmsgs_id', ''), 744 array('user_id', 'privmsgs.privmsgs_from_userid', 'phpbb_user_id'), 745 array('author_id', 'privmsgs.privmsgs_from_userid', 'phpbb_user_id'), 746 array('pm_deleted', 0, ''), 747 array('pm_new', 0, ''), 748 array('pm_unread', 0, ''), 749 array('pm_replied', 0, ''), 750 array('pm_marked', 0, ''), 751 array('pm_forwarded', 0, ''), 752 array('folder_id', PRIVMSGS_OUTBOX, ''), 753 754 'where' => 'privmsgs.privmsgs_id = privmsgs_text.privmsgs_text_id 755 AND (privmsgs.privmsgs_type = 1 OR privmsgs.privmsgs_type = 5)', 756 ), 757 758 // Sentbox 759 array( 760 'target' => PRIVMSGS_TO_TABLE, 761 'primary' => 'privmsgs.privmsgs_id', 762 763 array('msg_id', 'privmsgs.privmsgs_id', ''), 764 array('user_id', 'privmsgs.privmsgs_from_userid', 'phpbb_user_id'), 765 array('author_id', 'privmsgs.privmsgs_from_userid', 'phpbb_user_id'), 766 array('pm_deleted', 0, ''), 767 array('pm_new', 'privmsgs.privmsgs_type', 'phpbb_new_pm'), 768 array('pm_unread', 'privmsgs.privmsgs_type', 'phpbb_unread_pm'), 769 array('pm_replied', 0, ''), 770 array('pm_marked', 0, ''), 771 array('pm_forwarded', 0, ''), 772 array('folder_id', PRIVMSGS_SENTBOX, ''), 773 774 'where' => 'privmsgs.privmsgs_id = privmsgs_text.privmsgs_text_id 775 AND privmsgs.privmsgs_type = 2', 776 ), 777 778 // Savebox (SAVED IN) 779 array( 780 'target' => PRIVMSGS_TO_TABLE, 781 'primary' => 'privmsgs.privmsgs_id', 782 783 array('msg_id', 'privmsgs.privmsgs_id', ''), 784 array('user_id', 'privmsgs.privmsgs_to_userid', 'phpbb_user_id'), 785 array('author_id', 'privmsgs.privmsgs_from_userid', 'phpbb_user_id'), 786 array('pm_deleted', 0, ''), 787 array('pm_new', 'privmsgs.privmsgs_type', 'phpbb_new_pm'), 788 array('pm_unread', 'privmsgs.privmsgs_type', 'phpbb_unread_pm'), 789 array('pm_replied', 0, ''), 790 array('pm_marked', 0, ''), 791 array('pm_forwarded', 0, ''), 792 array('folder_id', 'privmsgs.privmsgs_to_userid', 'phpbb_get_savebox_id'), 793 794 'where' => 'privmsgs.privmsgs_id = privmsgs_text.privmsgs_text_id 795 AND privmsgs.privmsgs_type = 3', 796 ), 797 798 // Savebox (SAVED OUT) 799 array( 800 'target' => PRIVMSGS_TO_TABLE, 801 'primary' => 'privmsgs.privmsgs_id', 802 803 array('msg_id', 'privmsgs.privmsgs_id', ''), 804 array('user_id', 'privmsgs.privmsgs_from_userid', 'phpbb_user_id'), 805 array('author_id', 'privmsgs.privmsgs_from_userid', 'phpbb_user_id'), 806 array('pm_deleted', 0, ''), 807 array('pm_new', 'privmsgs.privmsgs_type', 'phpbb_new_pm'), 808 array('pm_unread', 'privmsgs.privmsgs_type', 'phpbb_unread_pm'), 809 array('pm_replied', 0, ''), 810 array('pm_marked', 0, ''), 811 array('pm_forwarded', 0, ''), 812 array('folder_id', 'privmsgs.privmsgs_from_userid', 'phpbb_get_savebox_id'), 813 814 'where' => 'privmsgs.privmsgs_id = privmsgs_text.privmsgs_text_id 815 AND privmsgs.privmsgs_type = 4', 816 ), 817 818 array( 819 'target' => GROUPS_TABLE, 820 'autoincrement' => 'group_id', 821 'query_first' => array('target', $convert->truncate_statement . GROUPS_TABLE), 822 823 array('group_id', 'groups.group_id', ''), 824 array('group_type', 'groups.group_type', 'phpbb_convert_group_type'), 825 array('group_display', 0, ''), 826 array('group_legend', 0, ''), 827 array('group_name', 'groups.group_name', 'phpbb_convert_group_name'), // phpbb_set_encoding called in phpbb_convert_group_name 828 array('group_desc', 'groups.group_description', 'phpbb_set_encoding'), 829 830 'where' => 'groups.group_single_user = 0', 831 ), 832 833 array( 834 'target' => USER_GROUP_TABLE, 835 'query_first' => array('target', $convert->truncate_statement . USER_GROUP_TABLE), 836 'execute_first' => ' 837 add_default_groups(); 838 ', 839 840 array('group_id', 'groups.group_id', ''), 841 array('user_id', 'groups.group_moderator', 'phpbb_user_id'), 842 array('group_leader', 1, ''), 843 array('user_pending', 0, ''), 844 845 'where' => 'groups.group_single_user = 0 AND groups.group_moderator <> 0', 846 ), 847 848 array( 849 'target' => USER_GROUP_TABLE, 850 851 array('group_id', 'user_group.group_id', ''), 852 array('user_id', 'user_group.user_id', 'phpbb_user_id'), 853 array('group_leader', 0, ''), 854 array('user_pending', 'user_group.user_pending', ''), 855 856 'where' => 'user_group.group_id = groups.group_id AND groups.group_single_user = 0 AND groups.group_moderator <> user_group.user_id', 857 ), 858 859 array( 860 'target' => USERS_TABLE, 861 'primary' => 'users.user_id', 862 'autoincrement' => 'user_id', 863 'query_first' => array( 864 array('target', 'DELETE FROM ' . USERS_TABLE . ' WHERE user_id <> ' . ANONYMOUS), 865 array('target', $convert->truncate_statement . BOTS_TABLE) 866 ), 867 868 'execute_last' => ' 869 remove_invalid_users(); 870 ', 871 872 array('user_id', 'users.user_id', 'phpbb_user_id'), 873 array('', 'users.user_id AS poster_id', 'phpbb_user_id'), 874 array('user_type', 'users.user_active', 'set_user_type'), 875 array('group_id', 'users.user_level', 'phpbb_set_primary_group'), 876 array('user_regdate', 'users.user_regdate', ''), 877 array('username', 'users.username', 'phpbb_set_default_encoding'), // recode to utf8 with default lang 878 array('username_clean', 'users.username', array('function1' => 'phpbb_set_default_encoding', 'function2' => 'utf8_clean_string')), 879 array('user_password', 'users.user_password', 'phpbb_hash'), 880 array('user_pass_convert', 1, ''), 881 array('user_posts', 'users.user_posts', 'intval'), 882 array('user_email', 'users.user_email', 'strtolower'), 883 array('user_email_hash', 'users.user_email', 'gen_email_hash'), 884 array('user_birthday', ((defined('MOD_BIRTHDAY')) ? 'users.user_birthday' : ''), 'phpbb_get_birthday'), 885 array('user_lastvisit', 'users.user_lastvisit', 'intval'), 886 array('user_lastmark', 'users.user_lastvisit', 'intval'), 887 array('user_lang', $config['default_lang'], ''), 888 array('', 'users.user_lang', ''), 889 array('user_timezone', 'users.user_timezone', 'floatval'), 890 array('user_dateformat', 'users.user_dateformat', array('function1' => 'phpbb_set_encoding', 'function2' => 'fill_dateformat')), 891 array('user_inactive_reason', '', 'phpbb_inactive_reason'), 892 array('user_inactive_time', '', 'phpbb_inactive_time'), 893 894 array('user_interests', 'users.user_interests', array('function1' => 'phpbb_set_encoding')), 895 array('user_occ', 'users.user_occ', array('function1' => 'phpbb_set_encoding')), 896 array('user_website', 'users.user_website', 'validate_website'), 897 array('user_jabber', '', ''), 898 array('user_msnm', 'users.user_msnm', array('function1' => 'phpbb_set_encoding')), 899 array('user_yim', 'users.user_yim', array('function1' => 'phpbb_set_encoding')), 900 array('user_aim', 'users.user_aim', array('function1' => 'phpbb_set_encoding')), 901 array('user_icq', 'users.user_icq', array('function1' => 'phpbb_set_encoding')), 902 array('user_from', 'users.user_from', array('function1' => 'phpbb_set_encoding')), 903 array('user_rank', 'users.user_rank', 'intval'), 904 array('user_permissions', '', ''), 905 906 array('user_avatar', 'users.user_avatar', 'phpbb_import_avatar'), 907 array('user_avatar_type', 'users.user_avatar_type', 'phpbb_avatar_type'), 908 array('user_avatar_width', 'users.user_avatar', 'phpbb_get_avatar_width'), 909 array('user_avatar_height', 'users.user_avatar', 'phpbb_get_avatar_height'), 910 911 array('user_new_privmsg', 'users.user_new_privmsg', ''), 912 array('user_unread_privmsg', 0, ''), //'users.user_unread_privmsg' 913 array('user_last_privmsg', 'users.user_last_privmsg', 'intval'), 914 array('user_emailtime', 'users.user_emailtime', 'null_to_zero'), 915 array('user_notify', 'users.user_notify', 'intval'), 916 array('user_notify_pm', 'users.user_notify_pm', 'intval'), 917 array('user_notify_type', NOTIFY_EMAIL, ''), 918 array('user_allow_pm', 'users.user_allow_pm', 'intval'), 919 array('user_allow_viewonline', 'users.user_allow_viewonline', 'intval'), 920 array('user_allow_viewemail', 'users.user_viewemail', 'intval'), 921 array('user_actkey', 'users.user_actkey', ''), 922 array('user_newpasswd', '', ''), // Users need to re-request their password... 923 array('user_style', $config['default_style'], ''), 924 925 array('user_options', '', 'set_user_options'), 926 array('', 'users.user_popup_pm AS popuppm', ''), 927 array('', 'users.user_allowhtml AS html', ''), 928 array('', 'users.user_allowbbcode AS bbcode', ''), 929 array('', 'users.user_allowsmile AS smile', ''), 930 array('', 'users.user_attachsig AS attachsig',''), 931 932 array('user_sig_bbcode_uid', 'users.user_regdate', 'make_uid'), 933 array('user_sig', 'users.user_sig', 'phpbb_prepare_message'), 934 array('', 'users.user_sig_bbcode_uid AS old_bbcode_uid', ''), 935 array('user_sig_bbcode_bitfield', '', 'get_bbcode_bitfield'), 936 array('', 'users.user_regdate AS post_time', ''), 937 938 'where' => 'users.user_id <> -1', 939 ), 940 ), 941 ); 942 } 943 944 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Oct 2 15:03:47 2013 | Cross-referenced by PHPXref 0.7.1 |