Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Install/Upgrade/1040010-140a.php
<?php

namespace XF\Install\Upgrade;

class
Version1040010 extends AbstractUpgrade
{
    public function
getVersionName()
    {
        return
'1.4.0 Alpha';
    }

    public function
step1()
    {
       
$this->executeUpgradeQuery("
            CREATE TABLE xf_email_bounce_log (
                `bounce_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
                `log_date` int(10) unsigned NOT NULL,
                `email_date` int(10) unsigned NOT NULL,
                `message_type` varchar(25) NOT NULL,
                `action_taken` varchar(25) NOT NULL,
                `user_id` int(10) unsigned DEFAULT NULL,
                `recipient` varchar(255) DEFAULT NULL,
                `raw_message` mediumblob NOT NULL,
                `status_code` varchar(25) DEFAULT NULL,
                `diagnostic_info` text,
                PRIMARY KEY (`bounce_id`),
                KEY `log_date` (`log_date`)
            ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci
        "
);
       
$this->executeUpgradeQuery("
            CREATE TABLE xf_email_bounce_soft (
                `bounce_soft_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
                `user_id` int(10) unsigned NOT NULL,
                `bounce_date` date NOT NULL,
                `bounce_total` smallint(5) unsigned NOT NULL,
                PRIMARY KEY (`bounce_soft_id`),
                UNIQUE KEY `user_id` (`user_id`,`bounce_date`),
                KEY `bounce_date` (`bounce_date`)
            ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci
        "
);
       
$this->executeUpgradeQuery("
            CREATE TABLE xf_help_page (
                `page_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
                `page_name` varchar(50) NOT NULL,
                `display_order` int(10) unsigned NOT NULL DEFAULT '0',
                `callback_class` varchar(75) NOT NULL DEFAULT '',
                `callback_method` varchar(75) NOT NULL DEFAULT '',
                PRIMARY KEY (`page_id`),
                UNIQUE KEY `page_name` (`page_name`),
                KEY `display_order` (`display_order`)
            ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci
        "
);
       
$this->executeUpgradeQuery("
            CREATE TABLE xf_sitemap (
                `sitemap_id` int(10) unsigned NOT NULL,
                `is_active` tinyint(3) unsigned NOT NULL,
                `file_count` smallint(5) unsigned NOT NULL,
                `entry_count` INT UNSIGNED NOT NULL DEFAULT '0',
                `is_compressed` tinyint(3) unsigned NOT NULL,
                `complete_date` int(10) unsigned DEFAULT NULL,
                PRIMARY KEY (`sitemap_id`),
                KEY `is_active` (`is_active`)
            ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci
        "
);
       
$this->executeUpgradeQuery("
            CREATE TABLE xf_thread_reply_ban (
                `thread_reply_ban_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
                `thread_id` int(10) unsigned NOT NULL,
                `user_id` int(10) unsigned NOT NULL,
                `ban_date` int(10) unsigned NOT NULL,
                `expiry_date` int(10) unsigned DEFAULT NULL,
                `reason` varchar(100) NOT NULL DEFAULT '',
                `ban_user_id` int(10) unsigned NOT NULL,
                PRIMARY KEY (`thread_reply_ban_id`),
                UNIQUE KEY `thread_id` (`thread_id`,`user_id`),
                KEY `expiry_date` (`expiry_date`),
                KEY `user_id` (`user_id`)
            ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci
        "
);

       
$this->applyGlobalPermission('general', 'viewMemberList', 'general', 'view');
       
$this->applyGlobalPermission('forum', 'threadReplyBan', 'forum', 'deleteAnyPost');
       
$this->applyContentPermission('forum', 'threadReplyBan', 'forum', 'deleteAnyPost');

       
$this->executeUpgradeQuery("
            INSERT IGNORE INTO xf_admin_permission_entry
                (user_id, admin_permission_id)
            SELECT user_id, 'help'
            FROM xf_admin_permission_entry
            WHERE admin_permission_id = 'notice'
        "
);

       
$this->executeUpgradeQuery("
            INSERT IGNORE INTO xf_content_type_field
                (content_type, field_name, field_value)
            VALUES
                ('node', 'sitemap_handler_class', 'XenForo_SitemapHandler_Node'),
                ('thread', 'sitemap_handler_class', 'XenForo_SitemapHandler_Thread'),
                ('user', 'sitemap_handler_class', 'XenForo_SitemapHandler_User'),

                ('thread', 'alert_handler_class', 'XenForo_AlertHandler_Thread')
        "
);

       
$regDefault = @unserialize($this->db()->fetchOne("
            SELECT option_value
            FROM xf_option
            WHERE option_id = 'registrationDefaults'
        "
));
        if (
$regDefault)
        {
           
$regDefault['activity_visible'] = !empty($regDefault['visible']) ? '1' : '0';
           
$this->db()->update('xf_option', [
               
'option_value' => serialize($regDefault)
            ],
"option_id = 'registrationDefaults'");
        }
    }

    public function
step2()
    {
       
$this->executeUpgradeQuery("
            ALTER TABLE xf_bb_code ADD allow_empty TINYINT UNSIGNED NOT NULL DEFAULT '0'
        "
);

       
$this->executeUpgradeQuery("
            ALTER TABLE xf_forum
                CHANGE moderate_messages moderate_replies TINYINT UNSIGNED NOT NULL DEFAULT 0,
                ADD moderate_threads TINYINT UNSIGNED NOT NULL DEFAULT 0,
                ADD allow_poll TINYINT UNSIGNED NOT NULL DEFAULT 1,
                ADD list_date_limit_days SMALLINT UNSIGNED NOT NULL DEFAULT 0
        "
);
       
$this->executeUpgradeQuery("
            UPDATE xf_forum SET moderate_threads = 1 WHERE moderate_replies = 1
        "
);

       
$this->executeUpgradeQuery("RENAME TABLE xf_trophy_user_title TO xf_user_title_ladder");
       
$this->executeUpgradeQuery("
            ALTER TABLE xf_user_title_ladder
                CHANGE minimum_points minimum_level INT UNSIGNED NOT NULL
        "
);
    }

    public function
step3()
    {
       
$this->executeUpgradeQuery("
            ALTER TABLE xf_poll ADD change_vote TINYINT UNSIGNED NOT NULL DEFAULT 0,
                ADD view_results_unvoted TINYINT UNSIGNED NOT NULL DEFAULT 1,
                ADD max_votes TINYINT UNSIGNED NOT NULL DEFAULT 1
        "
);
       
$this->executeUpgradeQuery("
            UPDATE xf_poll SET max_votes = 0 WHERE multiple = 1
        "
);
       
$this->executeUpgradeQuery("
            ALTER TABLE xf_poll DROP multiple
        "
);
    }

    public function
step4()
    {
       
$this->executeUpgradeQuery("
            ALTER TABLE xf_user ADD activity_visible TINYINT UNSIGNED NOT NULL DEFAULT 1
        "
);
    }

    public function
step5()
    {
       
$this->executeUpgradeQuery("
            ALTER TABLE xf_user_profile ADD password_date INT UNSIGNED NOT NULL DEFAULT 1
        "
);
    }
}