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;
     }
 }
Beispiel #2
0
 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" />&nbsp;';
         } 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 .= '&nbsp; &nbsp;';
         }
         $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;
 }