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

    <?
(!defined('M_COM') || !defined('M_ADMIN')) && exit('No Permission');
aheader();
load_cache('fcatalogs,fchannels,currencys,');
include_once M_ROOT."./include/upload.cls.php";
include_once M_ROOT."./include/fields.fun.php";
include_once M_ROOT."./include/fields.cls.php";
include_once M_ROOT."./include/farcedit.cls.php";
include_once M_ROOT."./include/farchive.cls.php";
include_once M_ROOT."./include/farc_static.fun.php";
if($action == 'farchiveadd' && empty($caid)){
	!checkapermission(1) && amessage(lang('no_apermission'));
	if($sid && $sid_self) amessage(lang('msite admin item !'));
	a_guide('farchiveadd0');
	$num = 4;
	$i = 0;
	tabheader(lang('add freeinfo'),'','',$num);
	foreach($fcatalogs as $caid => $fcatalog){
		$fcatalog = read_cache('fcatalog',$caid);
		if($curuser->pmsbyugids($fcatalog['ugids'])){
			if(!($i % $num)) echo "<tr align=\"center\">";
			echo "<td class=\"item2\" width=\"".(intval(100 / $num))."%\"><a href=\"?entry=farchive&action=farchiveadd&caid=$caid\">$fcatalog[title]</a></td>\n";
			$i ++;
			if(!($i % $num)) echo "</tr>\n";
		}
	}
	if($i % $num){
		while($i % $num){
			echo "<td class=\"item2\" width=\"".(intval(100 / $num))."%\"></td>\n";
			$i ++;
		}
		echo "</tr>\n";
	}
	tabfooter();
}elseif($action == 'farchiveadd' && $caid){//只有指定分类才能添加
	!checkapermission(1) && amessage(lang('no_apermission'));
	if($sid && $sid_self) amessage(lang('msite admin item !'));
	//首先分析当前会员在分类中的发布权限
	!$curuser->checkforbid('issue') && amessage(lang('userisforbid'));
	$caid = max(0,intval($caid));
	if(!$caid || !($fcatalog = read_cache('fcatalog',$caid))) amessage(lang('confirmchoose message coclass'));
	!$curuser->pmsbyugids($fcatalog['ugids']) && amessage(lang('you nohave this coclass of add permission'));
	$chid = $fcatalog['chid'];
	$fields = read_cache('ffields',$chid);
	if(!submitcheck('bfarchiveadd')){
		$a_field = new cls_field;
		a_guide('farchiveadd');
		tabheader(lang('common option'),'farchiveadd',"?entry=farchive&action=farchiveadd&caid=$caid",2,1,1);
		trbasic(lang('message coclass'),'',$fcatalog['title'],'');
		$submitstr = '';
		foreach($fields as $k => $field){
			if(!$field['isfunc']){
				$a_field->init();
				$a_field->field = read_cache('ffield',$chid,$k);
				$a_field->isadd = 1;
				$a_field->trfield('farchiveadd');
				$submitstr .= $a_field->submitstr;
			}
		}
		unset($a_field);
		tabfooter('bfarchiveadd');
		check_submit_func($submitstr);
	}else{
		$c_upload = new cls_upload;
		$fields = fields_order($fields);
		$a_field = new cls_field;
		$sqlcommon = "caid=$caid,chid='$chid',mid='$memberid',mname='".$curuser->infos['mname']."',createdate='$timestamp'";
		$sqlcustom = "";
		foreach($fields as $k => $field){
			if(!$field['isfunc']){
				$a_field->init();
				$a_field->field = read_cache('ffield',$chid,$k);
				$a_field->deal('farchiveadd');
				if(!empty($a_field->error)){
					$c_upload->rollback();
					amessage($a_field->error,"?entry=farchive&action=farchiveadd&caid=$caid");
				}
				$farchiveadd[$k] = $a_field->newvalue;
				if($field['issystem']){
					$sqlcommon .= ",$k='".$farchiveadd[$k]."'";
				}else $sqlcustom .= ($sqlcustom ? ',' : '')."$k='".$farchiveadd[$k]."'";
			}
		}
		unset($a_field);

		$db->query("INSERT INTO {$tblprefix}farchives SET $sqlcommon");
		if(!($aid = $db->insert_id())){
			amessage(lang('message add failed'), "?entry=farchive&action=farchiveadd&caid=$caid");
		}else{
			$sqlcustom = "aid=$aid".($sqlcustom ? ','.$sqlcustom : '');
			$db->query("INSERT INTO {$tblprefix}farchives_$chid SET $sqlcustom");
		}
		$c_upload->saveuptotal(1);
		//函数定段的处理及通知被动更新
		if($fcatalog['autocheck']){
			$aedit = new cls_farcedit;
			$aedit->set_aid($aid);
			$aedit->arc_check(1,1);
			unset($aedit);
		}
		adminlog(lang('add freeinfo'));
		amessage(lang('freeinfo add finish'), '?entry=farchive&action=farchiveadd&chid='.$chid);
	}
}elseif($action == 'farchivedetail' && $aid){
	!checkapermission(98) && amessage(lang('no_apermission'));
	if($sid && $sid_self) amessage(lang('msite admin item !'));
	empty($aid) && amessage(lang('confirmchoose message id'));
	$aedit = new cls_farcedit;
	$aedit->set_aid($aid);
	$aedit->basic_data();
	!$aedit->aid && mcmessage(lang('confirmchoose message id'));
	(!empty($fbd_fcaids) && in_array($aedit->archive['caid'],$fbd_fcaids)) && amessage(lang('fbd_caids'));
	$aedit->detail_data();
	$chid = $aedit->channel['chid'];
	$fcatalog = &$aedit->catalog;
	$fields = read_cache('ffields',$chid);
	$forward = empty($forward) ? M_REFERER : $forward;
	$forwardstr = '&forward='.urlencode($forward);
	if(!submitcheck('bfarchivedetail')) {
		a_guide('farchivedetail');
		tabheader(lang('state message'));
		if($fcatalog['taxprice']){
			trbasic(lang('message purchase price'),'',$fcatalog['taxprice'].$currencys[$fcatalog['taxcrid']]['cname'].' / '.($fcatalog['taxperiod'] ? $fcatalog['taxperiod'].lang('day') : lang('flong')).($fcatalog['taxperiod'] ? '  '.lang('purchase cell').':'.$fcatalog['taxperiod'].lang('day') : ''),'');
			trbasic(lang('mini purchase cell amount'),'',$fcatalog['taxmini'] ? $fcatalog['taxmini'] : lang('flong'),'');
		}
		$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 .= "&nbsp;,&nbsp;".lang('effecting message');
			$statestr .= "&nbsp;,&nbsp;".lang('start date')."&nbsp;:&nbsp;".date("Y-n-j",$aedit->archive['startdate']);
			$statestr .= "&nbsp;,&nbsp;".($aedit->archive['enddate'] ? lang('end date')."&nbsp;:&nbsp;".date("Y-n-j",$aedit->archive['enddate']) : lang('flong'));
		}else{
			$statestr .=  ",".lang('noeffect message');
		}
		trbasic(lang('message current state'),'',$statestr,'');
		tabfooter();

		$a_field = new cls_field;
		tabheader(lang('common option'),'farchivedetail',"?entry=farchive&action=farchivedetail&aid=$aid$forwardstr",2,1,1);
		trbasic(lang('message coclass'),'',$fcatalog['title'],'');
		trbasic(lang('order'),'farchivenew[vieworder]',$aedit->archive['vieworder']);
		$submitstr = '';
		foreach($fields as $k => $field){
			if(!$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{
		$aedit->updatefield('vieworder',max(0,intval($farchivenew['vieworder'])),'main');
		$c_upload = new cls_upload;	
		$fields = fields_order($fields);
		$a_field = new cls_field;
		foreach($fields as $k => $field){
			if(!$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();
					amessage($a_field->error,M_REFERER);
				}
				$aedit->updatefield($k,$a_field->newvalue,$field['issystem'] ? 'main' : 'custom');
			}
		}
		unset($a_field);

		$aedit->updatedb();
		$c_upload->saveuptotal(1);
		adminlog(lang('detail0 modify freeinfo'));
		amessage(lang('message edit finish'),$forward);
	
	}
}elseif($action == 'normaledit'){
	!checkapermission(98) && 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;
	$caid = empty($caid) ? '0' : $caid;
	$checked = isset($checked) ? $checked : '-1';
	$subject = empty($subject) ? '' : $subject;
	$mname = empty($mname) ? '' : $mname;
	$indays = empty($indays) ? 0 : max(0,intval($indays));
	$outdays = empty($outdays) ? 0 : max(0,intval($outdays));

	$filterstr = '';
	foreach(array('viewdetail','caid','checked','subject','mname','indays','outdays') as $k){
		$filterstr .= "&$k=".urlencode($$k);
	}

	$wheresql = '';
	$caid && $wheresql .= ($wheresql ? " AND " : "")."caid='$caid'";
	$checked != '-1' && $wheresql .= ($wheresql ? " AND " : "")."checked='$checked'";
	$subject && $wheresql .= ($wheresql ? " AND " : "")."subject LIKE '%".str_replace(array(' ','*'),'%',addcslashes($subject,'%_'))."%'";
	$mname && $wheresql .= ($wheresql ? " AND " : "")."mname LIKE '%".str_replace(array(' ','*'),'%',addcslashes($subject,'%_'))."%'";
	$indays && $wheresql .= ($wheresql ? " AND " : "")."createdate>'".($timestamp - 86400 * $indays)."'";
	$outdays && $wheresql .= ($wheresql ? " AND " : "")."createdate<'".($timestamp - 86400 * $outdays)."'";
	!empty($fbd_fcaids) && $wheresql .= ($wheresql ? " AND " : "")."caid NOT IN (".mimplode($fbd_fcaids).")";//管理后台禁止管理的分类
	$wheresql = $wheresql ? "WHERE $wheresql" : "";
	if(!submitcheck('barcsedit')){
		$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'),'arcsedit',"?entry=farchive&action=normaledit&page=$page");
		echo "<tbody id=\"tbodyfilter\" style=\"display: ".(empty($viewdetail) ? 'none' : '')."\">";
		trbasic(lang('belong coclass'),'caid',makeoption($caidsarr,$caid),'select');
		trbasic(lang('check message'),'',makeradio('checked',$checkedarr,$checked),'');
		trbasic(lang('search title'),'subject',$subject,'text',lang('agsearchkey'));
		trbasic(lang('search author'),'mname',$mname,'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 vieworder,aid DESC LIMIT ".(($pagetmp - 1) * $atpp).",$atpp");
			$pagetmp--;
		} while(!$db->num_rows($query) && $pagetmp);
		$itemstr = '';
		$dforwardstr = '&forward='.rawurlencode("?entry=farchive&action=normaledit$filterstr&page=$page");
		while($farchive = $db->fetch_array($query)){
			$createdatestr = date("$dateformat", $farchive['createdate']);
			$catalogstr = $fcatalogs[$farchive['caid']]['title'];
			$channelstr = $fchannels[$farchive['chid']]['cname'];
			$checkedstr = $farchive['checked'] ? 'Y' : '-';
			$arcurl = view_farcurl($farchive['aid'],$farchive['arcurl']);
			$itemstr .= "<tr><td align=\"center\" class=\"item1\" width=\"35\"><input class=\"checkbox\" type=\"checkbox\" name=\"selectid['$farchive[aid]']\" value=\"$farchive[aid]\">\n".
				"<td class=\"item2\" align=\"center\" width=\"35\">$farchive[aid]</td>\n".
				"<td class=\"item1\"><a href=\"$arcurl\" target=\"_blank\">".mhtmlspecialchars($farchive['subject'])."</a></td>\n".
				"<td align=\"center\" class=\"item2\">$catalogstr</td>\n".
				"<td align=\"center\" class=\"item1\">$channelstr</td>\n".
				"<td align=\"center\" class=\"item2\">$farchive[vieworder]</td>\n".
				"<td align=\"center\" class=\"item1\" width=\"30\">$checkedstr</td>\n".
				"<td align=\"center\" class=\"item2\" width=\"70\">$createdatestr</td>\n".
				"<td align=\"center\" class=\"item1\" width=\"30\"><a href=\"?entry=farchive&action=farchivedetail&aid=$farchive[aid]$dforwardstr\">".lang('detail')."</a></td></tr>\n";
		}
		$counts = $db->result_one("SELECT count(*) FROM {$tblprefix}farchives $wheresql");
		$multi = multi($counts,$atpp,$page,"?entry=farchive&action=normaledit$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('id'),lang('title'),lang('coclass'),lang('channel'),lang('order'),lang('check'),lang('add date'),lang('edit')));
		echo $itemstr;
		tabfooter();
		echo $multi;
		
		$staticarr = array('0' => lang('release static'),'1' => lang('create static'));
		$checkarr = array('0' => lang('uncheck'),'1' => lang('check'));
		tabheader(lang('operate item'));
		trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[delete]\" value=\"1\">&nbsp;".lang('delete message'),'','','');
		trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[check]\" value=\"1\">&nbsp;".lang('check message content'),'',makeradio('arccheck',$checkarr,'1'),'');
		trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[static]\" value=\"1\">&nbsp;".lang('message content page0 static'),'',makeradio('arcstatic',$staticarr,'1'),'');
		tabfooter('barcsedit');
	}else{
		if(empty($arcdeal) && empty($dealstr)) amessage(lang('confirmselect operate item'),"?entry=farchive&action=normaledit&page=$page$filterstr");
		if(empty($selectid) && empty($select_all)) amessage(lang('confirmselect message'),"?entry=farchive&action=normaledit&page=$page$filterstr");
		if(!empty($select_all)){
			if(empty($dealstr)){
				$dealstr = implode(',',array_keys(array_filter($arcdeal)));
			}else{
				$arcdeal = array();
				foreach(array_filter(explode(',',$dealstr)) as $k) $arcdeal[$k] = 1;
			}

			$parastr = "";
			foreach(array('arccheck','arcstatic') as $k) $parastr .= "&$k=".$$k;
			
			$selectid = array();
			$npage = empty($npage) ? 1 : $npage;
			if(empty($pages)){
				$farchivecount = $db->result_one("SELECT count(*) FROM {$tblprefix}farchives $wheresql");
				$pages = @ceil($farchivecount / $atpp);
			}
			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 vieworder,aid DESC LIMIT 0,$atpp");
				while($item = $db->fetch_array($query)){
					$selectid[] = $item['aid'];
				}
			}
		}
		(!empty($arcdeal['delete']) || !empty($arcdeal['check']) || !empty($arcdeal['caid'])) && $aedit = new cls_farcedit;
		!empty($arcdeal['static']) && $arc = new cls_farchive();
		foreach($selectid as $aid){
			if(!empty($arcdeal['delete']) || !empty($arcdeal['check']) || !empty($arcdeal['caid'])){
				$aedit->set_aid($aid);
				if(!empty($arcdeal['delete'])){
					$aedit->arc_delete();
					continue;
				}
				if(!empty($arcdeal['check'])){
					$aedit->arc_check($arccheck);
				}
				$aedit->updatedb();
				$aedit->init();
			}
			if(!empty($arcdeal['static'])){
				if(!$arcstatic){
					farc_unstatic($aid);
				}elseif($arcstatic == '1'){
					farc_static($aid);
				}
				$arc->init();
			}
		}
		unset($aedit,$arc);

		if(!empty($select_all)){
			$npage ++;
			if($npage <= $pages){
				$fromid = min($selectid);
				$transtr = '';
				$transtr .= "&select_all=1";
				$transtr .= "&pages=$pages";
				$transtr .= "&npage=$npage";
				$transtr .= "&barcsedit=1";
				$transtr .= "&fromid=$fromid";
				amessage(lang('operating')."<br>
						".lang('all')." $pages ".lang('page0').",".lang('dealing')." $npage ".lang('page0')."<br><br>
						<a href=\"?entry=farchive&action=normaledit&page=$page$filterstr\">>>".lang('pause')."</a>",
						"?entry=farchive&action=normaledit&page=$page$filterstr$transtr$parastr&dealstr=$dealstr",
						500);
			}
		}
		adminlog(lang('freeinfo admin'),lang('freeinfo list admin'));
		amessage(lang('freeinfo operate finish'),"?entry=farchive&action=normaledit&page=$page$filterstr");
	
	}
}

?>