session_register("current_panel");
session_register("search_terms");
session_register("user");
session_register("password");
# Include database abstraction layer
include("adodb/adodb.inc.php");
# Include global configuration
include("includes/setup.inc.php");
# Connect to database
$conn = &ADONewConnection("mysqlt");
$conn->Connect($db_host, $db_user, $db_password, $db_name);
# Include FLAKE classes
include(FLAKE_DIR . "include_classes.php");
function get_file_contents($filename) {
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
return $contents;
}
function authorize($user, $password) {
global $conn;
$query = "select user_id from users where user_username='" . $user . "' and user_password='" . $password . "'";
$result = &$conn->Execute($query);
if ($result) {
if (!$result->EOF) {
return $result->fields("user_id");
} else {
return 0;
}
} else {
return 0;
}
}
function is_admin($user, $password) {
global $conn;
$query = "select user_admin from users where user_username='" . $user . "' and user_password='" . $password . "'";
$result = &$conn->Execute($query);
if ($result) {
if (!$result->EOF) {
return $result->fields("user_admin");
} else {
return 0;
}
} else {
return 0;
}
}
function get_user_id($user) {
global $conn;
$query = "select user_id from users where user_username='" . $user . "'";
$result = &$conn->Execute($query);
if ($result) {
if (!$result->EOF) {
return $result->fields("user_id");
} else {
return 0;
}
}
}
function get_user_name($id) {
global $conn;
$query = "select user_username from users where user_id='" . $id . "'";
$result = &$conn->Execute($query);
if ($result) {
if (!$result->EOF) {
return $result->fields("user_username");
} else {
return "";
}
}
}
$message = "";
$form = new form();
$form->localize_form_data();
if (!$current_panel) {
$current_panel = "home";
}
if ($function == "change_panel") {
$current_panel = $new_panel;
$function = "";
}
if ($function == "log_out") {
$user = "";
$password = "";
$current_panel = "login";
$function = "";
$message = "You are now logged out.";
}
if ($function == "log_in") {
if (authorize($login_user, $login_password)) {
$user = $login_user;
$password = $login_password;
$message .= "You are now logged in.";
$current_panel = "search";
} else {
$message .= "Incorrect username or password.";
}
}
$output = "";
$menubar = new menubar();
$menubar->image_path = "images/menubar/";
$menubar->separator_graphic = "separator.gif";
$menubar->keep_active_item_on = 1;
$menubar->add_button("home");
$menubar->add_url_arg("home", "function", "change_panel");
$menubar->add_url_arg("home", "new_panel", "home");
$menubar->set("home", "on_graphic", "home-on.gif");
$menubar->set("home", "off_graphic", "home-off.gif");
$menubar->add_button("search");
$menubar->add_url_arg("search", "function", "change_panel");
$menubar->add_url_arg("search", "new_panel", "search");
$menubar->set("search", "on_graphic", "search-on.gif");
$menubar->set("search", "off_graphic", "search-off.gif");
if ($user) {
if (is_admin($user, $password)) {
$menubar->add_button("approve");
$menubar->add_url_arg("approve", "function", "change_panel");
$menubar->add_url_arg("approve", "new_panel", "approve");
$menubar->set("approve", "on_graphic", "approve-on.gif");
$menubar->set("approve", "off_graphic", "approve-off.gif");
}
$menubar->add_button("add");
$menubar->add_url_arg("add", "function", "change_panel");
$menubar->add_url_arg("add", "new_panel", "add");
$menubar->set("add", "on_graphic", "add-on.gif");
$menubar->set("add", "off_graphic", "add-off.gif");
$menubar->add_button("prefs");
$menubar->add_url_arg("prefs", "function", "change_panel");
$menubar->add_url_arg("prefs", "new_panel", "prefs");
$menubar->set("prefs", "on_graphic", "prefs-on.gif");
$menubar->set("prefs", "off_graphic", "prefs-off.gif");
}
if (!$user) {
$menubar->add_button("login");
$menubar->add_url_arg("login", "function", "change_panel");
$menubar->add_url_arg("login", "new_panel", "login");
$menubar->set("login", "on_graphic", "log-in-on.gif");
$menubar->set("login", "off_graphic", "log-in-off.gif");
} else {
$menubar->add_button("logout");
$menubar->add_url_arg("logout", "function", "log_out");
$menubar->set("logout", "on_graphic", "log-out-on.gif");
$menubar->set("logout", "off_graphic", "log-out-off.gif");
}
$menubar_output = $menubar->render($conn);
if ($function == "show_profile") {
$query = "select * from users where user_id='" . $user_id . "'";
$result = &$conn->Execute($query);
if ($result) {
if (!$result->EOF) {
$output .= "User Profile";
if ($result->fields("user_name_public")) {
$output .= "Name: " . $result->fields("user_first_name") . " " . $result->fields("user_last_name") . "
";
}
if ($result->fields("user_email_public")) {
$output .= "Email: fields("user_email") . "\">" . $result->fields("user_email") . "
";
}
if ($result->fields("user_phone_public")) {
$output .= "Phone: " . $result->fields("user_phone") . "
";
}
$output .= "
";
if ($result->fields("user_info")) {
$output .= "Profile/Commentary:
" . $result->fields("user_info") . "";
}
}
}
}
if ($function == "delete_incident") {
if (is_admin($user, $password)) {
if ($id) {
$query = "delete from incidents where incident_id='" . $id . "'";
$result = &$conn->Execute($query);
$message = "Incident deleted. ";
$function = "";
}
}
}
if ($function == "delete_incident_prompt") {
$message = "Are you sure you want to delete this incident? (yes / no)";
$function = "view_incident";
}
if ($current_panel == "home") {
$output .= get_file_contents("templates/home.html");
}
if ($function == "view_incident") {
$form = new form();
$form->table_name = "incidents";
$form->primary_key = "incident_id";
$form->key_value = $id;
$form->mode = "view";
$form->label_class = "subheader";
$form->data_class = "bodytext";
include("includes/forms/incident-form.inc.php");
$output .= $form->render($conn);
}
if ($current_panel == "search") {
if ($function == "set_incident_search") {
$search_terms["description"] = $search_description;
$function = "";
}
if (!$function) {
$form = new form();
$form->label_class = "subheader";
$form->add_element("function");
$form->set("function", "type", "hidden");
$form->set("function", "value", "set_incident_search");
$form->add_element("search_description");
$form->set("search_description", "label", "Description");
$form->set("search_description", "value", $search_terms["description"]);
$form->set("search_description", "bgcolor", $default_bgcolor_1);
$form->add_element("submit");
$form->set("submit", "type", "submit");
$form->set("submit", "value", "Search");
$form->set("submit", "align", "right");
$form->set("submit", "bgcolor", $bgcolor);
$output .= "Search
";
$output .= $form->render($conn);
$output .= "
"; $hitlist = new hitlist(); $hitlist->name = "approved"; $hitlist->table_name = "incidents"; $hitlist->primary_key = "incident_id"; $query = "select * from incidents where "; if ($search_terms["description"]) { $query .= "incident_description like '%" . $search_terms["description"] . "%' and "; } $query .= "incident_approved = 1"; $hitlist->query = $query; $hitlist->view_action = "view_incident"; if (is_admin($user, $password)) { $hitlist->delete_action = "delete_incident_prompt"; } $hitlist->label_class = "subheader"; $hitlist->data_class = "bodytext"; $hitlist->bgcolor = $default_bgcolor_1; $hitlist->bgcolor2 = $default_bgcolor_2; $hitlist->next_button = "images/look/next-button.gif"; $hitlist->previous_button = "images/look/previous-button.gif"; include("includes/hitlists/incident-hitlist.inc.php"); $hitlist->paging_handler($conn); $output .= $hitlist->render($conn); $output .= $hitlist->render_paging_options($conn); } } if ($current_panel == "approve") { if ($function == "approve_incident") { $query = "update incidents set incident_approved=1 where incident_id='" . $id . "'"; $result=&$conn->Execute($query); if ($result) { $message = "Incident approved. "; } else { $message = "Error. "; } $function = ""; } if (!$function) { $hitlist = new hitlist(); $hitlist->name = "unapproved"; $hitlist->table_name = "incidents"; $hitlist->primary_key = "incident_id"; $query = "select * from incidents where incident_approved != 1"; $hitlist->query = $query; $hitlist->view_action = "view_incident"; $hitlist->edit_action = "approve_incident"; $hitlist->delete_action = "delete_incident_prompt"; $hitlist->label_class = "subheader"; $hitlist->data_class = "bodytext"; $hitlist->bgcolor = $default_bgcolor_1; $hitlist->bgcolor2 = $default_bgcolor_2; $hitlist->next_button = "images/look/next-button.gif"; $hitlist->previous_button = "images/look/previous-button.gif"; include("includes/hitlists/incident-hitlist.inc.php"); $hitlist->paging_handler($conn); $output .= $hitlist->render($conn); $output .= $hitlist->render_paging_options($conn); } } if ($current_panel == "add") { # Define form $form = new form(); $form->table_name = "incidents"; $form->primary_key = "incident_id"; $form->label_class = "subheader"; include("includes/forms/incident-form.inc.php"); $form->add_element("submit"); $form->set("submit", "type", "submit"); $form->set("submit", "value", "Submit"); $form->set("submit", "align", "right"); $form->set("submit", "bgcolor", $bgcolor); # Handle submitted data, if any $form->data_handler($conn); # Provide user feedback if ($form->key_value) { if ($form->mode == "add") { $message .= "Record added. You may update it if it is incorrect. "; } else { $message .= "Record updated. "; } $message .= "Thanks.
"; } else { $message .= "Please enter the name and description of the incident.
";
}
# Output form HTML
$output .= $form->render($conn);
}
if ($current_panel == "prefs") {
$user_id = authorize($user, $password);
$form = new form();
$form->table_name = "users";
$form->primary_key = "user_id";
$form->key_value = $user_id;
$form->label_class = "subheader";
$form->add_column("user_first_name");
$form->set("user_first_name", "label", "First Name (recommended)");
$form->set("user_first_name", "bgcolor", $default_bgcolor_1);
$form->add_column("user_last_name");
$form->set("user_last_name", "label", "Last Name (recommended)");
$form->set("user_last_name", "bgcolor", $default_bgcolor_1);
$form->add_column("user_name_public");
$form->set("user_name_public", "label", "Show Name Publicly?");
$form->set("user_name_public", "type", "checkbox");
$form->set("user_name_public", "value", "1");
$form->set("user_name_public", "bgcolor", $default_bgcolor_1);
$form->add_column("user_info");
$form->set("user_info", "label", "Profile/Commentary");
$form->set("user_info", "type", "textarea");
$form->set("user_info", "rows", "5");
$form->set("user_info", "cols", "30");
$form->set("user_info", "bgcolor", $default_bgcolor_1);
$form->add_column("user_email");
$form->set("user_email", "label", "Email Address (recommended)");
$form->set("user_email", "bgcolor", $default_bgcolor_1);
$form->add_column("user_email_public");
$form->set("user_email_public", "label", "Show Email Publicly?");
$form->set("user_email_public", "type", "checkbox");
$form->set("user_email_public", "value", "1");
$form->set("user_email_public", "bgcolor", $default_bgcolor_1);
$form->add_column("user_phone");
$form->set("user_phone", "label", "Phone Number (optional)");
$form->set("user_phone", "bgcolor", $default_bgcolor_1);
$form->add_column("user_phone_public");
$form->set("user_phone_public", "label", "Show Phone Number Publicly?");
$form->set("user_phone_public", "type", "checkbox");
$form->set("user_phone_public", "value", "1");
$form->set("user_phone_public", "bgcolor", $default_bgcolor_1);
$form->add_element("submit");
$form->set("submit", "type", "submit");
$form->set("submit", "align", "right");
$form->set("submit", "bgcolor", $bgcolor);
$form->set("submit", "value", "Update");
$form->data_handler($conn);
$output .= "Edit Your Preferences";
$output .= "Notes:
";
$output .= "";
$output .= "
";
$output .= "";
$output .= "
"; $output .= "Register"; $output .= "
"; $output .= "Forgot your password?
"; } } $template_html = get_file_contents("templates/site_look.html"); $output = str_replace("{output}", $output, $template_html); if ($message) { $message = "" . $message . ""; } if ($user) { $user_display = "Logged in as " . $user . ""; } else { $user_display = ""; } $output = str_replace("{user}", $user_display, $output); $output = str_replace("{message}", $message, $output); $output = str_replace("{menubar}", $menubar_output, $output); print $output; ?>