more stuff!

This commit is contained in:
notfire 2024-12-09 13:33:24 -05:00
parent e2d7ebf6ae
commit b8e4117c1c
No known key found for this signature in database
GPG key ID: 3AFDACAAB4E56B16
11 changed files with 318 additions and 19 deletions

View file

65
admin/all.php Normal file
View file

@ -0,0 +1,65 @@
<?php
$query = "
SELECT * FROM data;
";
$qresp = pg_query($db, $query);
$rows = pg_fetch_all($qresp);
$totalUnresponded = 0;
$totalPriv = 0;
$totalRespondedPub = 0;
for ($i=count($rows); $i>=0; $i--) {
if ($rows[$i]["isrespondedto"] === "f" && $rows[$i]["ispublic"] === "t") {
$totalUnresponded++;
} else if ($rows[$i]["ispublic"] === "f") {
$totalPriv++;
} else {
$totalRespondedPub++;
}
}
echo("<h3 class=\"sect\">not responded to ({$totalUnresponded})</h3>");
for ($i=count($rows); $i>=0; $i--) {
if ($rows[$i]["isrespondedto"] === "f" && $rows[$i]["ispublic"] == "t") {
echo("<div class=\"question\">");
if ($rows[$i]["iscwed"] === "t") {
echo("<details><summary>cw: " . $rows[$i]["cw"] . "</summary><span class=\"cwfiller\"></span>");
}
echo(htmlspecialchars($rows[$i]["text"]));
echo("<div class=\"time\">" . $rows[$i]["time"] . "</div>");
echo("<a class=\"permalink\" href=\"index.php?page=edit&id=" . ($i + 1) . "\">edit</a> / <a class=\"permalink\" href=\"index.php?page=respond&id=" . ($i + 1) . "\">respond</a> / <a class=\"permalink\" href=\"index.php?page=delete&id=" . ($i + 1) . "\">delete</a></div>");
}
}
echo("<h3 class=\"sect\">private ({$totalPriv})</h3>");
for ($i=count($rows); $i>=0; $i--) {
if ($rows[$i]["ispublic"] === "f") {
echo("<div class=\"question\">");
if ($rows[$i]["iscwed"] === "t") {
echo("<details><summary>cw: " . $rows[$i]["cw"] . "</summary><span class=\"cwfiller\"></span>");
}
echo(htmlspecialchars($rows[$i]["text"]));
echo("<div class=\"time\">" . $rows[$i]["time"] . "</div>");
echo("<a class=\"permalink\" href=\"index.php?page=edit&id=" . ($i + 1) . "\">edit</a></div>");
}
}
echo("<h3 class=\"sect\">public ({$totalRespondedPub})</h3>");
for ($i=count($rows); $i>=0; $i--) {
if ($rows[$i]["ispublic"] === "t" && $rows[$i]["isrespondedto"] === "t") {
echo("<div class=\"question\">");
if ($rows[$i]["iscwed"] === "t") {
echo("<details><summary>cw: " . $rows[$i]["cw"] . "</summary><span class=\"cwfiller\"></span>");
}
echo(htmlspecialchars($rows[$i]["text"]));
echo("<div class=\"time\">" . $rows[$i]["time"] . "</div>");
echo("<div class=\"response\">" . htmlspecialchars($rows[$i]["responsetext"]) . "");
echo("<div class=\"time\">" . $rows[$i]["responsetime"] . "</div></div>");
echo("<a class=\"permalink\" href=\"index.php?page=edit&id=" . ($i + 1) . "\">edit</a></div>");
}
}
?>

20
admin/index.php Normal file
View file

@ -0,0 +1,20 @@
<?php
include '../config.php';
echo("<link rel=\"stylesheet\" href=\"../css/admin.css\">");
if ($_GET["pw"] === $adminPassword) {
if ($_GET["page"] === "all") {
include 'all.php';
} elseif ($_GET["page" === "edit"]) {
include 'edit.php';
} else {
include 'all.php';
}
} else {
echo("<h2 class=\"sect\">enter password</h2>");
echo("<form class=\"frm\" action=\"index.php\"><input id=\"passinput\" name=\"pw\" required=\"\"><br><button class=\"submitbutton\" type=\"submit\">login</button></form>");
}
?>

View file

