'WT_PRIV_NONE',
WT_PRIV_USER =>'WT_PRIV_USER',
WT_PRIV_PUBLIC=>'WT_PRIV_PUBLIC',
WT_PRIV_HIDE =>'WT_PRIV_HIDE'
);
$action=safe_POST('action', 'update');
$all_tags=array_unique(array_merge(
explode(',', $INDI_FACTS_ADD),
explode(',', $FAM_FACTS_ADD),
explode(',', $NOTE_FACTS_ADD),
explode(',', $SOUR_FACTS_ADD),
explode(',', $REPO_FACTS_ADD)
));
$v_new_person_privacy_access_ID = safe_POST('v_new_person_privacy_access_ID', WT_REGEX_XREF);
$v_new_person_privacy_access_option = safe_POST('v_new_person_privacy_access_option', $PRIVACY_CONSTANTS);
$v_person_privacy_del = safe_POST('v_person_privacy_del', '1');
$v_person_privacy = safe_POST('v_person_privacy', $PRIVACY_CONSTANTS);
$v_new_user_privacy_username = safe_POST('v_new_user_privacy_username', get_all_users());
$v_new_user_privacy_access_ID = safe_POST('v_new_user_privacy_access_ID', WT_REGEX_XREF);
$v_new_user_privacy_access_option = safe_POST('v_new_user_privacy_access_option', $PRIVACY_CONSTANTS);
$v_user_privacy_del = safe_POST('v_user_privacy_del', '1');
$v_user_privacy = safe_POST('v_user_privacy');
$v_new_global_facts_abbr = safe_POST('v_new_global_facts_abbr', $all_tags);
$v_new_global_facts_choice = safe_POST('v_new_global_facts_choice', array('show', 'details'));
$v_new_global_facts_access_option = safe_POST('v_new_global_facts_access_option', $PRIVACY_CONSTANTS);
$v_global_facts_del = safe_POST('v_global_facts_del', '1');
$v_global_facts = safe_POST('v_global_facts');
$v_new_person_facts_access_ID = safe_POST('v_new_person_facts_access_ID', WT_REGEX_XREF);
$v_new_person_facts_abbr = safe_POST('v_new_person_facts_abbr', $all_tags);
$v_new_person_facts_choice = safe_POST('v_new_person_facts_choice', array('show', 'details'));
$v_new_person_facts_access_option = safe_POST('v_new_person_facts_access_option', $PRIVACY_CONSTANTS);
$v_person_facts_del = safe_POST('v_person_facts_del', '1');
$v_person_facts = safe_POST('v_person_facts');
// These values may not be present in privacy files created by old versions of PGV
if (!isset($PRIVACY_BY_YEAR)) $PRIVACY_BY_YEAR = false;
if (!isset($MAX_ALIVE_AGE)) $MAX_ALIVE_AGE = 120;
/**
* print yes/no select option
*
* @param string $checkVar
*/
function write_yes_no($checkVar) {
print "\n";
print "";
}
/**
* print find and print gedcom record ID
*
* @param string $checkVar gedcom key
* @param string $outputVar error message style
*/
function search_ID_details($checkVar, $outputVar) {
$record=GedcomRecord::getInstance($checkVar);
if ($record) {
echo $record->format_list('span');
} else {
print "";
if ($outputVar == 1) {
print i18n::translate('Unable to find individual with id');
print "
[" . $checkVar . "]";
}
if ($outputVar == 2) {
print i18n::translate('Unable to find individual with id');
}
print "
";
}
}
$PRIVACY_MODULE = get_privacy_file(WT_GED_ID);
print_header(i18n::translate('Edit privacy settings'));
if ($ENABLE_AUTOCOMPLETE) require WT_ROOT.'js/autocomplete.js.htm';
?>
".i18n::translate('Edit GEDCOM privacy settings')." - ".PrintReady(strip_tags(get_gedcom_setting(get_id_from_gedcom($ged), 'title'))). "";
print "(" . getLRM() . $PRIVACY_MODULE.")";
print "
";
print i18n::translate('Return to the GEDCOM management menu');
print "
"; ?>
|
";
print "";
print i18n::translate('Performing update.');
print " ";
$configtext = implode('', file("privacy.php"));
print i18n::translate('Config file read.');
print " |
\n";
$configtext = preg_replace('/\$SHOW_DEAD_PEOPLE\s*=\s*.*;/', "\$SHOW_DEAD_PEOPLE = ".$_POST["v_SHOW_DEAD_PEOPLE"].";", $configtext);
$configtext = preg_replace('/\$SHOW_LIVING_NAMES\s*=\s*.*;/', "\$SHOW_LIVING_NAMES = ".$_POST["v_SHOW_LIVING_NAMES"].";", $configtext);
$configtext = preg_replace('/\$SHOW_SOURCES\s*=\s*.*;/', "\$SHOW_SOURCES = ".$_POST["v_SHOW_SOURCES"].";", $configtext);
$configtext = preg_replace('/\$MAX_ALIVE_AGE\s*=\s*".*";/', "\$MAX_ALIVE_AGE = \"".$_POST["v_MAX_ALIVE_AGE"]."\";", $configtext);
if ($MAX_ALIVE_AGE!=$_POST["v_MAX_ALIVE_AGE"]) reset_isdead(get_id_from_gedcom($ged));
$configtext = preg_replace('/\$SHOW_MULTISITE_SEARCH\s*=\s*.*;/', "\$SHOW_MULTISITE_SEARCH = ".$_POST["v_SHOW_MULTISITE_SEARCH"].";", $configtext);
$configtext = preg_replace('/\$ENABLE_CLIPPINGS_CART\s*=\s*.*;/', "\$ENABLE_CLIPPINGS_CART = ".$_POST["v_ENABLE_CLIPPINGS_CART"].";", $configtext);
$configtext = preg_replace('/\$PRIVACY_BY_YEAR\s*=\s*.*;/', "\$PRIVACY_BY_YEAR = ".$boolarray[$_POST["v_PRIVACY_BY_YEAR"]].";", $configtext);
$configtext = preg_replace('/\$PRIVACY_BY_RESN\s*=\s*.*;/', "\$PRIVACY_BY_RESN = ".$boolarray[$_POST["v_PRIVACY_BY_RESN"]].";", $configtext);
$configtext = preg_replace('/\$SHOW_DEAD_PEOPLE\s*=\s*.*;/', "\$SHOW_DEAD_PEOPLE = ".$_POST["v_SHOW_DEAD_PEOPLE"].";", $configtext);
$configtext = preg_replace('/\$USE_RELATIONSHIP_PRIVACY\s*=\s*.*;/', "\$USE_RELATIONSHIP_PRIVACY = ".$boolarray[$_POST["v_USE_RELATIONSHIP_PRIVACY"]].";", $configtext);
$configtext = preg_replace('/\$MAX_RELATION_PATH_LENGTH\s*=\s*.*;/', "\$MAX_RELATION_PATH_LENGTH = \"".$_POST["v_MAX_RELATION_PATH_LENGTH"]."\";", $configtext);
$configtext = preg_replace('/\$CHECK_MARRIAGE_RELATIONS\s*=\s*.*;/', "\$CHECK_MARRIAGE_RELATIONS = ".$boolarray[$_POST["v_CHECK_MARRIAGE_RELATIONS"]].";", $configtext);
$configtext = preg_replace('/\$SHOW_PRIVATE_RELATIONSHIPS\s*=\s*.*;/', "\$SHOW_PRIVATE_RELATIONSHIPS = ".$boolarray[$_POST["v_SHOW_PRIVATE_RELATIONSHIPS"]].";", $configtext);
//-- Update the "Person Privacy" section
$configtext_beg = substr($configtext, 0, strpos($configtext, "//-- start person privacy --//"));
$configtext_end = substr($configtext, strpos($configtext, "//-- end person privacy --//"));
$person_privacy_text = "//-- start person privacy --//\n\$person_privacy = array();\n";
if (!isset($v_person_privacy) || !is_array($v_person_privacy)) $v_person_privacy = array();
foreach ($person_privacy as $key=>$value) {
if (isset($v_person_privacy_del[$key]) || $key==$v_new_person_privacy_access_ID) continue;
if (isset($v_person_privacy[$key])) $person_privacy_text .= "\$person_privacy['$key'] = ".$v_person_privacy[$key].";\n";
else $person_privacy_text .= "\$person_privacy['$key'] = ".$PRIVACY_CONSTANTS[$value].";\n";
}
if ($v_new_person_privacy_access_ID && $v_new_person_privacy_access_option) {
$gedobj = new GedcomRecord(find_gedcom_record($v_new_person_privacy_access_ID, WT_GED_ID));
$v_new_person_privacy_access_ID = $gedobj->getXref();
if ($v_new_person_privacy_access_ID) $person_privacy_text .= "\$person_privacy['$v_new_person_privacy_access_ID'] = ".$v_new_person_privacy_access_option.";\n";
}
$configtext = $configtext_beg . $person_privacy_text . $configtext_end;
//-- Update the "User Privacy" section
$configtext_beg = substr($configtext, 0, strpos($configtext, "//-- start user privacy --//"));
$configtext_end = substr($configtext, strpos($configtext, "//-- end user privacy --//"));
$person_privacy_text = "//-- start user privacy --//\n\$user_privacy = array();\n";
if (!isset($v_user_privacy) || !is_array($v_user_privacy)) $v_user_privacy = array();
foreach ($user_privacy as $key=>$value) {
foreach ($value as $id=>$setting) {
if (isset($v_user_privacy_del[$key][$id]) || ($key==$v_new_user_privacy_username && $id==$v_new_user_privacy_access_ID)) continue;
if (isset($v_user_privacy[$key][$id])) $person_privacy_text .= "\$user_privacy['$key']['$id'] = ".$v_user_privacy[$key][$id].";\n";
else $person_privacy_text .= "\$user_privacy['$key']['$id'] = ".$PRIVACY_CONSTANTS[$setting].";\n";
}
}
if ($v_new_user_privacy_username && $v_new_user_privacy_access_ID && $v_new_user_privacy_access_option) {
$gedobj = new GedcomRecord(find_gedcom_record($v_new_user_privacy_access_ID, WT_GED_ID));
$v_new_user_privacy_access_ID = $gedobj->getXref();
if ($v_new_user_privacy_access_ID) $person_privacy_text .= "\$user_privacy['$v_new_user_privacy_username']['$v_new_user_privacy_access_ID'] = ".$v_new_user_privacy_access_option.";\n";
}
$configtext = $configtext_beg . $person_privacy_text . $configtext_end;
//-- Update the "Global Facts Privacy" section
$configtext_beg = substr($configtext, 0, strpos($configtext, "//-- start global facts privacy --//"));
$configtext_end = substr($configtext, strpos($configtext, "//-- end global facts privacy --//"));
$person_privacy_text = "//-- start global facts privacy --//\n\$global_facts = array();\n";
if (!isset($v_global_facts) || !is_array($v_global_facts)) $v_global_facts = array();
foreach ($global_facts as $tag=>$value) {
foreach ($value as $key=>$setting) {
if (isset($v_global_facts_del[$tag][$key]) || ($tag==$v_new_global_facts_abbr && $key==$v_new_global_facts_choice)) continue;
if (isset($v_global_facts[$tag][$key])) $person_privacy_text .= "\$global_facts['$tag']['$key'] = ".$v_global_facts[$tag][$key].";\n";
else $person_privacy_text .= "\$global_facts['$tag']['$key'] = ".$PRIVACY_CONSTANTS[$setting].";\n";
}
}
if ($v_new_global_facts_abbr && $v_new_global_facts_choice && $v_new_global_facts_access_option) {
$person_privacy_text .= "\$global_facts['$v_new_global_facts_abbr']['$v_new_global_facts_choice'] = ".$v_new_global_facts_access_option.";\n";
}
$configtext = $configtext_beg . $person_privacy_text . $configtext_end;
//-- Update the "Person Facts Privacy" section
$configtext_beg = substr($configtext, 0, strpos($configtext, "//-- start person facts privacy --//"));
$configtext_end = substr($configtext, strpos($configtext, "//-- end person facts privacy --//"));
$person_privacy_text = "//-- start person facts privacy --//\n\$person_facts = array();\n";
if (!isset($v_person_facts) || !is_array($v_person_facts)) $v_person_facts = array();
foreach ($person_facts as $id=>$value) {
foreach ($value as $tag=>$value1) {
foreach ($value1 as $key=>$setting) {
if (isset($v_person_facts_del[$id][$tag][$key]) || ($id==$v_new_person_facts_access_ID && $tag==$v_new_person_facts_abbr && $key==$v_new_person_facts_choice)) continue;
if (isset($v_person_facts[$id][$tag][$key])) $person_privacy_text .= "\$person_facts['$id']['$tag']['$key'] = ".$v_person_facts[$id][$tag][$key].";\n";
else $person_privacy_text .= "\$person_facts['$id']['$tag']['$key'] = ".$PRIVACY_CONSTANTS[$setting].";\n";
}
}
}
if ($v_new_person_facts_access_ID && $v_new_person_facts_abbr && $v_new_global_facts_choice && $v_new_global_facts_access_option) {
$gedobj = new GedcomRecord(find_gedcom_record($v_new_person_facts_access_ID, WT_GED_ID));
$v_new_person_facts_access_ID = $gedobj->getXref();
if ($v_new_person_facts_access_ID) $person_privacy_text .= "\$person_facts['$v_new_person_facts_access_ID']['$v_new_person_facts_abbr']['$v_new_person_facts_choice'] = ".$v_new_person_facts_access_option.";\n";
}
$configtext = $configtext_beg . $person_privacy_text . $configtext_end;
$PRIVACY_MODULE = $INDEX_DIRECTORY.$GEDCOM."_priv.php";
$fp = @fopen($PRIVACY_MODULE, "wb");
if (!$fp) {
print "".i18n::translate('E R R O R !!!
Could not write to file %s. Please check it for proper Write permissions.', $PRIVACY_MODULE)."
\n";
} else {
fwrite($fp, $configtext);
fclose($fp);
}
// NOTE: load the new variables
require $INDEX_DIRECTORY.$GEDCOM.'_priv.php';
$logline = AddToLog("Privacy file $PRIVACY_MODULE updated", 'config');
$gedcomprivname = $GEDCOM."_priv.php";
//-- delete the cache files for the Home Page blocks
require_once WT_ROOT.'includes/index_cache.php';
clearCache();
}
?>