if ('update' === $installType && in_array($my_old_version, $update_from_version_8)) {
if ('update' === $installType && in_array($my_old_version, $upgradeFromVersion)) {
// This is the main configuration file of the system before the upgrade.
// This is the main configuration file of the system before the upgrade.
// Old configuration file.
// Old configuration file.
// Don't change to include_once
// Don't change to include_once
@ -227,7 +226,7 @@ if (!isset($_GET['running'])) {
$emailForm = $_SERVER['SERVER_ADMIN'];
$emailForm = $_SERVER['SERVER_ADMIN'];
}
}
$email_parts = explode('@', $emailForm);
$email_parts = explode('@', $emailForm);
if (isset($email_parts[1]) && 'localhost' == $email_parts[1]) {
if (isset($email_parts[1]) && 'localhost' === $email_parts[1]) {
$emailForm .= '.localdomain';
$emailForm .= '.localdomain';
}
}
@ -236,7 +235,6 @@ if (!isset($_GET['running'])) {
$institutionUrlForm = 'http://www.chamilo.org';
$institutionUrlForm = 'http://www.chamilo.org';
$languageForm = api_get_interface_language();
$languageForm = api_get_interface_language();
$checkEmailByHashSent = 0;
$checkEmailByHashSent = 0;
$userMailCanBeEmpty = 1;
$userMailCanBeEmpty = 1;
$allowSelfReg = 'approval';
$allowSelfReg = 'approval';
$allowSelfRegProf = 1; //by default, a user can register as teacher (but moderation might be in place)
$allowSelfRegProf = 1; //by default, a user can register as teacher (but moderation might be in place)
@ -260,11 +258,12 @@ if (!isset($_GET['running'])) {
/* NEXT STEPS IMPLEMENTATION */
/* NEXT STEPS IMPLEMENTATION */
$total_steps = 7;
$total_steps = 7;
$current_step = 1;
if (!$_POST) {
if (!$_POST) {
$current_step = 1;
$current_step = 1;
} elseif (!empty($_POST['language_list']) or !empty($_POST['step1']) || ((!empty($_POST['step2_update_8']) or (!empty($_POST['step2_update_6']))) && ($emptyUpdatePath or $badUpdatePath))) {
echo get_lang('Administrator password (<fontcolor="red">you may want to change this</font>)').' : <strong>'.$passForm.'</strong><br/><br/>'; /* TODO: Maybe this password should be hidden too? */
echo get_lang('Administrator password (<fontcolor="red">you may want to change this</font>)').' : <strong>'.$passForm.'</strong><br/><br/>'; /* TODO: Maybe this password should be hidden too? */
).'</h4>'.get_lang('The install script will erase all tables of the selected database. We heavily recommend you do a full backup of them before confirming this last install step.'),
).'</h4>'.
get_lang('The install script will erase all tables of the selected database. We heavily recommend you do a full backup of them before confirming this last install step.'),
@ -8,25 +8,88 @@ use Chamilo\CoreBundle\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Schema\Schema;
/**
/**
* Class Version20170904145500.
* Quiz changes.
*/
*/
class Version20170904145500 extends AbstractMigrationChamilo
class Version20170904145500 extends AbstractMigrationChamilo
{
{
public function up(Schema $schema): void
public function up(Schema $schema): void
{
{
$this->addSql('DELETE FROM c_group_rel_user WHERE user_id NOT IN (SELECT id FROM user)');
$this->addSql('CREATE TABLE IF NOT EXISTS c_exercise_category (id BIGINT AUTO_INCREMENT NOT NULL, c_id INT NOT NULL, name VARCHAR(255) NOT NULL, description LONGTEXT DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, position INT NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
$this->addSql('DELETE FROM c_group_rel_user WHERE group_id NOT IN (SELECT iid FROM c_group_info)');
'CREATE TABLE track_e_access_complete (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, date_reg DATETIME NOT NULL, tool VARCHAR(255) NOT NULL, tool_id INT NOT NULL, tool_id_detail INT NOT NULL, action VARCHAR(255) NOT NULL, action_details VARCHAR(255) NOT NULL, current_id INT NOT NULL, ip_user VARCHAR(255) NOT NULL, user_agent VARCHAR(255) NOT NULL, session_id INT NOT NULL, c_id INT NOT NULL, ch_sid VARCHAR(255) NOT NULL, login_as INT NOT NULL, info LONGTEXT NOT NULL, url LONGTEXT NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB ROW_FORMAT = DYNAMIC;'
);
}
//$this->addSql('ALTER TABLE track_e_hotpotatoes CHANGE exe_result score SMALLINT NOT NULL');
//$this->addSql('ALTER TABLE track_e_hotpotatoes CHANGE exe_weighting max_score SMALLINT NOT NULL');
$table = $schema->getTable('track_e_exercises');
if ($table->hasColumn('exe_weighting')) {
$this->addSql('ALTER TABLE track_e_exercises CHANGE exe_weighting max_score DOUBLE PRECISION NOT NULL');
}
if ($table->hasColumn('exe_result')) {
$this->addSql('ALTER TABLE track_e_exercises CHANGE exe_result score DOUBLE PRECISION NOT NULL');
}
$table = $schema->getTable('track_e_hotspot');
if (false === $table->hasForeignKey('FK_A89CC3B691D79BD3')) {
$this->addSql('CREATE TABLE resource_link_audit (id INT NOT NULL, rev INT NOT NULL, resource_node_id INT DEFAULT NULL, session_id INT DEFAULT NULL, user_id INT DEFAULT NULL, c_id INT DEFAULT NULL, group_id INT DEFAULT NULL, usergroup_id INT DEFAULT NULL, visibility INT DEFAULT NULL, start_visibility_at DATETIME DEFAULT NULL, end_visibility_at DATETIME DEFAULT NULL, revtype VARCHAR(4) NOT NULL, INDEX rev_b8ad249e8a6ede1472e0b8fa1db234bb_idx (rev), PRIMARY KEY(id, rev)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB ROW_FORMAT = DYNAMIC;');
if ($table->hasColumn('id_result')) {
$this->addSql('CREATE TABLE resource_right_audit (id INT NOT NULL, rev INT NOT NULL, resource_link_id INT DEFAULT NULL, role VARCHAR(255) DEFAULT NULL, mask INT DEFAULT NULL, revtype VARCHAR(4) NOT NULL, INDEX rev_f869fbbdbb21a8a17a08e1b0657703c8_idx (rev), PRIMARY KEY(id, rev)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB ROW_FORMAT = DYNAMIC;');
$this->addSql('DELETE FROM gradebook_result_log WHERE id_result IS NULL');
$this->addSql('CREATE TABLE resource_node_audit (id INT NOT NULL, rev INT NOT NULL, resource_type_id INT DEFAULT NULL, resource_file_id INT DEFAULT NULL, creator_id INT DEFAULT NULL, parent_id INT DEFAULT NULL, name VARCHAR(255) DEFAULT NULL, description LONGTEXT DEFAULT NULL, level INT DEFAULT NULL, path VARCHAR(3000) DEFAULT NULL, created_at DATETIME DEFAULT NULL, updated_at DATETIME DEFAULT NULL, revtype VARCHAR(4) NOT NULL, INDEX rev_b34616f57e0b75a07aa461581aa506d4_idx (rev), PRIMARY KEY(id, rev)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB ROW_FORMAT = DYNAMIC;');
$this->addSql('ALTER TABLE gradebook_result_log CHANGE id_result result_id INT NOT NULL');
$this->addSql('CREATE TABLE resource_type_audit (id INT NOT NULL, rev INT NOT NULL, tool_id INT DEFAULT NULL, name VARCHAR(255) DEFAULT NULL, created_at DATETIME DEFAULT NULL, updated_at DATETIME DEFAULT NULL, revtype VARCHAR(4) NOT NULL, INDEX rev_964270a12a79cf2336c43ffe3857923e_idx (rev), PRIMARY KEY(id, rev)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB ROW_FORMAT = DYNAMIC;');
}
$this->addSql('CREATE TABLE resource_file_audit (id INT NOT NULL, rev INT NOT NULL, media_id INT DEFAULT NULL, enabled TINYINT(1) DEFAULT NULL, created_at DATETIME DEFAULT NULL, updated_at DATETIME DEFAULT NULL, revtype VARCHAR(4) NOT NULL, INDEX rev_459120c2e3f50443f638e1a03a14377a_idx (rev), PRIMARY KEY(id, rev)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB ROW_FORMAT = DYNAMIC;');
$this->addSql('CREATE TABLE c_group_info_audit (iid INT NOT NULL, rev INT NOT NULL, c_id INT DEFAULT NULL, id INT DEFAULT NULL, name VARCHAR(100) DEFAULT NULL, status TINYINT(1) DEFAULT NULL, category_id INT DEFAULT NULL, description LONGTEXT DEFAULT NULL, max_student INT DEFAULT NULL, doc_state TINYINT(1) DEFAULT NULL, calendar_state TINYINT(1) DEFAULT NULL, work_state TINYINT(1) DEFAULT NULL, announcements_state TINYINT(1) DEFAULT NULL, forum_state TINYINT(1) DEFAULT NULL, wiki_state TINYINT(1) DEFAULT NULL, chat_state TINYINT(1) DEFAULT NULL, secret_directory VARCHAR(255) DEFAULT NULL, self_registration_allowed TINYINT(1) DEFAULT NULL, self_unregistration_allowed TINYINT(1) DEFAULT NULL, session_id INT DEFAULT NULL, document_access INT DEFAULT 0, revtype VARCHAR(4) NOT NULL, INDEX rev_473376fc1576bc20dac0e905c268d4e4_idx (rev), PRIMARY KEY(iid, rev)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB ROW_FORMAT = DYNAMIC;');
$this->addSql('ALTER TABLE gradebook_category CHANGE user_id user_id INT DEFAULT NULL');
$this->addSql('CREATE TABLE c_document_audit (iid INT NOT NULL, rev INT NOT NULL, c_id INT DEFAULT NULL, session_id INT DEFAULT NULL, resource_node_id INT DEFAULT NULL, id INT DEFAULT NULL, path VARCHAR(255) DEFAULT NULL, comment LONGTEXT DEFAULT NULL, title VARCHAR(255) DEFAULT NULL, filetype VARCHAR(10) DEFAULT NULL, size INT DEFAULT NULL, readonly TINYINT(1) DEFAULT NULL, revtype VARCHAR(4) NOT NULL, INDEX rev_3a0fcc30badda0288cf283b2af66dfe1_idx (rev), PRIMARY KEY(iid, rev)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB ROW_FORMAT = DYNAMIC;');
'DELETE FROM gradebook_category WHERE user_id IS NOT NULL AND user_id NOT IN (SELECT id FROM user)'
$this->addSql('CREATE TABLE revisions (id INT AUTO_INCREMENT NOT NULL, timestamp DATETIME NOT NULL, username VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB ROW_FORMAT = DYNAMIC;');
);
$table = $schema->getTable('gradebook_category');
if (false === $table->hasColumn('c_id')) {
$this->addSql('ALTER TABLE gradebook_category ADD c_id INT DEFAULT NULL');
$this->addSql('UPDATE gradebook_category SET c_id = (SELECT id FROM course WHERE code = course_code)');
$this->addSql('ALTER TABLE gradebook_category DROP course_code');
'CREATE TABLE gradebook_result_attempt (id INT AUTO_INCREMENT NOT NULL, comment LONGTEXT DEFAULT NULL, score DOUBLE PRECISION DEFAULT NULL, result_id INT NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB ROW_FORMAT = DYNAMIC;'
use Chamilo\CoreBundle\Migrations\AbstractMigrationChamilo;
use Chamilo\CoreBundle\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Schema\Schema;
/**
* Class Version20191101132000.
*/
class Version20191101132000 extends AbstractMigrationChamilo
class Version20191101132000 extends AbstractMigrationChamilo
{
{
public function up(Schema $schema): void
public function up(Schema $schema): void
{
{
$this->getEntityManager();
// Update iso
$sql = 'UPDATE course SET course_language = (SELECT isocode FROM language WHERE english_name = course_language);';
$this->addSql($sql);
$this->addSql('ALTER TABLE course ADD category_id INT DEFAULT NULL;');
if (false === $schema->hasTable('course_rel_category')) {
$this->addSql('UPDATE course co SET co.category_id = (SELECT cat.id FROM course_category cat WHERE cat.code = co.category_code)');
$this->addSql('CREATE TABLE course_rel_category (course_id INT NOT NULL, course_category_id INT NOT NULL, INDEX IDX_8EB34CC5591CC992 (course_id), INDEX IDX_8EB34CC56628AD36 (course_category_id), PRIMARY KEY(course_id, course_category_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC');
$this->addSql('DROP INDEX category_code ON course');
use Chamilo\CoreBundle\Migrations\AbstractMigrationChamilo;
use Chamilo\CoreBundle\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Schema\Schema;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20200505064121 extends AbstractMigrationChamilo
final class Version20200505064121 extends AbstractMigrationChamilo
{
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
public function up(Schema $schema): void
{
{
$this->addSql('CREATE TABLE reset_password_request (id INT AUTO_INCREMENT NOT NULL, user_id INT DEFAULT NULL, selector VARCHAR(20) NOT NULL, hashed_token VARCHAR(100) NOT NULL, requested_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', expires_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_7CE748AA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC');
if (false === $schema->hasTable('reset_password_request')) {
'CREATE TABLE reset_password_request (id INT AUTO_INCREMENT NOT NULL, user_id INT DEFAULT NULL, selector VARCHAR(20) NOT NULL, hashed_token VARCHAR(100) NOT NULL, requested_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', expires_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_7CE748AA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC'
use Chamilo\CoreBundle\Migrations\AbstractMigrationChamilo;
use Chamilo\CoreBundle\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Schema\Schema;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20200821224242 extends AbstractMigrationChamilo
final class Version20200821224242 extends AbstractMigrationChamilo
{
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
public function up(Schema $schema): void
{
{
$this->addSql('CREATE TABLE course_rel_category (course_id INT NOT NULL, course_category_id INT NOT NULL, INDEX IDX_8EB34CC5591CC992 (course_id), INDEX IDX_8EB34CC56628AD36 (course_category_id), PRIMARY KEY(course_id, course_category_id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC');
$this->addSql('ALTER TABLE course DROP FOREIGN KEY FK_169E6FB912469DE2');
$this->addSql('DROP INDEX IDX_169E6FB912469DE2 ON course');
$this->addSql('ALTER TABLE course DROP category_id');
}
}
public function down(Schema $schema): void
public function down(Schema $schema): void
{
{
$this->addSql('CREATE TABLE version (id INT UNSIGNED AUTO_INCREMENT NOT NULL, version VARCHAR(20) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_general_ci`, UNIQUE INDEX version (version), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB COMMENT = \'\' ');
$this->addSql('DROP TABLE course_rel_category');
$this->addSql('ALTER TABLE course ADD category_id INT DEFAULT NULL');