📄 setforum.php
字号:
<?php
!function_exists('adminmsg') && exit('Forbidden');
$basename="$admin_file?adminjob=setforum";
include_once(D_P.'data/bbscache/forumcache.php');
include_once(D_P.'data/bbscache/creditdb.php');
require_once GetLang('all');
require_once(R_P.'require/updateforum.php');
list($hidefid,$hideforum) = GetHiddenForum();
//if(If_manager){
$forumcache .= $hideforum;
//}
if (empty($action)){
$catedb=$forumdb=$subdb1=$subdb2=array();
$space=" ";
$query=$db->query("SELECT fid,fup,type,name,vieworder,forumadmin,f_type,cms FROM pw_forums WHERE cms!='1' ORDER BY vieworder");
while($forums=$db->fetch_array($query)){
if($forums['forumadmin']){
if(strpos($forums['forumadmin'],"\t")!==false){
$forums['forumadmin']=substr($forums['forumadmin'],0,strpos($forums['forumadmin'],"\t"));
}
if(substr($forums['forumadmin'],0,1)==',' && substr($forums['forumadmin'],-1)==','){
$forums['forumadmin']=substr($forums['forumadmin'],1,-1);
}
}
if($forums['type']=='category'){
$forums['space']=$space.$lang['forum_cate'];
$catedb[]=$forums;
} elseif($forums['type']=='forum'){
$forums['space']=$space.$space.$lang['forum_cate1'];
$forumdb[]=$forums;
} else{
if($forum[$forums['fup']]['type']=='forum'){
$forums['space']=$space.$space.$space.$lang['forum_cate2'];
$subdb1[]=$forums;
} else{
$forums['space']=$space.$space.$space.$space.$lang['forum_cate3'];
$subdb2[]=$forums;
}
}
}
$threaddb=array();
foreach($catedb as $cate){
$threaddb[]=$cate;
foreach($forumdb as $key2=>$forumss){
if($forumss['fup']==$cate['fid']){
$threaddb[]=$forumss;
unset($forumdb[$key2]);
foreach($subdb1 as $key3=>$sub1){
if($sub1['fup']==$forumss['fid']){
$threaddb[]=$sub1;
unset($subdb1[$key3]);
foreach($subdb2 as $key4=>$sub2){
if($sub2['fup']==$sub1['fid']){
$threaddb[]=$sub2;
unset($subdb2[$key4]);
}
}
}
}
}
}
}
$forum_L=array();
if($forumdb){
foreach($forumdb as $value){
$value['space']=$space.$space.$lang['forum_cate1'];
$forum_L[]=$value;
}
}
if($subdb1){
foreach($subdb1 as $value){
$value['space']=$space.$space.$lang['forum_cate1'];
$forum_L[]=$value;
//$db->update("UPDATE pw_forums SET fup=0 WHERE fid='$value[fid]'");
}
}
if($subdb2){
foreach($subdb2 as $value){
$value['space']=$space.$space.$lang['forum_cate1'];
$forum_L[]=$value;
//$db->update("UPDATE pw_forums SET fup=0 WHERE fid='$value[fid]'");
}
}
include PrintEot('setforum');exit;
}elseif($_POST['action']=='addforum'){
if(empty($name)){
adminmsg('setforum_empty');
}
if(!is_numeric($fup) && $forumtype!='category'){
$fupfid=$db->get_one("SELECT fid FROM pw_forums WHERE type='category' ORDER BY fid LIMIT 1");
$fup=$fupfid['fid'];
}
if($forumtype=='forum' && $forum[$fup]['type']!='category'){
$forumtype='sub';
}
$f_type = $forum[$fup]['f_type'] == 'hidden' ? 'hidden' : 'forum';
$db->update("INSERT INTO pw_forums (fup,type,name,f_type,cms,ifhide) VALUES ('".(int)$fup."', '$forumtype', '$name','$f_type','0','1')");
$fid=$db->insert_id();
$db->update("INSERT INTO pw_forumdata (fid) VALUES ('$fid')");
P_unlink(D_P.'data/bbscache/c_cache.php');
updatecache_f();
adminmsg('operate_success');
}elseif($_POST['action']=='editforum'){
$errorname='';
foreach($order as $key=>$vieworder){
if($forumadmin[$key]){
$adminarray=explode(",",$forumadmin[$key]);
$adminarray=array_unique($adminarray);
foreach($adminarray as $aid=>$value){
$adminarray[$aid]=trim($adminarray[$aid]);
$value=trim($value);
if($value){
$mb=$db->get_one("SELECT uid,username,groupid,groups FROM pw_members WHERE username='$value'");
if(!$mb['uid']){
$errorname.=$value.',';
unset($adminarray[$aid]);
}
} else{
unset($adminarray[$aid]);
}
}
$newadmin=implode(',',$adminarray);
$forumadmin[$key] && $newadmin && $newadmin=','.$newadmin.',';
} else{
$newadmin='';
}
$db->update("UPDATE pw_forums SET vieworder='$vieworder',forumadmin='$newadmin' WHERE fid='$key'");
}
P_unlink(D_P.'data/bbscache/c_cache.php');
updatecache_f();
updateadmin();
$errorname && adminmsg('user_not_exists');
adminmsg('operate_success');
}elseif($action=='delete'){
if(!$_POST['step']){
include PrintEot('setforum');exit;
}else{
if($fid==$db_recycle){
adminmsg('recycle_del');
}
@extract($db->get_one("SELECT fid,fup,type FROM pw_forums WHERE fid='$fid'"));
@extract($db->get_one("SELECT count(*) AS count FROM pw_forums WHERE fup='$fid' AND type<>'category'"));
if($count){
adminmsg('forum_havesub');
}
delforum($fid);
P_unlink(D_P.'data/bbscache/c_cache.php');
updatecache_f();
adminmsg('operate_success');
}
} elseif($action=='credit'){
$basename="$admin_file?adminjob=setforum&action=credit&fid=$fid";
$rt=$db->get_one("SELECT fid FROM pw_forums WHERE fid='$fid' AND type!='category'");
if(!$rt){
adminmsg('forum_not_exists');
}
if(!$_POST['step']){
@extract($db->get_one("SELECT * FROM pw_forumsextra WHERE fid='$fid'"));
if ($creditset){
$credit=unserialize($creditset);
foreach($credit as $key => $value){
foreach($value as $k => $val){
if($val!=='' && $key == 'rvrc' && $k != 'Reply' && $k != 'Deleterp'){
$val /= 10;
}
$val!=='' && $val = (int)$val;
$credit[$key][$k] = $val;
}
}
}
include PrintEot('setforum');exit;
} else{
foreach($creditdb as $key => $value){
foreach($value as $k => $val){
if($val!=='' && $key == 'rvrc' && $k != 'Reply' && $k != 'Deleterp'){
$val *= 10;
}
$val!=='' && $val = (int)$val;
$creditdb[$key][$k] = $val;
}
}
$creditset=$creditdb ? serialize($creditdb) : '';
$db->pw_update(
"SELECT fid FROM pw_forumsextra WHERE fid='$fid'",
"UPDATE pw_forumsextra SET creditset='$creditset' WHERE fid='$fid'",
"INSERT INTO pw_forumsextra SET creditset='$creditset',fid='$fid'"
);
if (is_array($otherfid) && is_array($otherforum)){
foreach ($otherfid as $key => $selfid){
if(!$selfid || !is_numeric($selfid) || $selfid == $fid || $forum[$selfid]['type'] == 'category'){
continue;
}
$rt = $db->get_one("SELECT fid,creditset FROM pw_forumsextra WHERE fid='$selfid'");
if ($rt['fid']){
if ($rt['creditset']){
$newcreditset = unserialize($rt['creditset']);
foreach ($newcreditset as $key => $value){
foreach ($value as $k => $val){
if ($otherforum[$key][$k]){
$newcreditset[$key][$k] = $creditdb[$key][$k];
}
}
}
$creditset = serialize($newcreditset);
$db->update("UPDATE pw_forumsextra SET creditset='$creditset' WHERE fid='$selfid'");
} else{
$newcreditset = array();
foreach ($creditdb as $key => $value){
foreach ($value as $k => $val){
if ($otherforum[$key][$k]){
$newcreditset[$key][$k] = $creditdb[$key][$k];
} else{
$newcreditset[$key][$k] = 0;
}
}
}
$creditset = serialize($newcreditset);
$db->update("UPDATE pw_forumsextra SET creditset='$creditset' WHERE fid='$selfid'");
}
} else{
$newcreditset = array();
foreach ($creditdb as $key => $value){
foreach ($value as $k => $val){
if ($otherforum[$key][$k]){
$newcreditset[$key][$k] = $creditdb[$key][$k];
} else{
$newcreditset[$key][$k] = 0;
}
}
}
$creditset = serialize($newcreditset);
$db->update("INSERT INTO pw_forumsextra SET creditset='$creditset',fid='$selfid'");
}
}
}
adminmsg('operate_success');
}
} elseif($action=='edit'){
if(!$_POST['step']){
@extract($db->get_one("SELECT f.*,fe.forumset FROM pw_forums f LEFT JOIN pw_forumsextra fe USING(fid) WHERE f.fid='$fid'"));
$forumset=unserialize($forumset);
$forumset['newtime'] /= 60;
$forumset['rvrcneed'] /= 10;
$forumset['addtpctype'] ? $addtpctype_Y='checked' : $addtpctype_N='checked';
$forumset['allowsale']!=2 ? $allowsale_Y='checked' : $allowsale_N='checked';
$forumset['allowsoft'] ? $allowsoft_Y='checked' : $allowsoft_N='checked';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -