mirror of
https://git.code.sf.net/p/quake/website
synced 2025-03-03 15:51:08 +00:00
PHP 7 doesn't like the old short tags we were using (it's possible to re-enable them, but won't be for version 8, so we might as well switch now), and the old MySQL APIs are now gone entirely, replaced with something different. This should make everything work at least as well as it used to. Also, one file used to be checked in with CRLF line endings. ??
112 lines
3 KiB
PHP
112 lines
3 KiB
PHP
<?php // Preamble
|
|
$pageName = "Delete Plan";
|
|
$need = 'auth';
|
|
require 'parts/preamble.php'; // Load most of document
|
|
|
|
if (!$userInfo['u_admin']) // no access from non-admin yet
|
|
bailout ("<P>You don't have access to this page (yet?). Bug an admin to delete a news post.</P>");
|
|
|
|
need ('boxes news sql');
|
|
|
|
function convertToHTML ($string)
|
|
{
|
|
$table = array_flip (get_html_translation_table (HTML_ENTITIES));
|
|
|
|
return strtr ($string, $table);
|
|
}
|
|
|
|
function convertFromHTML ($string)
|
|
{
|
|
$table = get_html_translation_table (HTML_ENTITIES);
|
|
|
|
return strtr ($string, $table);
|
|
}
|
|
|
|
function formatPlanArray ($a)
|
|
{
|
|
need ("date");
|
|
|
|
return formatNews (dateFromSQLDateTime ($a['p_date']), $a['p_user'], stripSlashes($a['p_plan']));
|
|
}
|
|
|
|
function planEntrySummary ($it)
|
|
{
|
|
need ("date");
|
|
|
|
return
|
|
'<TR>'
|
|
.' <TD><A href="' . thisURL . '?planID=' . $it['p_id'] . '">' . $it['p_id'] . '</A></TD>'
|
|
.' <TD>' . dateFromSQLDateTime ($it['p_date']) . '</TD>'
|
|
.' <TD>' . $it['p_user'] . '</TD>'
|
|
.' <TD>' . substr (convertFromHTML (stripSlashes ($it['p_plan'])), 0, 50) . '…</TD>'
|
|
.'</TR>';
|
|
}
|
|
|
|
function planEntryConfirmation ($a)
|
|
{
|
|
need ("date");
|
|
|
|
$id = $a['p_id'];
|
|
|
|
newsBoxOpen ();
|
|
newsBoxTitle ("Confirmation: Delete #$id?", thisURL . "?planID=$id&confirm=yes");
|
|
echo formatPlanArray ($a);
|
|
newsBoxClose ();
|
|
}
|
|
|
|
$planID = addSlashes ($_REQUEST['planID']);
|
|
$confirm = $_REQUEST['confirm'];
|
|
|
|
if ($planID) {
|
|
if ($confirm) {
|
|
$query = "DELETE FROM plans WHERE p_id='$planID'";
|
|
|
|
$rows = sqlWriteQuery ($query);
|
|
if ($rows === null) {
|
|
echo "<P>Bad mojo, man. I couldn't talk to the SQL server. It said '$sqlError'.</P>";
|
|
} elseif ($rows === false) {
|
|
echo "<P>Something bad happened, and MySQL said '$sqlError'. Bug an admin.</P>";
|
|
} elseif (!$rows) {
|
|
echo "<P>Plan entry $planID didn't exist.";
|
|
} else {
|
|
echo "<P>Plan entry $planID has been deleted.";
|
|
}
|
|
} else {
|
|
$query = 'SELECT p_id, p_date, p_user, p_plan FROM plans'
|
|
." WHERE p_id='$planID'";
|
|
$entries = sqlReadQuery ($query);
|
|
if ($entries === null) {
|
|
echo "<P>Bad mojo, man. I couldn't talk to the SQL server. It said '$sqlError'.</P>";
|
|
} elseif ($entries === false) {
|
|
echo "<P>Something bad happened, and MySQL said '$sqlError'. Bug an admin.</P>";
|
|
} elseif (count ($entries) == 1) {
|
|
planEntryConfirmation ($entries[0]);
|
|
} else {
|
|
echo "<P>This shouldn't even be possible, but there's more than one plan entry with ID '$planID'!</P>";
|
|
}
|
|
}
|
|
} else {
|
|
newsBoxOpen ("All Plan Postings");
|
|
|
|
$query = 'SELECT p_id, p_date, p_user, p_plan FROM plans'
|
|
.' ORDER BY p_date DESC';
|
|
|
|
$entries = sqlReadQuery ($query);
|
|
if ($entries && is_array ($entries) && count ($entries)) {
|
|
tableHeader ("100%");
|
|
?><TR>
|
|
<TH align="left">ID</TH>
|
|
<TH align="left">Date</TH>
|
|
<TH align="left">User</TH>
|
|
<TH align="left">Text</TH>
|
|
</TR><?
|
|
for ($i = 0; $i < count ($entries); $i++) {
|
|
echo planEntrySummary ($entries[$i]);
|
|
}
|
|
tableFooter ();
|
|
} else {
|
|
echo "<P>No plans available.";
|
|
}
|
|
newsBoxClose ();
|
|
}
|
|
?>
|