@ -3,12 +3,26 @@
// timezone (valid ones: https://www.php.net/manual/en/timezones.php)
date_default_timezone_set('America/New_York');
// admin
$adminPassword = "setAPasswordHere!123";
// page title
$pageTitle = "the cool qna";
$pageDomainEnabled = True;
$pageDomain = "example.com";
$pageDomainOther = $pageDomain; // you can comment out and change this to a subdomain you want to "go back to". eg your site is me.example.org but you want it to say example.org
//$pageDomainOther = "me.example.com";
$pageRoot = "/"; // path to go to
// database setup
$dbHost = "localhost";
$dbName = "postgres";
$dbUsername = "postgres";
$dbPassword = "postgres";
// !!! DON'T CHANGE ANYTHING AFTER THIS UNLESS YOU KNOW WHAT YOU'RE DOING !!!
$dbInfo = "host={$dbHost} dbname={$dbName} user={$dbUsername} password={$dbPassword}";
$db = pg_connect($dbInfo);

83
css/admin.css Normal file
View file

@ -0,0 +1,83 @@
body {
background-image: url(https://notfire.cc/design/images/groundback.gif);
background-color: black;
color: white;
font-family: Arial, Helvetica, sans-serif;
}
.permalink {
color: #ff0000;
font-size: .9em;
}
.goback {
color: #ff0000;
}
.title {
margin-bottom: .1em;
}
.question {
margin-top: .7em;
background-color: #2c2c2c;
border-radius: 5px;
max-width: fit-content;
padding: .5em;
}
.response {
background-color: #505050;
border-radius: 5px;
margin-top: .3em;
padding: .4em;
margin-bottom: .25em;
}
.time {
font-size: .8em;
}
.cwfiller {
height: 1.3em;
display: inline-block;
}
.sect {
margin-top: .2em;
margin-bottom: .2em;
}
.sentconf {
color: lime;
margin-top: .3em;
margin-bottom: .3em;
}
.sendsum {
font-size: 1.17em;
font-weight: bold;
}
.sendmsg {
margin-top: 1em;
border-radius: 5px;
background-color: #2c2c2c;
max-width: fit-content;
padding: .7em;
}
#passinput, .submitbutton {
background-color: black;
color: white;
margin-bottom: .3em;
}
.submitbutton {
font-size: 1.17em;
margin-top: .3em;
}
.frm {
margin-bottom: 0px;
}

View file

