[ Index ]

PHP Cross Reference of phpBB-3.2.8-deutsch

title

Body

[close]

/install/convertors/ -> convert_phpbb20.php (source)

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


Generated: Sat Oct 26 11:28:42 2019 Cross-referenced by PHPXref 0.7.1