Вход Регистрация
Файл: library/XenForo/Install/Upgrade/1020010-120a.php
Строк: 244
<?php

class XenForo_Install_Upgrade_1020010 extends XenForo_Install_Upgrade_Abstract
{
    public function 
getVersionName()
    {
        return 
'1.2.0 Alpha';
    }

    public function 
step1()
    {
        
$tables XenForo_Install_Data_MySql::getTables();

        
$this->executeUpgradeQuery('
            DROP TABLE IF EXISTS xf_permission_cache_content_type
        '
);
        
$this->executeUpgradeQuery('
            DROP TABLE IF EXISTS xf_permission_cache_global_group
        '
);

        
$this->executeUpgradeQuery($tables['xf_deferred']);
        
$this->executeUpgradeQuery($tables['xf_draft']);
        
$this->executeUpgradeQuery($tables['xf_edit_history']);
        
$this->executeUpgradeQuery($tables['xf_forum_watch']);
        
$this->executeUpgradeQuery($tables['xf_registration_spam_cache']);
        
$this->executeUpgradeQuery($tables['xf_content_spam_cache']);
        
$this->executeUpgradeQuery($tables['xf_bb_code_parse_cache']);
        
$this->executeUpgradeQuery($tables['xf_route_filter']);
        
$this->executeUpgradeQuery($tables['xf_mail_queue']);
        
        
$this->executeUpgradeQuery($tables['xf_template_history']);
        
$this->executeUpgradeQuery($tables['xf_template_modification']);
        
$this->executeUpgradeQuery($tables['xf_template_modification_log']);
        
$this->executeUpgradeQuery($tables['xf_admin_template_modification']);
        
$this->executeUpgradeQuery($tables['xf_admin_template_modification_log']);
        
$this->executeUpgradeQuery($tables['xf_email_template_modification']);
        
$this->executeUpgradeQuery($tables['xf_email_template_modification_log']);

        return 
true;
    }

    public function 
step2()
    {
        
$this->applyGlobalPermission('general''editProfile');
        
$this->applyGlobalPermission('forum''editOwnThreadTitle''forum''editOwnPost'false);
        
$this->applyGlobalPermission('signature''basicText''general''editSignature'false);
        
$this->applyGlobalPermission('signature''extendedText''general''editSignature'false);
        
$this->applyGlobalPermission('signature''align''general''editSignature'false);
        
$this->applyGlobalPermission('signature''list''general''editSignature'false);
        
$this->applyGlobalPermission('signature''image''general''editSignature'false);
        
$this->applyGlobalPermission('signature''link''general''editSignature'false);
        
$this->applyGlobalPermission('signature''basicText''general''editSignature'false);
        
$this->applyGlobalPermission('signature''media''general''editSignature'false);
        
$this->applyGlobalPermission('signature''block''general''editSignature'false);
        
$this->applyGlobalPermissionInt('signature''maxPrintable', -1'general''editSignature');
        
$this->applyGlobalPermissionInt('signature''maxLines', -1'general''editSignature');
        
$this->applyGlobalPermissionInt('signature''maxLinks', -1'general''editSignature');
        
$this->applyGlobalPermissionInt('signature''maxImages', -1'general''editSignature');
        
$this->applyGlobalPermissionInt('signature''maxSmilies', -1'general''editSignature');
        
$this->applyGlobalPermissionInt('signature''maxTextSize', -1'general''editSignature');
        
$this->applyGlobalPermissionInt('general''maxTaggedUsers'5'forum''postReply');

        
$this->executeUpgradeQuery("
            INSERT INTO xf_content_type
                (content_type, addon_id, fields)
            VALUES
                ('page',  'XenForo', '')
        "
);

        
$this->executeUpgradeQuery("
            INSERT IGNORE INTO xf_content_type_field
                (content_type, field_name, field_value)
            VALUES
                ('post', 'edit_history_handler_class', 'XenForo_EditHistoryHandler_Post'),
                ('page', 'search_handler_class', 'XenForo_Search_DataHandler_Page'),
                ('conversation', 'spam_handler_class', 'XenForo_SpamHandler_Conversation')
        "
);

        return 
true;
    }

    public function 
step3()
    {
        
$this->executeUpgradeQuery("
            ALTER TABLE `xf_session_activity` ADD `robot_key` VARBINARY(25) NOT NULL DEFAULT ''
        "
);

        
$this->executeUpgradeQuery("
            ALTER TABLE  `xf_template`
                ADD `disable_modifications` TINYINT UNSIGNED NOT NULL DEFAULT  '0',
                ADD  `last_edit_date` INT UNSIGNED NOT NULL DEFAULT  '0'
        "
);

        
$this->executeUpgradeQuery("
            ALTER TABLE xf_ban_email CHANGE banned_email banned_email VARCHAR(120) NOT NULL
        "
);

        
$this->executeUpgradeQuery("
            ALTER TABLE  `xf_user_group`
                ADD  `banner_css_class` VARCHAR( 75 ) NOT NULL DEFAULT  '',
                ADD  `banner_text` VARCHAR( 100 ) NOT NULL DEFAULT  ''
        "
);

        return 
true;
    }

