protected function define_structure() { // Define each element separated $filters = new backup_nested_element('filters'); $actives = new backup_nested_element('filter_actives'); $active = new backup_nested_element('filter_active', null, array('filter', 'active')); $configs = new backup_nested_element('filter_configs'); $config = new backup_nested_element('filter_config', null, array('filter', 'name', 'value')); // Build the tree $filters->add_child($actives); $filters->add_child($configs); $actives->add_child($active); $configs->add_child($config); // Define sources list($activearr, $configarr) = filter_get_all_local_settings($this->task->get_contextid()); $active->set_source_array($activearr); $config->set_source_array($configarr); // Return the root element (filters) return $filters; }
/** * Write any local filter settings for this context to the backup file. * They comprise On/off filter_active.active overrides, and any filter_config * records for this contextid. */ function write_local_filter_settings($bf, $preferences, $context, $startlevel) { if (!filter_context_may_have_filter_settings($context)) { return; } list($actives, $configs) = filter_get_all_local_settings($context->id); fwrite($bf, start_tag("FILTERACTIVES", $startlevel, true)); foreach ($actives as $active) { fwrite($bf, start_tag("FILTERACTIVE", $startlevel + 1, true)); fwrite($bf, full_tag("FILTER", $startlevel + 2, false, $active->filter)); fwrite($bf, full_tag("ACTIVE", $startlevel + 2, false, $active->active)); fwrite($bf, end_tag("FILTERACTIVE", $startlevel + 1, true)); } fwrite($bf, end_tag("FILTERACTIVES", $startlevel, true)); fwrite($bf, start_tag("FILTERCONFIGS", $startlevel, true)); foreach ($configs as $config) { fwrite($bf, start_tag("FILTERCONFIG", $startlevel + 1, true)); fwrite($bf, full_tag("FILTER", $startlevel + 2, false, $config->filter)); fwrite($bf, full_tag("NAME", $startlevel + 2, false, $config->name)); fwrite($bf, full_tag("VALUE", $startlevel + 2, false, $config->value)); fwrite($bf, end_tag("FILTERCONFIG", $startlevel + 1, true)); } fwrite($bf, end_tag("FILTERCONFIGS", $startlevel, true)); }