Merged com.woltlab.wcf.moderation into WCF
[GitHub/WoltLab/WCF.git] / wcfsetup / setup / db / install.sql
index 062fce5f05bf5743011bf76b47ebf6a6bf993d83..9283a40d733244a06af51be5c6aebd53943cb30f 100644 (file)
@@ -1,10 +1,48 @@
 /* tables */
+DROP TABLE IF EXISTS wcf1_acl_option;
+CREATE TABLE wcf1_acl_option (
+       optionID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       packageID INT(10) NOT NULL,
+       objectTypeID INT(10) NOT NULL,
+       optionName VARCHAR(255) NOT NULL,
+       categoryName VARCHAR(255) NOT NULL,
+       UNIQUE KEY (packageID, objectTypeID, optionName)
+);
+
+DROP TABLE IF EXISTS wcf1_acl_option_category;
+CREATE TABLE wcf1_acl_option_category (
+       categoryID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       packageID INT(10) NOT NULL,
+       objectTypeID INT(10) NOT NULL,
+       categoryName VARCHAR(255) NOT NULL,
+       UNIQUE KEY (packageID, objectTypeID, categoryName)
+);
+
+DROP TABLE IF EXISTS wcf1_acl_option_to_user;
+CREATE TABLE wcf1_acl_option_to_user (
+       optionID INT(10) NOT NULL,
+       objectID INT(10) NOT NULL,
+       userID INT(10) NOT NULL,
+       optionValue TINYINT(1) NOT NULL DEFAULT 0,
+       UNIQUE KEY userID (userID, objectID, optionID)
+);
+
+DROP TABLE IF EXISTS wcf1_acl_option_to_group;
+CREATE TABLE wcf1_acl_option_to_group (
+       optionID INT(10) NOT NULL,
+       objectID INT(10) NOT NULL,
+       groupID INT(10) NOT NULL,
+       optionValue TINYINT(1) NOT NULL DEFAULT 0,
+       UNIQUE KEY groupID (groupID, objectID, optionID)
+);
+
 DROP TABLE IF EXISTS wcf1_acp_menu_item;
 CREATE TABLE wcf1_acp_menu_item (
        menuItemID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
        packageID INT(10) NOT NULL,
        menuItem VARCHAR(255) NOT NULL DEFAULT '',
        parentMenuItem VARCHAR(255) NOT NULL DEFAULT '',
+       menuItemController VARCHAR(255) NOT NULL DEFAULT '',
        menuItemLink VARCHAR(255) NOT NULL DEFAULT '',
        showOrder INT(10) NOT NULL DEFAULT 0,
        permissions TEXT,
@@ -25,7 +63,6 @@ CREATE TABLE wcf1_acp_search_provider (
 DROP TABLE IF EXISTS wcf1_acp_session;
 CREATE TABLE wcf1_acp_session (
        sessionID CHAR(40) NOT NULL PRIMARY KEY,
-       packageID INT(10),
        userID INT(10),
        ipAddress VARCHAR(39) NOT NULL DEFAULT '',
        userAgent VARCHAR(255) NOT NULL DEFAULT '',
@@ -37,15 +74,13 @@ CREATE TABLE wcf1_acp_session (
        parentObjectID INT(10) NOT NULL DEFAULT 0,
        objectType VARCHAR(255) NOT NULL DEFAULT '',
        objectID INT(10) NOT NULL DEFAULT 0,
-       sessionVariables MEDIUMTEXT,
-       KEY sessionID (sessionID, packageID)
+       sessionVariables MEDIUMTEXT
 );
 
 DROP TABLE IF EXISTS wcf1_acp_session_access_log;
 CREATE TABLE wcf1_acp_session_access_log (
        sessionAccessLogID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
        sessionLogID INT(10) NOT NULL,
-       packageID INT(10),
        ipAddress VARCHAR(39) NOT NULL DEFAULT '',
        time INT(10) NOT NULL DEFAULT 0,
        requestURI VARCHAR(255) NOT NULL DEFAULT '',
@@ -71,8 +106,9 @@ DROP TABLE IF EXISTS wcf1_acp_template;
 CREATE TABLE wcf1_acp_template (
        templateID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
        packageID INT(10),
-       templateName VARCHAR(255) NOT NULL DEFAULT '',
-       UNIQUE KEY (packageID, templateName)
+       templateName VARCHAR(255) NOT NULL,
+       application VARCHAR(255) NOT NULL,
+       UNIQUE KEY applicationTemplate (application, templateName)
 );
 
 DROP TABLE IF EXISTS wcf1_application;
@@ -82,19 +118,79 @@ CREATE TABLE wcf1_application (
        domainPath VARCHAR(255) NOT NULL DEFAULT '/',
        cookieDomain VARCHAR(255) NOT NULL,
        cookiePath VARCHAR(255) NOT NULL DEFAULT '/',
-       groupID INT(10),
        isPrimary TINYINT(1) NOT NULL DEFAULT 0
 );
 
-DROP TABLE IF EXISTS wcf1_application_group;
-CREATE TABLE wcf1_application_group (
-       groupID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
-       groupName VARCHAR(255) NOT NULL
+DROP TABLE IF EXISTS wcf1_attachment;
+CREATE TABLE wcf1_attachment (
+       attachmentID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       objectTypeID INT(10) NOT NULL,
+       objectID INT(10),
+       userID INT(10),
+       tmpHash VARCHAR(40) NOT NULL DEFAULT '',
+       filename VARCHAR(255) NOT NULL DEFAULT '',
+       filesize INT(10) NOT NULL DEFAULT 0,
+       fileType VARCHAR(255) NOT NULL DEFAULT '',
+       fileHash VARCHAR(40) NOT NULL DEFAULT '',
+       
+       isImage TINYINT(1) NOT NULL DEFAULT 0,
+       width SMALLINT(5) NOT NULL DEFAULT 0,
+       height SMALLINT(5) NOT NULL DEFAULT 0, 
+       
+       tinyThumbnailType VARCHAR(255) NOT NULL DEFAULT '',
+       tinyThumbnailSize INT(10) NOT NULL DEFAULT 0,
+       tinyThumbnailWidth SMALLINT(5) NOT NULL DEFAULT 0,
+       tinyThumbnailHeight SMALLINT(5) NOT NULL DEFAULT 0,
+       
+       thumbnailType VARCHAR(255) NOT NULL DEFAULT '',
+       thumbnailSize INT(10) NOT NULL DEFAULT 0,
+       thumbnailWidth SMALLINT(5) NOT NULL DEFAULT 0,
+       thumbnailHeight SMALLINT(5) NOT NULL DEFAULT 0,
+       
+       downloads INT(10) NOT NULL DEFAULT 0,
+       lastDownloadTime INT(10) NOT NULL DEFAULT 0,
+       uploadTime INT(10) NOT NULL DEFAULT 0,
+       showOrder SMALLINT(5) NOT NULL DEFAULT 0,
+       KEY (objectTypeID, objectID),
+       KEY (objectTypeID, tmpHash),
+       KEY (objectID, uploadTime)
+);
+
+DROP TABLE IF EXISTS wcf1_bbcode;
+CREATE TABLE wcf1_bbcode (
+       bbcodeID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       bbcodeTag VARCHAR(255) NOT NULL,
+       packageID INT(10) NOT NULL,
+       htmlOpen VARCHAR(255) NOT NULL DEFAULT '',
+       htmlClose VARCHAR(255) NOT NULL DEFAULT '',
+       allowedChildren VARCHAR(255) NOT NULL DEFAULT 'all',
+       className VARCHAR(255) NOT NULL DEFAULT '',
+       wysiwygIcon varchar(255) NOT NULL DEFAULT '',
+       buttonLabel VARCHAR(255) NOT NULL DEFAULT '',
+       isSourceCode TINYINT(1) NOT NULL DEFAULT 0,
+       isDisabled TINYINT(1) NOT NULL DEFAULT 0,
+       showButton TINYINT(1) NOT NULL DEFAULT 0,
+       UNIQUE KEY bbcodeTag (bbcodeTag)
 );
 
-DROP TABLE IF EXISTS wcf1_cache_resource;
-CREATE TABLE wcf1_cache_resource (
-       cacheResource VARCHAR(255) NOT NULL PRIMARY KEY
+DROP TABLE IF EXISTS wcf1_bbcode_attribute;
+CREATE TABLE wcf1_bbcode_attribute (
+       attributeID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       bbcodeID INT(10) NOT NULL,
+       attributeNo TINYINT(3) NOT NULL DEFAULT 0,
+       attributeHtml VARCHAR(255) NOT NULL DEFAULT '',
+       validationPattern VARCHAR(255) NOT NULL DEFAULT '',
+       required TINYINT(1) NOT NULL DEFAULT 0,
+       useText TINYINT(1) NOT NULL DEFAULT 0,
+       UNIQUE KEY attributeNo (bbcodeID, attributeNo)
+);
+
+DROP TABLE IF EXISTS wcf1_bbcode_media_provider;
+CREATE TABLE wcf1_bbcode_media_provider (
+       providerID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       title VARCHAR(255) NOT NULL,
+       regex TEXT NOT NULL,
+       html TEXT NOT NULL
 );
 
 DROP TABLE IF EXISTS wcf1_category;
@@ -110,25 +206,6 @@ CREATE TABLE wcf1_category (
        additionalData TEXT
 );
 
-DROP TABLE IF EXISTS wcf1_cleanup_listener;
-CREATE TABLE wcf1_cleanup_listener (
-       listenerID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
-       packageID INT(10) NOT NULL,
-       className VARCHAR(255) NOT NULL DEFAULT '',
-       objectType VARCHAR(255) NOT NULL DEFAULT '',
-       lastUpdateTime INT(10) NOT NULL DEFAULT 0,
-       UNIQUE KEY (className, packageID)
-);
-
-DROP TABLE IF EXISTS wcf1_cleanup_log;
-CREATE TABLE wcf1_cleanup_log (
-       packageID INT(10) NOT NULL DEFAULT 0,
-       objectType VARCHAR(255) NOT NULL DEFAULT '',
-       objectID INT(10) NOT NULL DEFAULT 0,
-       deleteTime INT(10) NOT NULL DEFAULT 0,
-       KEY objectType (objectType)
-);
-
 DROP TABLE IF EXISTS wcf1_clipboard_action;
 CREATE TABLE wcf1_clipboard_action (
        actionID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -176,7 +253,7 @@ CREATE TABLE wcf1_cronjob (
        lastExec INT(10) NOT NULL DEFAULT 0,
        nextExec INT(10) NOT NULL DEFAULT 0,
        afterNextExec INT(10) NOT NULL DEFAULT 0,
-       active TINYINT(1) NOT NULL DEFAULT 1,
+       isDisabled TINYINT(1) NOT NULL DEFAULT 0,
        canBeEdited TINYINT(1) NOT NULL DEFAULT 1,
        canBeDisabled TINYINT(1) NOT NULL DEFAULT 1,
        state TINYINT(1) NOT NULL DEFAULT 0,
@@ -192,6 +269,23 @@ CREATE TABLE wcf1_cronjob_log (
        error TEXT
 );
 
+DROP TABLE IF EXISTS wcf1_dashboard_box;
+CREATE TABLE wcf1_dashboard_box (
+       boxID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       packageID INT(10) NOT NULL,
+       boxName VARCHAR(255) NOT NULL DEFAULT '',
+       boxType VARCHAR(30) NOT NULL DEFAULT 'sidebar', -- can be 'content' or 'sidebar'
+       className VARCHAR(255) NOT NULL DEFAULT ''
+);
+
+DROP TABLE IF EXISTS wcf1_dashboard_option;
+CREATE TABLE wcf1_dashboard_option (
+       objectTypeID INT(10) NOT NULL,
+       boxID INT(10) NOT NULL,
+       showOrder INT(10) NOT NULL,
+       UNIQUE KEY dashboardOption (objectTypeID, boxID)
+);
+
 DROP TABLE IF EXISTS wcf1_event_listener;
 CREATE TABLE wcf1_event_listener (
        listenerID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -234,7 +328,7 @@ CREATE TABLE wcf1_language_item (
        languageItemOriginIsSystem TINYINT(1) NOT NULL DEFAULT 1,
        languageCategoryID INT(10) NOT NULL,
        packageID INT(10),
-       UNIQUE KEY languageItem (languageItem, packageID, languageID),
+       UNIQUE KEY languageItem (languageItem, languageID),
        KEY languageItemOriginIsSystem (languageItemOriginIsSystem)
 );
 
@@ -242,14 +336,38 @@ DROP TABLE IF EXISTS wcf1_language_server;
 CREATE TABLE wcf1_language_server (
        languageServerID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
        serverURL VARCHAR(255) NOT NULL DEFAULT '',
-       disabled TINYINT(1) NOT NULL DEFAULT 0
+       isDisabled TINYINT(1) NOT NULL DEFAULT 0
 );
 
-DROP TABLE IF EXISTS wcf1_language_to_package;
-CREATE TABLE wcf1_language_to_package (
-       languageID INT(10) NOT NULL,
-       packageID INT(10),
-       UNIQUE KEY languageID (languageID, packageID)
+DROP TABLE IF EXISTS wcf1_moderation_queue;
+CREATE TABLE wcf1_moderation_queue (
+       queueID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       objectTypeID INT(10) NOT NULL,
+       objectID INT(10) NOT NULL,
+       containerID INT(10) NOT NULL DEFAULT 0,
+       userID INT(10) NULL,
+       time INT(10) NOT NULL DEFAULT 0,
+       
+       -- internal
+       assignedUserID INT(10) NULL,
+       status TINYINT(1) NOT NULL DEFAULT 0,
+       comment TEXT,
+       lastChangeTime INT(10) NOT NULL DEFAULT 0,
+       
+       -- additional data, e.g. message if reporting content
+       additionalData TEXT,
+       
+       UNIQUE KEY affectedObject (objectTypeID, objectID)
+);
+
+DROP TABLE IF EXISTS wcf1_moderation_queue_to_user;
+CREATE TABLE wcf1_moderation_queue_to_user (
+       queueID INT(10) NOT NULL,
+       userID INT(10) NOT NULL,
+       isAffected TINYINT(1) NOT NULL DEFAULT 0,
+       
+       UNIQUE KEY queue (queueID, userID),
+       KEY affected (queueID, userID, isAffected)
 );
 
 DROP TABLE IF EXISTS wcf1_modification_log;
@@ -282,7 +400,7 @@ CREATE TABLE wcf1_object_type_definition (
        packageID INT(10) NOT NULL,
        interfaceName VARCHAR(255) NOT NULL DEFAULT '',
        categoryName VARCHAR(80) NOT NULL DEFAULT '',
-       UNIQUE KEY definitionName (definitionName, packageID)
+       UNIQUE KEY definitionName (definitionName)
 );
 
 DROP TABLE IF EXISTS wcf1_option;
@@ -303,7 +421,8 @@ CREATE TABLE wcf1_option (
        supportI18n TINYINT(1) NOT NULL DEFAULT 0,
        requireI18n TINYINT(1) NOT NULL DEFAULT 0,
        additionalData MEDIUMTEXT,
-       UNIQUE KEY optionName (optionName, packageID)
+       
+       UNIQUE KEY optionName (optionName)
 );
 
 DROP TABLE IF EXISTS wcf1_option_category;
@@ -315,7 +434,7 @@ CREATE TABLE wcf1_option_category (
        showOrder INT(10) NOT NULL DEFAULT 0,
        permissions TEXT,
        options TEXT,
-       UNIQUE KEY categoryName (categoryName, packageID)
+       UNIQUE KEY categoryName (categoryName)
 );
 
 DROP TABLE IF EXISTS wcf1_package;
@@ -324,31 +443,18 @@ CREATE TABLE wcf1_package (
        package VARCHAR(255) NOT NULL DEFAULT '',
        packageDir VARCHAR(255) NOT NULL DEFAULT '',
        packageName VARCHAR(255) NOT NULL DEFAULT '',
-       instanceName VARCHAR(255) NOT NULL DEFAULT '',
-       instanceNo INT(10) NOT NULL DEFAULT 1,
        packageDescription VARCHAR(255) NOT NULL DEFAULT '',
        packageVersion VARCHAR(255) NOT NULL DEFAULT '',
        packageDate INT(10) NOT NULL DEFAULT 0,
        installDate INT(10) NOT NULL DEFAULT 0,
        updateDate INT(10) NOT NULL DEFAULT 0,
        packageURL VARCHAR(255) NOT NULL DEFAULT '',
-       parentPackageID INT(10) NOT NULL DEFAULT 0,
-       isUnique TINYINT(1) NOT NULL DEFAULT 0,
        isApplication TINYINT(1) NOT NULL DEFAULT 0,
        author VARCHAR(255) NOT NULL DEFAULT '',
        authorURL VARCHAR(255) NOT NULL DEFAULT '',
-       packageIcon VARCHAR(30) NOT NULL DEFAULT '',
        KEY package (package)
 );
 
-DROP TABLE IF EXISTS wcf1_package_dependency;
-CREATE TABLE wcf1_package_dependency (
-       packageID INT(10) NOT NULL,
-       dependency INT(10) NOT NULL,
-       priority INT(10) NOT NULL DEFAULT 0,
-       UNIQUE KEY packageID (packageID, dependency)
-);
-
 DROP TABLE IF EXISTS wcf1_package_exclusion;
 CREATE TABLE wcf1_package_exclusion (
        packageID INT(10) NOT NULL,
@@ -360,8 +466,9 @@ CREATE TABLE wcf1_package_exclusion (
 DROP TABLE IF EXISTS wcf1_package_installation_file_log;
 CREATE TABLE wcf1_package_installation_file_log (
        packageID INT(10),
-       filename VARCHAR(255) NOT NULL DEFAULT '',
-       UNIQUE KEY packageID (packageID, filename)
+       filename VARCHAR(255) NOT NULL,
+       application VARCHAR(255) NOT NULL,
+       UNIQUE KEY applicationFile (application, filename)
 );
 
 DROP TABLE IF EXISTS wcf1_package_installation_form;
@@ -402,8 +509,7 @@ CREATE TABLE wcf1_package_installation_queue (
        packageName VARCHAR(255) NOT NULL DEFAULT '',
        packageID INT(10),
        archive VARCHAR(255) NOT NULL DEFAULT '',
-       action ENUM('install', 'update', 'uninstall', 'rollback') NOT NULL DEFAULT 'install',
-       cancelable TINYINT(1) NOT NULL DEFAULT 1,
+       action ENUM('install', 'update', 'uninstall') NOT NULL DEFAULT 'install',
        done TINYINT(1) NOT NULL DEFAULT 0,
        confirmInstallation TINYINT(1) NOT NULL DEFAULT 0,
        packageType ENUM('default', 'requirement', 'optional') NOT NULL DEFAULT 'default'
@@ -425,14 +531,6 @@ CREATE TABLE wcf1_package_requirement (
        UNIQUE KEY packageID (packageID, requirement)
 );
 
-DROP TABLE IF EXISTS wcf1_package_requirement_map;
-CREATE TABLE wcf1_package_requirement_map (
-       packageID INT(10) NOT NULL,
-       requirement INT(10) NOT NULL,
-       level INT(10) NOT NULL DEFAULT 0,
-       UNIQUE KEY packageID (packageID, requirement)
-);
-
 DROP TABLE IF EXISTS wcf1_package_update;
 CREATE TABLE wcf1_package_update (
        packageUpdateID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -443,7 +541,6 @@ CREATE TABLE wcf1_package_update (
        author VARCHAR(255) NOT NULL DEFAULT '',
        authorURL VARCHAR(255) NOT NULL DEFAULT '',
        isApplication TINYINT(1) NOT NULL DEFAULT 0,
-       plugin VARCHAR(255) NOT NULL DEFAULT '',
        UNIQUE KEY packageUpdateServerID (packageUpdateServerID, package)
 );
 
@@ -462,6 +559,12 @@ CREATE TABLE wcf1_package_update_fromversion (
        UNIQUE KEY packageUpdateVersionID (packageUpdateVersionID, fromversion)
 );
 
+DROP TABLE IF EXISTS wcf1_package_update_optional;
+CREATE TABLE wcf1_package_update_optional (
+       packageUpdateVersionID INT(10) NOT NULL DEFAULT 0,
+       package VARCHAR(255) NOT NULL DEFAULT ''
+);
+
 DROP TABLE IF EXISTS wcf1_package_update_requirement;
 CREATE TABLE wcf1_package_update_requirement (
        packageUpdateVersionID INT(10) NOT NULL,
@@ -476,7 +579,7 @@ CREATE TABLE wcf1_package_update_server (
        serverURL VARCHAR(255) NOT NULL DEFAULT '',
        loginUsername VARCHAR(255) NOT NULL DEFAULT '',
        loginPassword VARCHAR(255) NOT NULL DEFAULT '',
-       disabled TINYINT(1) NOT NULL DEFAULT 0,
+       isDisabled TINYINT(1) NOT NULL DEFAULT 0,
        lastUpdateTime INT(10) NOT NULL DEFAULT 0,
        status ENUM('online', 'offline') NOT NULL DEFAULT 'online',
        errorMessage TEXT
@@ -487,9 +590,12 @@ CREATE TABLE wcf1_package_update_version (
        packageUpdateVersionID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
        packageUpdateID INT(10) NOT NULL,
        packageVersion VARCHAR(50) NOT NULL DEFAULT '',
-       updateType VARCHAR(10) NOT NULL DEFAULT '',
        packageDate INT(10) NOT NULL DEFAULT 0,
        filename VARCHAR(255) NOT NULL DEFAULT '',
+       license VARCHAR(255) NOT NULL DEFAULT '',
+       licenseURL VARCHAR(255) NOT NULL DEFAULT '',
+       isAccessible TINYINT(1) NOT NULL DEFAULT 1,
+       isCritical TINYINT(1) NOT NULL DEFAULT 0,
        UNIQUE KEY packageUpdateID (packageUpdateID, packageVersion)
 );
 
@@ -499,6 +605,7 @@ CREATE TABLE wcf1_page_menu_item (
        packageID INT(10) NOT NULL,
        menuItem VARCHAR(255) NOT NULL DEFAULT '',
        parentMenuItem VARCHAR(255) NOT NULL DEFAULT '',
+       menuItemController VARCHAR(255) NOT NULL DEFAULT '',
        menuItemLink VARCHAR(255) NOT NULL DEFAULT '',
        menuPosition ENUM('header', 'footer') NOT NULL DEFAULT 'header',
        showOrder INT(10) NOT NULL DEFAULT 0,
@@ -524,7 +631,6 @@ CREATE TABLE wcf1_search (
 DROP TABLE IF EXISTS wcf1_session;
 CREATE TABLE wcf1_session (
        sessionID CHAR(40) NOT NULL PRIMARY KEY,
-       packageID INT(10) NOT NULL,
        userID INT(10),
        ipAddress VARCHAR(39) NOT NULL DEFAULT '',
        userAgent VARCHAR(255) NOT NULL DEFAULT '',
@@ -537,8 +643,8 @@ CREATE TABLE wcf1_session (
        objectType VARCHAR(255) NOT NULL DEFAULT '',
        objectID INT(10) NOT NULL DEFAULT 0,
        sessionVariables MEDIUMTEXT,
-       spiderID INT(10) NOT NULL DEFAULT 0,
-       KEY packageID (packageID, lastActivityTime, spiderID)
+       spiderID INT(10),
+       KEY packageID (lastActivityTime, spiderID)
 );
 
 DROP TABLE IF EXISTS wcf1_sitemap;
@@ -551,6 +657,19 @@ CREATE TABLE wcf1_sitemap (
        UNIQUE KEY sitemapName (packageID, sitemapName)
 );
 
+DROP TABLE IF EXISTS wcf1_smiley;
+CREATE TABLE wcf1_smiley (
+       smileyID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       packageID INT(10) NOT NULL,
+       categoryID INT(10),
+       smileyPath VARCHAR(255) NOT NULL DEFAULT '',
+       smileyTitle VARCHAR(255) NOT NULL DEFAULT '',
+       smileyCode VARCHAR(255) NOT NULL DEFAULT '',
+       aliases TEXT NOT NULL,
+       showOrder INT(10) NOT NULL DEFAULT 0,
+       UNIQUE KEY smileyCode (smileyCode)
+);
+
 DROP TABLE IF EXISTS wcf1_spider;
 CREATE TABLE wcf1_spider (
        spiderID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -567,8 +686,8 @@ CREATE TABLE wcf1_style (
        styleName VARCHAR(255) NOT NULL DEFAULT '',
        templateGroupID INT(10) NOT NULL DEFAULT 0,
        isDefault TINYINT(1) NOT NULL DEFAULT 0,
-       disabled TINYINT(1) NOT NULL DEFAULT 0,
-       styleDescription TEXT,
+       isDisabled TINYINT(1) NOT NULL DEFAULT 0,
+       styleDescription VARCHAR(30) NOT NULL DEFAULT '',
        styleVersion VARCHAR(255) NOT NULL DEFAULT '',
        styleDate CHAR(10) NOT NULL DEFAULT '0000-00-00',
        image VARCHAR(255) NOT NULL DEFAULT '',
@@ -576,19 +695,9 @@ CREATE TABLE wcf1_style (
        license VARCHAR(255) NOT NULL DEFAULT '',
        authorName VARCHAR(255) NOT NULL DEFAULT '',
        authorURL VARCHAR(255) NOT NULL DEFAULT '',
-       iconPath VARCHAR(255) NOT NULL DEFAULT '',
        imagePath VARCHAR(255) NOT NULL DEFAULT ''
 );
 
-DROP TABLE IF EXISTS wcf1_style_to_package;
-CREATE TABLE wcf1_style_to_package (
-       styleID INT(10) NOT NULL,
-       packageID INT(10) NOT NULL,
-       isDefault TINYINT(1) NOT NULL DEFAULT 0,
-       disabled TINYINT(1) NOT NULL DEFAULT 0,
-       UNIQUE KEY (styleID, packageID)
-);
-
 DROP TABLE IF EXISTS wcf1_style_variable;
 CREATE TABLE wcf1_style_variable (
        variableID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -609,17 +718,18 @@ DROP TABLE IF EXISTS wcf1_template;
 CREATE TABLE wcf1_template (
        templateID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
        packageID INT(10) NOT NULL,
-       templateName VARCHAR(255) NOT NULL DEFAULT '',
+       templateName VARCHAR(255) NOT NULL,
+       application VARCHAR(255) NOT NULL,
        templateGroupID INT(10),
-       obsolete TINYINT(1) NOT NULL DEFAULT 0,
-       KEY packageID (packageID, templateName),
+       lastModificationTime INT(10) NOT NULL DEFAULT 0,
+       UNIQUE KEY applicationTemplate (application, templateGroupID, templateName),
        KEY templateGroupID (packageID, templateGroupID, templateName)
 );
 
 DROP TABLE IF EXISTS wcf1_template_group;
 CREATE TABLE wcf1_template_group (
        templateGroupID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
-       parentTemplateGroupID INT(10) NOT NULL DEFAULT 0,
+       parentTemplateGroupID INT(10),
        templateGroupName VARCHAR(255) NOT NULL DEFAULT '',
        templateGroupFolderName VARCHAR(255) NOT NULL DEFAULT ''
 );
@@ -636,21 +746,118 @@ CREATE TABLE wcf1_template_listener (
        KEY templateName (environment, templateName)
 );
 
+DROP TABLE IF EXISTS wcf1_tracked_visit;
+CREATE TABLE wcf1_tracked_visit (
+       objectTypeID INT(10) NOT NULL,
+       objectID INT(10) NOT NULL,
+       userID INT(10) NOT NULL,
+       visitTime INT(10) NOT NULL DEFAULT 0,
+       UNIQUE KEY (objectTypeID, objectID, userID),
+       KEY (userID, visitTime)
+);
+
+DROP TABLE IF EXISTS wcf1_tracked_visit_type;
+CREATE TABLE wcf1_tracked_visit_type (
+       objectTypeID INT(10) NOT NULL,
+       userID INT(10) NOT NULL,
+       visitTime INT(10) NOT NULL DEFAULT 0,
+       UNIQUE KEY (objectTypeID, userID),
+       KEY (userID, visitTime)
+);
+
 DROP TABLE IF EXISTS wcf1_user;
 CREATE TABLE wcf1_user (
        userID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
        username VARCHAR(255) NOT NULL DEFAULT '',
        email VARCHAR(255) NOT NULL DEFAULT '',
-       password VARCHAR(40) NOT NULL DEFAULT '',
-       salt VARCHAR(40) NOT NULL DEFAULT '',
+       password VARCHAR(100) NOT NULL DEFAULT '',
        accessToken CHAR(40) NOT NULL DEFAULT '',
        languageID INT(10) NOT NULL DEFAULT 0,
        registrationDate INT(10) NOT NULL DEFAULT 0,
        styleID INT(10) NOT NULL DEFAULT 0,
+       banned TINYINT(1) NOT NULL DEFAULT 0,
+       banReason MEDIUMTEXT NULL,
+       activationCode INT(10) NOT NULL DEFAULT 0,
+       lastLostPasswordRequestTime INT(10) NOT NULL DEFAULT 0,
+       lostPasswordKey VARCHAR(40) NOT NULL DEFAULT '',
+       lastUsernameChange INT(10) NOT NULL DEFAULT 0,
+       newEmail VARCHAR(255) NOT NULL DEFAULT '',
+       oldUsername VARCHAR(255) NOT NULL DEFAULT '',
+       quitStarted INT(10) NOT NULL DEFAULT 0,
+       reactivationCode INT(10) NOT NULL DEFAULT 0,
+       registrationIpAddress VARCHAR(39) NOT NULL DEFAULT '',
+       avatarID INT(10),
+       disableAvatar TINYINT(1) NOT NULL DEFAULT 0,
+       disableAvatarReason TEXT,
+       enableGravatar TINYINT(1) NOT NULL DEFAULT 0,
+       signature TEXT,
+       signatureEnableBBCodes TINYINT(1) NOT NULL DEFAULT 1,
+       signatureEnableHtml TINYINT(1) NOT NULL DEFAULT 0,
+       signatureEnableSmilies TINYINT(1) NOT NULL DEFAULT 1,
+       disableSignature TINYINT(1) NOT NULL DEFAULT 0,
+       disableSignatureReason TEXT,
+       lastActivityTime INT(10) NOT NULL DEFAULT 0,
+       profileHits INT(10) NOT NULL DEFAULT 0,
+       rankID INT(10),
+       userTitle VARCHAR(255) NOT NULL DEFAULT '',
+       userOnlineGroupID INT(10),
+       activityPoints INT(10) NOT NULL DEFAULT 0,
+       notificationMailToken VARCHAR(20) NOT NULL DEFAULT '',
+       authData VARCHAR(255) NOT NULL DEFAULT '',
        
        KEY username (username),
        KEY registrationDate (registrationDate),
-       KEY styleID (styleID)
+       KEY styleID (styleID),
+       KEY activationCode (activationCode),
+       KEY registrationData (registrationIpAddress, registrationDate),
+       KEY activityPoints (activityPoints)
+);
+
+DROP TABLE IF EXISTS wcf1_user_activity_event;
+CREATE TABLE wcf1_user_activity_event (
+       eventID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       objectTypeID INT(10) NOT NULL,
+       objectID INT(10) NOT NULL,
+       languageID INT(10),
+       userID INT(10) NOT NULL,
+       time INT(10) NOT NULL,
+       additionalData TEXT,
+       
+       KEY (time),
+       KEY (userID, time),
+       KEY (objectTypeID, objectID)
+);
+
+DROP TABLE IF EXISTS wcf1_user_activity_point;
+CREATE TABLE wcf1_user_activity_point (
+       userID INT(10) NOT NULL,
+       objectTypeID INT(10) NOT NULL,
+       activityPoints INT(10) NOT NULL DEFAULT 0,
+       PRIMARY KEY (userID, objectTypeID),
+       KEY (objectTypeID)
+);
+
+DROP TABLE IF EXISTS wcf1_user_activity_point_event;
+CREATE TABLE wcf1_user_activity_point_event (
+       eventID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       objectTypeID INT(10) NOT NULL,
+       objectID INT(10) NOT NULL,
+       userID INT(10) NOT NULL,
+       additionalData TEXT,
+       UNIQUE KEY (objectTypeID, userID, objectID)
+);
+
+DROP TABLE IF EXISTS wcf1_user_avatar;
+CREATE TABLE wcf1_user_avatar (
+       avatarID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       avatarName VARCHAR(255) NOT NULL DEFAULT '',
+       avatarExtension VARCHAR(7) NOT NULL DEFAULT '',
+       width SMALLINT(5) NOT NULL DEFAULT 0,
+       height SMALLINT(5) NOT NULL DEFAULT 0,
+       userID INT(10),
+       fileHash VARCHAR(40) NOT NULL DEFAULT '',
+       cropX SMALLINT(5) NOT NULL DEFAULT 0,
+       cropY SMALLINT(5) NOT NULL DEFAULT 0
 );
 
 DROP TABLE IF EXISTS wcf1_user_collapsible_content;
@@ -661,15 +868,27 @@ CREATE TABLE wcf1_user_collapsible_content (
        UNIQUE KEY (objectTypeID, objectID, userID)
 );
 
+DROP TABLE IF EXISTS wcf1_user_follow;
+CREATE TABLE wcf1_user_follow (
+       followID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       userID INT(10) NOT NULL,
+       followUserID INT(10) NOT NULL,
+       time INT(10) NOT NULL DEFAULT 0,
+       UNIQUE KEY (userID, followUserID)
+);
+
 DROP TABLE IF EXISTS wcf1_user_group;
 CREATE TABLE wcf1_user_group (
        groupID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
        groupName VARCHAR(255) NOT NULL DEFAULT '',
-       groupType TINYINT(1) NOT NULL DEFAULT 4
+       groupType TINYINT(1) NOT NULL DEFAULT 4,
+       priority MEDIUMINT(8) NOT NULL DEFAULT 0,
+       userOnlineMarking VARCHAR(255) NOT NULL DEFAULT '%s',
+       showOnTeamPage TINYINT(1) NOT NULL DEFAULT 0
 );
 
 DROP TABLE IF EXISTS wcf1_user_group_option;
-CREATE TABLE wcf1_user_group_option  (
+CREATE TABLE wcf1_user_group_option (
        optionID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
        packageID INT(10),
        optionName VARCHAR(255) NOT NULL DEFAULT '',
@@ -695,17 +914,100 @@ CREATE TABLE wcf1_user_group_option_category (
        showOrder INT(10) NOT NULL DEFAULT 0,
        permissions TEXT,
        options TEXT,
-       UNIQUE KEY categoryName (categoryName, packageID)
+       UNIQUE KEY categoryName (categoryName)
 );
 
 DROP TABLE IF EXISTS wcf1_user_group_option_value;
-CREATE TABLE wcf1_user_group_option_value  (
+CREATE TABLE wcf1_user_group_option_value (
        groupID INT(10) NOT NULL,
        optionID INT(10) NOT NULL,
        optionValue MEDIUMTEXT NOT NULL,
        UNIQUE KEY groupID (groupID, optionID)
 );
 
+DROP TABLE IF EXISTS wcf1_user_ignore;
+CREATE TABLE wcf1_user_ignore (
+       ignoreID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       userID INT(10) NOT NULL,
+       ignoreUserID INT(10) NOT NULL,
+       time INT(10) NOT NULL DEFAULT 0,
+       UNIQUE KEY (userID, ignoreUserID)
+);
+
+DROP TABLE IF EXISTS wcf1_user_menu_item;
+CREATE TABLE wcf1_user_menu_item (
+       menuItemID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       packageID INT(10) NOT NULL,
+       menuItem VARCHAR(255) NOT NULL DEFAULT '',
+       parentMenuItem VARCHAR(255) NOT NULL DEFAULT '',
+       menuItemController VARCHAR(255) NOT NULL DEFAULT '',
+       menuItemLink VARCHAR(255) NOT NULL DEFAULT '',
+       showOrder INT(10) NOT NULL DEFAULT 0,
+       permissions TEXT,
+       options TEXT,
+       className VARCHAR(255) NOT NULL DEFAULT '',
+       UNIQUE KEY menuItem (menuItem, packageID)
+);
+
+-- notifications
+DROP TABLE IF EXISTS wcf1_user_notification;
+CREATE TABLE wcf1_user_notification (
+       notificationID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       packageID INT(10) NOT NULL,
+       eventID INT(10) NOT NULL,
+       objectID INT(10) NOT NULL DEFAULT 0,
+       eventHash VARCHAR(40) NOT NULL DEFAULT '',
+       authorID INT(10),
+       time INT(10) NOT NULL DEFAULT 0,
+       additionalData TEXT,
+       KEY (eventHash),
+       UNIQUE KEY (packageID, eventID, objectID)
+);
+
+-- notification recipients
+DROP TABLE IF EXISTS wcf1_user_notification_to_user;
+CREATE TABLE wcf1_user_notification_to_user (
+       notificationID INT(10) NOT NULL,
+       userID INT(10) NOT NULL,
+       mailNotified TINYINT(1) NOT NULL DEFAULT 0,
+       UNIQUE KEY notificationID (notificationID, userID)
+);
+
+-- events that create notifications
+DROP TABLE IF EXISTS wcf1_user_notification_event;
+CREATE TABLE wcf1_user_notification_event (
+       eventID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       packageID INT(10) NOT NULL,
+       eventName VARCHAR(255) NOT NULL DEFAULT '',
+       objectTypeID INT(10) NOT NULL,
+       className VARCHAR(255) NOT NULL DEFAULT '',
+       permissions TEXT,
+       options TEXT,
+       preset TINYINT(1) NOT DEFAULT 0,
+       UNIQUE KEY eventName (eventName, objectTypeID)
+);
+
+-- user configuration for events
+DROP TABLE IF EXISTS wcf1_user_notification_event_to_user;
+CREATE TABLE wcf1_user_notification_event_to_user (
+       userID INT(10) NOT NULL,
+       eventID INT(10) NOT NULL,
+       mailNotificationType ENUM('none', 'instant', 'daily') NOT NULL DEFAULT 'none',
+       UNIQUE KEY (eventID, userID)
+);
+
+DROP TABLE IF EXISTS wcf1_user_object_watch;
+CREATE TABLE wcf1_user_object_watch (
+       watchID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       objectTypeID INT(10) NOT NULL,
+       objectID INT(10) NOT NULL,
+       userID INT(10) NOT NULL,
+       notification TINYINT(1) NOT NULL DEFAULT 0,
+       
+       UNIQUE KEY (objectTypeID, userID, objectID),
+       KEY (objectTypeID, objectID)
+);
+
 DROP TABLE IF EXISTS wcf1_user_option;
 CREATE TABLE wcf1_user_option (
        optionID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -724,7 +1026,7 @@ CREATE TABLE wcf1_user_option (
        outputClass VARCHAR(255) NOT NULL DEFAULT '',
        searchable TINYINT(1) NOT NULL DEFAULT 0,
        showOrder INT(10) NOT NULL DEFAULT 0,
-       disabled TINYINT(1) NOT NULL DEFAULT 0,
+       isDisabled TINYINT(1) NOT NULL DEFAULT 0,
        permissions TEXT,
        options TEXT,
        additionalData MEDIUMTEXT,
@@ -741,7 +1043,7 @@ CREATE TABLE wcf1_user_option_category (
        showOrder INT(10) NOT NULL DEFAULT 0,
        permissions TEXT,
        options TEXT,
-       UNIQUE KEY categoryName (categoryName, packageID)
+       UNIQUE KEY categoryName (categoryName)
 );
 
 DROP TABLE IF EXISTS wcf1_user_option_value;
@@ -749,13 +1051,46 @@ CREATE TABLE wcf1_user_option_value (
        userID INT(10) NOT NULL PRIMARY KEY
 );
 
+DROP TABLE IF EXISTS wcf1_user_profile_menu_item;
+CREATE TABLE wcf1_user_profile_menu_item (
+       menuItemID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       packageID INT(10) NOT NULL,
+       menuItem VARCHAR(255) NOT NULL,
+       showOrder INT(10) NOT NULL DEFAULT 0,
+       permissions TEXT NULL,
+       options TEXT NULL,
+       className VARCHAR(255) NOT NULL,
+       UNIQUE KEY (packageID, menuItem)
+);
+
+DROP TABLE IF EXISTS wcf1_user_profile_visitor;
+CREATE TABLE wcf1_user_profile_visitor (
+       visitorID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       ownerID INT(10),
+       userID INT(10),
+       time INT(10) NOT NULL DEFAULT 0,
+       UNIQUE KEY (ownerID, userID),
+       KEY (time)
+);
+
+DROP TABLE IF EXISTS wcf1_user_rank;
+CREATE TABLE wcf1_user_rank (
+       rankID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       groupID INT(10),
+       requiredPoints INT(10) NOT NULL DEFAULT 0,
+       rankTitle VARCHAR(255) NOT NULL DEFAULT '',
+       cssClassName VARCHAR(255) NOT NULL DEFAULT '',
+       rankImage VARCHAR(255) NOT NULL DEFAULT '',
+       repeatImage TINYINT(3) NOT NULL DEFAULT 1,
+       requiredGender TINYINT(1) NOT NULL DEFAULT 0
+);
+
 DROP TABLE IF EXISTS wcf1_user_storage;
 CREATE TABLE wcf1_user_storage (
        userID INT(10) NOT NULL,
        field VARCHAR(80) NOT NULL DEFAULT '',
        fieldValue TEXT,
-       packageID INT(10),
-       UNIQUE KEY userStorageData (userID, field, packageID)
+       UNIQUE KEY userStorageData (userID, field)
 );
 
 DROP TABLE IF EXISTS wcf1_user_to_group;
@@ -773,28 +1108,40 @@ CREATE TABLE wcf1_user_to_language (
 );
 
 /* foreign keys */
+ALTER TABLE wcf1_acl_option ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
+ALTER TABLE wcf1_acl_option ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_acl_option_category ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
+ALTER TABLE wcf1_acl_option_category ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_acl_option_to_user ADD FOREIGN KEY (optionID) REFERENCES wcf1_acl_option (optionID) ON DELETE CASCADE;
+ALTER TABLE wcf1_acl_option_to_user ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_acl_option_to_group ADD FOREIGN KEY (optionID) REFERENCES wcf1_acl_option (optionID) ON DELETE CASCADE;
+ALTER TABLE wcf1_acl_option_to_group ADD FOREIGN KEY (groupID) REFERENCES wcf1_user_group (groupID) ON DELETE CASCADE;
+
 ALTER TABLE wcf1_acp_menu_item ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
 
 ALTER TABLE wcf1_acp_search_provider ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
 
 ALTER TABLE wcf1_acp_session ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
-ALTER TABLE wcf1_acp_session ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
 
 ALTER TABLE wcf1_acp_session_access_log ADD FOREIGN KEY (sessionLogID) REFERENCES wcf1_acp_session_log (sessionLogID) ON DELETE CASCADE;
-ALTER TABLE wcf1_acp_session_access_log ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE SET NULL;
 
 ALTER TABLE wcf1_acp_session_log ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE SET NULL;
 
 ALTER TABLE wcf1_acp_template ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
 
 ALTER TABLE wcf1_application ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
-ALTER TABLE wcf1_application ADD FOREIGN KEY (groupID) REFERENCES wcf1_application_group (groupID) ON DELETE SET NULL;
 
-ALTER TABLE wcf1_category ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+ALTER TABLE wcf1_attachment ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+ALTER TABLE wcf1_attachment ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE SET NULL;
 
-ALTER TABLE wcf1_cleanup_listener ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
+ALTER TABLE wcf1_bbcode ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
 
-ALTER TABLE wcf1_cleanup_log ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
+ALTER TABLE wcf1_bbcode_attribute ADD FOREIGN KEY (bbcodeID) REFERENCES wcf1_bbcode (bbcodeID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_category ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
 
 ALTER TABLE wcf1_clipboard_action ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
 
@@ -815,9 +1162,6 @@ ALTER TABLE wcf1_language_item ADD FOREIGN KEY (languageID) REFERENCES wcf1_lang
 ALTER TABLE wcf1_language_item ADD FOREIGN KEY (languageCategoryID) REFERENCES wcf1_language_category (languageCategoryID) ON DELETE CASCADE;
 ALTER TABLE wcf1_language_item ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
 
-ALTER TABLE wcf1_language_to_package ADD FOREIGN KEY (languageID) REFERENCES wcf1_language (languageID) ON DELETE CASCADE;
-ALTER TABLE wcf1_language_to_package ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
-
 ALTER TABLE wcf1_modification_log ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
 ALTER TABLE wcf1_modification_log ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE SET NULL;
 
@@ -830,9 +1174,6 @@ ALTER TABLE wcf1_option ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (pac
 
 ALTER TABLE wcf1_option_category ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
 
-ALTER TABLE wcf1_package_dependency ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
-ALTER TABLE wcf1_package_dependency ADD FOREIGN KEY (dependency) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
-
 ALTER TABLE wcf1_package_exclusion ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
 
 ALTER TABLE wcf1_package_installation_file_log ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
@@ -851,9 +1192,6 @@ ALTER TABLE wcf1_package_installation_sql_log ADD FOREIGN KEY (packageID) REFERE
 ALTER TABLE wcf1_package_requirement ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
 ALTER TABLE wcf1_package_requirement ADD FOREIGN KEY (requirement) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
 
-ALTER TABLE wcf1_package_requirement_map ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
-ALTER TABLE wcf1_package_requirement_map ADD FOREIGN KEY (requirement) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
-
 ALTER TABLE wcf1_package_update ADD FOREIGN KEY (packageUpdateServerID) REFERENCES wcf1_package_update_server (packageUpdateServerID) ON DELETE CASCADE;
 
 ALTER TABLE wcf1_package_update_exclusion ADD FOREIGN KEY (packageUpdateVersionID) REFERENCES wcf1_package_update_version (packageUpdateVersionID) ON DELETE CASCADE;
@@ -862,31 +1200,34 @@ ALTER TABLE wcf1_package_update_fromversion ADD FOREIGN KEY (packageUpdateVersio
 
 ALTER TABLE wcf1_package_update_requirement ADD FOREIGN KEY (packageUpdateVersionID) REFERENCES wcf1_package_update_version (packageUpdateVersionID) ON DELETE CASCADE;
 
+ALTER TABLE wcf1_package_update_optional ADD FOREIGN KEY (packageUpdateVersionID) REFERENCES wcf1_package_update_version (packageUpdateVersionID) ON DELETE CASCADE;
+
 ALTER TABLE wcf1_package_update_version ADD FOREIGN KEY (packageUpdateID) REFERENCES wcf1_package_update (packageUpdateID) ON DELETE CASCADE;
 
 ALTER TABLE wcf1_page_menu_item ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
 
 ALTER TABLE wcf1_search ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
 
-ALTER TABLE wcf1_session ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
 ALTER TABLE wcf1_session ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+ALTER TABLE wcf1_session ADD FOREIGN KEY (spiderID) REFERENCES wcf1_spider (spiderID) ON DELETE CASCADE;
 
 ALTER TABLE wcf1_sitemap ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
 
+ALTER TABLE wcf1_smiley ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
+ALTER TABLE wcf1_smiley ADD FOREIGN KEY (categoryID) REFERENCES wcf1_category (categoryID) ON DELETE SET NULL;
+
 ALTER TABLE wcf1_user_storage ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
-ALTER TABLE wcf1_user_storage ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
 
 ALTER TABLE wcf1_style ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
 
-ALTER TABLE wcf1_style_to_package ADD FOREIGN KEY (styleID) REFERENCES wcf1_style (styleID) ON DELETE CASCADE;
-ALTER TABLE wcf1_style_to_package ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
-
 ALTER TABLE wcf1_style_variable_value ADD FOREIGN KEY (styleID) REFERENCES wcf1_style (styleID) ON DELETE CASCADE;
 ALTER TABLE wcf1_style_variable_value ADD FOREIGN KEY (variableID) REFERENCES wcf1_style_variable (variableID) ON DELETE CASCADE;
 
 ALTER TABLE wcf1_template ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
 ALTER TABLE wcf1_template ADD FOREIGN KEY (templateGroupID) REFERENCES wcf1_template_group (templateGroupID) ON DELETE CASCADE;
 
+ALTER TABLE wcf1_template_group ADD FOREIGN KEY (parentTemplateGroupID) REFERENCES wcf1_template_group (templateGroupID) ON DELETE SET NULL;
+
 ALTER TABLE wcf1_template_listener ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
 
 ALTER TABLE wcf1_user_collapsible_content ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
@@ -911,6 +1252,72 @@ ALTER TABLE wcf1_user_to_group ADD FOREIGN KEY (groupID) REFERENCES wcf1_user_gr
 ALTER TABLE wcf1_user_to_language ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
 ALTER TABLE wcf1_user_to_language ADD FOREIGN KEY (languageID) REFERENCES wcf1_language (languageID) ON DELETE CASCADE;
 
+ALTER TABLE wcf1_dashboard_box ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_dashboard_option ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+ALTER TABLE wcf1_dashboard_option ADD FOREIGN KEY (boxID) REFERENCES wcf1_dashboard_box (boxID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_tracked_visit ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+ALTER TABLE wcf1_tracked_visit ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_tracked_visit_type ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+ALTER TABLE wcf1_tracked_visit_type ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user ADD FOREIGN KEY (avatarID) REFERENCES wcf1_user_avatar (avatarID) ON DELETE SET NULL;
+ALTER TABLE wcf1_user ADD FOREIGN KEY (rankID) REFERENCES wcf1_user_rank (rankID) ON DELETE SET NULL;
+ALTER TABLE wcf1_user ADD FOREIGN KEY (userOnlineGroupID) REFERENCES wcf1_user_group (groupID) ON DELETE SET NULL;
+
+ALTER TABLE wcf1_user_avatar ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_follow ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_follow ADD FOREIGN KEY (followUserID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_ignore ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_ignore ADD FOREIGN KEY (ignoreUserID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_menu_item ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_notification ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_notification ADD FOREIGN KEY (eventID) REFERENCES wcf1_user_notification_event (eventID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_notification ADD FOREIGN KEY (authorID) REFERENCES wcf1_user (userID) ON DELETE SET NULL;
+
+ALTER TABLE wcf1_user_notification_to_user ADD FOREIGN KEY (notificationID) REFERENCES wcf1_user_notification (notificationID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_notification_to_user ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_notification_event ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_notification_event ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_notification_event_to_user ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_notification_event_to_user ADD FOREIGN KEY (eventID) REFERENCES wcf1_user_notification_event (eventID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_profile_menu_item ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_rank ADD FOREIGN KEY (groupID) REFERENCES wcf1_user_group (groupID) ON DELETE SET NULL;
+
+ALTER TABLE wcf1_user_activity_event ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_activity_event ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_activity_event ADD FOREIGN KEY (languageID) REFERENCES wcf1_language (languageID) ON DELETE SET NULL;
+
+ALTER TABLE wcf1_user_activity_point ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_activity_point ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_activity_point_event ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_activity_point_event ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_profile_visitor ADD FOREIGN KEY (ownerID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_profile_visitor ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_object_watch ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_object_watch ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_moderation_queue ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+ALTER TABLE wcf1_moderation_queue ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE SET NULL;
+ALTER TABLE wcf1_moderation_queue ADD FOREIGN KEY (assignedUserID) REFERENCES wcf1_user (userID) ON DELETE SET NULL;
+
+ALTER TABLE wcf1_moderation_queue_to_user ADD FOREIGN KEY (queueID) REFERENCES wcf1_moderation_queue (queueID) ON DELETE CASCADE;
+ALTER TABLE wcf1_moderation_queue_to_user ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+
+
 /* default inserts */
 -- default user groups
 INSERT INTO wcf1_user_group (groupName, groupType) VALUES ('wcf.acp.group.group1', 1);
@@ -934,8 +1341,8 @@ INSERT INTO wcf1_user_group_option_value (groupID, optionID, optionValue) VALUES
 INSERT INTO wcf1_user_group_option_value (groupID, optionID, optionValue) VALUES (4, 3, '1');  -- Administrators
 
 -- default update servers
-INSERT INTO wcf1_package_update_server (serverURL, status, disabled, errorMessage, lastUpdateTime, loginUsername, loginPassword) VALUES ('http://update.woltlab.com/maelstrom/', 'online', 0, NULL, 0, '', '');
-INSERT INTO wcf1_package_update_server (serverURL, status, disabled, errorMessage, lastUpdateTime, loginUsername, loginPassword) VALUES ('http://store.woltlab.com/maelstrom/', 'online', 0, NULL, 0, '', '');
+INSERT INTO wcf1_package_update_server (serverURL, status, isDisabled, errorMessage, lastUpdateTime, loginUsername, loginPassword) VALUES ('http://update.woltlab.com/maelstrom/', 'online', 0, NULL, 0, '', '');
+INSERT INTO wcf1_package_update_server (serverURL, status, isDisabled, errorMessage, lastUpdateTime, loginUsername, loginPassword) VALUES ('http://store.woltlab.com/maelstrom/', 'online', 0, NULL, 0, '', '');
 
 -- style default values
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfContentBackgroundColor', 'rgba(255, 255, 255, 1)');
@@ -980,6 +1387,7 @@ INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfPageLin
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfPageLinkHoverColor', 'rgba(15, 79, 143, 1)');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfSidebarBackgroundColor', '@wcfContainerHoverBackgroundColor');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfDimmedColor', 'rgba(136, 136, 136, 1)');
+INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfExtraDimmedColor', 'lighten(@wcfDimmedColor, 20%)');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfLabelColor', '@wcfColor');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfHeadlineColor', '@wcfColor');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfHeadlineFontFamily', '"Trebuchet MS", Arial, sans-serif');
@@ -987,7 +1395,7 @@ INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfDropdow
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfDropdownColor', '@wcfColor');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfDropdownBorderColor', '@wcfContainerBorderColor');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfDropdownHoverBackgroundColor', '@wcfContainerHoverBackgroundColor');
-INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfBaseLineHeight', '1.27');
+INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfBaseLineHeight', '1.28');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfHeadlineFontSize', '170%');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfSubHeadlineFontSize', '140%');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfTitleFontSize', '120%');
@@ -1006,6 +1414,7 @@ INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfInfoBac
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfInfoBorderColor', 'rgba(153, 187, 238, 1)');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfTooltipBackgroundColor', 'rgba(0, 0, 0, .8)');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfTooltipColor', 'rgba(255, 255, 255, 1)');
+INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfHighlightBackgroundColor', 'rgba(255, 255, 102, 1)');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfGapTiny', '4px');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfGapSmall', '7px');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfGapMedium', '14px');
@@ -1017,10 +1426,56 @@ INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfMainMen
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfMainMenuColor', '@wcfColor');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfMainMenuActiveColor', '@wcfLinkColor');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfUserPanelHoverBackgroundColor', 'rgba(60, 60, 60, 1)');
-INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfMarkedBackgroundColor', 'rgba(255, 255, 200, 1)');
+INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfSelectedBackgroundColor', 'rgba(255, 255, 200, 1)');
+INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfSelectedColor', '@wcfColor');
+INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfDeletedBackgroundColor', 'rgba(255, 238, 238, 1)');
+INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfDeletedColor', 'rgba(204, 0, 0, 1)');
+INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfDisabledBackgroundColor', 'rgba(238, 255, 238, 1)');
+INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('wcfDisabledColor', 'rgba(0, 153, 0, 1)');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('useFluidLayout', '1');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('pageLogo', '');
-INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('pageLogoHeight', 'auto');
-INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('pageLogoWidth', 'auto');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('individualLess', '');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('overrideLess', '');
+
+-- media providers
+-- Videos
+       -- Youtube
+       INSERT INTO wcf1_bbcode_media_provider (title, regex, html) VALUES ('YouTube', 'https?://(?:.+?\\.)?youtu(?:\\.be/|be\\.com/watch\\?(?:.*?&)?v=)(?<ID>[a-zA-Z0-9_-]+)(?<start>#t=(?:\\d+|(?:\\d+h(?:\\d+m)?(?:\\d+s)?)|(?:\\d+m(?:\\d+s)?)|(?:\\d+s))$)?', '<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/{$ID}?wmode=transparent{$start}" frameborder="0" allowfullscreen></iframe>');
+       -- Vimeo
+       INSERT INTO wcf1_bbcode_media_provider (title, regex, html) VALUES ('Vimeo', 'http://vimeo\\.com/(?<ID>\\d+)', '<iframe src="http://player.vimeo.com/video/{$ID}" width="400" height="225" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>');
+       -- MyVideo
+       INSERT INTO wcf1_bbcode_media_provider (title, regex, html) VALUES ('MyVideo', 'http://(?:www\\.)?myvideo\\.de/watch/(?<ID>\\d+)', '<object style="width:611px;height:383px;" width="611" height="383"><embed src="http://www.myvideo.de/movie/{$ID}" width="611" height="383" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true"></embed><param name="movie" value="http://www.myvideo.de/movie/{$ID}"></param><param name="AllowFullscreen" value="true"></param><param name="AllowScriptAccess" value="always"></param></object>');
+       -- Clipfish
+       INSERT INTO wcf1_bbcode_media_provider (title, regex, html) VALUES ('Clipfish', 'http://(?:www\\.)?clipfish\\.de/video/(?<ID>\\d+)/', '<div style="width:464px; height:404px;"><div style="width:464px; height:384px;"><iframe src="http://www.clipfish.de/embed_video/?vid={$ID}&amp;as=0&amp;col=990000" name="Clipfish Embedded Video" width="464" height="384" align="left" marginheight="0" marginwidth="0" frameborder="0" scrolling="no"></iframe></div></div>');
+       -- Veoh
+       INSERT INTO wcf1_bbcode_media_provider (title, regex, html) VALUES ('Veoh', 'http://(?:www\\.)?veoh\\.com/watch/v(?<ID>\\d+[a-zA-Z0-9]+)', '<object width="410" height="341" id="veohFlashPlayer" name="veohFlashPlayer"><param name="movie" value="http://www.veoh.com/swf/webplayer/WebPlayer.swf?version=AFrontend.5.7.0.1308&amp;permalinkId=v{$ID}&amp;player=videodetailsembedded&amp;videoAutoPlay=0&amp;id=anonymous"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.veoh.com/swf/webplayer/WebPlayer.swf?version=AFrontend.5.7.0.1308&amp;permalinkId=v{$ID}&amp;player=videodetailsembedded&amp;videoAutoPlay=0&amp;id=anonymous" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="410" height="341" id="veohFlashPlayerEmbed" name="veohFlashPlayerEmbed"></embed></object>');
+       -- DailyMotion
+       INSERT INTO wcf1_bbcode_media_provider (title, regex, html) VALUES ('DailyMotion', 'https?://(?:www\\.)?dailymotion\\.com/video/(?<ID>[a-zA-Z0-9]+)', '<iframe frameborder="0" width="480" height="208" src="http://www.dailymotion.com/embed/video/{$ID}"></iframe>');
+       -- YouKu
+       INSERT INTO wcf1_bbcode_media_provider (title, regex, html) VALUES ('YouKu', 'https?://(?:.+?\\.)?youku\\.com/v_show/id_(?<ID>[a-zA-Z0-9_-]+)(?:\\.html)?', '<iframe height=498 width=510 src="http://player.youku.com/embed/{$ID}" frameborder="0" allowfullscreen></iframe>');
+-- Misc
+       -- github gist
+       INSERT INTO wcf1_bbcode_media_provider (title, regex, html) VALUES ('github gist', 'https://gist.github.com/(?<ID>[^/]+/[0-9a-zA-Z]+)', '<script src="https://gist.github.com/{$ID}.js"> </script>');
+       -- soundcloud
+       INSERT INTO wcf1_bbcode_media_provider (title, regex, html) VALUES ('Soundcloud', 'https?://soundcloud.com/(?<artist>[a-zA-Z0-9_-]+)/(?<song>[a-zA-Z0-9_-]+)', '<iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=http%3A%2F%2Fsoundcloud.com%2F{$artist}%2F{$song}"></iframe>');
+
+-- default priorities
+UPDATE wcf1_user_group SET priority = 10 WHERE groupID = 3;
+UPDATE wcf1_user_group SET priority = 1000 WHERE groupID = 4;
+UPDATE wcf1_user_group SET priority = 50 WHERE groupID = 5;
+UPDATE wcf1_user_group SET priority = 100 WHERE groupID = 6;
+
+-- default 'showOnTeamPage' setting
+UPDATE wcf1_user_group SET showOnTeamPage = 1 WHERE groupID IN (4, 5, 6);
+
+-- default ranks
+INSERT INTO wcf1_user_rank (groupID, requiredPoints, rankTitle, cssClassName) VALUES
+       (4, 0, 'wcf.user.rank.administrator', 'blue'),
+       (5, 0, 'wcf.user.rank.moderator', 'blue'),
+       (6, 0, 'wcf.user.rank.superModerator', 'blue'),
+       (3, 0, 'wcf.user.rank.user0', ''),
+       (3, 300, 'wcf.user.rank.user1', ''),
+       (3, 900, 'wcf.user.rank.user2', ''),
+       (3, 3000, 'wcf.user.rank.user3', ''),
+       (3, 9000, 'wcf.user.rank.user4', ''),
+       (3, 15000, 'wcf.user.rank.user5', '');
\ No newline at end of file