Exemplo n.º 1
0
/**
 * 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);
        }
    }
}
Exemplo n.º 2
0
/**
 * 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));
}