/** * 返回子论坛的信息 * @param: $id, 论坛ID * @param: $db, 数据库的连接 * @reurn: Array * @access; public */ public static function &getSubBBS(&$db, $id) { /*{{{*/ //查询所有下级子论坛 $sub_bbs_layout_id = LayoutUtil::getLayoutInfoByParentId($db, $id); $sub_array = array(); foreach ($sub_bbs_layout_id as $sub_rows) { $sub_id = $sub_rows['id']; //注意:$sub_bbs_id是一个数组 $sub_bbs_id = array(); LayoutUtil::getChildId($db, $sub_id, $sub_bbs_id); array_push($sub_bbs_id, $sub_id); /** * 如果已经将论坛锁住,则不判断是否有新帖 */ /** * $layout_status == 0 || $layout_status is null 则为开放 * $layout_status == 1 则需要验证 * $layout_status == 2 则为关闭 */ $layout_status = LayoutUtil::getLayoutStatus($db, $sub_id); /** * 判断是否有新帖子 * 判断有新帖子的流程是: * 如果用户已经登录,则找出用户的作后动作的时间 * 如果用户没有登录,则显示没有新帖子 */ $image = 'nonewtopic.gif'; if ($layout_status == 2) { $image = 'lock.gif'; } else { if (isset($_SESSION['user'])) { if (LayoutUtil::haveNewTopic($db, $_SESSION['user']['name'], $sub_bbs_id)) { /** * 求出最后时间后,需要我们找出当前子论坛下各个子论坛的id */ $image = 'havenewtopic.gif'; } } } //求出论坛及子论坛下面的查看的人数 $view_number = LayoutUtil::getViewNumber($db, $sub_bbs_id); //求出论坛和子论坛下的所有的主题 $topic_number = LayoutUtil::getTopicNumber($db, $sub_bbs_id); //求出论坛下所有的回复数 $reply_number = LayoutUtil::getReplyNumber($db, $sub_bbs_id); //求论坛里最后发表的帖子 $temp_rows = LayoutUtil::getLastPostTopic($db, $sub_id); $last_id = $temp_rows['id']; $last_title = $temp_rows['title']; $last_time = $temp_rows['last_access_date']; $last_time = set_locale_time($last_time); $short_title = utf8_substr($last_title, 0, 10); //求版主列表的字符串 $manager_list_array = LayoutUtil::getManagerList($db, $sub_id); $manager_str = ""; foreach ($manager_list_array as $temp_rows) { $manager_str .= "<option value=" . $temp_rows['user_id'] . ">"; $manager_str .= $temp_rows['user_name'] . "</option>\n"; } $sub_array[] = array('id' => $sub_rows['id'], 'title' => $sub_rows['title'], 'content' => ConvertString(stripslashes($sub_rows['description']), ROOT_URL, IMAGE_URL . 'express/'), 'image' => $image, 'viewnumber' => $view_number, 'topic_number' => $topic_number, 'reply_number' => $reply_number, 'topicid' => $last_id, 'topic_title' => $last_title, 'short_title' => $short_title, 'last_time' => $last_time, 'managerlist' => $manager_str); } return $sub_array; }