ImoutoIB/main.php

275 lines
11 KiB
PHP
Raw Normal View History

2021-08-29 19:39:07 +02:00
<?php
require dirname(__FILE__) . '/require.php';
//FRONTPAGE
2021-08-29 19:39:07 +02:00
if ((!isset($_GET["board"])) || ($_GET["board"] == '')) {
$title = $site_name;
$total_posts = 0;
foreach ($config['boards'] as $boards) {
//prevent error on new board with 0 posts. you need to visit frontpage at least once otherwise board throws an error, but its not fatal or anything....
if (!file_exists(__dir__ . '/' . $database_folder . '/boards/' . $boards['url'] . '/counter.php')) {
@mkdir(__dir__ . '/' . $database_folder . '/boards/' . $boards['url']);
file_put_contents(__dir__ . '/' . $database_folder . '/boards/' . $boards['url'] . '/counter.php', 1);
}
//
$total_posts += file_get_contents(__dir__ . '/' . $database_folder . '/boards/' . $boards['url'] . '/counter.php');
$total_posts -= 1; //idk how i fucked up the counter.php in post.php this badly.
}
if (isset($_GET["theme"])) {
echo '<html data-stylesheet="'. htmlspecialchars($_GET["theme"]) .'">';
} else {
echo '<html data-stylesheet="'. $current_theme .'">';
}
echo '<head>';
include $path . '/templates/header.html';
echo '</head>';
echo '<body class="frontpage">';
include $path . '/templates/boardlist.html';
2021-08-30 05:16:23 +02:00
include $path . '/templates/pages/frontpage.html';
2021-08-29 19:39:07 +02:00
include $path . '/templates/footer.html';
echo '</body>';
echo '</html>';
2021-08-30 05:16:23 +02:00
exit();
2021-08-29 19:39:07 +02:00
}
//ADD PAGES HERE
//
2021-08-29 19:39:07 +02:00
// IF BOARD EXISTS
if (in_Array(htmlspecialchars($_GET["board"]), $config['boardlist'])) {
$current_board = htmlspecialchars($_GET["board"]);
$board_description = $config['boards'][$current_board]['description'];
$board_title = $config['boards'][$current_board]['title'];
//IF INDEX
2021-08-29 19:39:07 +02:00
if (htmlspecialchars($_GET["thread"]) === "") {
$current_page = "index";
$title = '/' . $current_board . '/ - ' . $config['boards'][$current_board]['title'] . ' - ' . $site_name;
if (isset($_GET["theme"])) {
echo '<html data-stylesheet="'. htmlspecialchars($_GET["theme"]) .'">';
} else {
echo '<html data-stylesheet="'. $current_theme .'">';
}
echo '<head>';
include $path . '/templates/header.html';
echo '</head>';
2021-08-30 05:16:23 +02:00
echo '<body class="' . $current_page . '">';
2021-08-29 19:39:07 +02:00
include $path . '/templates/boardlist.html';
include $path . '/templates/page-info.html';
if ($config['boards'][$current_board]['locked'] != 1) {
2021-08-29 19:39:07 +02:00
include $path . '/templates/post-form.html';
} else {
echo '<div class="blotter">This board is locked by the board owner.</div><hr>';
}
echo '[<a href="#bottom">Bottom</a>]&nbsp;';
echo '<hr>';
2021-08-29 19:39:07 +02:00
//if zero threads aka new board
if (!file_exists(__dir__ . '/' . $database_folder . '/boards/' . $current_board)) {
echo 'This board has no threads yet.';
include $path . '/templates/footer.html';
exit();
}
2021-08-29 19:39:07 +02:00
if (file_get_contents(__dir__ . '/' . $database_folder . '/boards/' . $current_board . '/counter.php') === "1") {
echo 'This board has no threads yet.';
include $path . '/templates/footer.html';
exit();
}
include __dir__ . '/' . $database_folder . '/boards/' . $current_board . '/threads.php';
//show max threads only
//if page = 1
$pages = '';
if (count($threads) > $threads_page) {
$total_threads = count($threads);
$final_page_threads = $threads_page - ($total_threads % $threads_page); //how many to offset the arrayslice by for last page
//create pages
$pages = ceil($total_threads / $threads_page) - 1;
if ($_GET['page'] == '') {
$number_page = 1;
} elseif (!is_numeric($_GET['page'])) {
error('Page number must be a number.');
} elseif ($_GET['page'] > $pages || $_GET['page'] < 1) {
error('This number is higher or lower than page count...');
} else {
$number_page = $_GET['page'];
}
$offset_ = ($number_page - 1 * $threads_page);
$start_ = $offset_ + 1;
$end_ = min(($offset_ + $threads_page), $total_threads);
// The "back" link
$prevlink = ($number_page > 1) ? '<a href="' . $prefix_folder . '/?board=' . $current_board . '&page=' . ($number_page - 1) . '" title="Previous page">Previous</a>' : '<span class="disabled">Previous</span>';
$all_pages = '';
for ($i = 0; $i < $pages; $i++) {
$currentp = $i + 1;
if ($currentp == $number_page) {
$all_pages .= '[<a href="' . $prefix_folder . '/?board=' . $current_board . '&page=' . $currentp. '"><b>' . $currentp . '</a></b>] ';
} else {
$all_pages .= '[<a href="' . $prefix_folder . '/?board=' . $current_board . '&page=' . $currentp. '">' . $currentp . '</a>] ';
}
}
$nextlink = ($number_page < $pages) ? '<a href="' . $prefix_folder . '/?board=' . $current_board . '&page=' . ($number_page + 1) . '" title="Next page">Next</a>' : '<span class="disabled">Next</span>';
//page 1
if ($number_page == 1) {
$threads = array_slice($threads, 0, $threads_page);
} elseif ($number_page == $pages) { //if final page
$threads = array_slice($threads, - $threads_page, $threads_page);
$threads = array_slice($threads, $final_page_threads);
} else {
$threads = array_slice($threads, ($threads_page * $number_page) - $threads_page);
$threads = array_slice($threads, 0, $threads_page);
}
//$hidden_threads = $total_threads - $threads_page;
//echo 'There are ' . $hidden_threads . ' undisplayed threads. I\'ll make a pagination for them all...' ;
2021-08-29 19:39:07 +02:00
}
//SHOW THEM
foreach (array_keys($threads) as $key => $value) {
include __dir__ . '/' . $database_folder . '/boards/' . $current_board . '/' . $threads[$key]['id'] . '/OP.php';
include __dir__ . '/' . $database_folder . '/boards/' . $current_board . '/' . $threads[$key]['id'] . '/info.php';
include __dir__ . '/' . $database_folder . '/boards/' . $current_board . '/' . $threads[$key]['id'] . '/recents.php';
2021-08-29 19:39:07 +02:00
$post_number_op = $threads[$key]['id'];
echo '<div data-thread="' . $post_number_op . '" class="container">';
2021-08-29 19:39:07 +02:00
//SHOW THREADS
include $path . '/templates/thread.html';
//SHOW SHOW REPLIES
foreach (array_keys($recents) as $rkey => $value) {
include __dir__ . '/' . $database_folder . '/boards/' . $current_board . '/' . $post_number_op . '/' . $recents[$value] . '.php';
$post_number_reply = $recents[$value];
2021-08-29 19:39:07 +02:00
include $path . '/templates/reply.html';
}
echo '</div>';
2021-08-29 19:39:07 +02:00
if ($key != array_key_last($threads)) {
echo '<hr data-thread="' . $post_number_op . '">';
2021-08-29 19:39:07 +02:00
}
}
echo '<hr>';
echo '[<a href="#top">Top</a>]&nbsp;';
2021-08-29 19:39:07 +02:00
include $path . '/templates/footer.html';
echo '</body>';
echo '</html>';
exit();
2021-08-29 19:39:07 +02:00
}
// IF THREAD
2021-08-29 19:39:07 +02:00
if (htmlspecialchars($_GET["thread"]) != '') {
if (isset($_GET["theme"])) {
echo '<html data-stylesheet="'. htmlspecialchars($_GET["theme"]) .'">';
} else {
echo '<html data-stylesheet="'. $current_theme .'">';
}
//IF DOESNT EXIST
if (!file_exists(__dir__ . '/' . $database_folder . '/boards/' . $current_board . '/' . htmlspecialchars($_GET["thread"]))) {
$title = "Oh no!! A 404...";
echo '<head>';
include $path . '/templates/header.html';
echo '</head>';
echo '<body class="' . $current_page . '">';
include $path . '/templates/boardlist.html';
include $path . '/templates/page-info.html';
echo '[<a href="' . $prefix_folder . '/' . $main_file . '?board=' . $current_board . '">Return</a>]&nbsp;';
echo '<hr>';
echo '<div class="message">This thread doesn\'t exist.. Did the glowies get it — or worse, a janny??<br><img style="height: 500px;width: 500px;margin-top: 5px;" src="'. $prefix_folder . '/assets/img/404.png" width="" height=""></div><style>.message { margin-top: 0!important }</style>';
echo '<div class="message">[<a href="' . $prefix_folder . $main_file . '?board=' . $current_board . '">Return</a>]</div>';
echo '<hr>';
echo '[<a href="' . $prefix_folder . '/' . $main_file . '?board=' . $current_board . '">Return</a>]&nbsp;';
include $path . '/templates/footer.html';
exit();
} else {
//IF DOES EXIST
$current_page = "thread";
include __dir__ . '/' . $database_folder . '/boards/' . $current_board . '/' . htmlspecialchars($_GET["thread"]) . '/OP.php';
include __dir__ . '/' . $database_folder . '/boards/' . $current_board . '/' . htmlspecialchars($_GET["thread"]) . '/info.php';
$post_number_op = htmlspecialchars($_GET["thread"]);
if ($op_subject == '') {
$title = '/' . $current_board . '/' . ' - ' . substr($op_body,0,30) . ' - ' . $config['boards'][$current_board]['title'] . ' - ' . $site_name;
} else {
$title = '/' . $current_board . '/' . ' - ' . $op_subject . ' - ' . $config['boards'][$current_board]['title'] . ' - ' . $site_name;
}
echo '<head>';
include $path . '/templates/header.html';
echo '</head>';
echo '<body class="' . $current_page . '">';
include $path . '/templates/boardlist.html';
include $path . '/templates/page-info.html';
include $path . '/templates/post-form.html';
include __dir__ . '/' . $database_folder . '/boards/' . $current_board . '/' . $post_number_op . "/info.php";
$thread_stats = '<span class="thread-stats">Replies: ' . $info_replies . ' Posters: ' . $info_uniqueids . '</span>';
echo '[<a href="' . $prefix_folder . '/' . $main_file . '?board=' . $current_board . '">Return</a>]&nbsp;[<a href="#bottom">Bottom</a>]&nbsp;';
echo $thread_stats;
echo '<hr>';
include __dir__ . '/' . $database_folder . '/boards/' . $current_board . '/' . htmlspecialchars($_GET["thread"]) . '/OP.php';
$post_number_op = htmlspecialchars($_GET["thread"]);
echo '<div data-thread="' . $post_number_op . '" class="container">'; //start thread
include $path . '/templates/thread.html';
$current_thread = $post_number_op;
//ADD ALL REPLIES HERE
//FIND REPLIES
$replies_full = [];
$replies_full = glob(__dir__ . '/' . $database_folder . '/boards/' . $current_board . '/' . $post_number_op . "/*");
//SORTING
$replies = [];
foreach ($replies_full as $reply) {
if (is_numeric(basename($reply, '.php'))) {
$replies[] = basename($reply, '.php');
}
}
sort($replies);
//SHOW THEM
foreach (array_keys($replies) as $key => $value) {
include __dir__ . '/' . $database_folder . '/boards/' . $current_board . '/' . $post_number_op . '/' . $replies[$value] . '.php';
$post_number_reply = $replies[$value];
include $path . '/templates/reply.html';
}
echo '</div>'; //end thread
echo '<hr>';
echo '[<a href="' . $prefix_folder . '/' . $main_file . '?board=' . $current_board . '">Return</a>]&nbsp;[<a href="#top">Top</a>]&nbsp;';
echo $thread_stats;
include $path . '/templates/footer.html';
echo '</body>';
echo '</html>';
}
2021-08-29 19:39:07 +02:00
}
2021-08-29 19:39:07 +02:00
}
//NOT A BOARD
2021-08-29 19:39:07 +02:00
if ((htmlspecialchars($_GET["board"]) !== '') && (!in_Array(htmlspecialchars($_GET["board"]), $config['boardlist']))) {
error('This board doesn\'t exist.. You\'re not trying anything funny — are you, Anon-san??');
}
?>