Esempio n. 1
0
function create_atom($file_path, $mode, $id, $title, $topics)
{
    global $bb_cfg;
    $dir = dirname($file_path);
    if (!file_exists($dir)) {
        if (!bb_mkdir($dir)) {
            return false;
        }
    }
    foreach ($topics as $topic) {
        $last_time = $topic['topic_last_post_time'];
        if ($topic['topic_last_post_edit_time']) {
            $last_time = $topic['topic_last_post_edit_time'];
        }
        $date = bb_date($last_time, 'Y-m-d', 0);
        $time = bb_date($last_time, 'H:i:s', 0);
        break;
    }
    $atom = "";
    $atom .= "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
    $atom .= "<feed xmlns=\"http://www.w3.org/2005/Atom\" xml:base=\"http://" . $bb_cfg['server_name'] . $bb_cfg['script_path'] . "\">\n";
    $atom .= "<title>{$title}</title>\n";
    $atom .= "<updated>" . $date . "T{$time}+00:00</updated>\n";
    $atom .= "<id>tag:rto.feed,2000:/{$mode}/{$id}</id>\n";
    $atom .= "<link href=\"http://" . $bb_cfg['server_name'] . $bb_cfg['script_path'] . "\" />\n";
    foreach ($topics as $topic) {
        $topic_id = $topic['topic_id'];
        $tor_size = '';
        if (isset($topic['tor_size'])) {
            $tor_size = str_replace('&nbsp;', ' ', ' [' . humn_size($topic['tor_size']) . ']');
        }
        $topic_title = $topic['topic_title'];
        $orig_word = array();
        $replacement_word = array();
        obtain_word_list($orig_word, $replacement_word);
        if (count($orig_word)) {
            $topic_title = preg_replace($orig_word, $replacement_word, $topic_title);
        }
        $topic_title = wbr($topic_title);
        $author_name = $topic['first_username'] ? wbr($topic['first_username']) : 'Гость';
        $last_time = $topic['topic_last_post_time'];
        if ($topic['topic_last_post_edit_time']) {
            $last_time = $topic['topic_last_post_edit_time'];
        }
        $date = bb_date($last_time, 'Y-m-d', 0);
        $time = bb_date($last_time, 'H:i:s', 0);
        $updated = '';
        $checktime = TIMENOW - 604800;
        // неделя (week)
        if ($topic['topic_first_post_edit_time'] && $topic['topic_first_post_edit_time'] > $checktime) {
            $updated = '[Обновлено] ';
        }
        $atom .= "<entry>\n";
        $atom .= "\t<title type=\"html\"><![CDATA[{$updated}{$topic_title}{$tor_size}]]></title>\n";
        $atom .= "\t<author>\n";
        $atom .= "\t\t<name>{$author_name}</name>\n";
        $atom .= "\t</author>\n";
        $atom .= "\t<updated>" . $date . "T{$time}+00:00</updated>\n";
        $atom .= "\t<id>tag:rto.feed," . $date . ":/t/{$topic_id}</id>\n";
        $atom .= "\t<link href=\"viewtopic.php?t={$topic_id}\" />\n";
        $atom .= "</entry>\n";
    }
    $atom .= "</feed>";
    @unlink($file_path);
    $fp = fopen($file_path, "w");
    fwrite($fp, $atom);
    fclose($fp);
    return true;
}
Esempio n. 2
0
        $releasing[] = $rowset;
    } elseif ($rowset['seeder']) {
        $seeding[] = $rowset;
    } else {
        $leeching[] = $rowset;
    }
}
if ($releasing) {
    foreach ($releasing as $i => $row) {
        $topic_title = wbr($row['topic_title']);
        $template->assign_block_vars('released', array('ROW_CLASS' => !($i % 2) ? 'row1' : 'row2', 'FORUM_NAME' => htmlCHR($row['forum_name']), 'TOPIC_TITLE' => $row['update_time'] ? $topic_title : "<s>{$topic_title}</s>", 'U_VIEW_FORUM' => FORUM_URL . $row['forum_id'], 'U_VIEW_TOPIC' => TOPIC_URL . $row['topic_id'], 'TOR_TYPE' => is_gold($row['tor_type']), 'TOPIC_SEEDERS' => $row['seeders'] ? $row['seeders'] : 0, 'TOPIC_LEECHERS' => $row['leechers'] ? $row['leechers'] : 0, 'SPEED_UP' => $row['speed_up'] ? humn_size($row['speed_up'], 0, 'KB') . '/s' : '-'));
        $releasing_count++;
    }
}
if ($seeding) {
    foreach ($seeding as $i => $row) {
        $topic_title = wbr($row['topic_title']);
        $template->assign_block_vars('seed', array('ROW_CLASS' => !($i % 2) ? 'row1' : 'row2', 'FORUM_NAME' => htmlCHR($row['forum_name']), 'TOPIC_TITLE' => $row['update_time'] ? $topic_title : "<s>{$topic_title}</s>", 'U_VIEW_FORUM' => FORUM_URL . $row['forum_id'], 'U_VIEW_TOPIC' => TOPIC_URL . $row['topic_id'], 'TOR_TYPE' => is_gold($row['tor_type']), 'TOPIC_SEEDERS' => $row['seeders'] ? $row['seeders'] : 0, 'TOPIC_LEECHERS' => $row['leechers'] ? $row['leechers'] : 0, 'SPEED_UP' => $row['speed_up'] ? humn_size($row['speed_up'], 0, 'KB') . '/s' : '-'));
        $seeding_count++;
    }
}
if ($leeching) {
    foreach ($leeching as $i => $row) {
        $compl_size = $row['remain'] && $row['size'] && $row['size'] > $row['remain'] ? $row['size'] - $row['remain'] : 0;
        $compl_perc = $compl_size ? floor($compl_size * 100 / $row['size']) : 0;
        $topic_title = wbr($row['topic_title']);
        $template->assign_block_vars('leech', array('ROW_CLASS' => !($i % 2) ? 'row1' : 'row2', 'FORUM_NAME' => htmlCHR($row['forum_name']), 'TOPIC_TITLE' => $row['update_time'] ? $topic_title : "<s>{$topic_title}</s>", 'U_VIEW_FORUM' => FORUM_URL . $row['forum_id'], 'U_VIEW_TOPIC' => TOPIC_URL . $row['topic_id'], 'COMPL_PERC' => $compl_perc, 'TOR_TYPE' => is_gold($row['tor_type']), 'TOPIC_SEEDERS' => $row['seeders'] ? $row['seeders'] : 0, 'TOPIC_LEECHERS' => $row['leechers'] ? $row['leechers'] : 0, 'SPEED_DOWN' => $row['speed_down'] ? humn_size($row['speed_down'], 0, 'KB') . '/s' : '-'));
        $leeching_count++;
    }
}
$template->assign_vars(array('SHOW_SEARCH_DL' => IS_AM || $profile_user_id, 'USERNAME' => $profiledata['username'], 'L_RELEASINGS' => "{$lang['RELEASING']}: " . ($releasing_count ? "<b>{$releasing_count}</b>" : '0'), 'L_SEEDINGS' => "{$lang['SEEDING']}: " . ($seeding_count ? "<b>{$seeding_count}</b>" : '0'), 'L_LEECHINGS' => "{$lang['LEECHING']}: " . ($leeching_count ? "<b>{$leeching_count}</b>" : '0'), 'USER_DLS' => $releasing_count || $seeding_count || $leeching_count));
Esempio n. 3
0
     $replacement_word = array();
     obtain_word_list($orig_word, $replacement_word);
     $preview_message = htmlCHR($privmsg_message, false, ENT_NOQUOTES);
     $preview_message = bbcode2html($privmsg_message);
     if (count($orig_word)) {
         $preview_subject = preg_replace($orig_word, $replacement_word, $privmsg_subject);
         $preview_message = preg_replace($orig_word, $replacement_word, $preview_message);
     } else {
         $preview_subject = $privmsg_subject;
     }
     $s_hidden_fields = '<input type="hidden" name="folder" value="' . $folder . '" />';
     $s_hidden_fields .= '<input type="hidden" name="mode" value="' . $mode . '" />';
     if (isset($privmsg_id)) {
         $s_hidden_fields .= '<input type="hidden" name="' . POST_POST_URL . '" value="' . $privmsg_id . '" />';
     }
     $template->assign_vars(array('TPL_PREVIEW_POST' => true, 'TOPIC_TITLE' => wbr($preview_subject), 'POST_SUBJECT' => $preview_subject, 'MESSAGE_TO' => $to_username, 'MESSAGE_FROM' => $userdata['username'], 'POST_DATE' => bb_date(TIMENOW), 'PREVIEW_MSG' => $preview_message, 'S_HIDDEN_FIELDS' => $s_hidden_fields));
 }
 //
 // Start error handling
 //
 if ($error) {
     $template->assign_vars(array('ERROR_MESSAGE' => $error_msg));
 }
 //
 // Load templates
 //
 $template->set_filenames(array('body' => 'posting.tpl'));
 //
 // Enable extensions in posting_body
 //
 $template->assign_block_vars('switch_privmsg', array());
