. namespace core\moodlenet; use backup; use backup_controller; use cm_info; defined('MOODLE_INTERNAL') || die(); require_once($CFG->dirroot . '/backup/util/includes/backup_includes.php'); /** * Packager to prepare appropriate backup of an activity to share to MoodleNet. * * @package core * @copyright 2023 Raquel Ortega * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class activity_packager extends resource_packager { /** * Constructor. * * @param cm_info $cminfo context module information about the resource being packaged. * @param int $userid The ID of the user performing the packaging. */ public function __construct( cm_info $cminfo, int $userid, ) { // Check backup/restore support. if (!plugin_supports('mod', $cminfo->modname , FEATURE_BACKUP_MOODLE2)) { throw new \coding_exception("Cannot backup module $cminfo->modname. This module doesn't support the backup feature."); } parent::__construct($cminfo, $userid, $cminfo->modname); } /** * Get the backup controller for the activity. * * @return backup_controller the backup controller for the activity. */ protected function get_backup_controller(): backup_controller { return new backup_controller( backup::TYPE_1ACTIVITY, $this->cminfo->id, backup::FORMAT_MOODLE, backup::INTERACTIVE_NO, backup::MODE_GENERAL, $this->userid ); } }