263 lines
8.3 KiB
PHP
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'> </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'> </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();
|
|
?>
|