2021-08-29 19:39:07 +02:00
< ? php
require dirname ( __FILE__ ) . '/require.php' ;
2021-08-31 19:16:33 +02:00
//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
}
2021-08-31 19:16:33 +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' ];
2021-08-31 19:16:33 +02:00
//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' ;
2021-09-02 09:52:04 +02:00
if ( $config [ 'boards' ][ $current_board ][ 'locked' ] != 1 ) {
2021-08-29 19:39:07 +02:00
include $path . '/templates/post-form.html' ;
2021-09-02 09:52:04 +02:00
} else {
echo '<div class="blotter">This board is locked by the board owner.</div><hr>' ;
}
2021-09-02 06:11:31 +02:00
echo '[<a href="#bottom">Bottom</a>] ' ;
echo '<hr>' ;
2021-08-29 19:39:07 +02:00
2021-08-31 19:16:33 +02:00
//if zero threads aka new board
2021-08-31 14:14:54 +02:00
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 ();
}
2021-09-07 15:40:49 +02:00
include __dir__ . '/' . $database_folder . '/boards/' . $current_board . '/threads.php' ;
//show max threads only
//if page = 1
2021-09-07 21:21:18 +02:00
$pages = '' ;
2021-09-07 15:40:49 +02:00
if ( count ( $threads ) > $threads_page ) {
2021-09-07 21:21:18 +02:00
$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' ;
2021-09-02 09:52:04 +02:00
include __dir__ . '/' . $database_folder . '/boards/' . $current_board . '/' . $threads [ $key ][ 'id' ] . '/info.php' ;
2021-09-07 15:40:49 +02:00
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' ];
2021-09-02 06:11:31 +02:00
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
2021-09-07 15:40:49 +02:00
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' ;
}
2021-09-02 06:11:31 +02:00
echo '</div>' ;
2021-08-29 19:39:07 +02:00
if ( $key != array_key_last ( $threads )) {
2021-09-02 06:11:31 +02:00
echo '<hr data-thread="' . $post_number_op . '">' ;
2021-08-29 19:39:07 +02:00
}
}
2021-09-02 06:11:31 +02:00
echo '<hr>' ;
echo '[<a href="#top">Top</a>] ' ;
2021-08-29 19:39:07 +02:00
include $path . '/templates/footer.html' ;
echo '</body>' ;
echo '</html>' ;
exit ();
2021-08-31 14:14:54 +02:00
2021-08-29 19:39:07 +02:00
}
2021-08-31 19:16:33 +02:00
// IF THREAD
2021-08-29 19:39:07 +02:00
if ( htmlspecialchars ( $_GET [ " thread " ]) != '' ) {
2021-08-31 19:16:33 +02:00
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>] ' ;
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>' ;
2021-09-02 06:11:31 +02:00
echo '<hr>' ;
2021-08-31 19:16:33 +02:00
echo '[<a href="' . $prefix_folder . '/' . $main_file . '?board=' . $current_board . '">Return</a>] ' ;
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' ;
2021-09-02 09:52:04 +02:00
include __dir__ . '/' . $database_folder . '/boards/' . $current_board . '/' . htmlspecialchars ( $_GET [ " thread " ]) . '/info.php' ;
2021-08-31 19:16:33 +02:00
$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>' ;
2021-09-02 06:11:31 +02:00
echo '[<a href="' . $prefix_folder . '/' . $main_file . '?board=' . $current_board . '">Return</a>] [<a href="#bottom">Bottom</a>] ' ;
2021-08-31 19:16:33 +02:00
echo $thread_stats ;
echo '<hr>' ;
include __dir__ . '/' . $database_folder . '/boards/' . $current_board . '/' . htmlspecialchars ( $_GET [ " thread " ]) . '/OP.php' ;
$post_number_op = htmlspecialchars ( $_GET [ " thread " ]);
2021-09-02 06:11:31 +02:00
echo '<div data-thread="' . $post_number_op . '" class="container">' ; //start thread
2021-08-31 19:16:33 +02:00
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 ) {
2021-09-07 12:22:43 +02:00
if ( is_numeric ( basename ( $reply , '.php' ))) {
2021-08-31 19:16:33 +02:00
$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' ;
}
2021-09-02 06:11:31 +02:00
echo '</div>' ; //end thread
2021-08-31 19:16:33 +02:00
echo '<hr>' ;
2021-09-02 06:11:31 +02:00
echo '[<a href="' . $prefix_folder . '/' . $main_file . '?board=' . $current_board . '">Return</a>] [<a href="#top">Top</a>] ' ;
2021-08-31 19:16:33 +02:00
echo $thread_stats ;
include $path . '/templates/footer.html' ;
echo '</body>' ;
echo '</html>' ;
}
2021-08-29 19:39:07 +02:00
}
2021-08-31 19:16:33 +02:00
2021-08-29 19:39:07 +02:00
}
2021-08-31 19:16:33 +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??' );
}
?>