12 September 2005 * * @author PGV Development Team * @package PhpGedView * @subpackage Privacy * @version $Id: edit_privacy.php 2091 2007-10-30 16:19:34Z yalnifj $ */ require "config.php"; require_once("includes/gedcomrecord.php"); loadLangFile("pgv_confighelp, pgv_help"); if (empty($ged)) $ged = $GEDCOM; if ((!userGedcomAdmin(getUserName(), $ged))||(empty($ged))) { header("Location: editgedcoms.php"); exit; } $PRIVACY_CONSTANTS = array(); $PRIVACY_CONSTANTS[$PRIV_HIDE] = "\$PRIV_HIDE"; $PRIVACY_CONSTANTS[$PRIV_PUBLIC] = "\$PRIV_PUBLIC"; $PRIVACY_CONSTANTS[$PRIV_USER] = "\$PRIV_USER"; $PRIVACY_CONSTANTS[$PRIV_NONE] = "\$PRIV_NONE"; if (!isset($PRIVACY_BY_YEAR)) $PRIVACY_BY_YEAR = false; if (!isset($MAX_ALIVE_AGE)) $MAX_ALIVE_AGE = 120; /** * print write_access option * * @param string $checkVar */ function write_access_option($checkVar) { global $PRIV_HIDE, $PRIV_PUBLIC, $PRIV_USER, $PRIV_NONE; global $pgv_lang; print "\n"; print "\n"; print "\n"; print "\n"; } /** * print yes/no select option * * @param string $checkVar */ function write_yes_no($checkVar) { global $pgv_lang; print ""; print $pgv_lang["no"]; print "\n"; print ""; print $pgv_lang["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) { global $GEDCOMS, $GEDCOM; global $pgv_lang; $indirec = find_gedcom_record($checkVar); if (empty($indirec)) $indirec = find_updated_record($checkVar); if (!empty($indirec)) { $ct = preg_match("/0 @(.*)@ (.*)/", $indirec, $match); if ($ct>0) { $pid = $match[1]; $type = trim($match[2]); } if ($type=="INDI") { $name = get_person_name($pid); print "\n".PrintReady($name); print_first_major_fact($pid); print "\n"; } else if ($type=="SOUR") { $name = get_source_descriptor($pid); print "\n".PrintReady($name); print "\n"; } else if ($type=="FAM") { $name = get_family_descriptor($pid); print "\n".PrintReady($name); print "\n"; } else if ($type=="REPO") { $name = get_repo_descriptor($pid); print "\n".PrintReady($name); print "\n"; } else print "$type $pid"; } else { print ""; if ($outputVar == 1) { print $pgv_lang["unable_to_find_privacy_indi"]; print "
[" . $checkVar . "]"; } if ($outputVar == 2) { print $pgv_lang["unable_to_find_privacy_indi"]; } print "


"; } } if (empty($action)) $action=""; $PRIVACY_MODULE = get_privacy_file(); print_header($pgv_lang["privacy_header"]); ?>
".$pgv_lang["edit_privacy_title"]." - ".$GEDCOMS[$ged]["title"]. ""; print "(" . getLRM() . $PRIVACY_MODULE.")"; print "

"; print $pgv_lang["lang_back_manage_gedcoms"]; print "

";?>
"; print ""; print $pgv_lang["performing_update"]; print "
"; $configtext = implode('', file("privacy.php")); print $pgv_lang["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(); if (file_exists("modules/research_assistant.php")) { $configtext = preg_replace('/\$SHOW_RESEARCH_ASSISTANT\s*=\s*.*;/', "\$SHOW_RESEARCH_ASSISTANT = ".$_POST["v_SHOW_RESEARCH_ASSISTANT"].";", $configtext); } $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); $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_del)) $v_person_privacy_del = array(); if (!is_array($v_person_privacy_del)) $v_person_privacy_del = array(); if (!isset($v_person_privacy)) $v_person_privacy = array(); if (!is_array($v_person_privacy)) $v_person_privacy = array(); foreach($person_privacy as $key=>$value) { if (!isset($v_person_privacy_del[$key])) { 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 ((!empty($v_new_person_privacy_access_ID))&&(!empty($v_new_person_privacy_acess_option))) { $gedobj = new GedcomRecord(find_gedcom_record($v_new_person_privacy_access_ID)); $v_new_person_privacy_access_ID = $gedobj->getXref(); if (!empty($v_new_person_privacy_access_ID)) $person_privacy_text .= "\$person_privacy['$v_new_person_privacy_access_ID'] = ".$v_new_person_privacy_acess_option.";\n"; } $configtext = $configtext_beg . $person_privacy_text . $configtext_end; $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_del)) $v_user_privacy_del = array(); if (!is_array($v_user_privacy_del)) $v_user_privacy_del = array(); if (!isset($v_user_privacy)) $v_user_privacy = array(); if (!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])) { 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 ((!empty($v_new_user_privacy_username))&&(!empty($v_new_user_privacy_access_ID))&&(!empty($v_new_user_privacy_acess_option))) { $gedobj = new GedcomRecord(find_gedcom_record($v_new_user_privacy_access_ID)); $v_new_user_privacy_access_ID = $gedobj->getXref(); if (!empty($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_acess_option.";\n"; } $configtext = $configtext_beg . $person_privacy_text . $configtext_end; $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_del)) $v_global_facts_del = array(); if (!is_array($v_global_facts_del)) $v_global_facts_del = array(); if (!isset($v_global_facts)) $v_global_facts = array(); if (!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])) { 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 ((!empty($v_new_global_facts_abbr))&&(!empty($v_new_global_facts_choice))&&(!empty($v_new_global_facts_acess_option))) { $person_privacy_text .= "\$global_facts['$v_new_global_facts_abbr']['$v_new_global_facts_choice'] = ".$v_new_global_facts_acess_option.";\n"; } $configtext = $configtext_beg . $person_privacy_text . $configtext_end; $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_del)) $v_person_facts_del = array(); if (!is_array($v_person_facts_del)) $v_person_facts_del = array(); if (!isset($v_person_facts)) $v_person_facts = array(); if (!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])) { 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 ((!empty($v_new_person_facts_access_ID))&&(!empty($v_new_person_facts_abbr))&&(!empty($v_new_global_facts_choice))&&(!empty($v_new_global_facts_acess_option))) { $gedobj = new GedcomRecord(find_gedcom_record($v_new_person_facts_access_ID)); $v_new_person_facts_access_ID = $gedobj->getXref(); if (!empty($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_acess_option.";\n"; } $configtext = $configtext_beg . $person_privacy_text . $configtext_end; $PRIVACY_MODULE = $INDEX_DIRECTORY.$GEDCOM."_priv.php"; $fp = @fopen($PRIVACY_MODULE, "wb"); if (!$fp) { global $whichFile; $whichFile = $PRIVACY_MODULE; print "".print_text("gedcom_config_write_error",0,1)."
\n"; } else { fwrite($fp, $configtext); fclose($fp); } // NOTE: load the new variables include $INDEX_DIRECTORY.$GEDCOM."_priv.php"; $logline = AddToLog("Privacy file $PRIVACY_MODULE updated by >".getUserName()."<"); $gedcomprivname = $GEDCOM."_priv.php"; if (!empty($COMMIT_COMMAND)) check_in($logline, $gedcomprivname, $INDEX_DIRECTORY); //-- delete the cache files for the welcome page blocks include_once("includes/index_cache.php"); clearCache(); } ?>
\n"; // NOTE: General Privacy Settings header bar ?>
\"\" "; print_help_link("general_privacy_help", "qm", "general_privacy"); ?> " onclick="expand_layer('general-privacy-options');return false">
\"\" ";?> " onclick="expand_layer('person-privacy-options');return false">
\"\" ";?> " onclick="expand_layer('user-privacy-options');return false">
\"\" ";?> " onclick="expand_layer('global-facts-options');return false">
\"\" ";?> " onclick="expand_layer('person-facts-options');return false">
" onclick="closeHelp();" />    " />