Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Install/Upgrade/2000631-206b1.php
<?php

namespace XF\Install\Upgrade;

use
XF\Db\Schema\Alter;

class
Version2000631 extends AbstractUpgrade
{
    public function
getVersionName()
    {
        return
'2.0.6 Beta 1';
    }

    public function
step1()
    {
       
$db = $this->db();

       
$privacyUrl = $db->fetchOne('
            SELECT option_value
            FROM xf_option
            WHERE option_id = ?
        '
, 'privacyPolicyUrl');

        if (
is_array(@json_decode($privacyUrl, true)))
        {
           
// likely already had the changes when upgrading to XF 1.5.20
           
return;
        }

       
$newValue = [
           
'type' => 'default',
           
'custom' => false
       
];

        if (
$privacyUrl)
        {
           
$newValue['type'] = 'custom';
           
$newValue['custom'] = $privacyUrl;
        }

       
$this->executeUpgradeQuery('
            UPDATE xf_option
            SET option_value = ?
            WHERE option_id = ?
        '
, [json_encode($newValue), 'privacyPolicyUrl']);
    }

    public function
step2()
    {
       
$sm = $this->schemaManager();

        if (!
$sm->columnExists('xf_user', 'privacy_policy_accepted'))
        {
           
$sm->alterTable('xf_user', function(Alter $table)
            {
               
$table->addColumn('privacy_policy_accepted', 'int')->setDefault(0);
            });
           
$this->executeUpgradeQuery("
                UPDATE xf_user
                SET privacy_policy_accepted = register_date
            "
);
        }
        if (!
$sm->columnExists('xf_user', 'terms_accepted'))
        {
           
$sm->alterTable('xf_user', function(Alter $table)
            {
               
$table->addColumn('terms_accepted', 'int')->setDefault(0);
            });
           
$this->executeUpgradeQuery("
                UPDATE xf_user
                SET terms_accepted = register_date
            "
);
        }
    }

    public function
step3()
    {
       
$sm = $this->schemaManager();

        if (!
$sm->columnExists('xf_change_log', 'protected'))
        {
           
$sm->alterTable('xf_change_log', function(Alter $table)
            {
               
$table->addColumn('protected', 'tinyint')->setDefault(0);
            });

           
// protect any existing receive_admin_email logs
           
$this->executeUpgradeQuery("
                UPDATE xf_change_log
                SET protected = 1
                WHERE content_type = 'user'
                AND field = 'receive_admin_email'
            "
);
        }
    }

    public function
step4()
    {
       
$dupePage = $this->db()->fetchRow("
            SELECT *
            FROM xf_help_page
            WHERE page_id = 'privacy_policy'
            OR page_name = 'privacy-policy'
        "
);

        if (!
$dupePage)
        {
            return;
        }

       
$updates = [
           
'active' => 0
       
];

        if (
$dupePage['page_id'] == 'privacy_policy')
        {
           
$updates['page_id'] = 'privacy_policy_old';
        }
        if (
$dupePage['page_name'] == 'privacy-policy')
        {
           
$updates['page_name'] = 'privacy-policy-old';
        }

       
$this->db()->update('xf_help_page', $updates, 'page_id = ?', $dupePage['page_id']);
    }

    public function
step5()
    {
       
$optionValue = $this->db()->fetchOne('SELECT option_value FROM xf_option WHERE option_id = ?', 'registrationSetup');
       
$optionValue = json_decode($optionValue, true);
       
$optionValue['requireEmailChoice'] = false;

       
$this->db()->update('xf_option', [
           
'option_value' => json_encode($optionValue)
        ],
'option_id = ?', 'registrationSetup');
    }
}