public function vxJSONHomeTabSection() { if (!isset($_GET['section_id'])) { $this->vxJSONHomeTabLatest(); } else { $section_id = intval($_GET['section_id']); $_data = new stdClass(); $Node = new Node($section_id, $this->db); if ($Node->nod_id != 0) { $_data->node = new stdClass(); $_data->node->nod_id = $Node->nod_id; $_data->node->nod_name = $Node->nod_name; $_data->node->nod_title = $Node->nod_title; $_data->node->nod_title_plain = make_plaintext($Node->nod_title); } $Node = null; $sql = 'SELECT nod_id, nod_name, nod_title, nod_topics FROM babel_node WHERE nod_sid = ' . $section_id . ' ORDER BY nod_topics DESC LIMIT 8'; $rs = mysql_query($sql, $this->db); if (mysql_num_rows($rs) > 0) { $_SESSION['babel_home_tab'] = 'section:' . $_data->node->nod_id . ':' . $_data->node->nod_name; } else { $_SESSION['babel_home_tab'] = 'latest'; } $_data->boards = array(); $i = 0; while ($Node = mysql_fetch_object($rs)) { $i++; $_data->boards[$i] = new stdClass(); $_data->boards[$i]->nod_id = $Node->nod_id; $_data->boards[$i]->nod_name = $Node->nod_name; $_data->boards[$i]->nod_title = $Node->nod_title; $_data->boards[$i]->nod_title_plain = make_plaintext($Node->nod_title); $_data->boards[$i]->nod_topics = $Node->nod_topics; $_data->boards[$i]->color = rand_color(); $Node = null; } mysql_free_result($rs); $sql = 'SELECT usr_id, usr_nick, usr_gender, usr_portrait, tpc_id, tpc_title, tpc_posts, tpc_created, tpc_lasttouched, nod_id, nod_title, nod_name FROM babel_user, babel_topic, babel_node WHERE tpc_uid = usr_id AND tpc_pid = nod_id AND nod_sid = ' . $section_id . ' AND tpc_flag IN (0, 2) AND tpc_pid NOT IN ' . BABEL_NODES_POINTLESS . ' ORDER BY tpc_lasttouched DESC LIMIT 20'; $rs = mysql_query($sql, $this->db); $_data->topics = array(); $i = 0; while ($Topic = mysql_fetch_object($rs)) { $i++; $_data->topics[$i] = new stdClass(); $_data->topics[$i]->usr_id = $Topic->usr_id; $_data->topics[$i]->usr_nick = $Topic->usr_nick; $_data->topics[$i]->usr_nick_plain = make_plaintext($Topic->usr_nick); $_data->topics[$i]->usr_gender = $Topic->usr_gender; $_data->topics[$i]->usr_portrait = $Topic->usr_portrait; $_data->topics[$i]->usr_portrait_img = $Topic->usr_portrait ? CDN_IMG . 'p/' . $Topic->usr_portrait . '_n.jpg' : CDN_IMG . 'p_' . $Topic->usr_gender . '_n.gif'; $_data->topics[$i]->tpc_id = $Topic->tpc_id; $_data->topics[$i]->tpc_title = $Topic->tpc_title; $_data->topics[$i]->tpc_title_plain = make_plaintext($Topic->tpc_title); $_data->topics[$i]->tpc_posts = $Topic->tpc_posts; $_data->topics[$i]->tpc_created = $Topic->tpc_created; $_data->topics[$i]->tpc_created_relative = make_descriptive_time($Topic->tpc_created); $_data->topics[$i]->tpc_lasttouched = $Topic->tpc_lasttouched; $_data->topics[$i]->tpc_lasttouched_relative = make_descriptive_time($Topic->tpc_lasttouched); $_data->topics[$i]->nod_id = $Topic->nod_id; $_data->topics[$i]->nod_title = $Topic->nod_title; $_data->topics[$i]->nod_title_plain = make_plaintext($Topic->nod_title); $_data->topics[$i]->nod_name = $Topic->nod_name; if ($Topic->tpc_posts > 5) { $_data->topics[$i]->color = rand_color(); } else { $_data->topics[$i]->color = rand_gray(2, 4); } $Topic = null; } mysql_free_result($rs); header('Content-type: text/plain; charset=utf-8'); header('Cache-control: no-cache, must-revalidate'); if (function_exists('json_encode')) { $encoded = json_encode($_data); } else { $encoded = Zend_Json::encode($_data); } echo $encoded; } }
private function vxHomeSection($section_id, $items = 18) { $sql = "SELECT nod_id FROM babel_node WHERE nod_sid = {$section_id}"; $rs = mysql_query($sql, $this->db); $board_count = mysql_num_rows($rs); $board_ids = ''; $i = 0; while ($Board = mysql_fetch_object($rs)) { $i++; if ($i == $board_count) { $board_ids = $board_ids . $Board->nod_id; } else { $board_ids = $board_ids . $Board->nod_id . ', '; } } mysql_free_result($rs); $which = rand(1, 2); if ($which == 1) { $action = '/topic/view/'; $suffix = '.html'; $sql = "SELECT tpc_id AS itm_id, tpc_title AS itm_title, tpc_created AS itm_time, tpc_posts AS itm_items FROM babel_topic WHERE tpc_pid IN ({$board_ids}) AND tpc_flag IN (0, 2) ORDER BY rand() LIMIT {$items}"; } else { $action = '/go/'; $suffix = ''; $sql = "SELECT nod_name AS itm_id, nod_title AS itm_title, nod_lastupdated AS itm_time, nod_topics AS itm_items FROM babel_node WHERE nod_sid = {$section_id} ORDER BY rand() LIMIT {$items}"; } $rs = mysql_query($sql, $this->db); $i = 0; $o = ''; while ($Item = mysql_fetch_object($rs)) { if (time() - $Item->itm_time < 86400) { $img_star = '<img src="' . CDN_UI . 'img/icons/silk/new.png" align="absmiddle" /> '; } else { $img_star = ''; } $i++; if ($Item->itm_items > 3) { $css_color = ' color: ' . rand_color(); } else { $css_color = ' color: ' . rand_gray(2, 4); } $css_font_size = $this->vxGetItemSize($Item->itm_items); $o .= '<span class="tip_i">'; if ($i != 1) { $o .= ' '; } $o .= $img_star . '<a href="' . $action . $Item->itm_id . $suffix . '" class="var" style="font-size: ' . $css_font_size . 'px; ' . $css_color . ';">' . make_plaintext($Item->itm_title); $o .= '</a></span>'; } mysql_free_result($rs); return $o; }