⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setforum.php

📁 很好的一套PHP树形论坛程序
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?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="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";

	$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 + -