/** * Print Review Changes Block * * Prints a block allowing the user review all changes pending approval */ function review_changes_block($block = true, $config = "", $side, $index) { global $pgv_lang, $ctype, $QUERY_STRING, $factarray, $PGV_IMAGE_DIR, $PGV_IMAGES; global $pgv_changes, $TEXT_DIRECTION, $SHOW_SOURCES, $PGV_BLOCKS; global $PHPGEDVIEW_EMAIL; if (empty($config)) { $config = $PGV_BLOCKS["review_changes_block"]["config"]; } if ($pgv_changes) { //-- if the time difference from the last email is greater than 24 hours then send out another email $LAST_CHANGE_EMAIL = get_site_setting('LAST_CHANGE_EMAIL'); if (time() - $LAST_CHANGE_EMAIL > 60 * 60 * 24 * $config["days"]) { $LAST_CHANGE_EMAIL = time(); set_site_setting('LAST_CHANGE_EMAIL', $LAST_CHANGE_EMAIL); write_changes(); if ($config["sendmail"] == "yes") { // Which users have pending changes? $users_with_changes = array(); foreach (get_all_users() as $user_id => $user_name) { foreach (get_all_gedcoms() as $ged_id => $ged_name) { if (exists_pending_change($user_id, $ged_id)) { $users_with_changes[$user_id] = $user_name; break; } } } foreach ($users_with_changes as $user_id => $user_name) { //-- send message $message = array(); $message["to"] = $user_name; $message["from"] = $PHPGEDVIEW_EMAIL; $message["subject"] = $pgv_lang["review_changes_subject"]; $message["body"] = $pgv_lang["review_changes_body"]; $message["method"] = get_user_setting($user_id, 'contactmethod'); $message["url"] = PGV_SCRIPT_NAME . "?" . html_entity_decode($QUERY_STRING); $message["no_from"] = true; addMessage($message); } } } if (PGV_USER_CAN_EDIT) { $id = "review_changes_block"; $title = print_help_link("review_changes_help", "qm", "", false, true); if ($PGV_BLOCKS["review_changes_block"]["canconfig"]) { if ($ctype == "gedcom" && PGV_USER_GEDCOM_ADMIN || $ctype == "user" && PGV_USER_ID) { if ($ctype == "gedcom") { $name = PGV_GEDCOM; } else { $name = PGV_USER_NAME; } $title .= "<a href=\"javascript: configure block\" onclick=\"window.open('" . encode_url("index_edit.php?name={$name}&ctype={$ctype}&action=configure&side={$side}&index={$index}") . "', '_blank', 'top=50,left=50,width=600,height=350,scrollbars=1,resizable=1'); return false;\">"; $title .= "<img class=\"adminicon\" src=\"{$PGV_IMAGE_DIR}/" . $PGV_IMAGES["admin"]["small"] . "\" width=\"15\" height=\"15\" border=\"0\" alt=\"" . $pgv_lang["config_block"] . "\" /></a>"; } } $title .= $pgv_lang["review_changes"]; $content = ""; if (PGV_USER_CAN_ACCEPT) { $content .= "<a href=\"javascript:;\" onclick=\"window.open('edit_changes.php','_blank','width=600,height=500,resizable=1,scrollbars=1'); return false;\">" . $pgv_lang["accept_changes"] . "</a><br />"; } if ($config["sendmail"] == "yes") { $content .= $pgv_lang["last_email_sent"] . format_timestamp($LAST_CHANGE_EMAIL) . "<br />"; $content .= $pgv_lang["next_email_sent"] . format_timestamp($LAST_CHANGE_EMAIL + 60 * 60 * 24 * $config["days"]) . "<br /><br />"; } foreach ($pgv_changes as $cid => $changes) { $change = $changes[count($changes) - 1]; if ($change["gedcom"] == PGV_GEDCOM) { $record = GedcomRecord::getInstance($change['gid']); if ($record->getType() != 'SOUR' || $SHOW_SOURCES >= PGV_USER_ACCESS_LEVEL) { $content .= '<b>' . PrintReady($record->getFullName()) . '</b> ' . getLRM() . '(' . $record->getXref() . ')' . getLRM(); switch ($record->getType()) { case 'INDI': case 'FAM': case 'SOUR': case 'OBJE': $content .= $block ? '<br />' : ' '; $content .= '<a href="' . encode_url($record->getLinkUrl() . '&show_changes=yes') . '">' . $pgv_lang['view_change_diff'] . '</a>'; break; } $content .= '<br />'; } } } global $THEME_DIR; if ($block) { require $THEME_DIR . 'templates/block_small_temp.php'; } else { require $THEME_DIR . 'templates/block_main_temp.php'; } } } }
admin_page(); include 'includes/overall/overall_header.php'; ?> <h1><a href="admin.php">Administration</a> - Site Settings</h1> <?php $site_email = get_site_email(); if (!empty($_REQUEST)) { if (isset($_REQUEST['site-email']) && $site_email != $_REQUEST['site-email']) { $_SESSION['admin-save']['site-email'] = 0; if (set_site_setting('site_email', $_REQUEST['site-email'])) { $_SESSION['admin-save']['site-email'] = 1; } } if (isset($_REQUEST['site-status']) && SITE_STATUS != $_REQUEST['site-status']) { $_SESSION['admin-save']['site-status'] = 0; if (set_site_setting('site_status', $_REQUEST['site-status'])) { $_SESSION['admin-save']['site-status'] = 1; } } header('Location: admin_site_settings.php'); exit; } if (isset($_SESSION['admin-save'])) { if (isset($_SESSION['admin-save']['site-email'])) { $message = '<h3 style="color: #ff0000;>There was a problem saving the site email!</h3>'; if ($_SESSION['admin-save']['site-email']) { $message = '<h3>Site email saved successfully!</h3>'; } echo $message; } if (isset($_SESSION['admin-save']['site-status'])) {
return $url; } //-- make sure that they have admin status before they can use this page //-- otherwise have them login again if (!PGV_USER_GEDCOM_ADMIN) { header("Location: login.php?url=editgedcoms.php"); exit; } print_header($pgv_lang["gedcom_adm_head"]); print "<center>\n"; if ($action == "delete") { delete_gedcom($ged); print "<br />" . str_replace("#GED#", $ged, $pgv_lang["gedcom_deleted"]) . "<br />\n"; } if ($action == "setdefault" && in_array($default_ged, get_all_gedcoms())) { set_site_setting('DEFAULT_GEDCOM', $default_ged); $DEFAULT_GEDCOM = $default_ged; } else { $DEFAULT_GEDCOM = get_site_setting('DEFAULT_GEDCOM'); } print "<br /><br />"; ?> <span class="subheaders"><?php print_text("current_gedcoms"); ?> </span><br /> <form name="defaultform" method="get" action="editgedcoms.php"> <input type="hidden" name="action" value="setdefault" /> <?php // Default gedcom choice print "<br />";
/** * Delete a gedcom from the database and the system * Does not delete the file from the file system * @param string $ged the filename of the gedcom to delete */ function delete_gedcom($ged) { global $TBLPREFIX, $pgv_changes, $GEDCOMS, $gBitDb; if (!isset($GEDCOMS[$ged])) { return; } $ged_id = get_id_from_gedcom($ged); $gBitDb->query("DELETE FROM {$TBLPREFIX}blocks WHERE b_username=?", array($ged)); $gBitDb->query("DELETE FROM {$TBLPREFIX}dates WHERE d_file =?", array($ged_id)); $gBitDb->query("DELETE FROM {$TBLPREFIX}families WHERE f_file =?", array($ged_id)); $gBitDb->query("DELETE FROM {$TBLPREFIX}favorites WHERE fv_file =?", array($ged_id)); $gBitDb->query("DELETE FROM {$TBLPREFIX}individuals WHERE i_file =?", array($ged_id)); $gBitDb->query("DELETE FROM {$TBLPREFIX}link WHERE l_file =?", array($ged_id)); $gBitDb->query("DELETE FROM {$TBLPREFIX}media WHERE m_gedfile =?", array($ged_id)); $gBitDb->query("DELETE FROM {$TBLPREFIX}media_mapping WHERE mm_gedfile=?", array($ged_id)); $gBitDb->query("DELETE FROM {$TBLPREFIX}name WHERE n_file =?", array($ged_id)); $gBitDb->query("DELETE FROM {$TBLPREFIX}news WHERE n_username=?", array($ged)); $gBitDb->query("DELETE FROM {$TBLPREFIX}nextid WHERE ni_gedfile=?", array($ged_id)); $gBitDb->query("DELETE FROM {$TBLPREFIX}other WHERE o_file =?", array($ged_id)); $gBitDb->query("DELETE FROM {$TBLPREFIX}placelinks WHERE pl_file =?", array($ged_id)); $gBitDb->query("DELETE FROM {$TBLPREFIX}places WHERE p_file =?", array($ged_id)); $gBitDb->query("DELETE FROM {$TBLPREFIX}sources WHERE s_file =?", array($ged_id)); if (isset($pgv_changes)) { //-- erase any of the changes foreach ($pgv_changes as $cid => $changes) { if ($changes[0]["gedcom"] == $ged) { unset($pgv_changes[$cid]); } } write_changes(); } unset($GEDCOMS[$ged]); store_gedcoms(); if (get_site_setting('DEFAULT_GEDCOM') == $ged) { set_site_setting('DEFAULT_GEDCOM', ''); } }