MigrationMoodle: Add script to run in cli mode - refs BT#15992

pull/3127/head
Angel Fernando Quiroz Campos 6 years ago
parent 2448b37c06
commit ca4f6883ec
  1. 7
      plugin/migrationmoodle/admin.php
  2. 89
      plugin/migrationmoodle/run_cli.php
  3. 8
      plugin/migrationmoodle/src/Task/BaseTask.php

@ -1,14 +1,15 @@
<?php
/* For licensing terms, see /license.txt */
use Chamilo\PluginBundle\MigrationMoodle\Exceptions\Message as MigrationMoodleException;
use Chamilo\PluginBundle\MigrationMoodle\Task\BaseTask;
$cidReset = true;
ini_set('memory_limit', -1);
ini_set('max_execution_time', 0);
$cidReset = true;
$outputBuffering = false;
require_once __DIR__.'/../../main/inc/global.inc.php';
api_protect_admin_script(true);

@ -0,0 +1,89 @@
<?php
/* For licensing terms, see /license.txt */
use Chamilo\PluginBundle\MigrationMoodle\Task\BaseTask;
$cidReset = true;
ini_set('memory_limit', -1);
ini_set('max_execution_time', 0);
require_once __DIR__.'/../../main/inc/global.inc.php';
if (PHP_SAPI !== 'cli') {
exit;
}
$outputBuffering = false;
$plugin = MigrationMoodlePlugin::create();
if ('true' != $plugin->get('active')) {
exit;
}
$taskNames = [
'course_categories',
'courses',
/**/'course_introductions',
/**//**/'files_for_course_introductions',
/**/'course_sections',
/**//**/'files_for_course_sections',
/**//**/'course_modules_lesson',
/**//**//**/'lesson_pages',
/**//**//**//**/'lesson_pages_document',
/**//**//**//**//**/'files_for_lesson_pages',
/**//**//**//**/'lesson_pages_quiz',
/**//**//**//**//**/'lesson_pages_quiz_question',
/**//**//**//**//**//**/'lesson_answers_true_false',
/**//**//**//**//**//**/'lesson_answers_multiple_choice',
/**//**//**//**//**//**/'lesson_answers_multiple_answer',
/**//**//**//**//**//**/'lesson_answers_matching',
/**//**//**//**//**//**/'lesson_answers_essay',
/**//**//**//**//**//**/'lesson_answers_short_answer',
/**//**//**//**//**/'files_for_lesson_answers',
/**//**/'course_modules_quiz',
/**//**//**/'quizzes',
/**//**//**//**/'files_for_quizzes',
/**//**//**//**/'question_categories',
/**//**//**//**/'questions',
/**//**//**//**//**/'question_multi_choice_single',
/**//**//**//**//**/'question_multi_choice_multiple',
/**//**//**//**//**/'questions_true_false',
/**//**//**//**//**/'question_short_answer',
/**//**//**//**//**/'question_gapselect',
/**//**//**/'quizzes_scores',
/**//**/'course_modules_url',
/**//**//**/'urls',
/**//**/'sort_section_modules',
/**/'course_modules_scorm',
/**//**/'scorm_scoes',
/**//**//**/'files_for_scorm_scoes',
'users',
/**/'user_sessions',
/**//**/'users_learn_paths',
/**//**//**/'users_learn_paths_lesson_timer',
/**//**//**/'users_learn_paths_lesson_branch',
/**//**//**/'users_learn_paths_lesson_attempts',
/**//**//**/'users_learn_paths_quizzes',
/**//**//**//**/'users_quizzes_attempts',
/**//**//**//**//**/'user_question_attempts_shortanswer',
/**//**//**//**//**/'user_question_attempts_gapselect',
/**//**//**//**//**/'user_question_attempts_truefalse',
/**//**/'users_scorms_view',
/**//**//**/'users_scorms_progress',
];
foreach ($taskNames as $i => $taskName) {
$taskClass = api_underscore_to_camel_case($taskName).'Task';
$taskClass = 'Chamilo\\PluginBundle\\MigrationMoodle\\Task\\'.$taskClass;
echo ($i + 1).": Executing $taskClass.".PHP_EOL;
/** @var BaseTask $task */
$task = new $taskClass();
$task->execute();
echo "$taskClass end.".PHP_EOL;
}

@ -73,6 +73,8 @@ abstract class BaseTask
public function execute()
{
$outputBuffering = isset($GLOBALS['outputBuffering']) ? $GLOBALS['outputBuffering'] : true;
$taskId = \Database::insert(
'plugin_migrationmoodle_task',
['name' => $this->getTaskName()]
@ -95,13 +97,15 @@ abstract class BaseTask
$i++;
if ($i % 10 === 0) {
if ($i % 10 === 0 && $outputBuffering) {
flush();
ob_flush();
}
}
ob_end_flush();
if ($outputBuffering) {
ob_end_flush();
}
}
/**

Loading…
Cancel
Save