<?php !defined('DEBUG') AND exit('Access Denied.'); $action = param(1); // hook thread_start.php // 发表主题帖 | create new thread if($action == 'create') { // hook thread_create_get_post.php user_login_check(); if($method == 'GET') { // hook thread_create_get_start.php $fid = param(2, 0); $forum = $fid ? forum_read($fid) : array(); $forumlist_allowthread = forum_list_access_filter($forumlist, $gid, 'allowthread'); $forumarr = xn_json_encode(arrlist_key_values($forumlist_allowthread, 'fid', 'name')); if(empty($forumlist_allowthread)) { message(-1, lang('user_group_insufficient_privilege')); } $header['title'] = lang('create_thread'); $header['mobile_title'] = $fid ? $forum['name'] : ''; $header['mobile_linke'] = url("forum-$fid"); // hook thread_create_get_end.php include _include(APP_PATH.'view/htm/post.htm'); } else { // hook thread_create_thread_start.php include XIUNOPHP_PATH.'xn_html_safe.func.php'; $fid = param('fid', 0); $forum = forum_read($fid); empty($forum) AND message('fid', lang('forum_not_exists')); $r = forum_access_user($fid, $gid, 'allowthread'); !$r AND message(-1, lang('user_group_insufficient_privilege')); $subject = htmlspecialchars(param('subject', '', FALSE)); empty($subject) AND message('subject', lang('please_input_subject')); xn_strlen($subject) > 128 AND message('subject', lang('subject_length_over_limit', array('maxlength'=>128))); $message = param('message', '', FALSE); empty($message) AND message('message', lang('please_input_message')); $doctype = param('doctype', 0); $doctype > 10 AND message(-1, lang('doc_type_not_supported')); xn_strlen($message) > 2028000 AND message('message', lang('message_too_long')); $thread = array ( 'fid'=>$fid, 'uid'=>$uid, 'sid'=>$sid, 'subject'=>$subject, 'message'=>$message, 'time'=>$time, 'longip'=>$longip, 'doctype'=>$doctype, ); // hook thread_create_thread_before.php $tid = thread_create($thread, $pid); $pid === FALSE AND message(-1, lang('create_post_failed')); $tid === FALSE AND message(-1, lang('create_thread_failed')); // hook thread_create_thread_end.php message(0, lang('create_thread_sucessfully')); } // 帖子详情 | post detail } else { // thread-{tid}-{page}-{keyword}.htm $tid = param(1, 0); $page = param(2, 1); $keyword = param(3); $pagesize = $conf['postlist_pagesize']; //$pagesize = 10; //$page == 1 AND $pagesize++; // hook thread_info_start.php $thread = thread_read($tid); empty($thread) AND message(-1, lang('thread_not_exists'));; $fid = $thread['fid']; $forum = forum_read($fid); empty($forum) AND message(3, lang('forum_not_exists')); $postlist = post_find_by_tid($tid, $page, $pagesize); empty($postlist) AND message(4, lang('post_not_exists')); if($page == 1) { empty($postlist[$thread['firstpid']]) AND message(-1, lang('data_malformation')); $first = $postlist[$thread['firstpid']]; unset($postlist[$thread['firstpid']]); $attachlist = $imagelist = $filelist = array(); // 如果是大站,可以用单独的点击服务,减少 db 压力 // if request is huge, separate it from mysql server thread_inc_views($tid); } else { $first = post_read($thread['firstpid']); } $keywordurl = ''; if($keyword) { $thread['subject'] = post_highlight_keyword($thread['subject'], $keyword); //$first['message'] = post_highlight_keyword($first['subject']); $keywordurl = "-$keyword"; } $allowpost = forum_access_user($fid, $gid, 'allowpost') ? 1 : 0; $allowupdate = forum_access_mod($fid, $gid, 'allowupdate') ? 1 : 0; $allowdelete = forum_access_mod($fid, $gid, 'allowdelete') ? 1 : 0; forum_access_user($fid, $gid, 'allowread') OR message(-1, lang('user_group_insufficient_privilege')); $pagination = pagination(url("thread-$tid-{page}$keywordurl"), $thread['posts'] + 1, $page, $pagesize); $header['title'] = $thread['subject'].'-'.$forum['name'].'-'.$conf['sitename']; //$header['mobile_title'] = lang('thread_detail'); $header['mobile_title'] = $forum['name'];; $header['mobile_link'] = url("forum-$fid"); $header['keywords'] = ''; $header['description'] = $thread['subject']; $_SESSION['fid'] = $fid; // hook thread_info_end.php include _include(APP_PATH.'plugin/z_doc/view/htm/doc.htm'); } // hook thread_end.php ?>