Example #1
0
 /**
  * Creates the backup_schema_form instance for this stage
  *
  * @return backup_schema_form
  */
 protected function initialise_stage_form()
 {
     global $PAGE;
     if ($this->stageform === null) {
         $form = new backup_schema_form($this, $PAGE->url);
         $tasks = $this->ui->get_tasks();
         $content = '';
         $courseheading = false;
         $add_settings = array();
         $dependencies = array();
         foreach ($tasks as $task) {
             if (!$task instanceof backup_root_task) {
                 if (!$courseheading) {
                     // If we havn't already display a course heading to group nicely
                     $form->add_heading('coursesettings', get_string('includeactivities', 'backup'));
                     $courseheading = true;
                 }
                 // First add each setting
                 foreach ($task->get_settings() as $setting) {
                     $add_settings[] = array($setting, $task);
                 }
                 // The add all the dependencies
                 foreach ($task->get_settings() as $setting) {
                     $dependencies[] = $setting;
                 }
             } else {
                 if ($this->ui->enforce_changed_dependencies()) {
                     // Only show these settings if dependencies changed them.
                     // Add a root settings heading to group nicely
                     $form->add_heading('rootsettings', get_string('rootsettings', 'backup'));
                     // Iterate all settings and add them to the form as a fixed
                     // setting. We only want schema settings to be editable
                     foreach ($task->get_settings() as $setting) {
                         if ($setting->get_name() != 'filename') {
                             $form->add_fixed_setting($setting, $task);
                         }
                     }
                 }
             }
         }
         $form->add_settings($add_settings);
         foreach ($dependencies as $depsetting) {
             $form->add_dependencies($depsetting);
         }
         $this->stageform = $form;
     }
     return $this->stageform;
 }
 /**
  * Creates the backup_schema_form instance for this stage
  *
  * @return backup_schema_form
  */
 protected function initialise_stage_form()
 {
     global $PAGE;
     if ($this->stageform === null) {
         $form = new backup_schema_form($this, $PAGE->url);
         $tasks = $this->ui->get_tasks();
         $content = '';
         $courseheading = false;
         $add_settings = array();
         $dependencies = array();
         // Track progress through each stage.
         $progress = $this->ui->get_controller()->get_progress();
         $progress->start_progress('Initialise stage form', 3);
         // Get settings for all tasks.
         $progress->start_progress('', count($tasks));
         $done = 1;
         foreach ($tasks as $task) {
             if (!$task instanceof backup_root_task) {
                 if (!$courseheading) {
                     // If we havn't already display a course heading to group nicely
                     $form->add_heading('coursesettings', get_string('includeactivities', 'backup'));
                     $courseheading = true;
                 }
                 // First add each setting
                 foreach ($task->get_settings() as $setting) {
                     $add_settings[] = array($setting, $task);
                 }
                 // The add all the dependencies
                 foreach ($task->get_settings() as $setting) {
                     $dependencies[] = $setting;
                 }
             } else {
                 if ($this->ui->enforce_changed_dependencies()) {
                     // Only show these settings if dependencies changed them.
                     // Add a root settings heading to group nicely
                     $form->add_heading('rootsettings', get_string('rootsettings', 'backup'));
                     // Iterate all settings and add them to the form as a fixed
                     // setting. We only want schema settings to be editable
                     foreach ($task->get_settings() as $setting) {
                         if ($setting->get_name() != 'filename') {
                             $form->add_fixed_setting($setting, $task);
                         }
                     }
                 }
             }
             // Update progress.
             $progress->progress($done++);
         }
         $progress->end_progress();
         // Add settings for tasks in batches of up to 1000. Adding settings
         // in larger batches improves performance, but if it takes too long,
         // we won't be able to update the progress bar so the backup might
         // time out. 1000 is chosen to balance this.
         $numsettings = count($add_settings);
         $progress->start_progress('', ceil($numsettings / self::MAX_SETTINGS_BATCH));
         $start = 0;
         $done = 1;
         while ($start < $numsettings) {
             $length = min(self::MAX_SETTINGS_BATCH, $numsettings - $start);
             $form->add_settings(array_slice($add_settings, $start, $length));
             $start += $length;
             $progress->progress($done++);
         }
         $progress->end_progress();
         $progress->start_progress('', count($dependencies));
         $done = 1;
         foreach ($dependencies as $depsetting) {
             $form->add_dependencies($depsetting);
             $progress->progress($done++);
         }
         $progress->end_progress();
         // End overall progress through creating form.
         $progress->end_progress();
         $this->stageform = $form;
     }
     return $this->stageform;
 }