www.gusucode.com > 08CMS空白站群系统 3.3 繁体 UTF-8 > upload/admina/mtrans.inc.php

    <?
(!defined('M_COM') || !defined('M_ADMIN')) && exit('No Permission');
aheader();
load_cache('mchannels,mprojects,grouptypes,currencys,rprojects');
include_once M_ROOT."./include/upload.cls.php";
include_once M_ROOT."./include/fields.fun.php";
include_once M_ROOT."./include/fields.cls.php";

if($action == 'mtransedit'){
	!checkapermission(165) && amessage(lang('no_apermission'));
	if($sid && $sid_self) amessage(lang('msite admin item !'));
	$page = !empty($page) ? max(1, intval($page)) : 1;
	submitcheck('bfilter') && $page = 1;
	$viewdetail = empty($viewdetail) ? '' : $viewdetail;
	$checked = isset($checked) ? $checked : '-1';
	$toid = empty($toid) ? 0 : max(0,intval($toid));
	$fromid = empty($fromid) ? 0 : max(0,intval($fromid));
	$mname = empty($mname) ? '' : $mname;
	$indays = empty($indays) ? 0 : max(0,intval($indays));
	$outdays = empty($outdays) ? 0 : max(0,intval($outdays));

	$wheresql = '';
	$checked != '-1' && $wheresql .= ($wheresql ? " AND " : "")."checked='$checked'";
	$toid && $wheresql .= ($wheresql ? " AND " : "")."toid='$toid'";
	$fromid && $wheresql .= ($wheresql ? " AND " : "")."fromid='$fromid'";
	$mname && $wheresql .= ($wheresql ? " AND " : "")."mname LIKE '%".str_replace(array(' ','*'),'%',addcslashes($mname,'%_'))."%'";
	$indays && $wheresql .= ($wheresql ? " AND " : "")."createdate>'".($timestamp - 86400 * $indays)."'";
	$outdays && $wheresql .= ($wheresql ? " AND " : "")."createdate<'".($timestamp - 86400 * $outdays)."'";

	$filterstr = '';
	foreach(array('viewdetail','checked','toid','fromid','mname','indays','outdays') as $k){
		$filterstr .= "&$k=".urlencode($$k);
	}
	$wheresql = $wheresql ? "WHERE ".$wheresql : "";

	if(!submitcheck('bmtransedit')){
		$checkedarr = array('-1' => lang('nolimit'),'0' => lang('nocheck alter'),'1' => lang('checked alter'));
		tabheader(lang('filter0 alter record')."&nbsp; &nbsp; <input class=\"checkbox\" type=\"checkbox\" name=\"viewdetail\" value=\"1\" onclick=\"alterview('tbodyfilter')\"".(empty($viewdetail) ? '' : ' checked').">".lang('viewdetail')
		."&nbsp; &nbsp; <input class=\"button\" type=\"submit\" name=\"bfilter\" value=\"".lang('filter0')."\">",'mtransedit',"?entry=mtrans&action=mtransedit&page=$page");
		echo "<tbody id=\"tbodyfilter\" style=\"display: ".(empty($viewdetail) ? 'none' : '')."\">";
		trbasic(lang('alter source channel'),'',makeradio('fromid',array(0 => lang('nolimit')) + mchidsarr(),$fromid),'');
		trbasic(lang('alter target channel'),'',makeradio('toid',array(0 => lang('nolimit')) + mchidsarr(),$toid),'');
		trbasic(lang('alter check state'),'',makeradio('checked',$checkedarr,$checked),'');
		trbasic(lang('search member'),'mname',$mname,'text',lang('agsearchkey'));
		trrange(lang('alter add date'),array('outdays',empty($outdays) ? '' : $outdays,'','&nbsp; '.lang('day before').'&nbsp; -&nbsp; ',5),array('indays',empty($indays) ? '' : $indays,'','&nbsp; '.lang('day in'),5));
		echo "</tbody>";
		tabfooter();

		$pagetmp = $page;
		do{
			$query = $db->query("SELECT * FROM {$tblprefix}mtrans $wheresql ORDER BY trid DESC LIMIT ".(($pagetmp - 1) * $atpp).",$atpp");
			$pagetmp--;
		} while(!$db->num_rows($query) && $pagetmp);
		$itemstr = '';
		while($row = $db->fetch_array($query)){
			$createdatestr = date("$dateformat", $row['createdate']);
			$checkstr = $row['checked'] ? 'Y' : "<input class=\"checkbox\" type=\"checkbox\" name=\"checkid[$row[trid]]\" value=\"$row[trid]\">";
			$detailstr = $row['checked'] ? '-' : "<a href=\"?entry=mtrans&action=mtrandetail&trid=$row[trid]\">".lang('detail')."</a>";
			$itemstr .= "<tr>\n".
			"<td align=\"center\" class=\"item1\" width=\"50\"><input class=\"checkbox\" type=\"checkbox\" name=\"delete[$row[trid]]\" value=\"$row[trid]\"></td>\n".
			"<td class=\"item2\">$row[mname]</td>\n".
			"<td align=\"center\" class=\"item1\">".$mchannels[$row['fromid']]['cname']."</td>\n".
			"<td align=\"center\" class=\"item2\">".$mchannels[$row['toid']]['cname']."</td>\n".
			"<td align=\"center\" class=\"item1\" width=\"50\">$checkstr</td>\n".
			"<td align=\"center\" class=\"item2\" width=\"70\">$createdatestr</td>\n".
			"<td align=\"center\" class=\"item1\" width=\"30\">$detailstr</td>\n".
			"</tr>\n";
		}
		$counts = $db->result_one("SELECT count(*) FROM {$tblprefix}mtrans $wheresql");
		$multi = multi($counts,$atpp,$page,"?entry=mtrans&action=mtransedit$filterstr");

		tabheader(lang('member channel alter list'),'','',8);
		trcategory(array("<input class=\"checkbox\" type=\"checkbox\" name=\"chkdel\" onclick=\"checkall(this.form,'delete','chkdel')\">".lang('del'),
		lang('member cname'),lang('source channel'),lang('target channel'),"<input class=\"checkbox\" type=\"checkbox\" name=\"chkcheck\" onclick=\"checkall(this.form,'checkid','chkcheck')\">".lang('check'),lang('add date'),lang('detail')));
		echo $itemstr;
		tabfooter();
		echo $multi;
		echo "<input class=\"button\" type=\"submit\" name=\"bmtransedit\" value=\"".lang('submit')."\">";
	}else{
		if(empty($delete) && empty($checkid)) amessage(lang('confirmselect alter record'),"?entry=mtrans&action=mtransedit&page=$page$filterstr");
		if(!empty($delete)){
			$db->query("DELETE FROM {$tblprefix}mtrans WHERE trid IN (".mimplode($delete).")");
		}
		if(!empty($checkid)){
			$actuser = new cls_userinfo;
			foreach($checkid as $trid){
				if(empty($delete) || !in_array($trid,$delete)){
					if($minfos = $db->fetch_one("SELECT * FROM {$tblprefix}mtrans WHERE trid='$trid' AND checked='0'")){
						$minfos = array_merge($minfos,$minfos['contentarr'] ? unserialize($minfos['contentarr']) : array());
						unset($minfos['contentarr']);
						$actuser->activeuser($minfos['mid'],2);
						$omchid = $minfos['fromid'];
						$mchid = $minfos['toid'];
						$mfields = read_cache('mfields',$mchid);
						$mfields = fields_order($mfields);
						foreach($mfields as $k => $field){
							if(!$field['issystem'] && !$field['isfunc']){
								$actuser->updatefield($k,$minfos[$k],$field['tbl']);
							}
						}
						$actuser->updatefield('mchid',$mchid,'main');
						//在更新会员资料之前一定要将原模型表中的记录删除,插入新模型表中的记录。
						$db->query("DELETE FROM {$tblprefix}members_$omchid WHERE mid='$minfos[mid]'");
						$db->query("INSERT INTO {$tblprefix}members_$mchid SET mid='$minfos[mid]'");
						$actuser->gtidbymchid();//检查因模型改变是否有不生效会员组
						$actuser->updatedb();
						$db->query("UPDATE {$tblprefix}mtrans SET contentarr='',remark='',reply='',checked='1' WHERE trid='$trid'");
						$actuser->init();
					}
				}
			}
			unset($actuser);
		}
		adminlog(lang('member channel alter admin'),lang('member channel alter list admin operate'));
		amessage(lang('member channel alter operate finish'),"?entry=mtrans&action=mtransedit&page=$page$filterstr");
	
	}
}elseif($action == 'mtrandetail' && $trid){
	if(!($minfos = $db->fetch_one("SELECT * FROM {$tblprefix}mtrans WHERE trid='$trid'"))) amessage(lang('confirmchoose alter record'),M_REFERER);
	$minfos = array_merge($minfos,$minfos['contentarr'] ? unserialize($minfos['contentarr']) : array());
	unset($minfos['contentarr']);
	$omchid = $minfos['fromid'];
	$mchid = $minfos['toid'];
	$mfields = read_cache('mfields',$mchid);
	$forward = empty($forward) ? M_REFERER : $forward;
	$forwardstr = '&forward='.rawurlencode($forward);
	if(!submitcheck('bmtrandetail')){
		a_guide('mtrandetail');
		$a_field = new cls_field;
		$submitstr = '';
		tabheader(lang('member type need option'),'mtrans',"?entry=mtrans&action=mtrandetail&trid=$trid$forwardstr",2,1,1);
		trbasic(lang('member cname'),'',$minfos['mname'],'');
		trbasic(lang('member channel alter mode1'),'',$mchannels[$omchid]['cname'].'&nbsp; ->&nbsp; '.$mchannels[$mchid]['cname'],'');
		trbasic(lang('alter need time'),'',date("Y-m-d H:m",$minfos['createdate']),'');
		trbasic(lang('alter remark'),'mtran[remark]',$minfos['remark'],'textarea');
		trbasic(lang('administrator reply'),'mtran[reply]',$minfos['reply'],'textarea');
		tabfooter();
		tabheader(lang('member alter message'));
		foreach($mfields as $k => $field){
			if(!$field['issystem'] && !$field['isfunc']){
				$a_field->init();
				$a_field->field = read_cache('mfield',$mchid,$k);
				$a_field->oldvalue = !isset($minfos[$k]) ? '' : $minfos[$k];
				$a_field->trfield('minfosnew');
				$submitstr .= $a_field->submitstr;
			}
		}
		unset($a_field);
		tabfooter('bmtrandetail');
		check_submit_func($submitstr);
	}else{
		$c_upload = new cls_upload;	
		$mfields = fields_order($mfields);
		$a_field = new cls_field;
		foreach($mfields as $k => $field){
			if(!$field['issystem'] && !$field['isfunc']){
				$a_field->init();
				$a_field->field = read_cache('mfield',$mchid,$k);
				$a_field->oldvalue = !isset($minfos[$k]) ? '' : $minfos[$k];
				$a_field->deal('minfosnew');
				if(!empty($a_field->error)){
					$c_upload->rollback();
					amessage($a_field->error,M_REFERER);
				}
				$minfosnew[$k] = $a_field->newvalue;//收集资料。
			}
		}
		unset($a_field);
		$mtran['remark'] = trim($mtran['remark']);
		$mtran['reply'] = trim($mtran['reply']);
		$mtran['contentarr'] = empty($minfosnew) ? '' : addslashes(serialize($minfosnew));
		$db->query("UPDATE {$tblprefix}mtrans SET contentarr='$mtran[contentarr]',remark='$mtran[remark]',reply='$mtran[reply]' WHERE trid='$trid'");
		$c_upload->saveuptotal(1);
		adminlog(lang('modify member channel alter'),lang('member channel alter detail modify operate'));
		amessage(lang('member channel alter record modify finish'),$forward);
	}
}
?>