/** * Define the common setting that any restore activity will have */ protected function define_settings() { // All the settings related to this activity will include this prefix $settingprefix = $this->info->modulename . '_' . $this->info->moduleid . '_'; // All these are common settings to be shared by all activities // Define activity_include (to decide if the whole task must be really executed) // Dependent of: // - activities root setting // - section_included setting (if exists) $settingname = $settingprefix . 'included'; $activity_included = new restore_activity_generic_setting($settingname, base_setting::IS_BOOLEAN, true); $activity_included->get_ui()->set_icon(new pix_icon('icon', get_string('pluginname', $this->modulename), $this->modulename, array('class' => 'iconlarge icon-post'))); $this->add_setting($activity_included); // Look for "activities" root setting $activities = $this->plan->get_setting('activities'); $activities->add_dependency($activity_included); // Look for "section_included" section setting (if exists) $settingname = 'section_' . $this->info->sectionid . '_included'; if ($this->plan->setting_exists($settingname)) { $section_included = $this->plan->get_setting($settingname); $section_included->add_dependency($activity_included); } // Define activity_userinfo. Dependent of: // - users root setting // - section_userinfo setting (if exists) // - activity_included setting. $settingname = $settingprefix . 'userinfo'; $defaultvalue = false; if (isset($this->info->settings[$settingname]) && $this->info->settings[$settingname]) { // Only enabled when available $defaultvalue = true; } $activity_userinfo = new restore_activity_userinfo_setting($settingname, base_setting::IS_BOOLEAN, $defaultvalue); if (!$defaultvalue) { // This is a bit hacky, but if there is no user data to restore, then // we replace the standard check-box with a select menu with the // single choice 'No', and the select menu is clever enough that if // there is only one choice, it just displays a static string. // // It would probably be better design to have a special UI class // setting_ui_checkbox_or_no, rather than this hack, but I am not // going to do that today. $activity_userinfo->set_ui(new backup_setting_ui_select($activity_userinfo, '-', array(0 => get_string('no')))); } else { $activity_userinfo->get_ui()->set_label('-'); } $this->add_setting($activity_userinfo); // Look for "users" root setting $users = $this->plan->get_setting('users'); $users->add_dependency($activity_userinfo); // Look for "section_userinfo" section setting (if exists) $settingname = 'section_' . $this->info->sectionid . '_userinfo'; if ($this->plan->setting_exists($settingname)) { $section_userinfo = $this->plan->get_setting($settingname); $section_userinfo->add_dependency($activity_userinfo); } // Look for "activity_included" setting. $activity_included->add_dependency($activity_userinfo); // End of common activity settings, let's add the particular ones. $this->define_my_settings(); }
/** * Define the common setting that any restore activity will have */ protected function define_settings() { // All the settings related to this activity will include this prefix $settingprefix = $this->info->modulename . '_' . $this->info->moduleid . '_'; // All these are common settings to be shared by all activities // Define activity_include (to decide if the whole task must be really executed) // Dependent of: // - activities root setting // - section_included setting (if exists) $settingname = $settingprefix . 'included'; $activity_included = new restore_activity_generic_setting($settingname, base_setting::IS_BOOLEAN, true); $activity_included->get_ui()->set_icon(new pix_icon('icon', get_string('pluginname', $this->modulename), $this->modulename)); $this->add_setting($activity_included); // Look for "activities" root setting $activities = $this->plan->get_setting('activities'); $activities->add_dependency($activity_included); // Look for "section_included" section setting (if exists) $settingname = 'section_' . $this->info->sectionid . '_included'; if ($this->plan->setting_exists($settingname)) { $section_included = $this->plan->get_setting($settingname); $section_included->add_dependency($activity_included); } // Define activity_userinfo. Dependent of: // - users root setting // - section_userinfo setting (if exists) // - activity_included setting $settingname = $settingprefix . 'userinfo'; $selectvalues = array(0 => get_string('no')); // Safer options $defaultvalue = false; // Safer default if (isset($this->info->settings[$settingname]) && $this->info->settings[$settingname]) { // Only enabled when available $selectvalues = array(1 => get_string('yes'), 0 => get_string('no')); $defaultvalue = true; } $activity_userinfo = new restore_activity_userinfo_setting($settingname, base_setting::IS_BOOLEAN, $defaultvalue); $activity_userinfo->set_ui(new backup_setting_ui_select($activity_userinfo, get_string('includeuserinfo', 'backup'), $selectvalues)); $this->add_setting($activity_userinfo); // Look for "users" root setting $users = $this->plan->get_setting('users'); $users->add_dependency($activity_userinfo); // Look for "section_userinfo" section setting (if exists) $settingname = 'section_' . $this->info->sectionid . '_userinfo'; if ($this->plan->setting_exists($settingname)) { $section_userinfo = $this->plan->get_setting($settingname); $section_userinfo->add_dependency($activity_userinfo); } // Look for "activity_included" setting $activity_included->add_dependency($activity_userinfo); // End of common activity settings, let's add the particular ones $this->define_my_settings(); }