Esempio n. 4
0
            // Предупреждение
            $mc_class = 'warning';
            break;
        case 4:
            // Нарушение
            $mc_class = 'danger';
            break;
        default:
            $mc_class = '';
            break;
    }
    $mc_select_type = array();
    foreach ($lang['MC_COMMENT'] as $key => $value) {
        $mc_select_type[$key] = $value['type'];
    }
    $template->assign_block_vars('postrow', array('ROW_CLASS' => !($i % 2) ? 'row1' : 'row2', 'POST_ID' => $post_id, 'IS_NEWEST' => $post_id == $newest, 'POSTER_NAME' => profile_url(array('username' => $poster, 'user_rank' => $user_rank)), 'POSTER_NAME_JS' => addslashes($poster), 'POSTER_RANK' => $poster_rank, 'RANK_IMAGE' => $rank_image, 'POSTER_JOINED' => $bb_cfg['show_poster_joined'] ? $poster_longevity : '', 'POSTER_JOINED_DATE' => $poster_joined, 'POSTER_POSTS' => $bb_cfg['show_poster_posts'] ? $poster_posts : '', 'POSTER_FROM' => $bb_cfg['show_poster_from'] ? wbr($poster_from) : '', 'POSTER_BOT' => $poster_id == BOT_UID, 'POSTER_ID' => $poster_id, 'POSTER_AUTHOR' => $poster_id == $t_data['topic_poster'], 'POSTER_GENDER' => $bb_cfg['gender'] ? gender_image($postrow[$i]['user_gender']) : '', 'POSTED_AFTER' => $prev_post_time ? delta_time($postrow[$i]['post_time'], $prev_post_time) : '', 'IS_UNREAD' => is_unread($postrow[$i]['post_time'], $topic_id, $forum_id), 'IS_FIRST_POST' => !$start && $post_id == $t_data['topic_first_post_id'], 'MOD_CHECKBOX' => $moderation && ($start || defined('SPLIT_FORM_START')), 'POSTER_AVATAR' => $poster_avatar, 'POST_NUMBER' => $i + $start + 1, 'POST_DATE' => $post_date, 'MESSAGE' => $message, 'SIGNATURE' => $user_sig, 'EDITED_MESSAGE' => $l_edited_by, 'PM' => $pm_btn, 'PROFILE' => $profile_btn, 'QUOTE' => $quote_btn, 'EDIT' => $edit_btn, 'DELETE' => $delpost_btn, 'IP' => $ip_btn, 'POSTER_BIRTHDAY' => $bb_cfg['birthday_enabled'] && $this_date == $poster_birthday ? '<img src="' . $images['icon_birthday'] . '" alt="" title="' . $lang['HAPPY_BIRTHDAY'] . '" border="0" />' : '', 'MC_COMMENT' => $mc_type ? bbcode2html($mc_comment) : '', 'MC_BBCODE' => $mc_type ? $mc_comment : '', 'MC_CLASS' => $mc_class, 'MC_TITLE' => sprintf($lang['MC_COMMENT'][$mc_type]['title'], $mc_user_id), 'MC_SELECT_TYPE' => build_select("mc_type_{$post_id}", array_flip($mc_select_type), $mc_type), 'RG_AVATAR' => $rg_avatar, 'RG_NAME' => $rg_name, 'RG_URL' => GROUP_URL . $rg_id, 'RG_FIND_URL' => 'tracker.php?srg=' . $rg_id, 'RG_SIG' => $rg_signature, 'RG_SIG_ATTACH' => $postrow[$i]['attach_rg_sig']));
    if ($postrow[$i]['post_attachment'] && $is_auth['auth_download'] && function_exists('display_post_attachments')) {
        display_post_attachments($post_id, $postrow[$i]['post_attachment']);
    }
    if ($moderation && !defined('SPLIT_FORM_START') && ($start || $post_id == $t_data['topic_first_post_id'])) {
        define('SPLIT_FORM_START', TRUE);
    }
    if ($poster_id != BOT_UID) {
        $prev_post_time = $postrow[$i]['post_time'];
    }
}
set_tracks(COOKIE_TOPIC, $tracking_topics, $topic_id, $max_post_time);
if (defined('SPLIT_FORM_START')) {
    $template->assign_vars(array('SPLIT_FORM' => true, 'START' => $start, 'S_SPLIT_ACTION' => "modcp.php", 'POST_FORUM_URL' => POST_FORUM_URL, 'POST_TOPIC_URL' => POST_TOPIC_URL));
}
// Quick Reply
Esempio n. 5
0
    $t_type = $topic['topic_type'];
    $separator = '';
    $is_unread = is_unread($topic['topic_last_post_time'], $topic_id, $forum_id);
    if ($t_type == POST_ANNOUNCE && !defined('ANNOUNCE_SEP')) {
        define('ANNOUNCE_SEP', true);
        $separator = $lang['TOPICS_ANNOUNCEMENT'];
    } elseif ($t_type == POST_STICKY && !defined('STICKY_SEP')) {
        define('STICKY_SEP', true);
        $separator = $lang['TOPICS_STICKY'];
    } elseif ($t_type == POST_NORMAL && !defined('NORMAL_SEP')) {
        if (defined('ANNOUNCE_SEP') || defined('STICKY_SEP')) {
            define('NORMAL_SEP', true);
            $separator = $lang['TOPICS_NORMAL'];
        }
    }
    $template->assign_block_vars('t', array('FORUM_ID' => $forum_id, 'TOPIC_ID' => $topic_id, 'HREF_TOPIC_ID' => $moved ? $topic['topic_moved_id'] : $topic['topic_id'], 'TOPIC_TITLE' => wbr($topic['topic_title']), 'TOPICS_SEPARATOR' => $separator, 'IS_UNREAD' => $is_unread, 'TOPIC_ICON' => get_topic_icon($topic, $is_unread), 'PAGINATION' => $moved ? '' : build_topic_pagination(TOPIC_URL . $topic_id, $replies, $bb_cfg['posts_per_page']), 'REPLIES' => $replies, 'VIEWS' => $topic['topic_views'], 'TOR_STALED' => $forum_data['allow_reg_tracker'] && !($t_type == POST_ANNOUNCE || $t_type == POST_STICKY || $topic['tor_size']), 'TOR_FROZEN' => isset($topic['tor_status']) ? !IS_AM ? isset($bb_cfg['tor_frozen'][$topic['tor_status']]) : '' : '', 'TOR_TYPE' => isset($topic['tor_type']) ? is_gold($topic['tor_type']) : '', 'TOR_STATUS_ICON' => isset($topic['tor_status']) ? $bb_cfg['tor_icons'][$topic['tor_status']] : '', 'TOR_STATUS_TEXT' => isset($topic['tor_status']) ? $lang['TOR_STATUS_NAME'][$topic['tor_status']] : '', 'ATTACH' => $topic['topic_attachment'], 'STATUS' => $topic['topic_status'], 'TYPE' => $topic['topic_type'], 'DL' => $topic['topic_dl_type'] == TOPIC_DL_TYPE_DL && !$forum_data['allow_reg_tracker'], 'POLL' => $topic['topic_vote'], 'DL_CLASS' => isset($topic['dl_status']) ? $dl_link_css[$topic['dl_status']] : '', 'TOPIC_AUTHOR' => profile_url(array('username' => str_short($topic['first_username'], 15), 'user_id' => $topic['first_user_id'], 'user_rank' => $topic['first_user_rank'])), 'LAST_POSTER' => profile_url(array('username' => str_short($topic['last_username'], 15), 'user_id' => $topic['last_user_id'], 'user_rank' => $topic['last_user_rank'])), 'LAST_POST_TIME' => bb_date($topic['topic_last_post_time']), 'LAST_POST_ID' => $topic['topic_last_post_id']));
    if (isset($topic['tor_size'])) {
        $tor_magnet = create_magnet($topic['info_hash'], $topic['auth_key'], $userdata['session_logged_in']);
        $template->assign_block_vars('t.tor', array('SEEDERS' => (int) $topic['seeders'], 'LEECHERS' => (int) $topic['leechers'], 'TOR_SIZE' => humn_size($topic['tor_size']), 'COMPL_CNT' => (int) $topic['complete_count'], 'ATTACH_ID' => $topic['attach_id'], 'MAGNET' => $tor_magnet));
    }
    $found_topics++;
}
unset($topic_rowset);
$pg_url = FORUM_URL . $forum_id;
$pg_url .= $sort_value ? "&sort={$sort_value}" : '';
$pg_url .= $order_value ? "&order={$order_value}" : '';
$template->assign_var('MOD_URL', $pg_url);
$pg_url = FORUM_URL . $forum_id;
$pg_url .= $topic_days ? "&amp;topicdays={$topic_days}" : '';
$pg_url .= $sort_value ? "&amp;sort={$sort_value}" : '';
$pg_url .= $order_value ? "&amp;order={$order_value}" : '';
Esempio n. 6
0
            $seeds = $tor['seeders'];
            $leechs = $tor['leechers'];
            $s_last = $tor['seeder_last_seen'];
            $att_id = $tor['attach_id'];
            $size = $tor['size'];
            $tor_magnet = create_magnet($tor['info_hash'], $passkey['auth_key'], $userdata['session_logged_in']);
            $compl = $tor['complete_count'];
            $dl_sp = $dl ? humn_size($dl, 0, 'KB') . '/s' : '0 KB/s';
            $ul_sp = $ul ? humn_size($ul, 0, 'KB') . '/s' : '0 KB/s';
            $dl_class = isset($tor['dl_status']) ? $dl_link_css[$tor['dl_status']] : 'genmed';
            $row_class = !($row_num & 1) ? $row_class_1 : $row_class_2;
            $row_num++;
            $cat_id = !$hide_cat && isset($tor['cat_id']) ? $tor['cat_id'] : '';
            $forum_id = !$hide_forum && isset($tor['forum_id']) ? $tor['forum_id'] : '';
            $poster_id = !$hide_author && isset($tor['poster_id']) ? $tor['poster_id'] : '';
            $template->assign_block_vars('tor', array('CAT_ID' => $cat_id, 'CAT_TITLE' => $cat_id ? $cat_title_html[$cat_id] : '', 'FORUM_ID' => $forum_id, 'FORUM_NAME' => $forum_id ? $forum_name_html[$forum_id] : '', 'TOPIC_ID' => $tor['topic_id'], 'TOPIC_TITLE' => wbr($tor['topic_title']), 'TOPIC_TIME' => bb_date($tor['topic_time'], 'd-M-y') . ' <b>&middot;</b> ' . delta_time($tor['topic_time']), 'POST_ID' => $tor['post_id'], 'POSTER_ID' => $poster_id, 'USERNAME' => $hide_author ? '' : profile_url(array('username' => $tor['username'], 'user_rank' => $tor['user_rank'])), 'ROW_CLASS' => $row_class, 'ROW_NUM' => $row_num, 'DL_CLASS' => $dl_class, 'IS_NEW' => !IS_GUEST && $tor['reg_time'] > $lastvisit, 'USER_AUTHOR' => !IS_GUEST && $poster_id == $user_id, 'ATTACH_ID' => $att_id, 'MAGNET' => $tor_magnet, 'TOR_TYPE' => is_gold($tor['tor_type']), 'TOR_FROZEN' => !IS_AM ? isset($bb_cfg['tor_frozen'][$tor['tor_status']]) : '', 'TOR_STATUS_ICON' => $bb_cfg['tor_icons'][$tor['tor_status']], 'TOR_STATUS_TEXT' => $lang['TOR_STATUS_NAME'][$tor['tor_status']], 'TOR_SIZE_RAW' => $size, 'TOR_SIZE' => humn_size($size), 'UL_SPEED' => $ul_sp, 'DL_SPEED' => $dl_sp, 'SEEDS' => $seeds ? $seeds : 0, 'SEEDS_TITLE' => $seeds ? $lang['SEEDERS'] : $lang['SEED_NOT_SEEN'] . ":\n " . ($s_last ? bb_date($s_last, $date_format) : $lang['NEVER']), 'LEECHS' => $leechs ? $leechs : 0, 'COMPLETED' => $compl ? $compl : 0, 'REPLIES' => $tor['topic_replies'], 'VIEWS' => $tor['topic_views'], 'ADDED_RAW' => $tor['reg_time'], 'ADDED_TIME' => bb_date($tor['reg_time'], $time_format), 'ADDED_DATE' => bb_date($tor['reg_time'], $date_format, false)));
        }
    }
} else {
    $template->assign_vars(array('TOR_NOT_FOUND' => true, 'NO_MATCH_MSG' => $lang['BT_NO_SEARCHABLE_FORUMS']));
}
// Pagination
if ($tor_count) {
    $base_url = "{$tracker_url}?search_id={$search_id}";
    $search_matches = $tor_count == 1 ? sprintf($lang['FOUND_SEARCH_MATCH'], $tor_count) : sprintf($lang['FOUND_SEARCH_MATCHES'], $tor_count);
    $search_max = "(max: {$tor_search_limit})";
    generate_pagination($base_url, $tor_count, $per_page, $start);
    $template->assign_vars(array('MATCHES' => $search_matches, 'SERACH_MAX' => $search_max));
}
if (empty($cat_forum)) {
    bb_die($lang['BT_NO_SEARCHABLE_FORUMS']);
Esempio n. 7
0
             $i++;
         } while ($row = DB()->sql_fetchrow($result));
     }
     //
     // Get other users who've posted under this IP
     //
     $sql = "SELECT\n\t\t\t\tu.user_id,\n\t\t\t\tIF(u.user_id = {$anon}, p.post_username, u.username) AS username,\n\t\t\t\tCOUNT(*) as postings\n\t\t\tFROM " . BB_USERS . " u, " . BB_POSTS . " p\n\t\t\tWHERE p.poster_id = u.user_id\n\t\t\t\tAND p.poster_ip = '" . $post_row['poster_ip'] . "'\n\t\t\tGROUP BY u.user_id, p.post_username\n\t\t\tORDER BY postings DESC\n\t\t\tLIMIT 100";
     if (!($result = DB()->sql_query($sql))) {
         bb_die('Could not get posters information based on IP');
     }
     if ($row = DB()->sql_fetchrow($result)) {
         $i = 0;
         do {
             $id = $row['user_id'];
             $username = !$row['username'] ? $lang['GUEST'] : $row['username'];
             $template->assign_block_vars('userrow', array('ROW_CLASS' => !($i % 2) ? 'row4' : 'row5', 'USERNAME' => wbr($username), 'POSTS' => $row['postings'], 'U_PROFILE' => $id == GUEST_UID ? "modcp.php?mode=ip&amp;p={$post_id}&amp;t={$topic_id}" : PROFILE_URL . $id, 'U_SEARCHPOSTS' => "search.php?search_author=1&amp;uid={$id}"));
             $i++;
         } while ($row = DB()->sql_fetchrow($result));
     }
     $template->set_filenames(array('body' => 'modcp.tpl'));
     break;
 case 'post_pin':
 case 'post_unpin':
     $pin = $mode == 'post_pin';
     $new_topic_status = $pin ? 1 : 0;
     if (count($topic_csv)) {
         $sql = "\n\t\t\t\tSELECT topic_id, topic_title\n\t\t\t\tFROM " . BB_TOPICS . "\n\t\t\t\tWHERE topic_id IN({$topic_csv})\n\t\t\t\t\tAND forum_id = {$forum_id}\n\t\t\t\t\tAND topic_show_first_post != " . TOPIC_MOVED . "\n\t\t\t\t\tAND topic_show_first_post != {$new_topic_status}\n\t\t\t";
         $topic_csv = array();
         foreach (DB()->fetch_rowset($sql) as $row) {
             $topic_csv[] = $row['topic_id'];
             $log_topics[$row['topic_id']] = $row['topic_title'];
Esempio n. 8
0
        $page_title = $lang['POST_A_NEW_TOPIC'];
        $hidden_form_fields .= '<input type="hidden" name="' . POST_FORUM_URL . '" value="' . $forum_id . '" />';
        break;
    case 'reply':
        $page_title = $lang['POST_A_REPLY'];
        $hidden_form_fields .= '<input type="hidden" name="' . POST_TOPIC_URL . '" value="' . $topic_id . '" />';
        break;
    case 'editpost':
        $page_title = $lang['EDIT_POST'];
        $hidden_form_fields .= '<input type="hidden" name="' . POST_POST_URL . '" value="' . $post_id . '" />';
        break;
}
// Generate smilies listing for page output
generate_smilies('inline');
$template->set_filenames(array('body' => 'posting.tpl'));
// Output the data to the template
$template->assign_vars(array('FORUM_NAME' => htmlCHR($forum_name), 'PAGE_TITLE' => $page_title, 'POSTING_TYPE_TITLE' => $page_title, 'POSTING_TOPIC_ID' => $mode != 'newtopic' ? $topic_id : '', 'POSTING_TOPIC_TITLE' => $mode != 'newtopic' ? wbr($post_info['topic_title']) : '', 'U_VIEW_FORUM' => "viewforum.php?" . POST_FORUM_URL . "={$forum_id}", 'USERNAME' => @$username, 'CAPTCHA_HTML' => IS_GUEST ? bb_captcha('get') : '', 'SUBJECT' => $subject, 'MESSAGE' => $message, 'POSTER_RGROUPS' => isset($poster_rgroups) && !empty($poster_rgroups) ? $poster_rgroups : '', 'ATTACH_RG_SIG' => $switch_rg_sig ? $switch_rg_sig : false, 'U_VIEWTOPIC' => $mode == 'reply' ? "viewtopic.php?" . POST_TOPIC_URL . "={$topic_id}&amp;postorder=desc" : '', 'S_NOTIFY_CHECKED' => $notify_user ? 'checked="checked"' : '', 'S_TYPE_TOGGLE' => $topic_type_toggle, 'S_TOPIC_ID' => $topic_id, 'S_POST_ACTION' => POSTING_URL, 'S_HIDDEN_FORM_FIELDS' => $hidden_form_fields));
if ($mode == 'newtopic' || $post_data['first_post']) {
    $template->assign_var('POSTING_SUBJECT');
}
// Update post time
if ($mode == 'editpost' && $post_data['last_post'] && !$post_data['first_post']) {
    $template->assign_vars(array('SHOW_UPDATE_POST_TIME' => $is_auth['auth_mod'] || $post_data['poster_post'] && $post_info['post_time'] + 3600 * 3 > TIMENOW, 'UPDATE_POST_TIME_CHECKED' => $post_data['poster_post'] && $post_info['post_time'] + 3600 * 2 > TIMENOW));
}
// Topic review
if ($mode == 'reply' && $is_auth['auth_read']) {
    topic_review($topic_id);
}
require PAGE_HEADER;
$template->pparse('body');
require PAGE_FOOTER;
Esempio n. 9
0
    if (!($result = DB()->sql_query($sql))) {
        bb_die('Could not delete topic watch information #1');
    }
}
$template->assign_vars(array('PAGE_TITLE' => $lang['WATCHED_TOPICS'], 'S_FORM_ACTION' => BB_ROOT . 'profile.php?mode=watch'));
$sql = "SELECT COUNT(topic_id) as watch_count FROM " . BB_TOPICS_WATCH . " WHERE user_id = {$user_id}";
if (!($result = DB()->sql_query($sql))) {
    bb_die('Could not obtain watch topic information #2');
}
$row = DB()->sql_fetchrow($result);
$watch_count = $row['watch_count'] ? $row['watch_count'] : 0;
DB()->sql_freeresult($result);
if ($watch_count > 0) {
    $sql = "SELECT w.*, t.*, f.*, u.*, u2.username as last_username, u2.user_id as last_user_id,\n\t\tu2.user_level as last_user_level, u2.user_rank as last_user_rank\n\tFROM " . BB_TOPICS_WATCH . " w, " . BB_TOPICS . " t, " . BB_USERS . " u, " . BB_FORUMS . " f, " . BB_POSTS . " p, " . BB_USERS . " u2\n\tWHERE w.topic_id = t.topic_id\n\t\tAND t.forum_id = f.forum_id\n\t\tAND p.post_id = t.topic_last_post_id\n\t\tAND p.poster_id = u2.user_id\n\t\tAND t.topic_poster = u.user_id\n\t\tAND w.user_id = {$user_id}\n\tGROUP BY t.topic_last_post_time DESC\n\tLIMIT {$start}, {$per_page}";
    if (!($result = DB()->sql_query($sql))) {
        bb_die('Could not obtain watch topic information #3');
    }
    $watch = DB()->sql_fetchrowset($result);
    if ($watch) {
        for ($i = 0; $i < count($watch); $i++) {
            $is_unread = is_unread($watch[$i]['topic_last_post_time'], $watch[$i]['topic_id'], $watch[$i]['forum_id']);
            $template->assign_block_vars('watch', array('ROW_CLASS' => !($i % 2) ? 'row1' : 'row2', 'POST_ID' => $watch[$i]['topic_first_post_id'], 'TOPIC_ID' => $watch[$i]['topic_id'], 'TOPIC_TITLE' => wbr(str_short($watch[$i]['topic_title'], 70)), 'FULL_TOPIC_TITLE' => wbr($watch[$i]['topic_title']), 'U_TOPIC' => TOPIC_URL . $watch[$i]['topic_id'], 'FORUM_TITLE' => wbr($watch[$i]['forum_name']), 'U_FORUM' => FORUM_URL . $watch[$i]['forum_id'], 'REPLIES' => $watch[$i]['topic_replies'], 'AUTHOR' => profile_url($watch[$i]), 'LAST_POST' => bb_date($watch[$i]['topic_last_post_time']) . '<br />' . profile_url(array('user_id' => $watch[$i]['last_user_id'], 'username' => $watch[$i]['last_username'], 'user_rank' => $watch[$i]['last_user_rank'])), 'LAST_POST_ID' => $watch[$i]['topic_last_post_id'], 'IS_UNREAD' => $is_unread, 'TOPIC_ICON' => get_topic_icon($watch[$i], $is_unread), 'PAGINATION' => $watch[$i]['topic_status'] == TOPIC_MOVED ? '' : build_topic_pagination(TOPIC_URL . $watch[$i]['topic_id'], $watch[$i]['topic_replies'], $bb_cfg['posts_per_page'])));
        }
        $template->assign_vars(array('MATCHES' => count($watch) == 1 ? sprintf($lang['FOUND_SEARCH_MATCH'], count($watch)) : sprintf($lang['FOUND_SEARCH_MATCHES'], count($watch)), 'PAGINATION' => generate_pagination(BB_ROOT . 'profile.php?mode=watch', $watch_count, $per_page, $start), 'PAGE_NUMBER' => sprintf($lang['PAGE_OF'], floor($start / $per_page) + 1, ceil($watch_count / $per_page)), 'U_PER_PAGE' => BB_ROOT . 'profile.php?mode=watch', 'PER_PAGE' => $per_page));
    }
    DB()->sql_freeresult($result);
} else {
    meta_refresh('index.php', 3);
    bb_die($lang['NO_WATCHED_TOPICS']);
}
print_page('usercp_topic_watch.tpl');
Esempio n. 10
0
            continue;
        }
        $is_sf = $f['forum_parent'];
        $forums_count++;
        $new = is_unread($f['last_post_time'], $f['last_topic_id'], $f['forum_id']) ? '_new' : '';
        $folder_image = $is_sf ? $images["icon_minipost{$new}"] : $images["forum{$new}"];
        if ($f['forum_status'] == FORUM_LOCKED) {
            $folder_image = $is_sf ? $images['icon_minipost'] : $images['forum_locked'];
        }
        if ($is_sf) {
            $template->assign_block_vars('c.f.sf', array('SF_ID' => $fid, 'SF_NAME' => $fname_html, 'SF_NEW' => $new ? ' new' : ''));
            continue;
        }
        $template->assign_block_vars('c.f', array('FORUM_FOLDER_IMG' => $folder_image, 'FORUM_ID' => $fid, 'FORUM_NAME' => $fname_html, 'FORUM_DESC' => $f['forum_desc'], 'POSTS' => commify($f['forum_posts']), 'TOPICS' => commify($f['forum_topics']), 'LAST_SF_ID' => isset($f['last_sf_id']) ? $f['last_sf_id'] : null, 'MODERATORS' => isset($moderators[$fid]) ? join(', ', $moderators[$fid]) : '', 'FORUM_FOLDER_ALT' => $new ? $lang['NEW'] : $lang['OLD']));
        if ($f['last_post_id']) {
            $template->assign_block_vars('c.f.last', array('LAST_TOPIC_ID' => $f['last_topic_id'], 'LAST_TOPIC_TIP' => $f['last_topic_title'], 'LAST_TOPIC_TITLE' => wbr(str_short($f['last_topic_title'], $last_topic_max_len)), 'LAST_POST_TIME' => bb_date($f['last_post_time'], $bb_cfg['last_post_date_format']), 'LAST_POST_USER' => profile_url(array('username' => str_short($f['last_post_username'], 15), 'user_id' => $f['last_post_user_id'], 'user_rank' => $f['last_post_user_rank']))));
        }
    }
}
$template->assign_vars(array('SHOW_FORUMS' => $forums_count, 'SHOW_MAP' => isset($_GET['map']) && !IS_GUEST, 'PAGE_TITLE' => $viewcat ? $cat_title_html[$viewcat] : $lang['HOME'], 'NO_FORUMS_MSG' => $only_new ? $lang['NO_NEW_POSTS'] : $lang['NO_FORUMS'], 'TOTAL_TOPICS' => sprintf($lang['POSTED_TOPICS_TOTAL'], $stats['topiccount']), 'TOTAL_POSTS' => sprintf($lang['POSTED_ARTICLES_TOTAL'], $stats['postcount']), 'TOTAL_USERS' => sprintf($lang['REGISTERED_USERS_TOTAL'], $stats['usercount']), 'TOTAL_GENDER' => $bb_cfg['gender'] ? sprintf($lang['USERS_TOTAL_GENDER'], $stats['male'], $stats['female'], $stats['unselect']) : '', 'NEWEST_USER' => sprintf($lang['NEWEST_USER'], profile_url($stats['newestuser'])), 'TORRENTS_STAT' => $bb_cfg['tor_stats'] ? sprintf($lang['TORRENTS_STAT'], $stats['torrentcount'], humn_size($stats['size'])) : '', 'PEERS_STAT' => $bb_cfg['tor_stats'] ? sprintf($lang['PEERS_STAT'], $stats['peers'], $stats['seeders'], $stats['leechers']) : '', 'SPEED_STAT' => $bb_cfg['tor_stats'] ? sprintf($lang['SPEED_STAT'], humn_size($stats['speed']) . '/s') : '', 'SHOW_MOD_INDEX' => $bb_cfg['show_mod_index'], 'FORUM_IMG' => $images['forum'], 'FORUM_NEW_IMG' => $images['forum_new'], 'FORUM_LOCKED_IMG' => $images['forum_locked'], 'SHOW_ONLY_NEW_MENU' => true, 'ONLY_NEW_POSTS_ON' => $only_new == ONLY_NEW_POSTS, 'ONLY_NEW_TOPICS_ON' => $only_new == ONLY_NEW_TOPICS, 'U_SEARCH_NEW' => "search.php?new=1", 'U_SEARCH_SELF_BY_MY' => "search.php?uid={$userdata['user_id']}&amp;o=1", 'U_SEARCH_LATEST' => "search.php?search_id=latest", 'U_SEARCH_UNANSWERED' => "search.php?search_id=unanswered", 'SHOW_LAST_TOPIC' => $show_last_topic));
// Set tpl vars for bt_userdata
if ($bb_cfg['bt_show_dl_stat_on_index'] && !IS_GUEST) {
    show_bt_userdata($userdata['user_id']);
}
// Latest news
if ($bb_cfg['show_latest_news']) {
    if (!($latest_news = $datastore->get('latest_news'))) {
        $datastore->update('latest_news');
        $latest_news = $datastore->get('latest_news');
    }
    $template->assign_vars(array('SHOW_LATEST_NEWS' => true));
Esempio n. 11
0
    }
    if (!$topic_rows) {
        bb_die($lang['NO_SEARCH_MATCH']);
    }
    // Output page
    foreach ($items_display as $row_num => $item_id) {
        if (empty($topic_rows[$item_id])) {
            continue;
            // if topic was deleted but still remain in search results
        }
        $topic = $topic_rows[$item_id];
        $topic_id = $topic['topic_id'];
        $forum_id = $topic['forum_id'];
        $is_unread = is_unread($topic['topic_last_post_time'], $topic_id, $forum_id);
        $moved = $topic['topic_status'] == TOPIC_MOVED;
        $template->assign_block_vars('t', array('ROW_NUM' => $row_num, 'FORUM_ID' => $forum_id, 'FORUM_NAME' => $forum_name_html[$forum_id], 'TOPIC_ID' => $topic_id, 'HREF_TOPIC_ID' => $moved ? $topic['topic_moved_id'] : $topic['topic_id'], 'TOPIC_TITLE' => wbr($topic['topic_title']), 'IS_UNREAD' => $is_unread, 'TOPIC_ICON' => get_topic_icon($topic, $is_unread), 'PAGINATION' => $moved ? '' : build_topic_pagination(TOPIC_URL . $topic_id, $topic['topic_replies'], $bb_cfg['posts_per_page']), 'REPLIES' => $topic['topic_replies'], 'ATTACH' => $topic['topic_attachment'], 'STATUS' => $topic['topic_status'], 'TYPE' => $topic['topic_type'], 'DL' => $topic['topic_dl_type'] == TOPIC_DL_TYPE_DL, 'POLL' => $topic['topic_vote'], 'DL_CLASS' => isset($topic['dl_status']) ? $dl_link_css[$topic['dl_status']] : '', 'TOPIC_AUTHOR' => profile_url(array('username' => $topic['first_username'], 'user_id' => $topic['first_user_id'], 'user_rank' => $topic['first_user_rank'])), 'LAST_POSTER' => profile_url(array('username' => $topic['last_username'], 'user_id' => $topic['last_user_id'], 'user_rank' => $topic['last_user_rank'])), 'LAST_POST_TIME' => bb_date($topic['topic_last_post_time']), 'LAST_POST_ID' => $topic['topic_last_post_id']));
    }
}
if ($items_display) {
    $items_count = count($items_found);
    $pages = !$items_count ? 1 : ceil($items_count / $per_page);
    $url = $search_id ? url_arg($url, 'id', $search_id) : $url;
    generate_pagination($url, $items_count, $per_page, $start);
    $template->assign_vars(array('PAGE_TITLE' => $lang['SEARCH'], 'SEARCH_MATCHES' => $items_count ? sprintf($lang['FOUND_SEARCH_MATCHES'], $items_count) : '', 'DISPLAY_AS_POSTS' => $post_mode, 'DL_CONTROLS' => $dl_search && $dl_user_id_val == $user_id, 'DL_ACTION' => 'dl_list.php', 'MY_POSTS' => !$post_mode && $my_posts && $user->id == $poster_id_val));
    print_page('search_results.tpl');
}
redirect(basename(__FILE__));
// ----------------------------------------------------------- //
// Functions
//
function fetch_search_ids($sql, $search_type = SEARCH_TYPE_POST)