    public function 
step4()
    {
        
$this->executeUpgradeQuery("
            ALTER TABLE `xf_node` ADD `breadcrumb_data` BLOB NULL DEFAULT NULL
        "
);

        
$this->executeUpgradeQuery("
            ALTER TABLE xf_forum
                ADD require_prefix TINYINT UNSIGNED NOT NULL DEFAULT '0',
                ADD allowed_watch_notifications VARCHAR(10) NOT NULL DEFAULT 'all',
                ADD default_sort_order VARCHAR(25) NOT NULL DEFAULT 'last_post_date',
                ADD default_sort_direction VARCHAR(5) NOT NULL DEFAULT 'desc'
        "
);

        
$this->executeUpgradeQuery("
            ALTER TABLE xf_code_event_listener ADD hint VARCHAR(255) NOT NULL DEFAULT ''
        "
);

        
$this->executeUpgradeQuery("
            ALTER TABLE xf_option
                CHANGE edit_format edit_format ENUM('textbox','spinbox','onoff','radio','select','checkbox','template','callback','onofftextbox') NOT NULL
        "
);

        return 
true;
    }

    public function 
step5()
    {
        
$this->executeUpgradeQuery("
            ALTER TABLE  `xf_report` ADD  `report_count` INT UNSIGNED NOT NULL DEFAULT  '0'
        "
);
        
$this->executeUpgradeQuery("
            ALTER TABLE `xf_report_comment` ADD  `is_report` TINYINT UNSIGNED NOT NULL DEFAULT  '1'
        "
);

        
$ids $this->_getDb()->fetchCol("(SELECT user_id FROM xf_moderator) UNION (SELECT user_id FROM xf_admin)");
        if (
$ids)
        {
            
$this->executeUpgradeQuery("
                UPDATE xf_report_comment SET is_report = 0 WHERE user_id IN (" 
$this->_getDb()->quote($ids) . ")
            "
);
        }

        return 
true;
    }

    public function 
step6()
    {
        
$this->executeUpgradeQuery("
            ALTER TABLE `xf_liked_content` ADD INDEX `like_user_content_type_id` (`like_user_id`, `content_type`, `content_id`)
        "
);

        return 
true;
    }

    public function 
step7()
    {
        
$this->executeUpgradeQuery("
            ALTER TABLE  `xf_user`
                ADD `is_staff` TINYINT UNSIGNED NOT NULL DEFAULT  '0',
                ADD INDEX message_count (  `message_count` ),
                ADD INDEX trophy_points (  `trophy_points` ),
                ADD INDEX like_count (  `like_count` ),
                ADD INDEX register_date (  `register_date` ),
                ADD INDEX `staff_username` (  `is_staff` ,  `username` )
        "
);

        return 
true;
    }

    public function 
step8()
    {
        
$this->executeUpgradeQuery("
            ALTER TABLE `xf_user_profile` ADD INDEX  `dob` (  `dob_month` ,  `dob_day` ,  `dob_year` )
        "
);
        
$this->executeUpgradeQuery("
            ALTER TABLE xf_user_option ADD enable_flash_uploader TINYINT UNSIGNED NOT NULL DEFAULT 1
        "
);

        
$this->executeUpgradeQuery("
            UPDATE xf_moderator AS moderator
            INNER JOIN xf_user AS user ON (moderator.user_id = user.user_id)
            SET user.is_staff = 1
        "
);

        return 
true;
    }

    public function 
step9()
    {
        
$this->executeUpgradeQuery("
            UPDATE xf_user_upgrade
            SET description = REPLACE(REPLACE(description, 'r', ''), 'n', '<br />n')
        "
);

        
$this->executeUpgradeQuery("
            ALTER TABLE xf_user_upgrade_expired
                ADD extra MEDIUMBLOB NOT NULL,
                ADD original_end_date INT UNSIGNED NOT NULL DEFAULT 0
        "
);

        
$this->executeUpgradeQuery("
            ALTER TABLE xf_user_upgrade_log
                ADD subscriber_id VARCHAR(50) NOT NULL DEFAULT '',
                ADD INDEX subscriber_id (subscriber_id)
        "
);

        return 
true;
    }

    public function 
step10()
    {
        
$this->executeUpgradeQuery("
            ALTER TABLE xf_conversation_master
                ADD recipients mediumblob NOT NULL,
                ADD INDEX user_id (user_id)
        "
);

        
$this->executeUpgradeQuery("
            ALTER TABLE xf_conversation_user
                ADD is_starred TINYINT UNSIGNED NOT NULL DEFAULT '0',
                ADD INDEX owner_starred_date (owner_user_id, is_starred, last_message_date)
        "
);

        return 
true;
    }

    public function 
step11()
    {
        
$this->executeUpgradeQuery('
            ALTER TABLE xf_post
                ADD last_edit_date INT UNSIGNED NOT NULL DEFAULT 0,
                ADD last_edit_user_id INT UNSIGNED NOT NULL DEFAULT 0,
                ADD edit_count INT UNSIGNED NOT NULL DEFAULT 0
        '
);

        return 
true;
    }

    public function 
step12()
    {
        
$this->executeUpgradeQuery("
            ALTER TABLE `xf_ip` ADD INDEX log_date (`log_date`)
        "
);

        
$this->executeUpgradeQuery("
            INSERT IGNORE INTO xf_option
                (option_id, option_value, default_value, edit_format, edit_format_params, data_type, sub_options,
                can_backup, validation_class, validation_method, addon_id)
            VALUES
                ('ipLogCleanUp', 'a:2:{s:7:"
enabled";b:0;s:5:"delay";b:0;}', '', '', '', '', '',
                1, '', '', 'XenForo')
        "
);

        return 
true;
    }

    public function 
step13()
    {
        
$this->executeUpgradeQuery("
            ALTER TABLE `xf_thread`
                DROP INDEX node_id_sticky_last_post_date,
                ADD INDEX  `node_id_sticky_state_last_post` (  `node_id` ,  `sticky` ,  `discussion_state` , `last_post_date` )
        "
);

        return 
true;
    }
}
Онлайн: 1
Реклама