Verzeichnisstruktur phpBB-3.1.0


Veröffentlicht
27.10.2014

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

release_3_0_0.php

Zuletzt modifiziert: 09.10.2024, 12:57 - Dateigröße: 41.14 KiB


0001  <?php
0002  /**
0003  *
0004  * This file is part of the phpBB Forum Software package.
0005  *
0006  * @copyright (c) phpBB Limited <https://www.phpbb.com>
0007  * @license GNU General Public License, version 2 (GPL-2.0)
0008  *
0009  * For full copyright and license information, please see
0010  * the docs/CREDITS.txt file.
0011  *
0012  */
0013   
0014  namespace phpbb\db\migration\data\v30x;
0015   
0016  class release_3_0_0 extends \phpbb\db\migration\migration
0017  {
0018      public function effectively_installed()
0019      {
0020          return phpbb_version_compare($this->config['version'], '3.0.0', '>=');
0021      }
0022   
0023      public function update_schema()
0024      {
0025          return array(
0026              'add_tables' => array(
0027                  $this->table_prefix . 'attachments'    => array(
0028                      'COLUMNS'    => array(
0029                          'attach_id'    => array('UINT', NULL, 'auto_increment'),
0030                          'post_msg_id'    => array('UINT', 0),
0031                          'topic_id'    => array('UINT', 0),
0032                          'in_message'    => array('BOOL', 0),
0033                          'poster_id'    => array('UINT', 0),
0034                          'is_orphan'    => array('BOOL', 1),
0035                          'physical_filename'    => array('VCHAR', ''),
0036                          'real_filename'    => array('VCHAR', ''),
0037                          'download_count'    => array('UINT', 0),
0038                          'attach_comment'    => array('TEXT_UNI', ''),
0039                          'extension'    => array('VCHAR:100', ''),
0040                          'mimetype'    => array('VCHAR:100', ''),
0041                          'filesize'    => array('UINT:20', 0),
0042                          'filetime'    => array('TIMESTAMP', 0),
0043                          'thumbnail'    => array('BOOL', 0),
0044                      ),
0045                      'PRIMARY_KEY'    => 'attach_id',
0046                      'KEYS'    => array(
0047                          'filetime'    => array('INDEX', 'filetime'),
0048                          'post_msg_id'    => array('INDEX', 'post_msg_id'),
0049                          'topic_id'    => array('INDEX', 'topic_id'),
0050                          'poster_id'    => array('INDEX', 'poster_id'),
0051                          'is_orphan'    => array('INDEX', 'is_orphan'),
0052                      ),
0053                  ),
0054   
0055                  $this->table_prefix . 'acl_groups'    => array(
0056                      'COLUMNS'    => array(
0057                          'group_id'    => array('UINT', 0),
0058                          'forum_id'    => array('UINT', 0),
0059                          'auth_option_id'    => array('UINT', 0),
0060                          'auth_role_id'    => array('UINT', 0),
0061                          'auth_setting'    => array('TINT:2', 0),
0062                      ),
0063                      'KEYS'    => array(
0064                          'group_id'    => array('INDEX', 'group_id'),
0065                          'auth_opt_id'    => array('INDEX', 'auth_option_id'),
0066                          'auth_role_id'    => array('INDEX', 'auth_role_id'),
0067                      ),
0068                  ),
0069   
0070                  $this->table_prefix . 'acl_options'    => array(
0071                      'COLUMNS'    => array(
0072                          'auth_option_id'    => array('UINT', NULL, 'auto_increment'),
0073                          'auth_option'    => array('VCHAR:50', ''),
0074                          'is_global'    => array('BOOL', 0),
0075                          'is_local'    => array('BOOL', 0),
0076                          'founder_only'    => array('BOOL', 0),
0077                      ),
0078                      'PRIMARY_KEY'    => 'auth_option_id',
0079                      'KEYS'    => array(
0080                          'auth_option'    => array('INDEX', 'auth_option'),
0081                      ),
0082                  ),
0083   
0084                  $this->table_prefix . 'acl_roles'    => array(
0085                      'COLUMNS'    => array(
0086                          'role_id'    => array('UINT', NULL, 'auto_increment'),
0087                          'role_name'    => array('VCHAR_UNI', ''),
0088                          'role_description'    => array('TEXT_UNI', ''),
0089                          'role_type'    => array('VCHAR:10', ''),
0090                          'role_order'    => array('USINT', 0),
0091                      ),
0092                      'PRIMARY_KEY'    => 'role_id',
0093                      'KEYS'    => array(
0094                          'role_type'    => array('INDEX', 'role_type'),
0095                          'role_order'    => array('INDEX', 'role_order'),
0096                      ),
0097                  ),
0098   
0099                  $this->table_prefix . 'acl_roles_data'    => array(
0100                      'COLUMNS'    => array(
0101                          'role_id'    => array('UINT', 0),
0102                          'auth_option_id'    => array('UINT', 0),
0103                          'auth_setting'    => array('TINT:2', 0),
0104                      ),
0105                      'PRIMARY_KEY'    => array('role_id', 'auth_option_id'),
0106                      'KEYS'    => array(
0107                          'ath_op_id'    => array('INDEX', 'auth_option_id'),
0108                      ),
0109                  ),
0110   
0111                  $this->table_prefix . 'acl_users'    => array(
0112                      'COLUMNS'    => array(
0113                          'user_id'    => array('UINT', 0),
0114                          'forum_id'    => array('UINT', 0),
0115                          'auth_option_id'    => array('UINT', 0),
0116                          'auth_role_id'    => array('UINT', 0),
0117                          'auth_setting'    => array('TINT:2', 0),
0118                      ),
0119                      'KEYS'    => array(
0120                          'user_id'    => array('INDEX', 'user_id'),
0121                          'auth_option_id'    => array('INDEX', 'auth_option_id'),
0122                          'auth_role_id'    => array('INDEX', 'auth_role_id'),
0123                      ),
0124                  ),
0125   
0126                  $this->table_prefix . 'banlist'    => array(
0127                      'COLUMNS'    => array(
0128                          'ban_id'    => array('UINT', NULL, 'auto_increment'),
0129                          'ban_userid'    => array('UINT', 0),
0130                          'ban_ip'    => array('VCHAR:40', ''),
0131                          'ban_email'    => array('VCHAR_UNI:100', ''),
0132                          'ban_start'    => array('TIMESTAMP', 0),
0133                          'ban_end'    => array('TIMESTAMP', 0),
0134                          'ban_exclude'    => array('BOOL', 0),
0135                          'ban_reason'    => array('VCHAR_UNI', ''),
0136                          'ban_give_reason'    => array('VCHAR_UNI', ''),
0137                      ),
0138                      'PRIMARY_KEY'    => 'ban_id',
0139                      'KEYS'    => array(
0140                          'ban_end'    => array('INDEX', 'ban_end'),
0141                          'ban_user'    => array('INDEX', array('ban_userid', 'ban_exclude')),
0142                          'ban_email'    => array('INDEX', array('ban_email', 'ban_exclude')),
0143                          'ban_ip'    => array('INDEX', array('ban_ip', 'ban_exclude')),
0144                      ),
0145                  ),
0146   
0147                  $this->table_prefix . 'bbcodes'    => array(
0148                      'COLUMNS'    => array(
0149                          'bbcode_id'    => array('TINT:3', 0),
0150                          'bbcode_tag'    => array('VCHAR:16', ''),
0151                          'bbcode_helpline'    => array('VCHAR_UNI', ''),
0152                          'display_on_posting'    => array('BOOL', 0),
0153                          'bbcode_match'    => array('TEXT_UNI', ''),
0154                          'bbcode_tpl'    => array('MTEXT_UNI', ''),
0155                          'first_pass_match'    => array('MTEXT_UNI', ''),
0156                          'first_pass_replace'    => array('MTEXT_UNI', ''),
0157                          'second_pass_match'    => array('MTEXT_UNI', ''),
0158                          'second_pass_replace'    => array('MTEXT_UNI', ''),
0159                      ),
0160                      'PRIMARY_KEY'    => 'bbcode_id',
0161                      'KEYS'    => array(
0162                          'display_on_post'    => array('INDEX', 'display_on_posting'),
0163                      ),
0164                  ),
0165   
0166                  $this->table_prefix . 'bookmarks'    => array(
0167                      'COLUMNS'    => array(
0168                          'topic_id'    => array('UINT', 0),
0169                          'user_id'    => array('UINT', 0),
0170                      ),
0171                      'PRIMARY_KEY'    => array('topic_id', 'user_id'),
0172                  ),
0173   
0174                  $this->table_prefix . 'bots'    => array(
0175                      'COLUMNS'    => array(
0176                          'bot_id'    => array('UINT', NULL, 'auto_increment'),
0177                          'bot_active'    => array('BOOL', 1),
0178                          'bot_name'    => array('STEXT_UNI', ''),
0179                          'user_id'    => array('UINT', 0),
0180                          'bot_agent'    => array('VCHAR', ''),
0181                          'bot_ip'    => array('VCHAR', ''),
0182                      ),
0183                      'PRIMARY_KEY'    => 'bot_id',
0184                      'KEYS'    => array(
0185                          'bot_active'    => array('INDEX', 'bot_active'),
0186                      ),
0187                  ),
0188   
0189                  $this->table_prefix . 'config'    => array(
0190                      'COLUMNS'    => array(
0191                          'config_name'    => array('VCHAR', ''),
0192                          'config_value'    => array('VCHAR_UNI', ''),
0193                          'is_dynamic'    => array('BOOL', 0),
0194                      ),
0195                      'PRIMARY_KEY'    => 'config_name',
0196                      'KEYS'    => array(
0197                          'is_dynamic'    => array('INDEX', 'is_dynamic'),
0198                      ),
0199                  ),
0200   
0201                  $this->table_prefix . 'confirm'    => array(
0202                      'COLUMNS'    => array(
0203                          'confirm_id'    => array('CHAR:32', ''),
0204                          'session_id'    => array('CHAR:32', ''),
0205                          'confirm_type'    => array('TINT:3', 0),
0206                          'code'    => array('VCHAR:8', ''),
0207                          'seed'    => array('UINT:10', 0),
0208                      ),
0209                      'PRIMARY_KEY'    => array('session_id', 'confirm_id'),
0210                      'KEYS'    => array(
0211                          'confirm_type'    => array('INDEX', 'confirm_type'),
0212                      ),
0213                  ),
0214   
0215                  $this->table_prefix . 'disallow'    => array(
0216                      'COLUMNS'    => array(
0217                          'disallow_id'    => array('UINT', NULL, 'auto_increment'),
0218                          'disallow_username'    => array('VCHAR_UNI:255', ''),
0219                      ),
0220                      'PRIMARY_KEY'    => 'disallow_id',
0221                  ),
0222   
0223                  $this->table_prefix . 'drafts'    => array(
0224                      'COLUMNS'    => array(
0225                          'draft_id'    => array('UINT', NULL, 'auto_increment'),
0226                          'user_id'    => array('UINT', 0),
0227                          'topic_id'    => array('UINT', 0),
0228                          'forum_id'    => array('UINT', 0),
0229                          'save_time'    => array('TIMESTAMP', 0),
0230                          'draft_subject'    => array('XSTEXT_UNI', ''),
0231                          'draft_message'    => array('MTEXT_UNI', ''),
0232                      ),
0233                      'PRIMARY_KEY'    => 'draft_id',
0234                      'KEYS'    => array(
0235                          'save_time'    => array('INDEX', 'save_time'),
0236                      ),
0237                  ),
0238   
0239                  $this->table_prefix . 'extensions'    => array(
0240                      'COLUMNS'    => array(
0241                          'extension_id'    => array('UINT', NULL, 'auto_increment'),
0242                          'group_id'    => array('UINT', 0),
0243                          'extension'    => array('VCHAR:100', ''),
0244                      ),
0245                      'PRIMARY_KEY'    => 'extension_id',
0246                  ),
0247   
0248                  $this->table_prefix . 'extension_groups'    => array(
0249                      'COLUMNS'    => array(
0250                          'group_id'    => array('UINT', NULL, 'auto_increment'),
0251                          'group_name'    => array('VCHAR_UNI', ''),
0252                          'cat_id'    => array('TINT:2', 0),
0253                          'allow_group'    => array('BOOL', 0),
0254                          'download_mode'    => array('BOOL', 1),
0255                          'upload_icon'    => array('VCHAR', ''),
0256                          'max_filesize'    => array('UINT:20', 0),
0257                          'allowed_forums'    => array('TEXT', ''),
0258                          'allow_in_pm'    => array('BOOL', 0),
0259                      ),
0260                      'PRIMARY_KEY'    => 'group_id',
0261                  ),
0262   
0263                  $this->table_prefix . 'forums'    => array(
0264                      'COLUMNS'    => array(
0265                          'forum_id'    => array('UINT', NULL, 'auto_increment'),
0266                          'parent_id'    => array('UINT', 0),
0267                          'left_id'    => array('UINT', 0),
0268                          'right_id'    => array('UINT', 0),
0269                          'forum_parents'    => array('MTEXT', ''),
0270                          'forum_name'    => array('STEXT_UNI', ''),
0271                          'forum_desc'    => array('TEXT_UNI', ''),
0272                          'forum_desc_bitfield'    => array('VCHAR:255', ''),
0273                          'forum_desc_options'    => array('UINT:11', 7),
0274                          'forum_desc_uid'    => array('VCHAR:8', ''),
0275                          'forum_link'    => array('VCHAR_UNI', ''),
0276                          'forum_password'    => array('VCHAR_UNI:40', ''),
0277                          'forum_style'    => array('USINT', 0),
0278                          'forum_image'    => array('VCHAR', ''),
0279                          'forum_rules'    => array('TEXT_UNI', ''),
0280                          'forum_rules_link'    => array('VCHAR_UNI', ''),
0281                          'forum_rules_bitfield'    => array('VCHAR:255', ''),
0282                          'forum_rules_options'    => array('UINT:11', 7),
0283                          'forum_rules_uid'    => array('VCHAR:8', ''),
0284                          'forum_topics_per_page'    => array('TINT:4', 0),
0285                          'forum_type'    => array('TINT:4', 0),
0286                          'forum_status'    => array('TINT:4', 0),
0287                          'forum_posts'    => array('UINT', 0),
0288                          'forum_topics'    => array('UINT', 0),
0289                          'forum_topics_real'    => array('UINT', 0),
0290                          'forum_last_post_id'    => array('UINT', 0),
0291                          'forum_last_poster_id'    => array('UINT', 0),
0292                          'forum_last_post_subject' => array('XSTEXT_UNI', ''),
0293                          'forum_last_post_time'    => array('TIMESTAMP', 0),
0294                          'forum_last_poster_name'=> array('VCHAR_UNI', ''),
0295                          'forum_last_poster_colour'=> array('VCHAR:6', ''),
0296                          'forum_flags'    => array('TINT:4', 32),
0297                          'display_on_index'    => array('BOOL', 1),
0298                          'enable_indexing'    => array('BOOL', 1),
0299                          'enable_icons'    => array('BOOL', 1),
0300                          'enable_prune'    => array('BOOL', 0),
0301                          'prune_next'    => array('TIMESTAMP', 0),
0302                          'prune_days'    => array('UINT', 0),
0303                          'prune_viewed'    => array('UINT', 0),
0304                          'prune_freq'    => array('UINT', 0),
0305                      ),
0306                      'PRIMARY_KEY'    => 'forum_id',
0307                      'KEYS'    => array(
0308                          'left_right_id'    => array('INDEX', array('left_id', 'right_id')),
0309                          'forum_lastpost_id'    => array('INDEX', 'forum_last_post_id'),
0310                      ),
0311                  ),
0312   
0313                  $this->table_prefix . 'forums_access'    => array(
0314                      'COLUMNS'    => array(
0315                          'forum_id'    => array('UINT', 0),
0316                          'user_id'    => array('UINT', 0),
0317                          'session_id'    => array('CHAR:32', ''),
0318                      ),
0319                      'PRIMARY_KEY'    => array('forum_id', 'user_id', 'session_id'),
0320                  ),
0321   
0322                  $this->table_prefix . 'forums_track'    => array(
0323                      'COLUMNS'    => array(
0324                          'user_id'    => array('UINT', 0),
0325                          'forum_id'    => array('UINT', 0),
0326                          'mark_time'    => array('TIMESTAMP', 0),
0327                      ),
0328                      'PRIMARY_KEY'    => array('user_id', 'forum_id'),
0329                  ),
0330   
0331                  $this->table_prefix . 'forums_watch'    => array(
0332                      'COLUMNS'    => array(
0333                          'forum_id'    => array('UINT', 0),
0334                          'user_id'    => array('UINT', 0),
0335                          'notify_status'    => array('BOOL', 0),
0336                      ),
0337                      'KEYS'    => array(
0338                          'forum_id'    => array('INDEX', 'forum_id'),
0339                          'user_id'    => array('INDEX', 'user_id'),
0340                          'notify_stat'    => array('INDEX', 'notify_status'),
0341                      ),
0342                  ),
0343   
0344                  $this->table_prefix . 'groups'    => array(
0345                      'COLUMNS'    => array(
0346                          'group_id'    => array('UINT', NULL, 'auto_increment'),
0347                          'group_type'    => array('TINT:4', 1),
0348                          'group_founder_manage'    => array('BOOL', 0),
0349                          'group_name'    => array('VCHAR_CI', ''),
0350                          'group_desc'    => array('TEXT_UNI', ''),
0351                          'group_desc_bitfield'    => array('VCHAR:255', ''),
0352                          'group_desc_options'    => array('UINT:11', 7),
0353                          'group_desc_uid'    => array('VCHAR:8', ''),
0354                          'group_display'    => array('BOOL', 0),
0355                          'group_avatar'    => array('VCHAR', ''),
0356                          'group_avatar_type'    => array('TINT:2', 0),
0357                          'group_avatar_width'    => array('USINT', 0),
0358                          'group_avatar_height'    => array('USINT', 0),
0359                          'group_rank'    => array('UINT', 0),
0360                          'group_colour'    => array('VCHAR:6', ''),
0361                          'group_sig_chars'    => array('UINT', 0),
0362                          'group_receive_pm'    => array('BOOL', 0),
0363                          'group_message_limit'    => array('UINT', 0),
0364                          'group_legend'    => array('BOOL', 1),
0365                      ),
0366                      'PRIMARY_KEY'    => 'group_id',
0367                      'KEYS'    => array(
0368                          'group_legend'    => array('INDEX', 'group_legend'),
0369                      ),
0370                  ),
0371   
0372                  $this->table_prefix . 'icons'    => array(
0373                      'COLUMNS'    => array(
0374                          'icons_id'    => array('UINT', NULL, 'auto_increment'),
0375                          'icons_url'    => array('VCHAR', ''),
0376                          'icons_width'    => array('TINT:4', 0),
0377                          'icons_height'    => array('TINT:4', 0),
0378                          'icons_order'    => array('UINT', 0),
0379                          'display_on_posting'    => array('BOOL', 1),
0380                      ),
0381                      'PRIMARY_KEY'    => 'icons_id',
0382                      'KEYS'    => array(
0383                          'display_on_posting'    => array('INDEX', 'display_on_posting'),
0384                      ),
0385                  ),
0386   
0387                  $this->table_prefix . 'lang'    => array(
0388                      'COLUMNS'    => array(
0389                          'lang_id'    => array('TINT:4', NULL, 'auto_increment'),
0390                          'lang_iso'    => array('VCHAR:30', ''),
0391                          'lang_dir'    => array('VCHAR:30', ''),
0392                          'lang_english_name'    => array('VCHAR_UNI:100', ''),
0393                          'lang_local_name'    => array('VCHAR_UNI:255', ''),
0394                          'lang_author'    => array('VCHAR_UNI:255', ''),
0395                      ),
0396                      'PRIMARY_KEY'    => 'lang_id',
0397                      'KEYS'    => array(
0398                          'lang_iso'    => array('INDEX', 'lang_iso'),
0399                      ),
0400                  ),
0401   
0402                  $this->table_prefix . 'log'    => array(
0403                      'COLUMNS'    => array(
0404                          'log_id'    => array('UINT', NULL, 'auto_increment'),
0405                          'log_type'    => array('TINT:4', 0),
0406                          'user_id'    => array('UINT', 0),
0407                          'forum_id'    => array('UINT', 0),
0408                          'topic_id'    => array('UINT', 0),
0409                          'reportee_id'    => array('UINT', 0),
0410                          'log_ip'    => array('VCHAR:40', ''),
0411                          'log_time'    => array('TIMESTAMP', 0),
0412                          'log_operation'    => array('TEXT_UNI', ''),
0413                          'log_data'    => array('MTEXT_UNI', ''),
0414                      ),
0415                      'PRIMARY_KEY'    => 'log_id',
0416                      'KEYS'    => array(
0417                          'log_type'    => array('INDEX', 'log_type'),
0418                          'forum_id'    => array('INDEX', 'forum_id'),
0419                          'topic_id'    => array('INDEX', 'topic_id'),
0420                          'reportee_id'    => array('INDEX', 'reportee_id'),
0421                          'user_id'    => array('INDEX', 'user_id'),
0422                      ),
0423                  ),
0424   
0425                  $this->table_prefix . 'moderator_cache'    => array(
0426                      'COLUMNS'    => array(
0427                          'forum_id'    => array('UINT', 0),
0428                          'user_id'    => array('UINT', 0),
0429                          'username'    => array('VCHAR_UNI:255', ''),
0430                          'group_id'    => array('UINT', 0),
0431                          'group_name'    => array('VCHAR_UNI', ''),
0432                          'display_on_index'    => array('BOOL', 1),
0433                      ),
0434                      'KEYS'    => array(
0435                          'disp_idx'    => array('INDEX', 'display_on_index'),
0436                          'forum_id'    => array('INDEX', 'forum_id'),
0437                      ),
0438                  ),
0439   
0440                  $this->table_prefix . 'modules'    => array(
0441                      'COLUMNS'    => array(
0442                          'module_id'    => array('UINT', NULL, 'auto_increment'),
0443                          'module_enabled'    => array('BOOL', 1),
0444                          'module_display'    => array('BOOL', 1),
0445                          'module_basename'    => array('VCHAR', ''),
0446                          'module_class'    => array('VCHAR:10', ''),
0447                          'parent_id'    => array('UINT', 0),
0448                          'left_id'    => array('UINT', 0),
0449                          'right_id'    => array('UINT', 0),
0450                          'module_langname'    => array('VCHAR', ''),
0451                          'module_mode'    => array('VCHAR', ''),
0452                          'module_auth'    => array('VCHAR', ''),
0453                      ),
0454                      'PRIMARY_KEY'    => 'module_id',
0455                      'KEYS'    => array(
0456                          'left_right_id'    => array('INDEX', array('left_id', 'right_id')),
0457                          'module_enabled'    => array('INDEX', 'module_enabled'),
0458                          'class_left_id'    => array('INDEX', array('module_class', 'left_id')),
0459                      ),
0460                  ),
0461   
0462                  $this->table_prefix . 'poll_options'    => array(
0463                      'COLUMNS'    => array(
0464                          'poll_option_id'    => array('TINT:4', 0),
0465                          'topic_id'    => array('UINT', 0),
0466                          'poll_option_text'    => array('TEXT_UNI', ''),
0467                          'poll_option_total'    => array('UINT', 0),
0468                      ),
0469                      'KEYS'    => array(
0470                          'poll_opt_id'    => array('INDEX', 'poll_option_id'),
0471                          'topic_id'    => array('INDEX', 'topic_id'),
0472                      ),
0473                  ),
0474   
0475                  $this->table_prefix . 'poll_votes'    => array(
0476                      'COLUMNS'    => array(
0477                          'topic_id'    => array('UINT', 0),
0478                          'poll_option_id'    => array('TINT:4', 0),
0479                          'vote_user_id'    => array('UINT', 0),
0480                          'vote_user_ip'    => array('VCHAR:40', ''),
0481                      ),
0482                      'KEYS'    => array(
0483                          'topic_id'    => array('INDEX', 'topic_id'),
0484                          'vote_user_id'    => array('INDEX', 'vote_user_id'),
0485                          'vote_user_ip'    => array('INDEX', 'vote_user_ip'),
0486                      ),
0487                  ),
0488   
0489                  $this->table_prefix . 'posts'    => array(
0490                      'COLUMNS'    => array(
0491                          'post_id'    => array('UINT', NULL, 'auto_increment'),
0492                          'topic_id'    => array('UINT', 0),
0493                          'forum_id'    => array('UINT', 0),
0494                          'poster_id'    => array('UINT', 0),
0495                          'icon_id'    => array('UINT', 0),
0496                          'poster_ip'    => array('VCHAR:40', ''),
0497                          'post_time'    => array('TIMESTAMP', 0),
0498                          'post_approved'    => array('BOOL', 1),
0499                          'post_reported'    => array('BOOL', 0),
0500                          'enable_bbcode'    => array('BOOL', 1),
0501                          'enable_smilies'    => array('BOOL', 1),
0502                          'enable_magic_url'    => array('BOOL', 1),
0503                          'enable_sig'    => array('BOOL', 1),
0504                          'post_username'    => array('VCHAR_UNI:255', ''),
0505                          'post_subject'    => array('XSTEXT_UNI', '', 'true_sort'),
0506                          'post_text'    => array('MTEXT_UNI', ''),
0507                          'post_checksum'    => array('VCHAR:32', ''),
0508                          'post_attachment'    => array('BOOL', 0),
0509                          'bbcode_bitfield'    => array('VCHAR:255', ''),
0510                          'bbcode_uid'    => array('VCHAR:8', ''),
0511                          'post_postcount'    => array('BOOL', 1),
0512                          'post_edit_time'    => array('TIMESTAMP', 0),
0513                          'post_edit_reason'    => array('STEXT_UNI', ''),
0514                          'post_edit_user'    => array('UINT', 0),
0515                          'post_edit_count'    => array('USINT', 0),
0516                          'post_edit_locked'    => array('BOOL', 0),
0517                      ),
0518                      'PRIMARY_KEY'    => 'post_id',
0519                      'KEYS'    => array(
0520                          'forum_id'    => array('INDEX', 'forum_id'),
0521                          'topic_id'    => array('INDEX', 'topic_id'),
0522                          'poster_ip'    => array('INDEX', 'poster_ip'),
0523                          'poster_id'    => array('INDEX', 'poster_id'),
0524                          'post_approved'    => array('INDEX', 'post_approved'),
0525                          'tid_post_time'    => array('INDEX', array('topic_id', 'post_time')),
0526                      ),
0527                  ),
0528   
0529                  $this->table_prefix . 'privmsgs'    => array(
0530                      'COLUMNS'    => array(
0531                          'msg_id'    => array('UINT', NULL, 'auto_increment'),
0532                          'root_level'    => array('UINT', 0),
0533                          'author_id'    => array('UINT', 0),
0534                          'icon_id'    => array('UINT', 0),
0535                          'author_ip'    => array('VCHAR:40', ''),
0536                          'message_time'    => array('TIMESTAMP', 0),
0537                          'enable_bbcode'    => array('BOOL', 1),
0538                          'enable_smilies'    => array('BOOL', 1),
0539                          'enable_magic_url'    => array('BOOL', 1),
0540                          'enable_sig'    => array('BOOL', 1),
0541                          'message_subject'    => array('XSTEXT_UNI', ''),
0542                          'message_text'    => array('MTEXT_UNI', ''),
0543                          'message_edit_reason'    => array('STEXT_UNI', ''),
0544                          'message_edit_user'    => array('UINT', 0),
0545                          'message_attachment'    => array('BOOL', 0),
0546                          'bbcode_bitfield'    => array('VCHAR:255', ''),
0547                          'bbcode_uid'    => array('VCHAR:8', ''),
0548                          'message_edit_time'    => array('TIMESTAMP', 0),
0549                          'message_edit_count'    => array('USINT', 0),
0550                          'to_address'    => array('TEXT_UNI', ''),
0551                          'bcc_address'    => array('TEXT_UNI', ''),
0552                      ),
0553                      'PRIMARY_KEY'    => 'msg_id',
0554                      'KEYS'    => array(
0555                          'author_ip'    => array('INDEX', 'author_ip'),
0556                          'message_time'    => array('INDEX', 'message_time'),
0557                          'author_id'    => array('INDEX', 'author_id'),
0558                          'root_level'    => array('INDEX', 'root_level'),
0559                      ),
0560                  ),
0561   
0562                  $this->table_prefix . 'privmsgs_folder'    => array(
0563                      'COLUMNS'    => array(
0564                          'folder_id'    => array('UINT', NULL, 'auto_increment'),
0565                          'user_id'    => array('UINT', 0),
0566                          'folder_name'    => array('VCHAR_UNI', ''),
0567                          'pm_count'    => array('UINT', 0),
0568                      ),
0569                      'PRIMARY_KEY'    => 'folder_id',
0570                      'KEYS'    => array(
0571                          'user_id'    => array('INDEX', 'user_id'),
0572                      ),
0573                  ),
0574   
0575                  $this->table_prefix . 'privmsgs_rules'    => array(
0576                      'COLUMNS'    => array(
0577                          'rule_id'    => array('UINT', NULL, 'auto_increment'),
0578                          'user_id'    => array('UINT', 0),
0579                          'rule_check'    => array('UINT', 0),
0580                          'rule_connection'    => array('UINT', 0),
0581                          'rule_string'    => array('VCHAR_UNI', ''),
0582                          'rule_user_id'    => array('UINT', 0),
0583                          'rule_group_id'    => array('UINT', 0),
0584                          'rule_action'    => array('UINT', 0),
0585                          'rule_folder_id'    => array('INT:11', 0),
0586                      ),
0587                      'PRIMARY_KEY'    => 'rule_id',
0588                      'KEYS'    => array(
0589                          'user_id'    => array('INDEX', 'user_id'),
0590                      ),
0591                  ),
0592   
0593                  $this->table_prefix . 'privmsgs_to'    => array(
0594                      'COLUMNS'    => array(
0595                          'msg_id'    => array('UINT', 0),
0596                          'user_id'    => array('UINT', 0),
0597                          'author_id'    => array('UINT', 0),
0598                          'pm_deleted'    => array('BOOL', 0),
0599                          'pm_new'    => array('BOOL', 1),
0600                          'pm_unread'    => array('BOOL', 1),
0601                          'pm_replied'    => array('BOOL', 0),
0602                          'pm_marked'    => array('BOOL', 0),
0603                          'pm_forwarded'    => array('BOOL', 0),
0604                          'folder_id'    => array('INT:11', 0),
0605                      ),
0606                      'KEYS'    => array(
0607                          'msg_id'    => array('INDEX', 'msg_id'),
0608                          'author_id'    => array('INDEX', 'author_id'),
0609                          'usr_flder_id'    => array('INDEX', array('user_id', 'folder_id')),
0610                      ),
0611                  ),
0612   
0613                  $this->table_prefix . 'profile_fields'    => array(
0614                      'COLUMNS'    => array(
0615                          'field_id'    => array('UINT', NULL, 'auto_increment'),
0616                          'field_name'    => array('VCHAR_UNI', ''),
0617                          'field_type'    => array('TINT:4', 0),
0618                          'field_ident'    => array('VCHAR:20', ''),
0619                          'field_length'    => array('VCHAR:20', ''),
0620                          'field_minlen'    => array('VCHAR', ''),
0621                          'field_maxlen'    => array('VCHAR', ''),
0622                          'field_novalue'    => array('VCHAR_UNI', ''),
0623                          'field_default_value'    => array('VCHAR_UNI', ''),
0624                          'field_validation'    => array('VCHAR_UNI:20', ''),
0625                          'field_required'    => array('BOOL', 0),
0626                          'field_show_on_reg'    => array('BOOL', 0),
0627                          'field_hide'    => array('BOOL', 0),
0628                          'field_no_view'    => array('BOOL', 0),
0629                          'field_active'    => array('BOOL', 0),
0630                          'field_order'    => array('UINT', 0),
0631                      ),
0632                      'PRIMARY_KEY'    => 'field_id',
0633                      'KEYS'    => array(
0634                          'fld_type'    => array('INDEX', 'field_type'),
0635                          'fld_ordr'    => array('INDEX', 'field_order'),
0636                      ),
0637                  ),
0638   
0639                  $this->table_prefix . 'profile_fields_data'    => array(
0640                      'COLUMNS'    => array(
0641                          'user_id'    => array('UINT', 0),
0642                      ),
0643                      'PRIMARY_KEY'    => 'user_id',
0644                  ),
0645   
0646                  $this->table_prefix . 'profile_fields_lang'    => array(
0647                      'COLUMNS'    => array(
0648                          'field_id'    => array('UINT', 0),
0649                          'lang_id'    => array('UINT', 0),
0650                          'option_id'    => array('UINT', 0),
0651                          'field_type'    => array('TINT:4', 0),
0652                          'lang_value'    => array('VCHAR_UNI', ''),
0653                      ),
0654                      'PRIMARY_KEY'    => array('field_id', 'lang_id', 'option_id'),
0655                  ),
0656   
0657                  $this->table_prefix . 'profile_lang'    => array(
0658                      'COLUMNS'    => array(
0659                          'field_id'    => array('UINT', 0),
0660                          'lang_id'    => array('UINT', 0),
0661                          'lang_name'    => array('VCHAR_UNI', ''),
0662                          'lang_explain'    => array('TEXT_UNI', ''),
0663                          'lang_default_value'    => array('VCHAR_UNI', ''),
0664                      ),
0665                      'PRIMARY_KEY'    => array('field_id', 'lang_id'),
0666                  ),
0667   
0668                  $this->table_prefix . 'ranks'    => array(
0669                      'COLUMNS'    => array(
0670                          'rank_id'    => array('UINT', NULL, 'auto_increment'),
0671                          'rank_title'    => array('VCHAR_UNI', ''),
0672                          'rank_min'    => array('UINT', 0),
0673                          'rank_special'    => array('BOOL', 0),
0674                          'rank_image'    => array('VCHAR', ''),
0675                      ),
0676                      'PRIMARY_KEY'    => 'rank_id',
0677                  ),
0678   
0679                  $this->table_prefix . 'reports'    => array(
0680                      'COLUMNS'    => array(
0681                          'report_id'    => array('UINT', NULL, 'auto_increment'),
0682                          'reason_id'    => array('USINT', 0),
0683                          'post_id'    => array('UINT', 0),
0684                          'user_id'    => array('UINT', 0),
0685                          'user_notify'    => array('BOOL', 0),
0686                          'report_closed'    => array('BOOL', 0),
0687                          'report_time'    => array('TIMESTAMP', 0),
0688                          'report_text'    => array('MTEXT_UNI', ''),
0689                      ),
0690                      'PRIMARY_KEY'    => 'report_id',
0691                  ),
0692   
0693                  $this->table_prefix . 'reports_reasons'    => array(
0694                      'COLUMNS'    => array(
0695                          'reason_id'    => array('USINT', NULL, 'auto_increment'),
0696                          'reason_title'    => array('VCHAR_UNI', ''),
0697                          'reason_description'    => array('MTEXT_UNI', ''),
0698                          'reason_order'    => array('USINT', 0),
0699                      ),
0700                      'PRIMARY_KEY'    => 'reason_id',
0701                  ),
0702   
0703                  $this->table_prefix . 'search_results'    => array(
0704                      'COLUMNS'    => array(
0705                          'search_key'    => array('VCHAR:32', ''),
0706                          'search_time'    => array('TIMESTAMP', 0),
0707                          'search_keywords'    => array('MTEXT_UNI', ''),
0708                          'search_authors'    => array('MTEXT', ''),
0709                      ),
0710                      'PRIMARY_KEY'    => 'search_key',
0711                  ),
0712   
0713                  $this->table_prefix . 'search_wordlist'    => array(
0714                      'COLUMNS'    => array(
0715                          'word_id'    => array('UINT', NULL, 'auto_increment'),
0716                          'word_text'    => array('VCHAR_UNI', ''),
0717                          'word_common'    => array('BOOL', 0),
0718                          'word_count'    => array('UINT', 0),
0719                      ),
0720                      'PRIMARY_KEY'    => 'word_id',
0721                      'KEYS'    => array(
0722                          'wrd_txt'    => array('UNIQUE', 'word_text'),
0723                          'wrd_cnt'    => array('INDEX', 'word_count'),
0724                      ),
0725                  ),
0726   
0727                  $this->table_prefix . 'search_wordmatch'    => array(
0728                      'COLUMNS'    => array(
0729                          'post_id'    => array('UINT', 0),
0730                          'word_id'    => array('UINT', 0),
0731                          'title_match'    => array('BOOL', 0),
0732                      ),
0733                      'KEYS'    => array(
0734                          'unq_mtch'    => array('UNIQUE', array('word_id', 'post_id', 'title_match')),
0735                          'word_id'    => array('INDEX', 'word_id'),
0736                          'post_id'    => array('INDEX', 'post_id'),
0737                      ),
0738                  ),
0739   
0740                  $this->table_prefix . 'sessions'    => array(
0741                      'COLUMNS'    => array(
0742                          'session_id'    => array('CHAR:32', ''),
0743                          'session_user_id'    => array('UINT', 0),
0744                          'session_last_visit'    => array('TIMESTAMP', 0),
0745                          'session_start'    => array('TIMESTAMP', 0),
0746                          'session_time'    => array('TIMESTAMP', 0),
0747                          'session_ip'    => array('VCHAR:40', ''),
0748                          'session_browser'    => array('VCHAR:150', ''),
0749                          'session_forwarded_for'    => array('VCHAR:255', ''),
0750                          'session_page'    => array('VCHAR_UNI', ''),
0751                          'session_viewonline'    => array('BOOL', 1),
0752                          'session_autologin'    => array('BOOL', 0),
0753                          'session_admin'    => array('BOOL', 0),
0754                      ),
0755                      'PRIMARY_KEY'    => 'session_id',
0756                      'KEYS'    => array(
0757                          'session_time'    => array('INDEX', 'session_time'),
0758                          'session_user_id'    => array('INDEX', 'session_user_id'),
0759                      ),
0760                  ),
0761   
0762                  $this->table_prefix . 'sessions_keys'    => array(
0763                      'COLUMNS'    => array(
0764                          'key_id'    => array('CHAR:32', ''),
0765                          'user_id'    => array('UINT', 0),
0766                          'last_ip'    => array('VCHAR:40', ''),
0767                          'last_login'    => array('TIMESTAMP', 0),
0768                      ),
0769                      'PRIMARY_KEY'    => array('key_id', 'user_id'),
0770                      'KEYS'    => array(
0771                          'last_login'    => array('INDEX', 'last_login'),
0772                      ),
0773                  ),
0774   
0775                  $this->table_prefix . 'sitelist'    => array(
0776                      'COLUMNS'    => array(
0777                          'site_id'    => array('UINT', NULL, 'auto_increment'),
0778                          'site_ip'    => array('VCHAR:40', ''),
0779                          'site_hostname'    => array('VCHAR', ''),
0780                          'ip_exclude'    => array('BOOL', 0),
0781                      ),
0782                      'PRIMARY_KEY'    => 'site_id',
0783                  ),
0784   
0785                  $this->table_prefix . 'smilies'    => array(
0786                      'COLUMNS'    => array(
0787                          'smiley_id'    => array('UINT', NULL, 'auto_increment'),
0788  // We may want to set 'code' to VCHAR:50 or check if unicode support is possible... at the moment only ASCII characters are allowed.
0789                          'code'    => array('VCHAR_UNI:50', ''),
0790                          'emotion'    => array('VCHAR_UNI:50', ''),
0791                          'smiley_url'    => array('VCHAR:50', ''),
0792                          'smiley_width'    => array('USINT', 0),
0793                          'smiley_height'    => array('USINT', 0),
0794                          'smiley_order'    => array('UINT', 0),
0795                          'display_on_posting'=> array('BOOL', 1),
0796                      ),
0797                      'PRIMARY_KEY'    => 'smiley_id',
0798                      'KEYS'    => array(
0799                          'display_on_post'    => array('INDEX', 'display_on_posting'),
0800                      ),
0801                  ),
0802   
0803                  $this->table_prefix . 'styles'    => array(
0804                      'COLUMNS'    => array(
0805                          'style_id'    => array('USINT', NULL, 'auto_increment'),
0806                          'style_name'    => array('VCHAR_UNI:255', ''),
0807                          'style_copyright'    => array('VCHAR_UNI', ''),
0808                          'style_active'    => array('BOOL', 1),
0809                          'template_id'    => array('USINT', 0),
0810                          'theme_id'    => array('USINT', 0),
0811                          'imageset_id'    => array('USINT', 0),
0812                      ),
0813                      'PRIMARY_KEY'    => 'style_id',
0814                      'KEYS'    => array(
0815                          'style_name'    => array('UNIQUE', 'style_name'),
0816                          'template_id'    => array('INDEX', 'template_id'),
0817                          'theme_id'    => array('INDEX', 'theme_id'),
0818                          'imageset_id'    => array('INDEX', 'imageset_id'),
0819                      ),
0820                  ),
0821   
0822                  $this->table_prefix . 'styles_template'    => array(
0823                      'COLUMNS'    => array(
0824                          'template_id'    => array('USINT', NULL, 'auto_increment'),
0825                          'template_name'    => array('VCHAR_UNI:255', ''),
0826                          'template_copyright'    => array('VCHAR_UNI', ''),
0827                          'template_path'    => array('VCHAR:100', ''),
0828                          'bbcode_bitfield'    => array('VCHAR:255', 'kNg='),
0829                          'template_storedb'    => array('BOOL', 0),
0830                      ),
0831                      'PRIMARY_KEY'    => 'template_id',
0832                      'KEYS'    => array(
0833                          'tmplte_nm'    => array('UNIQUE', 'template_name'),
0834                      ),
0835                  ),
0836   
0837                  $this->table_prefix . 'styles_template_data'    => array(
0838                      'COLUMNS'    => array(
0839                          'template_id'    => array('USINT', 0),
0840                          'template_filename'    => array('VCHAR:100', ''),
0841                          'template_included'    => array('TEXT', ''),
0842                          'template_mtime'    => array('TIMESTAMP', 0),
0843                          'template_data'    => array('MTEXT_UNI', ''),
0844                      ),
0845                      'KEYS'    => array(
0846                          'tid'    => array('INDEX', 'template_id'),
0847                          'tfn'    => array('INDEX', 'template_filename'),
0848                      ),
0849                  ),
0850   
0851                  $this->table_prefix . 'styles_theme'    => array(
0852                      'COLUMNS'    => array(
0853                          'theme_id'    => array('USINT', NULL, 'auto_increment'),
0854                          'theme_name'    => array('VCHAR_UNI:255', ''),
0855                          'theme_copyright'    => array('VCHAR_UNI', ''),
0856                          'theme_path'    => array('VCHAR:100', ''),
0857                          'theme_storedb'    => array('BOOL', 0),
0858                          'theme_mtime'    => array('TIMESTAMP', 0),
0859                          'theme_data'    => array('MTEXT_UNI', ''),
0860                      ),
0861                      'PRIMARY_KEY'    => 'theme_id',
0862                      'KEYS'    => array(
0863                          'theme_name'    => array('UNIQUE', 'theme_name'),
0864                      ),
0865                  ),
0866   
0867                  $this->table_prefix . 'styles_imageset'    => array(
0868                      'COLUMNS'    => array(
0869                          'imageset_id'    => array('USINT', NULL, 'auto_increment'),
0870                          'imageset_name'    => array('VCHAR_UNI:255', ''),
0871                          'imageset_copyright'    => array('VCHAR_UNI', ''),
0872                          'imageset_path'    => array('VCHAR:100', ''),
0873                      ),
0874                      'PRIMARY_KEY'    => 'imageset_id',
0875                      'KEYS'    => array(
0876                          'imgset_nm'    => array('UNIQUE', 'imageset_name'),
0877                      ),
0878                  ),
0879   
0880                  $this->table_prefix . 'styles_imageset_data'    => array(
0881                      'COLUMNS'    => array(
0882                          'image_id'    => array('USINT', NULL, 'auto_increment'),
0883                          'image_name'    => array('VCHAR:200', ''),
0884                          'image_filename'    => array('VCHAR:200', ''),
0885                          'image_lang'    => array('VCHAR:30', ''),
0886                          'image_height'    => array('USINT', 0),
0887                          'image_width'    => array('USINT', 0),
0888                          'imageset_id'    => array('USINT', 0),
0889                      ),
0890                      'PRIMARY_KEY'    => 'image_id',
0891                      'KEYS'    => array(
0892                          'i_d'    => array('INDEX', 'imageset_id'),
0893                      ),
0894                  ),
0895   
0896                  $this->table_prefix . 'topics'    => array(
0897                      'COLUMNS'    => array(
0898                          'topic_id'    => array('UINT', NULL, 'auto_increment'),
0899                          'forum_id'    => array('UINT', 0),
0900                          'icon_id'    => array('UINT', 0),
0901                          'topic_attachment'    => array('BOOL', 0),
0902                          'topic_approved'    => array('BOOL', 1),
0903                          'topic_reported'    => array('BOOL', 0),
0904                          'topic_title'    => array('XSTEXT_UNI', '', 'true_sort'),
0905                          'topic_poster'    => array('UINT', 0),
0906                          'topic_time'    => array('TIMESTAMP', 0),
0907                          'topic_time_limit'    => array('TIMESTAMP', 0),
0908                          'topic_views'    => array('UINT', 0),
0909                          'topic_replies'    => array('UINT', 0),
0910                          'topic_replies_real'    => array('UINT', 0),
0911                          'topic_status'    => array('TINT:3', 0),
0912                          'topic_type'    => array('TINT:3', 0),
0913                          'topic_first_post_id'    => array('UINT', 0),
0914                          'topic_first_poster_name'    => array('VCHAR_UNI', ''),
0915                          'topic_first_poster_colour'    => array('VCHAR:6', ''),
0916                          'topic_last_post_id'    => array('UINT', 0),
0917                          'topic_last_poster_id'    => array('UINT', 0),
0918                          'topic_last_poster_name'    => array('VCHAR_UNI', ''),
0919                          'topic_last_poster_colour'    => array('VCHAR:6', ''),
0920                          'topic_last_post_subject'    => array('XSTEXT_UNI', ''),
0921                          'topic_last_post_time'    => array('TIMESTAMP', 0),
0922                          'topic_last_view_time'    => array('TIMESTAMP', 0),
0923                          'topic_moved_id'    => array('UINT', 0),
0924                          'topic_bumped'    => array('BOOL', 0),
0925                          'topic_bumper'    => array('UINT', 0),
0926                          'poll_title'    => array('STEXT_UNI', ''),
0927                          'poll_start'    => array('TIMESTAMP', 0),
0928                          'poll_length'    => array('TIMESTAMP', 0),
0929                          'poll_max_options'    => array('TINT:4', 1),
0930                          'poll_last_vote'    => array('TIMESTAMP', 0),
0931                          'poll_vote_change'    => array('BOOL', 0),
0932                      ),
0933                      'PRIMARY_KEY'    => 'topic_id',
0934                      'KEYS'    => array(
0935                          'forum_id'    => array('INDEX', 'forum_id'),
0936                          'forum_id_type'    => array('INDEX', array('forum_id', 'topic_type')),
0937                          'last_post_time'    => array('INDEX', 'topic_last_post_time'),
0938                          'topic_approved'    => array('INDEX', 'topic_approved'),
0939                          'forum_appr_last'    => array('INDEX', array('forum_id', 'topic_approved', 'topic_last_post_id')),
0940                          'fid_time_moved'    => array('INDEX', array('forum_id', 'topic_last_post_time', 'topic_moved_id')),
0941                      ),
0942                  ),
0943   
0944                  $this->table_prefix . 'topics_track'    => array(
0945                      'COLUMNS'    => array(
0946                          'user_id'    => array('UINT', 0),
0947                          'topic_id'    => array('UINT', 0),
0948                          'forum_id'    => array('UINT', 0),
0949                          'mark_time'    => array('TIMESTAMP', 0),
0950                      ),
0951                      'PRIMARY_KEY'    => array('user_id', 'topic_id'),
0952                      'KEYS'    => array(
0953                          'forum_id'    => array('INDEX', 'forum_id'),
0954                      ),
0955                  ),
0956   
0957                  $this->table_prefix . 'topics_posted'    => array(
0958                      'COLUMNS'    => array(
0959                          'user_id'    => array('UINT', 0),
0960                          'topic_id'    => array('UINT', 0),
0961                          'topic_posted'    => array('BOOL', 0),
0962                      ),
0963                      'PRIMARY_KEY'    => array('user_id', 'topic_id'),
0964                  ),
0965   
0966                  $this->table_prefix . 'topics_watch'    => array(
0967                      'COLUMNS'    => array(
0968                          'topic_id'    => array('UINT', 0),
0969                          'user_id'    => array('UINT', 0),
0970                          'notify_status'    => array('BOOL', 0),
0971                      ),
0972                      'KEYS'    => array(
0973                          'topic_id'    => array('INDEX', 'topic_id'),
0974                          'user_id'    => array('INDEX', 'user_id'),
0975                          'notify_stat'    => array('INDEX', 'notify_status'),
0976                      ),
0977                  ),
0978   
0979                  $this->table_prefix . 'user_group'    => array(
0980                      'COLUMNS'    => array(
0981                          'group_id'    => array('UINT', 0),
0982                          'user_id'    => array('UINT', 0),
0983                          'group_leader'    => array('BOOL', 0),
0984                          'user_pending'    => array('BOOL', 1),
0985                      ),
0986                      'KEYS'    => array(
0987                          'group_id'    => array('INDEX', 'group_id'),
0988                          'user_id'    => array('INDEX', 'user_id'),
0989                          'group_leader'    => array('INDEX', 'group_leader'),
0990                      ),
0991                  ),
0992   
0993                  $this->table_prefix . 'users'    => array(
0994                      'COLUMNS'    => array(
0995                          'user_id'    => array('UINT', NULL, 'auto_increment'),
0996                          'user_type'    => array('TINT:2', 0),
0997                          'group_id'    => array('UINT', 3),
0998                          'user_permissions'    => array('MTEXT', ''),
0999                          'user_perm_from'    => array('UINT', 0),
1000                          'user_ip'    => array('VCHAR:40', ''),
1001                          'user_regdate'    => array('TIMESTAMP', 0),
1002                          'username'    => array('VCHAR_CI', ''),
1003                          'username_clean'    => array('VCHAR_CI', ''),
1004                          'user_password'    => array('VCHAR_UNI:40', ''),
1005                          'user_passchg'    => array('TIMESTAMP', 0),
1006                          'user_pass_convert'    => array('BOOL', 0),
1007                          'user_email'    => array('VCHAR_UNI:100', ''),
1008                          'user_email_hash'    => array('BINT', 0),
1009                          'user_birthday'    => array('VCHAR:10', ''),
1010                          'user_lastvisit'    => array('TIMESTAMP', 0),
1011                          'user_lastmark'    => array('TIMESTAMP', 0),
1012                          'user_lastpost_time'    => array('TIMESTAMP', 0),
1013                          'user_lastpage'    => array('VCHAR_UNI:200', ''),
1014                          'user_last_confirm_key'    => array('VCHAR:10', ''),
1015                          'user_last_search'    => array('TIMESTAMP', 0),
1016                          'user_warnings'    => array('TINT:4', 0),
1017                          'user_last_warning'    => array('TIMESTAMP', 0),
1018                          'user_login_attempts'    => array('TINT:4', 0),
1019                          'user_inactive_reason'    => array('TINT:2', 0),
1020                          'user_inactive_time'    => array('TIMESTAMP', 0),
1021                          'user_posts'    => array('UINT', 0),
1022                          'user_lang'    => array('VCHAR:30', ''),
1023                          'user_timezone'    => array('DECIMAL', 0),
1024                          'user_dst'    => array('BOOL', 0),
1025                          'user_dateformat'    => array('VCHAR_UNI:30', 'd M Y H:i'),
1026                          'user_style'    => array('USINT', 0),
1027                          'user_rank'    => array('UINT', 0),
1028                          'user_colour'    => array('VCHAR:6', ''),
1029                          'user_new_privmsg'    => array('INT:4', 0),
1030                          'user_unread_privmsg'    => array('INT:4', 0),
1031                          'user_last_privmsg'    => array('TIMESTAMP', 0),
1032                          'user_message_rules'    => array('BOOL', 0),
1033                          'user_full_folder'    => array('INT:11', -3),
1034                          'user_emailtime'    => array('TIMESTAMP', 0),
1035                          'user_topic_show_days'    => array('USINT', 0),
1036                          'user_topic_sortby_type'    => array('VCHAR:1', 't'),
1037                          'user_topic_sortby_dir'    => array('VCHAR:1', 'd'),
1038                          'user_post_show_days'    => array('USINT', 0),
1039                          'user_post_sortby_type'    => array('VCHAR:1', 't'),
1040                          'user_post_sortby_dir'    => array('VCHAR:1', 'a'),
1041                          'user_notify'    => array('BOOL', 0),
1042                          'user_notify_pm'    => array('BOOL', 1),
1043                          'user_notify_type'    => array('TINT:4', 0),
1044                          'user_allow_pm'    => array('BOOL', 1),
1045                          'user_allow_viewonline'    => array('BOOL', 1),
1046                          'user_allow_viewemail'    => array('BOOL', 1),
1047                          'user_allow_massemail'    => array('BOOL', 1),
1048                          'user_options'    => array('UINT:11', 895),
1049                          'user_avatar'    => array('VCHAR', ''),
1050                          'user_avatar_type'    => array('TINT:2', 0),
1051                          'user_avatar_width'    => array('USINT', 0),
1052                          'user_avatar_height'    => array('USINT', 0),
1053                          'user_sig'    => array('MTEXT_UNI', ''),
1054                          'user_sig_bbcode_uid'    => array('VCHAR:8', ''),
1055                          'user_sig_bbcode_bitfield'    => array('VCHAR:255', ''),
1056                          'user_from'    => array('VCHAR_UNI:100', ''),
1057                          'user_icq'    => array('VCHAR:15', ''),
1058                          'user_aim'    => array('VCHAR_UNI', ''),
1059                          'user_yim'    => array('VCHAR_UNI', ''),
1060                          'user_msnm'    => array('VCHAR_UNI', ''),
1061                          'user_jabber'    => array('VCHAR_UNI', ''),
1062                          'user_website'    => array('VCHAR_UNI:200', ''),
1063                          'user_occ'    => array('TEXT_UNI', ''),
1064                          'user_interests'    => array('TEXT_UNI', ''),
1065                          'user_actkey'    => array('VCHAR:32', ''),
1066                          'user_newpasswd'    => array('VCHAR_UNI:40', ''),
1067                          'user_form_salt'    => array('VCHAR_UNI:32', ''),
1068   
1069                      ),
1070                      'PRIMARY_KEY'    => 'user_id',
1071                      'KEYS'    => array(
1072                          'user_birthday'    => array('INDEX', 'user_birthday'),
1073                          'user_email_hash'    => array('INDEX', 'user_email_hash'),
1074                          'user_type'    => array('INDEX', 'user_type'),
1075                          'username_clean'    => array('UNIQUE', 'username_clean'),
1076                      ),
1077                  ),
1078   
1079                  $this->table_prefix . 'warnings'    => array(
1080                      'COLUMNS'    => array(
1081                          'warning_id'    => array('UINT', NULL, 'auto_increment'),
1082                          'user_id'    => array('UINT', 0),
1083                          'post_id'    => array('UINT', 0),
1084                          'log_id'    => array('UINT', 0),
1085                          'warning_time'    => array('TIMESTAMP', 0),
1086                      ),
1087                      'PRIMARY_KEY'    => 'warning_id',
1088                  ),
1089   
1090                  $this->table_prefix . 'words'    => array(
1091                      'COLUMNS'    => array(
1092                          'word_id'    => array('UINT', NULL, 'auto_increment'),
1093                          'word'    => array('VCHAR_UNI', ''),
1094                          'replacement'    => array('VCHAR_UNI', ''),
1095                      ),
1096                      'PRIMARY_KEY'    => 'word_id',
1097                  ),
1098   
1099                  $this->table_prefix . 'zebra'    => array(
1100                      'COLUMNS'    => array(
1101                          'user_id'    => array('UINT', 0),
1102                          'zebra_id'    => array('UINT', 0),
1103                          'friend'    => array('BOOL', 0),
1104                          'foe'    => array('BOOL', 0),
1105                      ),
1106                      'PRIMARY_KEY'    => array('user_id', 'zebra_id'),
1107                  ),
1108              ),
1109          );
1110      }
1111   
1112      public function revert_schema()
1113      {
1114          return array(
1115              'drop_tables' => array(
1116                  $this->table_prefix . 'attachments',
1117                  $this->table_prefix . 'acl_groups',
1118                  $this->table_prefix . 'acl_options',
1119                  $this->table_prefix . 'acl_roles',
1120                  $this->table_prefix . 'acl_roles_data',
1121                  $this->table_prefix . 'acl_users',
1122                  $this->table_prefix . 'banlist',
1123                  $this->table_prefix . 'bbcodes',
1124                  $this->table_prefix . 'bookmarks',
1125                  $this->table_prefix . 'bots',
1126                  $this->table_prefix . 'config',
1127                  $this->table_prefix . 'confirm',
1128                  $this->table_prefix . 'disallow',
1129                  $this->table_prefix . 'drafts',
1130                  $this->table_prefix . 'extensions',
1131                  $this->table_prefix . 'extension_groups',
1132                  $this->table_prefix . 'forums',
1133                  $this->table_prefix . 'forums_access',
1134                  $this->table_prefix . 'forums_track',
1135                  $this->table_prefix . 'forums_watch',
1136                  $this->table_prefix . 'groups',
1137                  $this->table_prefix . 'icons',
1138                  $this->table_prefix . 'lang',
1139                  $this->table_prefix . 'log',
1140                  $this->table_prefix . 'moderator_cache',
1141                  $this->table_prefix . 'modules',
1142                  $this->table_prefix . 'poll_options',
1143                  $this->table_prefix . 'poll_votes',
1144                  $this->table_prefix . 'posts',
1145                  $this->table_prefix . 'privmsgs',
1146                  $this->table_prefix . 'privmsgs_folder',
1147                  $this->table_prefix . 'privmsgs_rules',
1148                  $this->table_prefix . 'privmsgs_to',
1149                  $this->table_prefix . 'profile_fields',
1150                  $this->table_prefix . 'profile_fields_data',
1151                  $this->table_prefix . 'profile_fields_lang',
1152                  $this->table_prefix . 'profile_lang',
1153                  $this->table_prefix . 'ranks',
1154                  $this->table_prefix . 'reports',
1155                  $this->table_prefix . 'reports_reasons',
1156                  $this->table_prefix . 'search_results',
1157                  $this->table_prefix . 'search_wordlist',
1158                  $this->table_prefix . 'search_wordmatch',
1159                  $this->table_prefix . 'sessions',
1160                  $this->table_prefix . 'sessions_keys',
1161                  $this->table_prefix . 'sitelist',
1162                  $this->table_prefix . 'smilies',
1163                  $this->table_prefix . 'styles',
1164                  $this->table_prefix . 'styles_template',
1165                  $this->table_prefix . 'styles_template_data',
1166                  $this->table_prefix . 'styles_theme',
1167                  $this->table_prefix . 'styles_imageset',
1168                  $this->table_prefix . 'styles_imageset_data',
1169                  $this->table_prefix . 'topics',
1170                  $this->table_prefix . 'topics_track',
1171                  $this->table_prefix . 'topics_posted',
1172                  $this->table_prefix . 'topics_watch',
1173                  $this->table_prefix . 'user_group',
1174                  $this->table_prefix . 'users',
1175                  $this->table_prefix . 'warnings',
1176                  $this->table_prefix . 'words',
1177                  $this->table_prefix . 'zebra',
1178              ),
1179          );
1180      }
1181  }
1182