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); } } }
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; } }