AddToLog('User changed password'); set_user_password(PGV_USER_ID, crypt($form_pass1)); } $old_firstname = get_user_setting(PGV_USER_ID, 'firstname'); $old_lastname = get_user_setting(PGV_USER_ID, 'lastname'); $old_email = get_user_setting(PGV_USER_ID, 'email'); // Change other settings set_user_setting(PGV_USER_ID, 'firstname', $form_firstname); set_user_setting(PGV_USER_ID, 'lastname', $form_lastname); set_user_setting(PGV_USER_ID, 'email', $form_email); set_user_setting(PGV_USER_ID, 'theme', $form_theme); set_user_setting(PGV_USER_ID, 'language', $form_language); set_user_setting(PGV_USER_ID, 'contactmethod', $form_contact_method); set_user_setting(PGV_USER_ID, 'visibleonline', $form_visible_online); set_user_setting(PGV_USER_ID, 'defaulttab', $form_default_tab); set_user_gedcom_setting(PGV_USER_ID, PGV_GED_ID, 'rootid', $form_rootid); // update gedcom record with new email address if (get_user_setting(PGV_USER_ID, 'sync_gedcom') == 'Y') { if ($form_email != $old_email) { foreach (get_all_gedcoms() as $ged_id => $ged_name) { $myid = get_user_gedcom_setting(PGV_USER_ID, $ged_id, 'gedcomid'); if ($myid) { $OLDGEDCOM = $GEDCOM; $GEDCOM = $ged_name; $person = Person::getInstance($myid); if ($person) { if (preg_match('/\\d _?EMAIL/', $person->getGedcomRecord())) { replace_gedrec($myid, preg_replace("/(\n\\d _?EMAIL).*/", '$1 ' . $form_email, $person->getGedcomRecord())); } else { replace_gedrec($myid, $person->getGedcomRecord() . "\n1 EMAIL " . $form_email); }
/** * Import users etc. from index files * */ function import() { global $INDEX_DIRECTORY, $TBLPREFIX, $pgv_lang, $GEDCOMS, $GEDCOM, $gBitDb; if (file_exists($INDEX_DIRECTORY . "authenticate.php") == false) { $this->impSuccess = false; return; } else { require $INDEX_DIRECTORY . "authenticate.php"; $countold = count($users); $gBitDb->query("DELETE FROM {$TBLPREFIX}users"); foreach ($users as $username => $user) { if ($user["editaccount"] == "1") { $user["editaccount"] = "Y"; } else { $user["editaccount"] = "N"; } //-- make sure fields are set for v4.0 DB if (!isset($user["firstname"])) { if (isset($user["fullname"])) { $parts = explode(' ', trim($user["fullname"])); $user["lastname"] = array_pop($parts); $user["firstname"] = implode(" ", $parts); } else { $user["firstname"] = ''; $user["lastname"] = ''; } } if (!isset($user["comment"])) { $user["comment"] = ''; } if (!isset($user["comment_exp"])) { $user["comment_exp"] = ''; } if (!isset($user["sync_gedcom"])) { $user["sync_gedcom"] = 'N'; } if (!isset($user["relationship_privacy"])) { $user["relationship_privacy"] = 'N'; } if (!isset($user["max_relation_path"])) { $user["max_relation_path"] = '2'; } if (!isset($user["auto_accept"])) { $user["auto_accept"] = 'N'; } if ($user_id = create_user($user['username'], $user['password'])) { set_user_setting($user_id, 'firstname', $user["firstname"]); set_user_setting($user_id, 'lastname', $user["lastname"]); set_user_setting($user_id, 'email', $user["email"]); set_user_setting($user_id, 'theme', $user["theme"]); set_user_setting($user_id, 'language', $user["language"]); set_user_setting($user_id, 'contactmethod', $user["contactmethod"]); set_user_setting($user_id, 'defaulttab', $user["defaulttab"]); set_user_setting($user_id, 'comment', $user["comment"]); set_user_setting($user_id, 'comment_exp', $user["comment_exp"]); set_user_setting($user_id, 'pwrequested', $user["pwrequested"]); set_user_setting($user_id, 'reg_timestamp', $user["reg_timestamp"]); set_user_setting($user_id, 'reg_hashcode', $user["reg_hashcode"]); set_user_setting($user_id, 'loggedin', $user["loggedin"]); set_user_setting($user_id, 'sessiontime', $user["sessiontime"]); set_user_setting($user_id, 'max_relation_path', $user["max_relation_path"]); set_user_setting($user_id, 'sync_gedcom', $user["sync_gedcom"] ? 'Y' : 'N'); set_user_setting($user_id, 'relationship_privacy', $user["relationship_privacy"] ? 'Y' : 'N'); set_user_setting($user_id, 'auto_accept', $user["auto_accept"] ? 'Y' : 'N'); set_user_setting($user_id, 'canadmin', $user["canadmin"] ? 'Y' : 'N'); set_user_setting($user_id, 'visibleonline', $user["visibleonline"] ? 'Y' : 'N'); set_user_setting($user_id, 'editaccount', $user["editaccount"] ? 'Y' : 'N'); set_user_setting($user_id, 'verified', $user["verified"] ? 'yes' : 'no'); set_user_setting($user_id, 'verified_by_admin', $user["verified_by_admin"] ? 'yes' : 'no'); foreach (array('gedcomid', 'rootid', 'canedit') as $var) { if ($user[$var]) { foreach (unserialize(stripslashes($user[$var])) as $gedcom => $id) { set_user_gedcom_setting($user_id, $gedcom, $var, $id); } } } AddToLog("added user -> {$user['username']} <-"); } } if ($countold == get_user_count()) { $this->impSuccess = true; } else { $this->impSuccess = false; } } if (file_exists($INDEX_DIRECTORY . "messages.dat") == false) { $this->msgSuccess = false; } else { $gBitDb->query("DELETE FROM {$TBLPREFIX}messages"); $messages = array(); $fp = fopen($INDEX_DIRECTORY . "messages.dat", "rb"); $mstring = fread($fp, filesize($INDEX_DIRECTORY . "messages.dat")); fclose($fp); $messages = unserialize($mstring); foreach ($messages as $newid => $message) { $gBitDb->query("INSERT INTO {$TBLPREFIX}messages (m_id, m_from, m_to, m_subject, m_body, m_created) VALUES (?, ? ,? ,? ,? ,?)", array($newid, $message["from"], $message["to"], $message["subject"], $message["body"], $message["created"])); } $this->msgSuccess = true; } if (file_exists($INDEX_DIRECTORY . "favorites.dat") == false) { $this->favSuccess = false; print $pgv_lang["um_nofav"] . "<br /><br />"; } else { $gBitDb->query("DELETE FROM {$TBLPREFIX}favorites"); $favorites = array(); $fp = fopen($INDEX_DIRECTORY . "favorites.dat", "rb"); $mstring = fread($fp, filesize($INDEX_DIRECTORY . "favorites.dat")); fclose($fp); $favorites = unserialize($mstring); foreach ($favorites as $newid => $favorite) { $res = addFavorite($favorite); if (!$res || DB::isError($res)) { $this->errorMsg = "<span class=\"error\">Unable to update <i>Favorites</i> table.</span><br />\n"; return; } } $this->favSuccess = true; } if (file_exists($INDEX_DIRECTORY . "news.dat") == false) { $this->newsSuccess = false; } else { $gBitDb->query("DELETE FROM {$TBLPREFIX}news"); $allnews = array(); $fp = fopen($INDEX_DIRECTORY . "news.dat", "rb"); $mstring = fread($fp, filesize($INDEX_DIRECTORY . "news.dat")); fclose($fp); $allnews = unserialize($mstring); foreach ($allnews as $newid => $news) { $res = addNews($news); if (!$res) { $this->errorMsg = "<span class=\"error\">Unable to update <i>News</i> table.</span><br />\n"; return; } } $this->newsSuccess = true; } if (file_exists($INDEX_DIRECTORY . "blocks.dat") == false) { $this->blockSuccess = false; } else { $gBitDb->query("DELETE FROM {$TBLPREFIX}blocks"); $allblocks = array(); $fp = fopen($INDEX_DIRECTORY . "blocks.dat", "rb"); $mstring = fread($fp, filesize($INDEX_DIRECTORY . "blocks.dat")); fclose($fp); $allblocks = unserialize($mstring); foreach ($allblocks as $bid => $blocks) { $username = $blocks["username"]; $gBitDb->query("INSERT INTO {$TBLPREFIX}blocks (b_id, b_username, b_location, b_order, b_name, b_config) VALUES (?, ? ,? , ?, ?, ?)", array($bid, $blocks["username"], $blocks["location"], $blocks["order"], $blocks["name"], serialize($blocks["config"]))); } $this->blockSuccess = true; } }