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

237 lines
6.9 KiB
PHP

<?php
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
header("Location: /");
exit();
}
// Start the template and output buffering
startTemplate();
$templatePageTitle = getLanguageText('TEXT-FORUM') . " " . getLanguageText('TEXT-ADMINISTRATION');
$headerArgs = "";
// Ensure that only valid user types have access to this module
$AllowedUserTypes = array('SuperUser','System Administrator','Communications Administrator','Administration Team','Staff');
if (checkPermission($AllowedUserTypes) != 1) {
$error_message = getLanguageText('ERRORMSG-ACCESS-DENIED');
$action = '';
$naction = '';
header("Location: /?action=$action&naction=$naction$headerArgs&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
exit();
}
//
// Process all actions to list and edit records
//
$CurrentTable = "forums";
$DeleteField = "forum_title,status";
$dSeparator = "<br>";
$FormFile = "forums.form.php";
$TitleText = getLanguageText('TEXT-FORUM');
$OrderBy = "forum_name";
$Sequence = 'Y';
if (array_key_exists('naction',$_GET)) $naction = $_GET['naction'];
if (array_key_exists('naction',$_POST)) $naction = $_POST['naction'];
switch (strtolower($naction)) {
case "add":
$PageTitle = "$TitleText - ".getLanguageText('TEXT-ADMINISTRATION');
$ButtonText = getLanguageText('TEXT-ADD-RECORD');
$next_naction = "insert";
$active = 'Y';
include $FormFile;
break;
case "insert":
extract($_POST);
// Verify form data
if (strlen($forum_title) == 0) {
$error_message = getLanguageText('TEXT-TITLE-IS-REQUIRED');
$PageTitle = "$TitleText - ".getLanguageText('TEXT-ADMINISTRATION');
$ButtonText = getLanguageText('TEXT-ADD-RECORD');
$next_naction = "insert";
$active = 'Y';
include $FormFile;
break;
}
// Get new sequence number
if ($Sequence == 'Y') {
$query = "select max(sequence) sequence from $CurrentTable";
$results = db_query($query);
$row = db_fetch_array($results);
$sequence = intval($row['sequence']) + 1;
}
// Setup default values
$created = date("Y-m-d",time());
$created_by = $_SESSION['UserInfo']['record_num'];
$topics = 0;
$posts = 0;
// Insert primary record
$table = new Table("$CurrentTable");
$query = $table->BuildInsert();
db_query($query);
$form_message = "$TitleText Has Been Inserted";
$naction = "list";
break;
case "edit":
$PageTitle = "$TitleText - ".getLanguageText('TEXT-ADMINISTRATION');
$ButtonText = getLanguageText('TEXT-UPDATE-ENTRY');
$next_naction = "update";
// 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);
$schedule_num = $record_num;
include $FormFile;
}
else {
$error_message = getLanguageText('RECORD-NOT-FOUND-MSG');
}
break;
case "update":
extract($_POST);
$table = new Table("$CurrentTable");
$query = $table->BuildUpdate();
db_query($query);
$form_message = getLanguageText('RECORD-UPDATED-MSG');
$naction = "list";
break;
case "delete":
$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);
$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('RECORD-NOT-FOUND-MSG');
}
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";
break;
case "up":
case "down":
// Get current record
$record_num = intval($_GET['record_num']);
$query = "select * from $CurrentTable where record_num = $record_num";
$results = db_query($query);
$row = db_fetch_array($results);
$sequence = $row['sequence'];
if ($naction == 'up') $nsequence = $sequence - 1;
if ($naction == 'down') $nsequence = $sequence + 1;
// Update other record
$query = "update $CurrentTable set sequence = $sequence where sequence = $nsequence";
db_query($query);
// Update current record
$query = "update $CurrentTable set sequence = $nsequence where record_num = $record_num";
db_query($query);
$naction = "list";
break;
default:
$naction = "list";
break;
}
//
// List all records if naction is "list"
//
if ($naction == "list" || $naction == 'list-all') {
if ($Sequence == 'Y') {
// Resequence the records
$query = "select * from $CurrentTable where sequence > 0 order by sequence";
$results = db_query($query);
if (db_num_rows($results)) {
$count = 1;
while ($row = db_fetch_array($results)) {
$rnum = $row['record_num'];
$query = "update $CurrentTable set sequence = $count where record_num = $rnum";
db_query($query);
$count++;
}
}
}
$scriptName = str_replace("/m/data1/app.hotlunches.net/","",__FILE__);
include "help.docs.php";
// Get records to display
$columnHeaders = array(getLanguageText('TEXT-TITLE'),
getLanguageText('TEXT-CREATED'),
getLanguageText('TEXT-STATUS'),
getLanguageText('TEXT-TOPICS'),
getLanguageText('TEXT-ENTRIES')
);
$columnAlign = array("left","left","left","center","center");
$query = "select forum_title,created,status,topics,posts,record_num " .
"from forums " .
"where school_num = $school_num " .
"order by forum_title";
$results = db_query($query);
$message_width = $default_data_width;
include "form.messages.php";
echo("<center>\n");
echo("<p><b>$TitleText</b></p>\n");
echo("</center>\n");
listData($results,$columnHeaders,$action,array(),'Y',$columnAlign);
}
endTemplate();
?>