ead['posts'] / $conf['comment_pagesize']); $thread['tag_fmt'] = $thread['tag'] ? xn_json_decode($thread['tag']) : ''; // 权限判断 $thread['allowupdate'] = ($uid == $thread['uid']) || forum_access_mod($thread['fid'], $gid, 'allowupdate'); $thread['allowdelete'] = (group_access($gid, 'allowuserdelete') and $uid == $thread['uid']) || forum_access_mod($thread['fid'], $gid, 'allowdelete'); $thread['allowtop'] = forum_access_mod($thread['fid'], $gid, 'allowtop'); $thread = well_thread_safe_info($thread); } function well_thread_format_last_date(&$thread) { if ($thread['last_date'] != $thread['create_date']) { $thread['last_date_fmt'] = humandate($thread['last_date']); } else { $thread['create_date_fmt'] = humandate($thread['create_date']); } } // 对 $threadlist 权限过滤 function well_thread_list_access_filter(&$threadlist, $gid) { global $forumlist; if (empty($threadlist)) return NULL; foreach ($threadlist as $tid => $thread) { if (empty($forumlist[$thread['fid']]['accesson'])) continue; if ($thread['sticky'] > 0) continue; if (!forum_access_user($thread['fid'], $gid, 'allowread')) { unset($threadlist[$tid]); } } } function well_thread_safe_info($thread) { unset($thread['userip'], $thread['user']['threads'], $thread['user']['posts'], $thread['user']['credits'], $thread['user']['golds'], $thread['user']['money']); empty($thread['user']) || $thread['user'] = user_safe_info($thread['user']); return $thread; } // 过滤安全数据 function well_thread_filter(&$val) { unset($val['userip'], $val['fid'], $val['flagid'], $val['type'], $val['user'], $val['create_date']); } //------------------------ 其他方法 ------------------------ // 集合主题tid,统一拉取,避免多次查询thread表 function thread_unified_pull($arr) { global $gid, $fid; $stickylist = array_value($arr, 'stickylist', array()); $tidlist = array_value($arr, 'tidlist', array()); //$fid = array_value($arr, 'fid'); // 合并过滤空数组 //$tidlist = array_filter($stickylist + $tidlist); $tidarrlist = $tidlist = $stickylist + $tidlist; // 版块自定义 list($flaglist, $flagtids) = flag_thread_by_fid($fid); empty($flagtids) || $tidarrlist += $flagtids; unset($flagtids); // 在这之前合并所有二维数组 tid值为键/array('tid值' => tid值) $tidarr = empty($tidarrlist) ? array() : arrlist_values($tidarrlist, 'tid'); // 在这之前使用array_merge()前合并所有一维数组 tid/array(1,2,3) if (empty($tidarr)) return NULL; $tidarr = array_unique($tidarr); // 主题相关统一遍历后再归类 $arrlist = well_thread_find($tidarr, count($tidarr)); // 过滤没有权限访问的主题 / filter no permission thread well_thread_list_access_filter($arrlist, $gid); $threadlist = array(); foreach ($arrlist as $_tid => &$_thread) { $_thread = well_thread_safe_info($_thread); // 归类列表数据 isset($tidlist[$_thread['tid']]) and $threadlist[$_tid] = $_thread; // flag thread if (!empty($flaglist)) { foreach ($flaglist as $key => $val) { if (isset($val['tids']) && in_array($_thread['tid'], $val['tids'])) { $flaglist[$key]['list'][array_search($_thread['tid'], $val['tids'])] = $_thread; ksort($flaglist[$key]['list']); } } } } // 按之前tidlist排序 $threadlist = array2_sort_key($threadlist, $tidlist, 'tid'); unset($arrlist, $tidlist); $arr = array('threadlist' => $threadlist, 'flaglist' => $flaglist); return $arr; } // read.php 详情页其他主题调用,集合tid统一拉取数据,最后归类 function thread_other_pull($thread) { global $forumlist, $gid; $fid = array_value($thread, 'fid'); $forum = array_value($forumlist, $fid); if (empty($forum)) return NULL; //$tid = array_value($thread, 'tid'); //$tag_fmt = array_value($thread, 'tag_fmt'); $arrlist = array(); $tidlist = array(); // 版块自定义 list($flaglist, $flagtids) = flag_thread_by_fid($fid); empty($flagtids) || $tidlist += $flagtids; unset($flagtids); // 在这之前合并所有二维数组 tid值为键/array('tid值' => tid值) $tidarr = empty($tidlist) ? array() : arrlist_values($tidlist, 'tid'); // 在这之前使用array_merge()前合并所有一维数组 tid/array(1,2,3) if (empty($tidarr)) return NULL; $tidarr = array_unique($tidarr); // 主题相关统一遍历后再归类 $threadlist = well_thread_find($tidarr, count($tidarr)); // 过滤没有权限访问的主题 / filter no permission thread well_thread_list_access_filter($threadlist, $gid); foreach ($threadlist as &$_thread) { $_thread = well_thread_safe_info($_thread); // flag thread if (!empty($flaglist)) { foreach ($flaglist as $key => $val) { if (isset($val['tids']) && in_array($_thread['tid'], $val['tids'])) { $flaglist[$key]['list'][array_search($_thread['tid'], $val['tids'])] = $_thread; ksort($flaglist[$key]['list']); } } } } unset($threadlist); if (!empty($flaglist)) { foreach ($flaglist as &$val) { $i = 0; if (!isset($val['list'])) continue; foreach ($val['list'] as &$v) { ++$i; $v['i'] = $i; } } $arrlist['flaglist'] = $flaglist; unset($flaglist); } return $arrlist; } //--------------------------cache-------------------------- // 已格式化 从缓存中读取,避免重复从数据库取数据 function well_thread_read_cache($tid) { global $conf; $key = 'website_thread_' . $tid; static $cache = array(); // 用静态变量只能在当前 request 生命周期缓存,跨进程需要再加一层缓存:redis/memcached/xcache/apc if (isset($cache[$key])) return $cache[$key]; if ('mysql' == $conf['cache']['type']) { $r = well_thread_read($tid); } else { $r = cache_get($key); if (NULL === $r) { $r = well_thread_read($tid); $r and cache_set($key, $r, 1800); } } $cache[$key] = $r ? $r : NULL; return $cache[$key]; } ?>
Error[2]: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time, File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 307
File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 307, ini_set(session.name , well_sid)
File: /www/wwwroot/roclinux.cn/tmp/index.inc.php, Line: 20, sess_start()
File: /www/wwwroot/roclinux.cn/index.php, Line: 29, include(/www/wwwroot/roclinux.cn/tmp/index.inc.php)
Error[2]: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time, File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 308
File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 308, ini_set(session.use_cookies , 1)
File: /www/wwwroot/roclinux.cn/tmp/index.inc.php, Line: 20, sess_start()
File: /www/wwwroot/roclinux.cn/index.php, Line: 29, include(/www/wwwroot/roclinux.cn/tmp/index.inc.php)
Error[2]: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time, File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 309
File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 309, ini_set(session.use_only_cookies , 1)
File: /www/wwwroot/roclinux.cn/tmp/index.inc.php, Line: 20, sess_start()
File: /www/wwwroot/roclinux.cn/index.php, Line: 29, include(/www/wwwroot/roclinux.cn/tmp/index.inc.php)
Error[2]: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time, File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 310
File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 310, ini_set(session.cookie_domain , )
File: /www/wwwroot/roclinux.cn/tmp/index.inc.php, Line: 20, sess_start()
File: /www/wwwroot/roclinux.cn/index.php, Line: 29, include(/www/wwwroot/roclinux.cn/tmp/index.inc.php)
Error[2]: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time, File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 312
File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 312, ini_set(session.cookie_path , /)
File: /www/wwwroot/roclinux.cn/tmp/index.inc.php, Line: 20, sess_start()
File: /www/wwwroot/roclinux.cn/index.php, Line: 29, include(/www/wwwroot/roclinux.cn/tmp/index.inc.php)
Error[2]: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time, File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 314
File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 314, ini_set(session.cookie_secure , )
File: /www/wwwroot/roclinux.cn/tmp/index.inc.php, Line: 20, sess_start()
File: /www/wwwroot/roclinux.cn/index.php, Line: 29, include(/www/wwwroot/roclinux.cn/tmp/index.inc.php)
Error[2]: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time, File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 315
File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 315, ini_set(session.cookie_lifetime , 8640000)
File: /www/wwwroot/roclinux.cn/tmp/index.inc.php, Line: 20, sess_start()
File: /www/wwwroot/roclinux.cn/index.php, Line: 29, include(/www/wwwroot/roclinux.cn/tmp/index.inc.php)
Error[2]: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time, File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 317
File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 317, ini_set(session.cookie_httponly , 1)
File: /www/wwwroot/roclinux.cn/tmp/index.inc.php, Line: 20, sess_start()
File: /www/wwwroot/roclinux.cn/index.php, Line: 29, include(/www/wwwroot/roclinux.cn/tmp/index.inc.php)
Error[2]: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time, File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 319
File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 319, ini_set(session.gc_maxlifetime , 3600)
File: /www/wwwroot/roclinux.cn/tmp/index.inc.php, Line: 20, sess_start()
File: /www/wwwroot/roclinux.cn/index.php, Line: 29, include(/www/wwwroot/roclinux.cn/tmp/index.inc.php)
Error[2]: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time, File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 321
File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 321, ini_set(session.gc_probability , 1)
File: /www/wwwroot/roclinux.cn/tmp/index.inc.php, Line: 20, sess_start()
File: /www/wwwroot/roclinux.cn/index.php, Line: 29, include(/www/wwwroot/roclinux.cn/tmp/index.inc.php)
Error[2]: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time, File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 323
File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 323, ini_set(session.gc_divisor , 1000)
File: /www/wwwroot/roclinux.cn/tmp/index.inc.php, Line: 20, sess_start()
File: /www/wwwroot/roclinux.cn/index.php, Line: 29, include(/www/wwwroot/roclinux.cn/tmp/index.inc.php)
Error[2]: session_set_save_handler(): Cannot change save handler when headers already sent, File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 325
File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 325, session_set_save_handler(sess_open , sess_close , sess_read , sess_write , sess_destroy , sess_gc)
File: /www/wwwroot/roclinux.cn/tmp/index.inc.php, Line: 20, sess_start()
File: /www/wwwroot/roclinux.cn/index.php, Line: 29, include(/www/wwwroot/roclinux.cn/tmp/index.inc.php)
Error[2]: session_start(): Cannot start session when headers already sent, File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 332
File: /www/wwwroot/roclinux.cn/tmp/model_session.func.php, Line: 332, session_start()
File: /www/wwwroot/roclinux.cn/tmp/index.inc.php, Line: 20, sess_start()
File: /www/wwwroot/roclinux.cn/index.php, Line: 29, include(/www/wwwroot/roclinux.cn/tmp/index.inc.php)
Error[2]: Cannot modify header information - headers already sent by (output started at /www/wwwroot/roclinux.cn/tmp/model_thread.func.php:1), File: /www/wwwroot/roclinux.cn/tmp/model_user.func.php, Line: 375
File: /www/wwwroot/roclinux.cn/tmp/model_user.func.php, Line: 375, setcookie(well_token , , 1740059993 , / , , , 1)
File: /www/wwwroot/roclinux.cn/tmp/model_user.func.php, Line: 330, user_token_clear()
File: /www/wwwroot/roclinux.cn/tmp/model_user.func.php, Line: 319, user_token_get()
File: /www/wwwroot/roclinux.cn/tmp/index.inc.php, Line: 32, user_rest()
File: /www/wwwroot/roclinux.cn/index.php, Line: 29, include(/www/wwwroot/roclinux.cn/tmp/index.inc.php)
Error[2]: Cannot modify header information - headers already sent by (output started at /www/wwwroot/roclinux.cn/tmp/model_thread.func.php:1), File: /www/wwwroot/roclinux.cn/tmp/plugin_well_sitemap_route_sitemap.php, Line: 36
File: /www/wwwroot/roclinux.cn/tmp/plugin_well_sitemap_route_sitemap.php, Line: 36, header(Content-type: text/plain)
File: /www/wwwroot/roclinux.cn/tmp/index.inc.php, Line: 171, include(/www/wwwroot/roclinux.cn/tmp/plugin_well_sitemap_route_sitemap.php)
File: /www/wwwroot/roclinux.cn/index.php, Line: 29, include(/www/wwwroot/roclinux.cn/tmp/index.inc.php)
Error: Call to undefined function well_thread_find() in /www/wwwroot/roclinux.cn/tmp/plugin_well_sitemap_route_sitemap.php:44 Stack trace: #0 /www/wwwroot/roclinux.cn/tmp/index.inc.php(171): include() #1 /www/wwwroot/roclinux.cn/index.php(29): include('/www/wwwroot/ro...') #2 {main}