90 lines
2.9 KiB
PHP
Executable file
90 lines
2.9 KiB
PHP
Executable file
<?php
|
|
require("../libs/page.php");
|
|
require("../libs/form.php");
|
|
require("../libs/markdown.php");
|
|
|
|
$ref = 1732684297;
|
|
|
|
function post_handler() {
|
|
global $ref;
|
|
global $username;
|
|
global $db;
|
|
if (!$username) return;
|
|
if (!array_key_exists('post',$_POST)) return;
|
|
|
|
$postie = $_POST['post'];
|
|
|
|
if (strlen($postie) < 1 || strlen($postie) > 1024) {
|
|
return 'Post is too long or short.';
|
|
}
|
|
|
|
$stmt = $db->prepare("INSERT INTO main.comment (username, targetType, targetId, date, content, id) VALUES (?,?,?,?,?,?)");
|
|
$stmt->execute([$username,"root","root",microtime(true) - $ref,$postie,bin2hex(random_bytes(16))]);
|
|
|
|
header("Location: " . $_SERVER["REQUEST_URI"]);
|
|
die();
|
|
}
|
|
|
|
page_header();
|
|
|
|
$form_message = post_handler();
|
|
|
|
$page = array_key_exists('page',$_GET) ? ($_GET['page']) : 0;
|
|
?>
|
|
|
|
<div class="banner"><img class="banner-background" src="/img/newlogo.svg">
|
|
<div class="banner-content">
|
|
<h1>BiglyChat</h1>
|
|
<pre>BiglyChat is a niche community for weird Dervland experiments and games.</pre>
|
|
<h2>Community</h2>
|
|
|
|
<a class="form-button" href="/register.php">Join the Community</a>
|
|
<a class="form-button" href="/tou.php">Terms of Use</a>
|
|
<a class="form-button" href="https://dervland.net/">More Projects</a>
|
|
<a class="form-button" href="https://git.dervland.net/biglyderv/new-bigly-chat">Developer Portal</a>
|
|
</div>
|
|
</div>
|
|
<?php
|
|
if ($username) {
|
|
form("Broadcast your thoughts...", $form_message, array(
|
|
array('key' => 'Your message', 'type' => 'textarea', 'name' => 'post', 'default' => '')
|
|
));
|
|
}
|
|
?>
|
|
|
|
<div>
|
|
<?php if ($page > 0) { ?>
|
|
<a class="form-button" href="?page=<?php echo $page - 1 ?>">Previous</a>
|
|
<?php } ?>
|
|
<a class="form-button" href="?page=<?php echo $page + 1 ?>">Next</a>
|
|
</div>
|
|
|
|
<?php
|
|
$stmt = $db->prepare("SELECT * FROM comment ORDER BY date DESC LIMIT ? OFFSET ?");
|
|
$stmt->execute([
|
|
10,
|
|
$page * 10
|
|
]);
|
|
|
|
$posts = $stmt->fetchAll(PDO::FETCH_DEFAULT);
|
|
|
|
foreach ($posts as $post) { ?>
|
|
<div class='comment'>
|
|
<div class='avatar'>
|
|
<img src='/pfp/<?php echo $post['username'] ?>.png' class='avatar-img'>
|
|
<div>
|
|
<div><b>
|
|
<a class='link' href='/user.php?id=<?php echo $post['username'] ?>'>
|
|
<?php echo $post['username'] ?>
|
|
</a>
|
|
</b></div>
|
|
<div><b>
|
|
<?php echo date(DATE_ATOM,$post['date'] + $ref) ?>
|
|
</b></div>
|
|
</div>
|
|
</div>
|
|
<pre><?php echo markdown(htmlspecialchars($post['content'])) ?></pre>
|
|
</div>
|
|
<?php }
|
|
page_footer();
|
|
?>
|