@ -1,4 +1,5 @@
body {
background-image: url(https://notfire.cc/design/images/groundback.gif);
background-color: black;
color: white;
font-family: Arial, Helvetica, sans-serif;

83
css/main.css Normal file
View file

@ -0,0 +1,83 @@
body {
background-image: url(https://notfire.cc/design/images/groundback.gif);
background-color: black;
color: white;
font-family: Arial, Helvetica, sans-serif;
}
.permalink {
color: #ff0000;
font-size: .9em;
}
.goback {
color: #ff0000;
}
.title {
margin-bottom: .1em;
}
.question {
margin-top: .7em;
background-color: #2c2c2c;
border-radius: 5px;
max-width: fit-content;
padding: .5em;
}
.response {
background-color: #505050;
border-radius: 5px;
margin-top: .3em;
padding: .4em;
margin-bottom: .25em;
}
.time {
font-size: .8em;
}
.cwfiller {
height: 1.3em;
display: inline-block;
}
.sect {
margin-bottom: .2em;
margin-top: .2em;
}
.sentconf {
color: lime;
margin-top: .3em;
margin-bottom: .3em;
}
.sendsum {
font-size: 1.17em;
font-weight: bold;
}
.sendmsg {
margin-top: 1em;
border-radius: 5px;
background-color: #2c2c2c;
max-width: fit-content;
padding: .7em;
}
#questioninput, #cwinput, .submitbutton {
background-color: black;
color: white;
margin-bottom: .3em;
}
.submitbutton {
font-size: 1.17em;
margin-top: .3em;
}
.frm {
margin-bottom: 0px;
}

View file

@ -16,19 +16,21 @@ WHERE id = {$id};
$qresp = pg_query($db, $query);
$arr = pg_fetch_array($qresp);
echo("<link rel=\"stylesheet\" href=\"indiv.css\">");
echo("<link rel=\"stylesheet\" href=\"css/indiv.css\">");
if (pg_num_rows($qresp) === 0 || $arr["ispublic"] === "f" || $arr["isrespondedto"] === "f") {
echo("<h1 class=\"title\">no such question exists<h1>");
echo("<h2 class=\"title\">{$pageTitle} no such question exists</h2>");
echo("<a class=\"goback\" href=\"index.php\">(go back?)</a>");
http_response_code(404);
} else {
echo("<h1 class=\"title\">individual question</h1>");
echo("<h2 class=\"title\">{$pageTitle} question number " . $arr["id"] . "</h2>");
echo("<a class=\"goback\" href=\"index.php\">(go back?)</a>");
echo("<div class=\"question\">");
if ($arr["iscwed"] === "t") {
echo("<details><summary>cw: " . $arr["cw"] . "</summary><span class=\"cwfiller\"></span>");
}
echo($arr["text"]);
echo(htmlspecialchars($arr["text"]));
echo("<div class=\"time\">" . $arr["time"] . "</div>");
echo("<div class=\"response\">" . $arr["responsetext"] . "");
echo("<div class=\"time\">" . $arr["responsetime"] . "</div></div></div>");

View file

@ -2,21 +2,46 @@
include 'config.php';
$_SERVER["id"] = 1;
$id = $_SERVER["id"];
if ($id === null) {
exit();
}
$query = "
SELECT * FROM data
WHERE id = {$id};
SELECT * FROM data;
";
$qresp = pg_query($db, $query);
echo (pg_fetch_array($qresp)[1]);
$rows = pg_fetch_all($qresp);
echo("<link rel=\"stylesheet\" href=\"css/main.css\">");
echo("<h2 class=\"title\">" . $pageTitle . "</h2>");
if ($pageDomainEnabled) {
echo("<a class=\"goback\" href=\"https://{$pageDomainOther}{$pageRoot}\">(go back to " . $pageDomain . "?)</a>");
}
if ($_GET["sent"] == 1) {
echo("<span class=\"sentconf\"><br>message sent!</span>");
}
echo("<div class=\"sendmsg\"><details open=\"\"><summary class=\"sendsum\">send a message!</summary>");
echo("<form class=\"frm\" action=\"send.php\"><label for=\"questioninput\">enter your message: </label><input id=\"questioninput\" name=\"text\" required=\"\"><br><label for=\"cwinput\">cw if applicable: </label><input id=\"cwinput\" name=\"cw\"><br><input type=\"checkbox\" id=\"pubbox\" name=\"public\" value=\"1\" checked> <label for=\"pubbox\">if this is checked, your message will be available publicly</label><br><button class=\"submitbutton\" type=\"submit\">send!</button></form></details></div>");
echo("<hr>");
echo("<h3 class=\"sect\">all past messages</h3>");
for ($i=count($rows); $i>=0; $i--) {
if ($rows[$i]["ispublic"] === "t" && $rows[$i]["isrespondedto"] === "t") {
echo("<div class=\"question\">");
if ($rows[$i]["iscwed"] === "t") {
echo("<details><summary>cw: " . $rows[$i]["cw"] . "</summary><span class=\"cwfiller\"></span>");
}
echo(htmlspecialchars($rows[$i]["text"]));
echo("<div class=\"time\">" . $rows[$i]["time"] . "</div>");
echo("<div class=\"response\">" . htmlspecialchars($rows[$i]["responsetext"]) . "");
echo("<div class=\"time\">" . $rows[$i]["responsetime"] . "</div></div>");
echo("<a class=\"permalink\" href=\"fetch.php?id=" . ($i + 1) . "\">permalink</a></div>");
}
}
?>

View file

@ -9,7 +9,7 @@ UPDATE data
SET isrespondedto = true,
responsetext = 'teeheee HHIIIIII!!!!!',
responsetime = timestamptz'{$timed}'
WHERE id = 1";
";
pg_query($db, $query);

View file

@ -2,16 +2,22 @@
include 'config.php';
if ($_GET["text"] === null || $_GET["public"] === null) {
if ($_GET["text"] === null) {
exit();
}
if ($_GET["cw"] === null) {
if ($_GET["cw"] === null || $_GET["cw"] === "") {
$iscw = False;
} else {
$iscw = True;
}
if ($_GET["public"] == 1) {
$isPublic = True;
} else {
$isPublic = False;
}
$curTime = date("Y-m-d h:i:sP");
$dataArray = array(
@ -19,7 +25,7 @@ $dataArray = array(
"cw" => $_GET["cw"],
"iscwed" => $iscw,
"time" => $curTime,
"ispublic" => $_GET["public"],
"ispublic" => $isPublic,
"isrespondedto" => False
);