Seditio Source
Root |
./othercms/ips_4.3.4/applications/core/setup/upg_31006/upgrade.php
<?php
/**
 * @brief        Upgrade steps
 * @author        <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
 * @copyright    (c) Invision Power Services, Inc.
 * @license        https://www.invisioncommunity.com/legal/standards/
 * @package        Invision Community
 * @since        27 May 2014
 */

namespace IPS\core\setup\upg_31006;

/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
   
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
    exit;
}

/**
 * Upgrade steps
 */
class _Upgrade
{
   
/**
     * Step 1
     *
     * @return    array    If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
     */
   
public function step1()
    {
       
$queries    = array();
       
        if ( ! isset( \
IPS\Request::i()->run_anyway ) )
        {
            \
IPS\Db::i()->addColumn( 'pfields_data', array(
               
'name'            => 'pf_filtering',
               
'type'            => 'tinyint',
               
'length'        => 1,
               
'allow_null'    => false,
               
'default'        => 0
           
) );
   
            if( \
IPS\Db::i()->checkForTable('cal_events') )
            {
                \
IPS\Db::i()->changeColumn( 'cal_events', 'event_tz', array(
                   
'name'            => 'event_tz',
                   
'type'            => 'varchar',
                   
'length'        => 4,
                   
'allow_null'    => false,
                   
'default'        => '0'
               
) );
            }
   
            \
IPS\Db::i()->insert( 'upgrade_history', array(
               
'upgrade_version_id'        => '31006',
               
'upgrade_version_human'        => '3.1.3',
               
'upgrade_date'                => time(),
               
'upgrade_mid'                => 1,
               
'upgrade_app'                => 'calendar'
           
) );
   
            if( \
IPS\Db::i()->checkForIndex( 'mobile_notifications', 'id' ) )
            {
                \
IPS\Db::i()->dropIndex( 'mobile_notifications', 'id' );
            }
   
            \
IPS\Db::i()->dropIndex( 'profile_friends', 'friends_member_id' );
            \
IPS\Db::i()->dropIndex( 'member_status_updates', 'status_member_id' );
   
            \
IPS\Db::i()->changeColumn( 'moderator_logs', 'topic_title', array(
               
'name'            => 'topic_title',
               
'type'            => 'text',
               
'length'        => null,
               
'allow_null'    => true,
               
'default'        => null
           
) );
   
            \
IPS\Db::i()->changeColumn( 'moderator_logs', 'query_string', array(
               
'name'            => 'query_string',
               
'type'            => 'text',
               
'length'        => null,
               
'allow_null'    => true,
               
'default'        => null
           
) );
   
            \
IPS\Db::i()->changeColumn( 'moderator_logs', 'http_referer', array(
               
'name'            => 'http_referer',
               
'type'            => 'text',
               
'length'        => null,
               
'allow_null'    => true,
               
'default'        => null
           
) );
   
            \
IPS\Db::i()->changeColumn( 'moderator_logs', 'action', array(
               
'name'            => 'action',
               
'type'            => 'text',
               
'length'        => null,
               
'allow_null'    => true,
               
'default'        => null
           
) );
   
            \
IPS\Db::i()->dropIndex( 'attachments', 'attach_where' );
   
            \
IPS\Db::i()->delete( 'core_sys_conf_settings', array( "conf_key=?", 'acp_tutorial_mode' ) );
            \
IPS\Settings::i()->clearCache();
   
            \
IPS\Db::i()->update( 'skin_templates', array( 'template_data' => '$required_output=\'\',$optional_output=\'\',$day=\'\',$mon=\'\',$year=\'\'' ), array( 'template_name=?', 'membersProfileForm' ) );
   
            if( \
IPS\Db::i()->checkForTable('facebook_oauth_temp') )
            {
                \
IPS\Db::i()->dropTable( 'facebook_oauth_temp' );
            }
   
            if( \
IPS\Db::i()->checkForTable('search_index') )
            {
                \
IPS\Db::i()->dropTable( 'search_index' );
            }
   
            if( \
IPS\Db::i()->checkForTable('templates_diff_import') )
            {
                \
IPS\Db::i()->dropTable( 'templates_diff_import' );
            }
   
            if( \
IPS\Db::i()->checkForTable('template_diff_changes') )
            {
                \
IPS\Db::i()->dropTable( 'template_diff_changes' );
            }
   
            if( \
IPS\Db::i()->checkForTable('template_diff_session') )
            {
                \
IPS\Db::i()->dropTable( 'template_diff_session' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'attachments', 'attach_approved' ) )
            {
                \
IPS\Db::i()->dropColumn( 'attachments', 'attach_approved' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'attachments', 'attach_temp' ) )
            {
                \
IPS\Db::i()->dropColumn( 'attachments', 'attach_temp' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'bulk_mail', 'mail_honor' ) )
            {
                \
IPS\Db::i()->dropColumn( 'bulk_mail', 'mail_honor' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'core_rss_imported', 'rss_foreign_id' ) )
            {
                \
IPS\Db::i()->dropColumn( 'core_rss_imported', 'rss_foreign_id' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'core_share_links', 'share_url' ) )
            {
                \
IPS\Db::i()->dropColumn( 'core_share_links', 'share_url' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'core_share_links', 'share_markup' ) )
            {
                \
IPS\Db::i()->dropColumn( 'core_share_links', 'share_markup' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'core_sys_conf_settings', 'conf_end_group' ) )
            {
                \
IPS\Db::i()->dropColumn( 'core_sys_conf_settings', 'conf_end_group' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'core_sys_lang', 'lang_currency_symbol' ) )
            {
                \
IPS\Db::i()->dropColumn( 'core_sys_lang', 'lang_currency_symbol' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'core_sys_lang', 'lang_decimal' ) )
            {
                \
IPS\Db::i()->dropColumn( 'core_sys_lang', 'lang_decimal' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'core_sys_lang', 'lang_comma' ) )
            {
                \
IPS\Db::i()->dropColumn( 'core_sys_lang', 'lang_comma' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'core_sys_login', 'sys_login_skin' ) )
            {
                \
IPS\Db::i()->dropColumn( 'core_sys_login', 'sys_login_skin' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'core_sys_login', 'sys_login_language' ) )
            {
                \
IPS\Db::i()->dropColumn( 'core_sys_login', 'sys_login_language' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'core_sys_login', 'sys_login_last_visit' ) )
            {
                \
IPS\Db::i()->dropColumn( 'core_sys_login', 'sys_login_last_visit' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'core_sys_settings_titles', 'conf_title_module' ) )
            {
                \
IPS\Db::i()->dropColumn( 'core_sys_settings_titles', 'conf_title_module' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'custom_bbcode', 'bbcode_parse' ) )
            {
                \
IPS\Db::i()->dropColumn( 'custom_bbcode', 'bbcode_parse' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'email_logs', 'topic_id' ) )
            {
                \
IPS\Db::i()->dropColumn( 'email_logs', 'topic_id' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'forums', 'redirect_loc' ) )
            {
                \
IPS\Db::i()->dropColumn( 'forums', 'redirect_loc' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'forums', 'topic_mm_id' ) )
            {
                \
IPS\Db::i()->dropColumn( 'forums', 'topic_mm_id' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'forums', 'permission_array' ) )
            {
                \
IPS\Db::i()->dropColumn( 'forums', 'permission_array' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'groups', 'g_invite_friend' ) )
            {
                \
IPS\Db::i()->dropColumn( 'groups', 'g_invite_friend' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'groups', 'g_can_remove' ) )
            {
                \
IPS\Db::i()->dropColumn( 'groups', 'g_can_remove' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'login_methods', 'login_date' ) )
            {
                \
IPS\Db::i()->dropColumn( 'login_methods', 'login_date' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'mail_queue', 'mail_type' ) )
            {
                \
IPS\Db::i()->dropColumn( 'mail_queue', 'mail_type' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'moderators', 'edit_user' ) )
            {
                \
IPS\Db::i()->dropColumn( 'moderators', 'edit_user' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'profile_ratings', 'rating_added' ) )
            {
                \
IPS\Db::i()->dropColumn( 'profile_ratings', 'rating_added' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'rc_modpref', 'max_points' ) )
            {
                \
IPS\Db::i()->dropColumn( 'rc_modpref', 'max_points' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'rc_modpref', 'reports_pp' ) )
            {
                \
IPS\Db::i()->dropColumn( 'rc_modpref', 'reports_pp' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'rc_modpref', 'by_pm' ) )
            {
                \
IPS\Db::i()->dropColumn( 'rc_modpref', 'by_pm' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'rc_modpref', 'by_email' ) )
            {
                \
IPS\Db::i()->dropColumn( 'rc_modpref', 'by_email' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'rc_modpref', 'by_alert' ) )
            {
                \
IPS\Db::i()->dropColumn( 'rc_modpref', 'by_alert' );
            }
   
            if( \
IPS\Db::i()->checkForColumn( 'tags_index', 'misc' ) )
            {
                \
IPS\Db::i()->dropColumn( 'tags_index', 'misc' );
            }
        }
       
        if( \
IPS\Db::i()->checkForColumn( 'reputation_index', 'misc' ) )
        {
           
$queries[]    = array( 'table' => 'reputation_index', 'query' => "ALTER TABLE " . \IPS\Db::i()->prefix . "reputation_index DROP COLUMN misc;" );
        }
       
        if( \
IPS\Db::i()->checkForColumn( 'topics', 'total_votes' ) )
        {
           
$queries[]    = array( 'table' => 'topics', 'query' => "ALTER TABLE " . \IPS\Db::i()->prefix . "topics DROP COLUMN total_votes;" );
        }

        if( \
IPS\Db::i()->checkForColumn( 'members', 'email_pm' ) )
        {
           
$queries[]    = array( 'table' => 'members', 'query' => "ALTER TABLE " . \IPS\Db::i()->prefix . "members DROP COLUMN email_pm;" );
        }

        if( \
IPS\Db::i()->checkForColumn( 'members', 'view_pop' ) )
        {
           
$queries[]    = array( 'table' => 'members', 'query' => "ALTER TABLE " . \IPS\Db::i()->prefix . "members DROP COLUMN view_pop;" );
        }

        if(
count( $queries ) )
        {
           
$toRun = \IPS\core\Setup\Upgrade::runManualQueries( $queries );
           
            if (
count( $toRun ) )
            {
                \
IPS\core\Setup\Upgrade::adjustMultipleRedirect( array( 1 => 'core', 'extra' => array( '_upgradeStep' => 2 ) ) );

               
/* Queries to run manually */
               
return array( 'html' => \IPS\Theme::i()->getTemplate( 'forms' )->queries( $toRun, \IPS\Http\Url::internal( 'controller=upgrade' )->setQueryString( array( 'key' => $_SESSION['uniqueKey'], 'mr_continue' => 1, 'mr' => \IPS\Request::i()->mr ) ) ) );
            }
        }

       
/* Finish */
       
return TRUE;
    }
}