コード例 #1
0
function migrate_profiles_2_2()
{
    if (!file_exists(DOCUMENT_REAL_ROOT . '/config/profiles')) {
        mkdir(DOCUMENT_REAL_ROOT . '/config/profiles');
    }
    if (!is_writable(DOCUMENT_REAL_ROOT . '/config/profiles')) {
        msg_error($l->g(2116));
        exit;
    }
    $txt_serializer = new TxtProfileSerializer();
    $xml_serializer = new XMLProfileSerializer();
    foreach (scandir($_SESSION['OCS']['CONF_PROFILS_DIR']) as $file) {
        if (preg_match('/^(.+)_config\\.txt$/', $file, $matches) and $matches[1] != '4all') {
            $profile_name = $matches[1];
            $profile_data = read_profil_file($profile_name);
            $profile = $txt_serializer->unserialize($profile_name, $profile_data);
            $xml = $xml_serializer->serialize($profile);
            file_put_contents(DOCUMENT_REAL_ROOT . '/config/profiles/' . $profile_name . '.xml', $xml);
        }
    }
}
コード例 #2
0
function update_profile($profile_id, $data)
{
    $yes_no = array('YES', 'NO');
    $urls = $_SESSION['OCS']['url_service'];
    $profiles = get_profiles();
    $profile = $profiles[$profile_id];
    $updatedProfile = new Profile($profile_id, $data['new_label'] ?: $profile->getLabel());
    foreach ($data['restrictions'] as $key => $val) {
        $updatedProfile->setRestriction($key, $val);
    }
    foreach ($data['config'] as $key => $val) {
        $updatedProfile->setConfig($key, $val);
    }
    foreach ($data['blacklist'] as $key => $val) {
        if ($val == 'YES') {
            $updatedProfile->addToBlacklist($key);
        }
    }
    foreach ($data['pages'] as $key => $val) {
        if ($urls->getUrl($key) and $val == 'on') {
            $updatedProfile->addPage($key);
        }
    }
    $serializer = new XMLProfileSerializer();
    $xml = $serializer->serialize($updatedProfile);
    if (file_put_contents(DOCUMENT_REAL_ROOT . '/config/profiles/' . $profile->getName() . '.xml', $xml)) {
        return $profile->getName();
    } else {
        return false;
    }
}