View file upload/src/addons/xenMade/ACPE/Setup.php

File size: 1.95Kb
<?php

namespace xenMade\ACPE;

use XF\AddOn\AbstractSetup;
use XF\AddOn\StepRunnerInstallTrait;
use XF\AddOn\StepRunnerUninstallTrait;
use XF\AddOn\StepRunnerUpgradeTrait;
use XF\Db\Schema\Alter;
use XF\Db\Schema\Create;

class Setup extends AbstractSetup
{
	use StepRunnerInstallTrait;
	use StepRunnerUpgradeTrait;
	use StepRunnerUninstallTrait;

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

        $this->schemaManager()->createTable('xf_xenmade_acpe_login_log', function(\XF\Db\Schema\Create $table)
        {
            $table->addColumn('log_id', 'int')->autoIncrement();
            $table->addColumn('user_id', 'int');
            $table->addColumn('username', 'varchar', 50);

            $table->addColumn('status', 'enum')
                ->values(['', 'success', 'user_not_exists', 'password_incorrect', 'no_admin', 'ip_not_allowed'])
                ->setDefault('');

            $table->addColumn('login', 'enum')
                ->values(['', 'front', 'acp'])
                ->setDefault('');

            $table->addColumn('dateline', 'int');
            $table->addColumn('hash', 'varchar', 60);
            $table->addColumn('ip', 'varchar', 60);

            $table->addPrimaryKey('log_id');

            $table->addKey('hash');
            $table->addKey('user_id');
            $table->addKey('status');
            $table->addKey('login');
            $table->addKey('ip');
        });

        $sm->alterTable('xf_option_group', function(Alter $table)
        {
            $table->addColumn('display_sort', 'int')->setDefault(0);
        });
    }

    public function uninstallStep1(array $stepParams = [])
    {
        $sm = $this->schemaManager();

        $this->schemaManager()->dropTable('xf_xenmade_acpe_login_log');

        $sm->alterTable('xf_option_group', function(Alter $table)
        {
            $table->dropColumns('display_sort');
        });
    }
}