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

    <?php
!defined('M_COM') && exit('No Permission');
load_cache('mchannels,mprojects,mtconfigs,grouptypes,fieldwords,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(empty($mtran['toid'])){
	m_guide(30);
	$toidsarr = array();
	foreach($mprojects as $k => $v){
		if($v['smchid'] == $curuser->infos['mchid']) $toidsarr[$v['tmchid']] = $mchannels[$v['tmchid']]['cname'];
	}
	tabheader(lang('need member type alter'),'mtrans',"?action=mtrans");
	trbasic(lang('member current type'),'',$mchannels[$curuser->infos['mchid']]['cname'],'');
	trbasic(lang('alter target type'),'mtran[toid]',makeoption($toidsarr),'select');
	tabfooter('submit',lang('need'));
}else{
	foreach($mprojects as $k => $v){
		if($v['ename'] == $curuser->infos['mchid'].'_'.$mtran['toid']) $mproject = $v;
	}
	if(empty($mproject)) mcmessage(lang('you cannot need pointed member type !'));
	//分析是已有更新申请还是新的申请
	$isold = false;
	if($minfos = $db->fetch_one("SELECT * FROM {$tblprefix}mtrans WHERE mid='$memberid' AND checked='0'")){
		$isold = true;
		$minfos = array_merge($minfos,$minfos['contentarr'] ? unserialize($minfos['contentarr']) : array());
		unset($minfos['contentarr']);
	}else{
		$curuser->detail_data();
		$minfos = &$curuser->infos;
	}
	$mchid = $mtran['toid'];
	$mfields = read_cache('mfields',$mchid);
	if(!submitcheck('bmtran')){
		m_guide(30);
		$a_field = new cls_field;
		$submitstr = '';
		tabheader(lang('member type need option'),'mtrans',"?action=mtrans",2,1,1);
		trhidden('mtran[toid]',$mtran['toid']);
		trbasic(lang('need time'),'',date("Y-m-d H:m",$isold ? $minfos['createdate'] : $timestamp),'');
		trbasic(lang('alter state'),'',$isold ? lang('wait check') : lang('add alter'),'');
		trbasic(lang('remark'),'mtran[remark]',empty($minfos['remark']) ? '' : $minfos['remark'],'textarea');
		$isold && trbasic(lang('administrator reply'),'',$minfos['reply'],'textarea');
		tabfooter();
		tabheader(lang('input member 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('bmtran');
		check_submit_func($submitstr);
	}else{
		//自动审核则将记录直接写入会员库,否则写入mtrans
		//记录最好保存下来,但是内容清空。
		$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();
					mcmessage($a_field->error,M_REFERER);
				}
				if($mproject['autocheck']){
					$curuser->updatefield($k,$a_field->newvalue,$field['tbl']);
				}else{
					$minfosnew[$k] = $a_field->newvalue;//收集资料。
				}
			}
		}
		unset($a_field);
		$omchid = $curuser->infos['mchid'];//原模型
		if($mproject['autocheck']){
			$curuser->updatefield('mchid',$mchid,'main');
			//在更新会员资料之前一定要将原模型表中的记录删除,插入新模型表中的记录。
			$db->query("DELETE FROM {$tblprefix}members_$omchid WHERE mid='$memberid'");
			$db->query("INSERT INTO {$tblprefix}members_$mchid SET mid='$memberid'");
			$curuser->gtidbymchid();//检查因模型改变是否有不生效会员组
			$curuser->updatedb();
			if($isold){
				$db->query("UPDATE {$tblprefix}mtrans SET toid='$mchid',fromid='$omchid',contentarr='',remark='',reply='',checked='1' WHERE mid='$memberid' AND checked='0'");
			}else{
				$db->query("INSERT INTO {$tblprefix}mtrans SET mid='$memberid',mname='".$curuser->infos['mname']."',toid='$mchid',fromid='$omchid',contentarr='',remark='',checked='1',createdate='$timestamp'");
			}
		}else{
			$mtran['remark'] = trim($mtran['remark']);
			$mtran['contentarr'] = empty($minfosnew) ? '' : addslashes(serialize($minfosnew));
			if($isold){
				$db->query("UPDATE {$tblprefix}mtrans SET fromid='$omchid',toid='$mchid',contentarr='$mtran[contentarr]',remark='$mtran[remark]' WHERE mid='$memberid' AND checked='0'");
			}else{
				$db->query("INSERT INTO {$tblprefix}mtrans SET mid='$memberid',mname='".$curuser->infos['mname']."',fromid='$omchid',toid='$mchid',contentarr='$mtran[contentarr]',remark='$mtran[remark]',checked='0',createdate='$timestamp'");
			}
		}
		$c_upload->saveuptotal(1);
		mcmessage($mproject['autocheck'] ? lang('member type alter finish') : lang('please wait administrator check !'),"?action=mtrans");
	}
}
?>