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

263 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
//
$CurrentTable = "people_relationships";
$DeleteField = "relationship";
$dSeparator = " ";
$FormFile = "people_relationships.form.php";
$TitleText = getLanguageText('TEXT-RELATIONSHIPS');
$OrderBy = "sequence,relationship";
$Sequence = 'Y';
// Start the template and output buffering
startTemplate();
$templatePageTitle = "$TitleText " . getLanguageText('TEXT-ADMINISTRATION');
// Ensure that only valid user types have access to this module
$AllowedUserTypes = array('SuperUser','System Administrator','Application Administrator');
if (checkPermission($AllowedUserTypes) != 1) {
$error_message = getLanguageText('ERRORMSG-ACCESS-DENIED');
$action = '';
$naction = '';
header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
exit();
}
$naction = "";
if (array_key_exists('naction',$_GET)) $naction = db_escape_string($_GET['naction']);
if (array_key_exists('naction',$_POST)) $naction = db_escape_string($_POST['naction']);
$school_num = $school_record['record_num'];
switch (strtolower($naction)) {
case "add":
$next_naction = "insert";
$active = 'Y';
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":
$next_naction = "update";
// Get current record
$record_num = intval(db_escape_string($_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);
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);
$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-confirmed":
$record_num = intval(db_escape_string($_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 "upload":
// Get and process the data file
$temp_name = $_FILES['filename']['tmp_name'];
$file_name = str_replace(' ','_',$_FILES['filename']['name']);
if (strlen($file_name) == 0) {
$error_message = getLanguageText('MSG-NO-SOURCE-DATA-FILE');
$naction = "list";
header("Location: /?action=$action&naction=$naction&error_message=".urlencode($error_message));
exit();
}
// Validate the file type
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$ftype = finfo_file($finfo,$temp_name);
if ($ftype != "text/plain") {
$error_message = getLanguageText('ERRORMSG-INVALID-FILE-FORMAT');
$naction = "list";
header("Location: /?action=$action&naction=$naction&error_message=".urlencode($error_message));
exit();
}
// Move file to temp folder
if (!move_uploaded_file($temp_name,"temp/$school_num.students.csv")) {
$error_message = getLanguageText('MSG-ZERO-UPLOADED');
$new_naction = "list";
break;
}
// Open and process the data file
$fp = fopen("temp/$school_num.students.csv","r");
$records = 0;
$selected_col = $_POST['selected_col'] - 1;
// delete existing entries
db_query("DELETE FROM people_relationships WHERE school_num = $school_num");
$sequence = 1;
while (($data = fgetcsv($fp,10000,",")) !== FALSE) {
$relationship = db_escape_string($data[$selected_col]);
$query = "SELECT * FROM people_relationships WHERE school_num = $school_num AND relationship = '$relationship'";
$results = db_query($query);
if (db_num_rows($results) == 0) {
$query = "INSERT INTO people_relationships (school_num, relationship, sequence) VALUES ($school_num, '$relationship', $sequence)";
db_query($query);
$sequence++;
}
}
$form_message = getLanguageText('TEXT-DATA-FILE-UPLOADED');
header("Location: /?action=$action&naction=list&form_message=" . urlencode($form_message) . "&error_message=");
exit();
default:
$naction = "list";
break;
}
//
// List all records if naction is "list"
//
if ($naction == "list") {
$scriptName = str_replace("/m/data1/app.hotlunches.net/","",__FILE__);
include "help.docs.php";
// Get records to display
$columnHeaders = array(getLanguageText('TEXT-RELATIONSHIP'));
$columnAlign = array('left');
$query = "SELECT relationship,record_num FROM people_relationships " .
"WHERE school_num = $school_num " .
"order by sequence,relationship";
$results = db_query($query);
$message_width = $default_data_width;
include "form.messages.php";
echo("<center>\n");
echo("<p><b>$TitleText</b></p>\n");
$TableWidth = 400;
$customTableID = "allergens-table";
$useRowIDS = true;
include "table.dnd.php";
listData($results,$columnHeaders,$action,array(),'Y',$columnAlign);
echo("</center>\n");
}
$PageTitle = getLanguageText('TEXT-RELATIONSHIPS');
$ButtonText = getLanguageText('TEXT-UPLOAD-FILE');
?>
<br>
<form method='post' id='upload-form' enctype='multipart/form-data' action='/'>
<?php
$message_width = $default_form_width;
include "form.messages.php";
?>
<table width='<?php echo($default_form_width) ?>' class='content-table'>
<tr>
<td colspan='2' align='center' class='heading'><?php echo($PageTitle) ?></td>
</tr>
<tr>
<td colspan='2'>&nbsp;</td>
</tr>
<tr>
<td width='40%' align='right' valign='top'>File: </td>
<td align='left' valign='top'><input type='file' name='filename' id='filename' size='40'></td>
</tr>
<tr>
<td align='right' valign='top'><?php displayLanguageText('TEXT-RELATIONSHIP') ?>: </td>
<td align='left' valign='top'>
<select name='selected_col' id='selected_col'>
<?php
for ($j = 1; $j <= 25; $j++) {
$l = $j - 1;
$letter = $Letters[$l];
echo(" <option value='$j'>Column $j ($letter)</option>\n");
}
?>
</select>
</td>
</tr>
<tr>
<td colspan='2'>&nbsp;</td>
</tr>
<tr>
<td colspan='2' align='center'>
<br>
<input type='submit' class='btn btn--primary' value='<?php echo($ButtonText) ?>'>
<input type='hidden' name='action' value='people-relationships'>
<input type='hidden' name='naction' value='upload'>
<br>
<br>
</td>
</tr>
</table>
</form>
<?php
endTemplate();
?>