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

    <?php
load_cache('grouptypes,currencys,fcatalogs,fchannels');
include_once M_ROOT."./include/fields.fun.php";
include_once M_ROOT."./include/fields.cls.php";
include_once M_ROOT."./include/upload.cls.php";
include_once M_ROOT."./include/farcedit.cls.php";
!defined('M_COM') && exit('No Permission');
$aid = empty($aid) ? 0 : max(0,intval($aid));
if(!$aid){
	m_guide(14);
	$page = !empty($page) ? max(1, intval($page)) : 1;
	submitcheck('bfilter') && $page = 1;
	$viewdetail = empty($viewdetail) ? '' : $viewdetail;
	$caid = empty($caid) ? '0' : $caid;
	$checked = isset($checked) ? $checked : '-1';
	$subject = empty($subject) ? '' : $subject;
	$indays = empty($indays) ? 0 : max(0,intval($indays));
	$outdays = empty($outdays) ? 0 : max(0,intval($outdays));
	$filterstr = '';
	foreach(array('viewdetail','caid','checked','subject','indays','outdays') as $k){
		$filterstr .= "&$k=".rawurlencode($$k);
	}
	$wheresql = "WHERE mid='$memberid'";
	$caid && $wheresql .= " AND caid='$caid'";
	$checked != '-1' && $wheresql .= " AND checked='$checked'";
	$subject && $wheresql .= " AND subject LIKE '%".str_replace(array(' ','*'),'%',addcslashes($subject,'%_'))."%'";
	$indays && $wheresql .= " AND createdate>'".($timestamp - 86400 * $indays)."'";
	$outdays && $wheresql .= " AND createdate<'".($timestamp - 86400 * $outdays)."'";
	
	if(!submitcheck('bfarchivesedit')){
		$caidsarr = array('0' => lang('all coclass')) + fcaidsarr();
		$checkedarr = array('-1' => lang('nolimit'),'0' => lang('nocheck message'),'1' => lang('checked message'));
		tabheader(lang('filter0 message').viewcheck('viewdetail',$viewdetail,'tbodyfilter').'&nbsp; &nbsp; '.strbutton('bfilter','filter0'),'farchivesedit',"?action=farchivesedit&page=$page");
		echo "<tbody id=\"tbodyfilter\" style=\"display: ".(empty($viewdetail) ? 'none' : '')."\">";
		trbasic(lang('belong coclass'),'caid',makeoption($caidsarr,$caid),'select');
		trbasic(lang('check state'),'',makeradio('checked',$checkedarr,$checked),'');
		trbasic(lang('search title'),'subject',$subject,'text',lang('agsearchkey'));
		trrange(lang('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}farchives $wheresql ORDER BY aid DESC LIMIT ".(($pagetmp - 1) * $mrowpp).",$mrowpp");
			$pagetmp--;
		}while(!$db->num_rows($query) && $pagetmp);
		$itemstr = '';
		$dforwardstr = '&forward='.rawurlencode("?action=farchivesedit$filterstr&page=$page");
		while($farchive = $db->fetch_array($query)){
			$catalogstr = $fcatalogs[$farchive['caid']]['title'];
			$fcatalog = read_cache('fcatalog',$farchive['caid']);
			$orderstr = empty($fcatalog['taxcrid']) ? '-' : "<a href=\"?action=farchivesedit&deal=forder&aid=$farchive[aid]$dforwardstr\">".lang('ordering')."</a>";
			$checkedstr = $farchive['checked'] ? "Y" : '-';
			$editstr = (!$farchive['checked'] || $fcatalog['allowupdate']) ? "<a href=\"?action=farchivesedit&aid=$farchive[aid]$dforwardstr\">".lang('modify')."</a>" : '-';
			$itemstr .= "<tr><td align=\"center\" class=\"item1\" width=\"30\"><input class=\"checkbox\" type=\"checkbox\" name=\"selectid[$farchive[aid]]\" value=\"$farchive[aid]\">\n".
				"<td class=\"item2\">".mhtmlspecialchars($farchive['subject'])."</td>\n".
				"<td align=\"center\" class=\"item1\">$catalogstr</td>\n".
				"<td align=\"center\" class=\"item2\" width=\"70\">".(empty($farchive['startdate']) ? '-' : date("$dateformat",$farchive['startdate']))."</td>\n".
				"<td align=\"center\" class=\"item1\">".(empty($farchive['enddate']) ? '-' : date("$dateformat",$farchive['enddate']))."</td>\n".
				"<td align=\"center\" class=\"item2\" width=\"30\">$checkedstr</td>\n".
				"<td align=\"center\" class=\"item1\" width=\"30\">$orderstr</td>\n".
				"<td align=\"center\" class=\"item2\" width=\"30\">$editstr</td></tr>\n";
		}
		$counts = $db->result_one("SELECT count(*) FROM {$tblprefix}farchives $wheresql");
		$multi = multi($counts,$mrowpp,$page,"?action=farchivesedit$filterstr");
	
		tabheader(lang('message list')."&nbsp;&nbsp;&nbsp;&nbsp;<input class=\"checkbox\" type=\"checkbox\" name=\"select_all\" value=\"1\">&nbsp;".lang('selectallpage'),'','',10);
		trcategory(array("<input class=\"checkbox\" type=\"checkbox\" name=\"chkall\" class=\"category\" onclick=\"checkall(this.form, 'selectid', 'chkall')\">",lang('message title'),lang('message coclass'),lang('startdate'),lang('enddate'),lang('check'),lang('purchase'),lang('edit')));
		echo $itemstr;
		tabfooter();
		echo $multi;
		echo "<input class=\"button\" type=\"submit\" name=\"bfarchivesedit\" value=\"".lang('delete')."\"></form>\n";	

	}else{
		if(empty($selectid) && empty($select_all)) mcmessage(lang('confirmselect message'),"?action=farchivesedit&page=$page$filterstr");
		if(!empty($select_all)){
			$selectid = array();
			$npage = empty($npage) ? 1 : $npage;
			if(empty($pages)){
				$counts = $db->result_one("SELECT count(*) FROM {$tblprefix}farchives $wheresql");
				$pages = @ceil($counts / $mrowpp);
			}
			if($npage <= $pages){
				$fromstr = empty($fromid) ? "" : "aid<$fromid";
				$nwheresql = !$wheresql ? ($fromstr ? "WHERE $fromstr" : "") : ($wheresql.($fromstr ? " AND " : "").$fromstr);
				$query = $db->query("SELECT aid FROM {$tblprefix}farchives $nwheresql ORDER BY aid DESC LIMIT 0,$mrowpp");
				while($item = $db->fetch_array($query)){
					$selectid[] = $item['aid'];
				}
			}
		}

		$aedit = new cls_farcedit;
		foreach($selectid as $aid){
			$aedit->set_aid($aid);
			$aedit->arc_delete(1);
			$aedit->init();
		}
		unset($aedit);
		if(!empty($select_all)){
			$npage ++;
			if($npage <= $pages){
				$fromid = min($selectid);
				$transtr = '';
				$transtr .= "&select_all=1";
				$transtr .= "&pages=$pages";
				$transtr .= "&npage=$npage";
				$transtr .= "&bfarchivesedit=1";
				$transtr .= "&fromid=$fromid";
				mcmessage(lang('operating')."<br>
						".lang('all')." $pages ".lang('page0').",".lang('dealing')." $npage ".lang('page0')."<br><br>
						<a href=\"?action=farchivesedit&page=$page$filterstr\">>>".lang('pause')."</a>",
						"?action=farchivesedit&page=$page$filterstr$transtr",
						500);
			}
		}
		mcmessage(lang('message operate finish'),"?action=farchivesedit&page=$page$filterstr");
	}
}elseif(empty($deal)){
	$forward = empty($forward) ? M_REFERER : $forward;
	$aedit = new cls_farcedit;
	$aedit->set_aid($aid);
	$aedit->basic_data();
	!$aedit->aid && mcmessage(lang('confirmchoose message'),$forward);
	$aedit->archive['mid'] != $memberid && mcmessage(lang('please choose yourself message'));
	$fcatalog = &$aedit->catalog;
	(!$fcatalog['allowupdate'] && $aedit->archive['checked']) && mcmessage(lang('this coclass checked message forbid update'),$forward);	
	$aedit->detail_data();
	$chid = $aedit->archive['chid'];
	$fields = read_cache('ffields',$chid);
	if(!submitcheck('bfarchivedetail')){
		tabheader(lang('common option'),'farchivedetail',"?action=farchivesedit&aid=$aid&forward=".rawurlencode($forward),2,1,1);
		trbasic(lang('belong coclass').'&nbsp;*','',$fcatalog['title'],'');
		$a_field = new cls_field;
		$submitstr = '';
		foreach($fields as $k => $field){
			if(!$field['isadmin'] && !$field['isfunc']){
				$a_field->init();
				$a_field->field = read_cache('ffield',$chid,$k);
				$a_field->oldvalue = isset($aedit->archive[$k]) ? $aedit->archive[$k] : '';
				$a_field->trfield('farchivenew');
				$submitstr .= $a_field->submitstr;
			}
		}
		unset($a_field);
		tabfooter('bfarchivedetail');
		check_submit_func($submitstr);
	}
	else{
		$c_upload = new cls_upload;	
		$fields = fields_order($fields);
		$a_field = new cls_field;
		foreach($fields as $k => $field){
			if(!$field['isadmin'] && !$field['isfunc']){
				$a_field->init();
				$a_field->field = read_cache('ffield',$chid,$k);
				$a_field->oldvalue = isset($aedit->archive[$k]) ? $aedit->archive[$k] : '';
				$a_field->deal('farchivenew');
				if(!empty($a_field->error)){
					$c_upload->rollback();
					mcmessage($a_field->error,M_REFERER);
				}
				$aedit->updatefield($k,$a_field->newvalue,$field['issystem'] ? 'main' : 'custom');
			}
		}
		unset($a_field);

		$aedit->updatedb();
		$c_upload->saveuptotal(1);
		mcmessage(lang('freeinfo edit finish'),$forward);
	}
}elseif($deal == 'forder'){
	$forward = empty($forward) ? M_REFERER : $forward;
	$forwardstr = '&forward='.rawurlencode($forward);
	$aedit = new cls_farcedit;
	$aedit->set_aid($aid);
	$aedit->basic_data();
	!$aedit->aid && mcmessage(lang('confirmchoose message'));	
	$aedit->archive['mid'] != $memberid && mcmessage(lang('please choose yourself message'));
	$fcatalog = &$aedit->catalog;
	if(!submitcheck('bforderadd') && !submitcheck('bfordersedit')){//是否已有未激活定单//是否续期
		$statestr = $aedit->archive['checked'] ? lang('message content checked') : lang('message content nocheck');
		
		if($aedit->archive['checked'] && $aedit->archive['startdate'] && (empty($aedit->archive['enddate']) || $aedit->archive['enddate'] > $timestamp)){
			$statestr .= ",".lang('effecting message');
			$statestr .= "<br>".lang('start date').":".date("Y-n-j",$aedit->archive['startdate']);
			$statestr .= ",".lang('end date').":".($aedit->archive['enddate'] ? date("Y-n-j",$aedit->archive['enddate']) : lang('flong'));
		}else{
			$statestr .=  ",".lang('noeffect message');
		}
		tabheader(lang('forder message'));
		trbasic(lang('message title').'&nbsp; /&nbsp; '.lang('coclass'),'',$aedit->archive['subject'].'&nbsp; /&nbsp; '.$fcatalog['title'],'');
		trbasic(lang('message purchase price'),'',$fcatalog['taxprice'].$currencys[$fcatalog['taxcrid']]['cname'].'&nbsp; /&nbsp; '.($fcatalog['taxperiod'] ? $fcatalog['taxperiod'].lang('day') : lang('flong')).($fcatalog['taxperiod'] ? '&nbsp; &nbsp;'.lang('purchase cell').':'.$fcatalog['taxperiod'].lang('day') : ''),'');
		trbasic(lang('mini purchase cell amount'),'',$fcatalog['taxmini'] ? $fcatalog['taxmini'] : lang('flong'),'');
		trbasic(lang('message current state'),'',$statestr,'');
		trbasic(lang('member current currency'),'',$curuser->infos['currency'.$fcatalog['taxcrid']].$currencys[$fcatalog['taxcrid']]['cname'],'');
		tabfooter();

		tabheader(lang('forder manager'),'fordersedit',"?action=farchivesedit&deal=forder&aid=$aid&forward=".rawurlencode($forward),8);
		trcategory(array(lang('delete'),lang('message content'),lang('purchase cell'),lang('purchase days'),lang('purchase currency'),lang('orders date'),lang('check')));
		$query = $db->query("SELECT o.*,a.subject,a.caid FROM {$tblprefix}forders o LEFT JOIN {$tblprefix}farchives a ON a.aid=o.aid WHERE o.aid=$aid ORDER BY o.aid DESC");
		$itemstr = '';
		while($row = $db->fetch_array($query)){
			$itemstr .= "<tr><td align=\"center\" class=\"item1\" width=\"30\"><input class=\"checkbox\" type=\"checkbox\" name=\"delete[$row[foid]]\" value=\"$row[foid]\"".($row['checked'] ? ' disabled' : '').">\n".
				"<td class=\"item2\">".$row['subject']."</td>\n".
				"<td align=\"center\" class=\"item1\" width=\"60\">".(empty($row['ordercells']) ? lang('flong') : $row['ordercells'])."</td>\n".
				"<td align=\"center\" class=\"item2\" width=\"60\">".(empty($row['orderdays']) ? lang('flong') : $row['orderdays'])."</td>\n".
				"<td align=\"center\" class=\"item1\" width=\"80\">".$row['crvalue'].$currencys[$row['crid']]['cname']."</td>\n".
				"<td align=\"center\" class=\"item2\" width=\"70\">".date("$dateformat",$row['createdate'])."</td>\n".
				"<td align=\"center\" class=\"item1\" width=\"30\">".($row['checked'] ? 'Y' : '-')."</td>\n".
				"</tr>\n";
		}
		echo $itemstr;
		tabfooter('bfordersedit',lang('delete'));

		tabheader(lang('add forder'),'forderadd',"?action=farchivesedit&deal=forder&aid=$aid&forward=".rawurlencode($forward));
		if($fcatalog['taxmini']){
			trbasic(lang('purchase cell amount'),'fordernew[ordercells]');
		}else{
			trbasic(lang('purchase cell amount'),'',lang('flong'),'');
		}
		tabfooter('bforderadd');
	}elseif(submitcheck('bforderadd')){
		($fcatalog['taxmini'] && empty($fordernew['ordercells'])) && mcmessage(lang('please setting purchase cell amount'),M_REFERER);
		if($db->result_one("SELECT COUNT(*) FROM {$tblprefix}forders WHERE aid='$aid' AND (ordercells=0 OR checked=0)")){//ordercells为0表示永久有效信息
			mcmessage(lang('dont repeat send orders'),$forward);
		}

		$fordernew['ordercells'] = $fcatalog['taxmini'] ? max($fcatalog['taxmini'],intval($fordernew['ordercells'])) : 0;
		$crvalue = empty($fcatalog['taxmini']) ? $fcatalog['taxprice'] : ($fcatalog['taxprice'] * $fordernew['ordercells']);
		$orderdays = empty($fcatalog['taxmini']) ? 0 : ($fcatalog['taxperiod'] * $fordernew['ordercells']);
		$db->query("INSERT INTO {$tblprefix}forders SET
					 aid='".$aedit->aid."', 
					 mid='".$curuser->infos['mid']."', 
					 mname='".$curuser->infos['mname']."', 
					 ordercells='".$fordernew['ordercells']."', 
					 orderdays='$orderdays',
					 crid='".$fcatalog['taxcrid']."',
					 crvalue='$crvalue',
					 createdate='$timestamp'");
		
		unset($aedit);
		mcmessage(lang('forder send finish'),$forward);
	}elseif(submitcheck('bfordersedit')){
		if(!empty($delete)){
			$db->query("DELETE FROM {$tblprefix}forders WHERE foid IN (".mimplode($delete).") AND checked=0",'SILENT');
		}
		mcmessage(lang('forder modify finish'),$forward);
	}
}elseif($deal == 'consult'){
	$forward = empty($forward) ? M_REFERER : $forward;
	$aedit = new cls_farcedit;
	$aedit->set_aid($aid);
	$aedit->basic_data();
	if(!$aedit->aid || !$aedit->archive['checked']) mcmessage(lang('confirmchoose message'),$forward);//只有已审信息才可以继续咨询
	$aedit->archive['mid'] != $memberid && mcmessage(lang('please choose yourself message'));
	$chid = $aedit->channel['chid'];
	empty($fchannels[$chid]['cumode']) && mcmessage(lang('please point consult channel'),$forward);
	if(!submitcheck('bfconsultadd')){
		tabheader(lang('consult based message'));
		trbasic(lang('consult title'),'',$aedit->archive['subject']."&nbsp;&nbsp;<a href=\"?action=farchivesedit&aid=".$aedit->archive['aid']."\">>>".lang('detail')."</a>",'');
		trbasic(lang('message coclass'),'',$fcatalogs[$aedit->archive['caid']]['title'],'');
		trbasic(lang('add time'),'',date("$dateformat $timeformat",$aedit->archive['createdate']),'');
		tabfooter();
		tabheader(lang('consult commu list'));
		trcategory(array(lang('based message'),lang('consult and reply content')));
		$query = $db->query("SELECT * FROM {$tblprefix}consults WHERE aid='$aid'");
		$i = 0;
		while($item = $db->fetch_array($query)){
			!$item['reply'] && $i ++;
			$cid = $item['cid'];
			trbasic('<b>'.$item['mname'].'</b>&nbsp; &nbsp; '.(empty($item['reply']) ? lang('consult') : lang('reply')).'&nbsp; :<br>'.date("$dateformat $timeformat",$item['createdate']),'','<br>'.$item['content'].'<br>&nbsp;','');
		}
		tabfooter();
		if($i < 10){
			tabheader(lang('continue consult'),'fconsultadd','?action=farchivesedit&deal=consult&aid='.$aid.'&forward='.rawurlencode($forward));
			trbasic(lang('consult content'),'contentadd','','btextarea');
			tabfooter('bfconsultadd');
		}else{
			tabheader(lang('continue consult'));
			trbasic(lang('consult content'),'',lang('overconsult'),'');
			tabfooter();
		}
	}elseif(submitcheck('bfconsultadd')){
		if($count = $db->result_one("SELECT COUNT(*) FROM {$tblprefix}consults WHERE aid='$aid' AND reply='0'")){
			$count > 10 && mcmessage(lang('over max amount limited'),M_REFERER);
		}
		$contentadd = empty($contentadd) ? '' : trim($contentadd);
		empty($contentadd) && mcmessage(lang('data missing'),M_REFERER);
		$aedit->channel['culength'] && $contentadd = cutstr($contentadd,$aedit->channel['culength']);
		$contentadd = mnl2br(mhtmlspecialchars($contentadd));
		$db->query("INSERT INTO {$tblprefix}consults SET
					 aid='$aid', 
					 content='$contentadd', 
					 mid='$memberid', 
					 mname='".$curuser->infos['mname']."', 
					 createdate='$timestamp'
					 ");
		$db->query("UPDATE {$tblprefix}farchives SET qstate='new' WHERE aid='$aid'");
		mcmessage(lang('add consult succeed'),$forward);
	}
}
?>