/** * Write any per-context filter settings from the backup XML to the DB. * @param object $restore the restore we are part of. * @param object $data sata loaded from the XML. * @param object $newmodcontext the restored context object. */ function restore_write_local_filter_settings($restore, $data, $newcontext) { if (filter_context_may_have_filter_settings($newcontext)) { return; } $installedfilters = filter_get_all_installed(); if (!isset($data->filteractives)) { $data->filteractives = array(); } foreach ($data->filteractives as $filter => $state) { if (isset($installedfilters[$filter])) { filter_set_local_state($filter, $newcontext->id, $state); } } if (!isset($data->filterconfigs)) { $data->filterconfigs = array(); } foreach ($data->filterconfigs as $fc) { if (isset($installedfilters[$fc->filter])) { filter_set_local_config($fc->filter, $newcontext->id, $fc->name, $fc->value); } } }
/** * 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)); }