' . S_RETURN . ' ' . S_CATALOG . ' ' . S_BOTTOM . ' ' . S_REFRESH . ' '; } if( !$stripm ) $msg .= '
'; } else { if( !$stripm ) $msg .= '
'; } if( $admin ) { $hidden = ''; $msg = '

' . S_NOTAGS . '

'; } if ($closed != 1 || (BOARD_DIR === 'qa' && $log[$resno]['capcode'] !== 'none')) { $dat .= $msg; form_ads( $dat ); $hidden = STATS_USER_JS ? '' : ''; $dat .= '
' . $hidden . ( !TEXT_ONLY ? (' ') : '') . ' '; if( $no ) { $dat .= ' '; } if (FORCED_ANON) { $dat .= ' '; } $dat .= ' '; $spoilers = ''; if( SPOILERS == 1 ) { $spoilers = '[]'; } if (!FORCED_ANON) { $dat .= ' '; } if ($spoilers && !$stripm && !TEXT_ONLY) { $dat .= ' '; } if (!$resno && !FORCED_ANON) { $attr = TEXT_ONLY ? ' required' : ''; $dat .= ' '; } else { $dat .= ' '; } $dat .= ' '; if (CAPTCHA == 1) { $dat .= ' '; } if (ENABLE_BOARD_FLAGS) { $board_flags_selector = get_board_flags_selector(); if (SHOW_COUNTRY_FLAGS) { $opts_html = ''; } else { $opts_html = ''; } foreach ($board_flags_selector as $flag_code => $flag_name) { $opts_html .= ''; } $dat .= ' '; } $need_file_form = false; if ($_GET['mode'] != 'oe_finish') { if ($resno) { if (!TEXT_ONLY && MAX_IMGRES != 0) { $need_file_form = true; } } else { $need_file_form = true; } } if ($need_file_form) { $dat .= ''; if (ENABLE_PAINTERJS) { $dat .= ''; } } if ($resno && SHOW_THREAD_UNIQUES) { $unique = $thread_unique_ips; if ($unique) { $unique_plural = $unique > 1 ? 'are' : 'is'; $unique = sprintf("
  • There $unique_plural " . S_UNIQUE_POSTS_TH . '
  • ', $unique, $unique > 1 ? 's' : ''); } else { $unique = ''; } } elseif (SHOW_UNIQUES) { $unique = sprintf('
  • ' . S_UNIQUE_POSTS . '
  • ', $GLOBALS['ipcount']); } else { $unique = ''; } $blotter = get_blotter(); // XXX: mode=regist moved to the top $dat .= ' '; $dat .= '
    ' . S_NAME . '
    ' . S_SPOILERS . ' []
    ' . S_EMAIL . '
    ' . S_SUBJECT . '
    ' . S_EMAIL . '
    ' . S_COMMENT . '
    ' . S_CAPTCHA . ' ' . (CAPTCHA_TWISTER ? twister_captcha_form() : captcha_form()) . '
    ' . S_PASS_NOTICE . '
    ' . S_FLAG . '
    ' . S_UPLOADFILE . ' ' . $spoilers; if( !$resno && NO_TEXTONLY != 1 ) { $dat .= '[]'; } $dat .= '
    Draw Size × '; if (ENABLE_OEKAKI_REPLAYS) { $dat .= ' '; } $dat .= '
      ' . S_RULES . ' ' . $unique . '
    ' . $blotter . '
    ' . (!$resno ? EMBED_INDEX : ''); } else { // Closed thread form_ads( $dat ); if( !$stripm ) $dat .= '
    '; if ($log[$resno]['archived']) { $dat .= '
    ' . S_THREAD_ARCHIVED . '
    '; } else { $dat .= '
    ' . S_THREAD_CLOSED . '
    '; } } if( AD_MIDDLE_ENABLE == 1 ) { $middlead = ""; if( defined( "AD_MIDDLE_TEXT" ) && AD_MIDDLE_TEXT ) { $middlead .= '
    ' . ad_text_for( AD_MIDDLE_TEXT ) . '
    ' . (defined('AD_MIDDLE_PLEA') ? AD_MIDDLE_PLEA : ''); } else if( defined( "AD_MIDDLE_TABLE" ) && AD_MIDDLE_TABLE ) { list( $middleimg, $middlelink ) = rid( AD_MIDDLE_TABLE, 1 ); $middlead .= "
    \"\"
    "; } if( $middlead ) { $dat .= "$middlead"; } } else if (!$stripm) { // not for catalog // Contest banners $dat .= '
    ' . get_contest_banner() . '
    '; } if (!$resno || !$closed) { list($globalmsgtxt,$globalmsgdate) = global_msg_txt(); if( $globalmsgtxt ) { $dat .= "\n
    " . S_VIEW_GMSG . "
    " . $globalmsgtxt . "
    \n"; } } // Catalog if ($stripm) { if (defined('AD_CUSTOM_TOP') && AD_CUSTOM_TOP) { $dat .= '

    ' . AD_CUSTOM_TOP . '
    '; } /*else if (defined('AD_ABC_TOP_DESKTOP') && AD_ABC_TOP_DESKTOP) { $dat .= '

    '; } else if (defined('AD_BIDGEAR_TOP') && AD_BIDGEAR_TOP) { $dat .= '

    '; }*/ else if (defined('ADS_DANBO') && ADS_DANBO) { $dat .= '
    [Advertise on 4chan]
    '; } } // Not catalog else if (defined('AD_CUSTOM_TOP') && AD_CUSTOM_TOP) { $dat .= '

    ' . AD_CUSTOM_TOP . '
    '; } /*else if (defined('AD_ABC_TOP_DESKTOP') && AD_ABC_TOP_DESKTOP) { $dat .= '

    '; } else if (defined('AD_BIDGEAR_TOP') && AD_BIDGEAR_TOP) { $dat .= '

    '; }*/ else if (defined('ADS_DANBO') && ADS_DANBO) { $dat .= '
    [Advertise on 4chan]
    '; } if ($resno) { $dat .= '
    '; } if( JANITOR_BOARD == 1 ) { $dat = broomcloset_form( $dat ); } } function updatelog_real( $resno = 0, $noidx = 0, $lazy_rebuild = false ) { global $log, $mode, $index_rbl, $board_flags_array; if (ENABLE_BOARD_FLAGS) { $board_flags_array = get_board_flags_array(); } if( !IS_REBUILDD ) set_time_limit( 60 ); // DDOS Protection if( $_SERVER['REQUEST_METHOD'] == 'GET' && !has_level() ) { die(); } if( STATIC_REBUILD && $mode != 'nothing' ) { $noidx = 1; } if( !$resno && $noidx ) { return; } log_cache( 0, $noidx ? $resno : 0 ); // Image directories /* $imgdir = ( ( USE_SRC_CGI == 1 ) ? str_replace( 'src', 'src.cgi', IMG_DIR2 ) : IMG_DIR2 ); if( defined( 'INTERSTITIAL_LINK' ) ) { $imgdir .= INTERSTITIAL_LINK; } */ $resno = (int)$resno; $inter_ad_html = null; if( $resno ) { if( !isset( $log[$resno] ) ) { updatelog_real( 0, $noidx ); return; } elseif( $log[$resno]['resto'] ) { updatelog_real( $log[$resno]['resto'], $noidx ); return; } // Inter-reply ads $inter_ad_html = ''; if (defined('AD_ABC_TOP_MOBILE') && AD_ABC_TOP_MOBILE) { $inter_ad_html .= '


    '; } if (defined('AD_ABC_TOP_DESKTOP') && AD_ABC_TOP_DESKTOP) { $inter_ad_html .= '


    '; } if ($inter_ad_html === '') { $inter_ad_html = null; } } if( $resno ) { logtime( "Generating thread JSON" ); if (ENABLE_JSON) { $tailSize = get_json_tail_size($resno); if ($tailSize) { generate_thread_json($resno, false, false, false, $tailSize); } generate_thread_json($resno); } $treeline = array($resno); logtime( "Formatting thread page" ); } else { logtime( "Generating index JSON" ); if( ENABLE_JSON_INDEXES ) generate_index_json(); if( ENABLE_JSON_CATALOG ) generate_board_catalogue(); if( ENABLE_JSON_THREADS ) { generate_board_threads_json(); } $treeline = $log['THREADS']; logtime( "Formatting index page" ); } $counttree = count( $treeline ); if( !$counttree ) { $logfilename = SELF_PATH2_FILE; $dat = ''; head( $dat, $resno ); form( $dat, $resno ); print_page( $logfilename, $dat ); $dat = ''; } $st = 0; $p = 0; if ($lazy_rebuild) { $start_page = $index_rbl * DEF_PAGES; } else { $start_page = 0; } $index_page_ad_pos = ceil(DEF_PAGES / 2); if (defined('REPLIES_SHOWN')) { $shown_replies_default = REPLIES_SHOWN; } else { $shown_replies_default = 5; } for( $page = $start_page; $page < $counttree; $page += DEF_PAGES ) { $file_page_num = $page / DEF_PAGES + 1; if (PAGE_MAX && $file_page_num > PAGE_MAX) { break; } $dat = ''; head( $dat, $resno, 0, $page, $counttree ); form( $dat, $resno ); if( !$resno ) { $st = $page; $dat .= '

    [' . S_CATALOG . ']'; if (ENABLE_ARCHIVE) { $dat .= ' [' . S_ARCHIVE . ']'; } $dat .= '
    '; if (floor( $page / DEF_PAGES ) > $index_rbl) { return; } } // Post form / board container container start. $dat .= '
    '; $index_page_th_id = 0; for( $i = $st; $i < $st + DEF_PAGES; $i++ ) { $no = $treeline[$i]; if (!$no) { break; } /* if (!isset($log[$no]['children'])) { log_bad_cache_entry($no); } */ $sorted_replies = $log[$no]['children']; ksort($sorted_replies); // Party hats $party = PARTY ? '' : ''; // Omitted replies $reply_count = $log[$no]['replycount']; if ($log[$no]['sticky'] == 1) { $shown_replies = min(1, $shown_replies_default); } else { $shown_replies = $shown_replies_default; } // Open thread tag and render OP $dat .= '
    ' . $party . renderPostHtml($no, $resno, $sorted_replies, $reply_count, $shown_replies); // Render replies if ($resno) { $s = 0; } else { $s = $reply_count - $shown_replies; } $repCount = 0; if ($inter_ad_html && $reply_count >= 100) { $middle_reply_idx = floor($reply_count / 2.0); } else { $middle_reply_idx = 0; } while (list($resrow) = each($sorted_replies)) { if( $s > 0 ) { $s--; continue; } if (!$log[$resrow]['no']) { break; } $dat .= renderPostHtml($resrow, $resno); $repCount++; if ($repCount == $middle_reply_idx) { $dat .= $inter_ad_html; } } // Close thread tag $dat .= '

    '; ++$index_page_th_id; if (!$resno && AD_INTERTHREAD_ENABLED && $index_page_ad_pos == $index_page_th_id) { $dat .= AD_INTERTHREAD_TAG . '
    '; } $p++; if ($resno) { break; } } if ($resno) { $dat .= '
    '; } // Close board tag $lang = $resno ? S_FORM_REPLY : S_FORM_THREAD; $dat .= '
    '; if (!$resno) { $dat .= '
    '; } else { $dat .= '
    '; } /** * ADS */ if (defined('AD_CUSTOM_BOTTOM') && AD_CUSTOM_BOTTOM) { $dat .= '
    ' . AD_CUSTOM_BOTTOM . '
    '; } /* else if (defined('AD_ABC_BOTTOM_MOBILE') && AD_ABC_BOTTOM_MOBILE) { $dat .= '

    '; } else if (defined('AD_BIDGEAR_BOTTOM') && AD_BIDGEAR_BOTTOM) { $dat .= '
    '; } */ else if (defined('ADS_DANBO') && ADS_DANBO) { $dat .= '
    [Advertise on 4chan]

    '; } if( $resno ) { $resredir = ''; } else { $resredir = ''; } $dat .= '
    ' . S_REPDEL . $resredir . ' [' . S_DELPICONLY . '] '; if( !defined( 'CSS_FORCE' ) ) { $dat .= 'Style: '; } $dat .= '
    '; if( !$resno ) { $prev = $st - DEF_PAGES; $next = $st + DEF_PAGES; $dat .= '
    '; $dat .= $mpl . '
    '; } foot( $dat ); if( $resno ) { logtime( 'Printing thread ' . $resno . ' page' ); $logfilename = RES_DIR . $resno . PHP_EXT; print_page( $logfilename, $dat ); $dat = ''; if( !$noidx ) { updatelog_real( 0 ); } break; } logtime( "Printing index page" ); if ($page == 0) { $logfilename = SELF_PATH2_FILE; print_page($logfilename, $dat); } else { $logfilename = INDEX_DIR . ($file_page_num) . PHP_EXT; print_page($logfilename, $dat); } $dat = ''; if( !$resno && $page == 0 && USE_RSS == 1 ) { include_once 'lib/rss.php'; rss_dump(); } } // for } //wrapper function for forwarding updatelog calls //resno - thread page to update (no of thread OP) //noidx - don't rebuild page indexes function updatelog( $resno = 0, $noidx = 0, $lazy_rebuild = false ) { updatelog_real( $resno, $noidx, $lazy_rebuild ); if( !STATIC_REBUILD && ENABLE_CATALOG && !$noidx ) generate_catalog( true ); } ?>