Files
HotLunches/event_types.php
2026-10-19 15:22:52 -07:00

239 lines
8.3 KiB
PHP

<?php
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
header("Location: /");
exit();
}
//
// Process all actions to list and edit records
//
$naction = "";
$CurrentTable = "event_types";
$DeleteField = "event_type_title";
$dSeparator = " ";
$FormFile = "event_types.form.php";
$TitleText = getLanguageText('TEXT-EVENT-TYPES');
$OrderBy = "sequence,event_type_title";
$Sequence = 'Y';
// Start the template and output buffering
startTemplate();
$templatePageTitle = $TitleText;
// Ensure that only valid user types have access to this module
$AllowedUserTypes = array('SuperUser','System Administrator','Application Administrator','Communications Administrator');
if (checkPermission($AllowedUserTypes) != 1) {
$error_message = getLanguageText('ERRORMSG-ACCESS-DENIED');
include "form.messages.php";
endTemplate();
exit();
}
if (array_key_exists('naction',$_GET)) $naction = $_GET['naction'];
if (array_key_exists('naction',$_POST)) $naction = $_POST['naction'];
$school_num = $school_record['record_num'];
switch (strtolower($naction)) {
case "add":
$next_naction = "insert";
include $FormFile;
break;
case "insert":
extract($_POST);
// Get new sequence number
if ($Sequence == 'Y') {
$query = "select max(sequence) sequence from $CurrentTable where school_num = $school_num";
$results = db_query($query);
$row = db_fetch_array($results);
$sequence = intval($row['sequence']) + 1;
}
$table = new Table("$CurrentTable");
$query = $table->BuildInsert();
db_query($query);
$form_message = getLanguageText('RECORD-INSERTED-MSG');
$naction = 'list';
header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
exit();
case "edit":
// Get current record
$record_num = intval($_GET['record_num']);
$query = "select * from $CurrentTable where record_num = $record_num";
$results = db_query($query);
if (db_num_rows($results) == 1) {
$row = db_fetch_array($results);
extract($row);
$next_naction = "update";
include $FormFile;
}
else {
$error_message = getLanguageText('ERRORMSG-NOT-FOUND');
$naction = 'list';
header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
exit();
}
break;
case "update":
extract($_POST);
$orig_event_type_title = db_getVal("SELECT event_type_title FROM event_types WHERE school_num = $school_num AND record_num = $record_num");
// Update existing events with the event type title
db_query("UPDATE event_calendar SET event_type = '" . db_escape_string($event_type_title) . "' " .
"WHERE school_num = $school_num AND event_type = '" . db_escape_string($orig_event_type_title) . "'");
// Save new info
$table = new Table("$CurrentTable");
$query = $table->BuildUpdate();
db_query($query);
$form_message = getLanguageText('RECORD-UPDATED-MSG');
$naction = 'list';
header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
exit();
case "delete":
$record_num = intval($_GET['record_num']);
$event_type_title = db_getVal("SELECT event_type_title FROM event_types WHERE school_num = $school_num AND record_num = $record_num");
// Check if there are events with this category
$today = date("Y-m-d",time());
$query = "select count(*) num from event_calendar " .
"where school_num = $school_num " .
"and event_type = '$event_type_title' " .
"and end_date >= '$today'";
$count = db_getVal($query);
if ($count > 0) {
$error_message = getLanguageText('ERRORMSG-CATEGORY-WITH-EVENTS');
$naction = 'list';
header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
exit();
}
$query = "select * from $CurrentTable where record_num = $record_num";
$results = db_query($query);
if (db_num_rows($results) == 1) {
$row = db_fetch_array($results);
extract($row);
$dFields = explode(",",$DeleteField);
$dTitle = "$TitleText ";
for ($i = 0; $i < count($dFields); $i++) {
$dTitle .= $row[$dFields[$i]] . $dSeparator;
}
include "delete.form.php";
}
else {
$error_message = getLanguageText('ERRORMSG-NOT-FOUND');
$naction = 'list';
header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
exit();
}
break;
case "delete-confirmed":
$record_num = intval($_GET['record_num']);
// Delete the current record
$query = "delete from $CurrentTable where record_num = $record_num";
db_query($query);
$form_message = getLanguageText('RECORD-DELETED-MSG');
$naction = 'list';
header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
exit();
case "save-sort":
if (array_key_exists('row_sequence', $_POST) && strlen($_POST['row_sequence'])) $row_sequence = db_escape_string(trim($_POST['row_sequence'], ", "));
// Parse the hidden fields to update the sort sequence in the database
if (isset($row_sequence) && strlen($row_sequence) > 0) {
// Update the sequence to avoid duplicate keys
db_query("UPDATE $CurrentTable SET sequence = sequence + 1000 WHERE school_num = $school_num");
$item_sequence = explode(',',$row_sequence);
for ($i = 0; $i < count($item_sequence); $i++) {
$rnum = $item_sequence[$i];
$sequence = $i + 1;
$query = "update $CurrentTable set sequence = $sequence where record_num = $rnum";
db_query($query);
}
}
$form_message = getLanguageText('RECORDS-SORTED-MSG');
$naction = "list";
header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
exit();
default:
$naction = "list";
break;
}
//
// List all records if naction is "list"
//
if ($naction == "list") {
?>
<script src="include/TableDnD.js" type="text/javascript"></script>
<?php
$scriptName = str_replace("/m/data1/app.hotlunches.net/","",__FILE__);
include "help.docs.php";
// Get records to display
$columnHeaders = array(getLanguageText('TITLE'),
getLanguageText('TEXT-SCHOOL'),
getLanguageText('TEXT-MENU'),
getLanguageText('TEXT-ORDER-FORM')
);
$columnAlign = array('left','center','center','center');
$query = "select event_type_title,school_in_session,hotlunch_menu_on_date,display_on_order_form,text_color,bg_color,record_num " .
"from event_types " .
"where school_num = $school_num " .
"order by $OrderBy";
$results = db_query($query);
$data = array();
while ($row = db_fetch_array($results)) {
$text_color = $row['text_color'];
$bgcolor = $row['bg_color'];
$data[] = array(
"<span style='color: #$text_color; background-color: #$bgcolor'>" . $row['event_type_title'] . "</span>",
$row['school_in_session'],
$row['hotlunch_menu_on_date'],
$row['display_on_order_form'],
"record_num" => $row['record_num']
);
}
$message_width = $default_data_width;
include "form.messages.php";
$customTableID = "event-types-table";
$useRowIDS = true;
include "table.dnd.php";
listData($data,$columnHeaders,$action,array(),'Y',$columnAlign);
}
endTemplate();
?>