/** * This processes the current stage of the backup * @return bool */ public function process() { if ($this->progress >= self::PROGRESS_PROCESSED) { throw new backup_ui_exception('backupuialreadyprocessed'); } $this->progress = self::PROGRESS_PROCESSED; if (optional_param('previous', false, PARAM_BOOL) && $this->stage->get_stage() > $this->get_first_stage_id()) { $this->stage = $this->initialise_stage($this->stage->get_prev_stage(), $this->stage->get_params()); return false; } // Process the stage $processoutcome = $this->stage->process(); if ($processoutcome !== false) { $this->stage = $this->initialise_stage($this->stage->get_next_stage(), $this->stage->get_params()); } // Process UI event after to check changes are valid $this->controller->process_ui_event(); return $processoutcome; }