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

📄 index.php

📁 php论坛源码论坛软件系统亦称电子公告板(BBS)系统
💻 PHP
字号:
<?php
!function_exists('readover') && exit('Forbidden');
$wind_in='medal';
include_once(D_P.'data/bbscache/md_config.php');
include_once(D_P.'data/bbscache/medaldb.php');
!$md_ifopen && Showmsg('medal_close');

$userdb = $db->get_one("SELECT medals FROM pw_members WHERE uid='$winduid'");
if($userdb['medals']){
	$userdb['medals'] = explode(',',$userdb['medals']);
} else{
	$userdb['medals'] = '';
}
InitGP(array('action'));

if(!$action){
	if($userdb['medals']){
		$ifunset = 0;
		foreach($userdb['medals'] as $key=>$val){
			if(!array_key_exists($val,$_MEDALDB)){
				unset($userdb['medals'][$key]);
				$ifunset = 1;
			}
		}
		if($ifunset){
			$newmedals = implode(',',$userdb['medals']);
			$db->update("UPDATE pw_members SET medals='$newmedals' WHERE uid='$winduid'");
			!$newmedals && updatemedal_list();
		}
	}
	require_once PrintHack('index');footer();
} elseif($action=='list'){
	$uids = substr(readover(D_P.'data/bbscache/medals_list.php'),12);
	InitGP(array('page'));
	require_once(R_P.'require/forum.php');
	(!is_numeric($page) || $page < 1) && $page = 1;
	$limit = "LIMIT ".($page-1)*$db_perpage.",$db_perpage";
	$rt    = $db->get_one("SELECT COUNT(*) AS sum FROM pw_members WHERE uid IN($uids)");
	$pages = numofpage($rt['sum'],$page,ceil($rt['sum']/$db_perpage),"$basename&action=list&");

	$listdb=array();
	$query = $db->query("SELECT uid,username,medals FROM pw_members WHERE uid IN($uids) ORDER BY uid $limit");
	while($rt = $db->fetch_array($query)){
		$medals='';
		$md_a = explode(',',$rt['medals']);
		foreach($md_a as $key=>$value){
			if($value){
				$medals.="<img src=\"$imgpath/medal/{$_MEDALDB[$value][picurl]}\" alt=\"{$_MEDALDB[$value][name]}\"> ";
			}
		}
		$rt['medals'] = $medals;
		$listdb[] = $rt;
	}
	require_once PrintHack('index');footer();
} elseif($action=='award'){
	if(strpos($md_groups,",$groupid,")===false){
		Showmsg('medal_groupright');
	}
	if(!$_POST['step']){
		require_once PrintHack('index');footer();
	} elseif($_POST['step']=="2"){
		InitGP(array('pwuser','reason','medal','type','timelimit'));
		$rt = $db->get_one("SELECT uid,username,medals FROM pw_members WHERE username='$pwuser'");
		if(!$rt){
			$errorname = Char_cv($pwuser);
			Showmsg('user_not_exists');
		}
		Add_S($rt);
		!$reason && Showmsg('medal_noreason');
		$medals = '';
		$medal  = (int)$medal;
		!$medal && Showmsg('medal_nomedal');
		$reason = Char_cv($reason);
		$timelimit = (int)$timelimit;

		require_once(R_P.'require/msg.php');
		if($type==1){
			if($rt['medals'] && strpos(",$rt[medals],",",$medal,")!==false){
				Showmsg('medal_alreadyhave');
			} elseif($rt['medals']){
				$medals="$rt[medals],$medal";
			} else{
				$medals=$medal;
			}
			if($md_ifmsg){
				$message=array(
					$pwuser,
					$winduid,
					'metal_add',
					$timestamp,
					"metal_add_content",
					'',
					$windid
				);
				writenewmsg($message,1);
			}
		} else{
			if(!$rt['medals'] || strpos(",$rt[medals],",",$medal,")===false){
				Showmsg('medal_none');
			} else{
				$medals=substr(str_replace(",$medal,",',',",$rt[medals],"),1,-1);
			}
			if($md_ifmsg){
				$message=array(
					$pwuser,
					$winduid,
					'metal_cancel',
					$timestamp,
					"metal_cancel_content",
					'',
					$windid
				);
				writenewmsg($message,1);
			}
			$timelimit=0;
			$db->update("UPDATE pw_medalslogs SET state='1' WHERE awardee='$pwuser' AND level='$medal'");
		}
		$medals==',' && $medals='';
		$db->update("UPDATE pw_members SET medals='$medals' WHERE uid='$rt[uid]'");
		$db->update("INSERT INTO pw_medalslogs(awardee,awarder,awardtime,timelimit,level,action,why) VALUES('$pwuser','$windid','$timestamp','$timelimit','$medal','$type','$reason')");
		updatemedal_list();
		refreshto("$basename&action=list",'operate_success');
	}
} elseif($action=='log'){
	if(!$_GET['job']){
		InitGP(array('page'));
		require_once(R_P.'require/forum.php');
		(!is_numeric($page) || $page < 1) && $page = 1;
		$limit = "LIMIT ".($page-1)*$db_perpage.",$db_perpage";
		$rt    = $db->get_one("SELECT COUNT(*) AS sum FROM pw_medalslogs");
		$pages = numofpage($rt['sum'],$page,ceil($rt['sum']/$db_perpage),"$basename&action=log&");

		$logdb = array();
		$query = $db->query("SELECT * FROM pw_medalslogs ORDER BY id DESC $limit");
		while($rt = $db->fetch_array($query)){
			$rt['awardtime'] = get_date($rt['awardtime']);
			$logdb[] = $rt;
		}
		require_once PrintHack('index');footer();
	} elseif($_GET['job']=='del'){
		$groupid != '3' && Showmsg('medal_dellog');
		$id = (int)GetGP('id');
		$rt = $db->get_one("SELECT id,state,action,timelimit FROM pw_medalslogs WHERE id='$id'");
		if($rt['action']==1 && $rt['state']==0 && $rt['timelimit']>0){
			Showmsg('medallog_del_error');
		}
		$db->update("DELETE FROM pw_medalslogs WHERE id='$id'");
		refreshto("$basename&action=log",'operate_success');
	}
}

function updatemedal_list(){
	global $db;
	$query   = $db->query("SELECT uid,medals FROM pw_members WHERE medals!=''");
	$medaldb = '<?php die;?>0';
	while($rt=$db->fetch_array($query)){
		if(str_replace(',','',$rt['medals'])){
			$medaldb .= ','.$rt['uid'];
		}
	}
	writeover(D_P.'data/bbscache/medals_list.php',$medaldb);
}
?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -