'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 ""; print i18n::translate('No'); print "\n"; print ""; print i18n::translate('Yes'); 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(); } ?>
\"\" "; ?>
\"\" "; ?>
\"\" "; ?>
\"\" "; ?>
\"\" "; ?>