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

    <?php
(!defined('M_COM') || !defined('M_ADMIN')) && exit('No Permission');
aheader();
!checkapermission(59) && amessage(lang('no_apermission'));
if($sid && $sid_self) amessage(lang('msite admin item !'));
load_cache('cotypes');
if(!$coid || empty($cotypes[$coid])) amessage(lang('confirmchoose cotypem'));
load_cache('channels,grouptypes,permissions,vcps,rprojects,ccfields,acatalogs,aaltypes');
$catalogs = &$acatalogs;
$altypes = &$aaltypes;
include_once M_ROOT."./include/upload.cls.php";
include_once M_ROOT."./include/fields.fun.php";
include_once M_ROOT."./include/fields.cls.php";
$cotype = $cotypes[$coid];
$coclasses = read_cache('coclasses',$coid);
$cotypename = $cotype['cname'];
if($action == 'coclassadd')  {
	if(!submitcheck('bcoclassadd')) {
		$pid = empty($pid) ? 0 : $pid;
		$pchids = empty($pid) ? '' : $coclasses[$pid]['chids'];
		$patids = empty($pid) ? '' : $coclasses[$pid]['atids'];
		a_guide('coclassadd');
		$submitstr = '';
		tabheader(lang('add')."&nbsp;[$cotypename]&nbsp;".lang('coclass')."-".lang('based setting'),'coclassadd','?entry=coclass&action=coclassadd&coid='.$coid,2,1,1);
		trbasic(lang('coclass cname'),'coclassnew[title]');
		$submitstr .= makesubmitstr('coclassnew[title]',1,0,0,30);
		trbasic(lang('coclass ename'),'coclassnew[dirname]');
		$submitstr .= makesubmitstr('coclassnew[dirname]',1,'tagtype',0,30);
		trbasic(lang('parent coclass'),'coclassnew[pid]',makeoption(array('0' => lang('topic coclass')) + ccidsarr($coid), $pid),'select');
		trbasic(lang('isframe coclass').'('.lang('only include son coclass').')','coclassnew[isframe]','','radio');
		trbasic(lang('coclass smallsite'),'coclassnew[smallsite]','','text');
		if(empty($cotype['self_reg'])){
			trbasic(lang('allow add below channel archive'),'',makecheckbox('coclassnew[chids][]',chidsarr(1),!empty($pchids) ? explode(',',$pchids) : array(),5),'');
			trbasic(lang('allow add below type album'),'',makecheckbox('coclassnew[atids][]',atidsarr(),!empty($patids) ? explode(',',$patids) : array(),5),'');
			trbasic(lang('content permission project'),'coclassnew[permission]',makeoption(pmidsarr()),'select');
			trbasic(lang('purchase goods discount (%)'),'coclassnew[discount]','','text');
			$submitstr .= makesubmitstr('coclassnew[discount]',0,'number',0,5);
			trbasic(lang('issue archive award currency'),'coclassnew[awardcp]',makeoption(array('' => lang('noaward')) + $vcps['award']),'select');
			trbasic(lang('browse archive deduct currency'),'coclassnew[taxcp]',makeoption(array('' => lang('freesale')) + $vcps['tax']),'select');
			trbasic(lang('attachment operate deduct currency'),'coclassnew[ftaxcp]',makeoption(array('' => lang('freesale')) + $vcps['ftax']),'select');
			trbasic(lang('allow author sale archive'),'coclassnew[allowsale]','','radio');
			trbasic(lang('allow author sale attachment'),'coclassnew[allowfsale]','','radio');
		}
		tabfooter();
		if(!empty($cotype['self_reg'])){
			tabheader(lang('add')."&nbsp;[$cotypename]&nbsp;".lang('coclass')."-".lang('archive self_reg condition setting')."&nbsp;&nbsp;&nbsp;&nbsp;<input class=\"checkbox\" type=\"checkbox\" name=\"viewdetail\" value=\"1\" onclick=\"alterview('morefilter')\">".lang('viewdetail'));
			trrange(lang('add date'),array('coclassnew[conditions][indays]','','','&nbsp; '.lang('day before').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][outdays]','','','&nbsp; '.lang('day in')));
			trrange(lang('add date'),array('coclassnew[conditions][createdatefrom]','','','&nbsp; '.lang('start').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][createdateto]','','','&nbsp; '.lang('end')),'calendar');
			trrange(lang('clicks'),array('coclassnew[conditions][clicksfrom]','','','&nbsp; '.lang('mini').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][clicksto]','','','&nbsp; '.lang('max')));
			trrange(lang('comments'),array('coclassnew[conditions][commentsfrom]','','','&nbsp; '.lang('mini').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][commentsto]','','','&nbsp; '.lang('max')));
			trrange(lang('praise pics'),array('coclassnew[conditions][praisesfrom]','','','&nbsp; '.lang('mini').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][praisesto]','','','&nbsp; '.lang('max')));
			trrange(lang('debase pics'),array('coclassnew[conditions][debasesfrom]','','','&nbsp; '.lang('mini').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][debasesto]','','','&nbsp; '.lang('max')));
			echo "<tbody id=\"morefilter\" style=\"display: none;\">";
			trrange(lang('favorite pics'),array('coclassnew[conditions][favoritesfrom]','','','&nbsp; '.lang('mini').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][favoritesto]','','','&nbsp; '.lang('max')));
			trrange(lang('goods orders amount'),array('coclassnew[conditions][ordersfrom]','','','&nbsp; '.lang('mini').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][ordersto]','','','&nbsp; '.lang('max')));
			trrange(lang('goods price'),array('coclassnew[conditions][pricefrom]','','','&nbsp; '.lang('mini').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][priceto]','','','&nbsp; '.lang('max')));
			trrange(lang('answer0 amount'),array('coclassnew[conditions][answersfrom]','','','&nbsp; '.lang('mini').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][answersto]','','','&nbsp; '.lang('max')));
			trrange(lang('answer reward currency'),array('coclassnew[conditions][currencyfrom]','','','&nbsp; '.lang('mini').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][currencyto]','','','&nbsp; '.lang('max')));
			$closedarr = array('-1' => lang('nolimit'),'0' => lang('noclose'),'1' => lang('closed'));
			trbasic(lang('answer weather closed'),'coclassnew[conditions][closed]',makeoption($closedarr,'-1'),'select');
			$createurl = "&nbsp; >><a href=\"?entry=liststr&tclass=coclass\" target=\"_blank\">".lang('create string')."</a>";
			trbasic(lang('user define query string').$createurl,'coclassnew[conditions][sqlstr]','','textarea');
			echo "</tbody>";
			tabfooter();
		}
		$addfieldstr = "&nbsp; &nbsp; >><a href=\"?entry=cotypes&action=ccfieldsedit\">".lang('iscustom coclass field').'</a>';
		tabheader(lang('add')."&nbsp;[$cotypename]&nbsp;".lang('coclass')."-".lang('iscustom message').$addfieldstr);
		$a_field = new cls_field;
		foreach($ccfields as $field){
			$a_field->init();
			$a_field->field = $field;
			$a_field->isadd = 1;
			$a_field->trfield('coclassnew');
			$submitstr .= $a_field->submitstr;
		}
		tabfooter('bcoclassadd',lang('add'));
		check_submit_func($submitstr);
	}else{
		if(!$coclassnew['title'] || !$coclassnew['dirname']){
			amessage(lang('coclass data missing'),'history.go(-1)');
		}
		if(preg_match("/[^a-zA-Z_0-9]+/",$coclassnew['dirname'])){
			amessage(lang('coclass ename illegal'),'history.go(-1)');
		}
		$coclassnew['dirname'] = strtolower($coclassnew['dirname']);
		$enamearr = array('archives','freeinfos','rsscache');
		foreach($catalogs as $caid => $catalog){
			$enamearr[] = $catalog['dirname'];
		}
		foreach($cotypes as $k => $v){
			$arr = read_cache('coclasses',$k);
			foreach($arr as $k1 => $v1){
				$enamearr[] = $v1['dirname'];
			}
		}
		if(in_array($coclassnew['dirname'], $enamearr)){
			amessage(lang('coclass ename repeat'),'history.go(-1)');
		}
		$coclassnew['level'] = $coclassnew['pid'] ? ($coclasses[$coclassnew['pid']]['level'] + 1) : 0;
		$coclassnew['smallsite'] = strtolower(trim($coclassnew['smallsite']));
		$coclassnew['smallsite'] .= !ereg("/$",$coclassnew['smallsite']) ? '/' : '';
		$coclassnew['smallsite'] = (!eregi("http://",$coclassnew['smallsite']) || eregi($hosturl,$coclassnew['smallsite'])) ? '' : $coclassnew['smallsite'];
		$sqlstr0 = "title='$coclassnew[title]',dirname='$coclassnew[dirname]',isframe='$coclassnew[isframe]',smallsite='$coclassnew[smallsite]',level='$coclassnew[level]',pid='$coclassnew[pid]',";
		if(empty($cotype['self_reg'])){
			$coclassnew['chids'] = !empty($coclassnew['chids']) ? implode(',',$coclassnew['chids']) : '';
			$coclassnew['atids'] = !empty($coclassnew['atids']) ? implode(',',$coclassnew['atids']) : '';
			$coclassnew['discount'] = round(min(100,max(0,floatval($coclassnew['discount']))),2);
			$sqlstr0 .= "awardcp='$coclassnew[awardcp]',
						taxcp='$coclassnew[taxcp]',
						ftaxcp='$coclassnew[ftaxcp]',
						allowsale='$coclassnew[allowsale]',
						allowfsale='$coclassnew[allowfsale]',
						permission='$coclassnew[permission]',
						discount='$coclassnew[discount]',
						chids='$coclassnew[chids]',
						atids='$coclassnew[atids]',";
		}else{
			foreach(array('clicksfrom','commentsfrom','indays','favoritesfrom','praisesfrom','debasesfrom','ordersfrom','pricefrom','answersfrom','currencyfrom',
			'clicksto','commentsto','outdays','favoritesto','praisesto','debasesto','ordersto','priceto','answersto','currencyto',) as $v){
				if($coclassnew['conditions'][$v] == ''){
					unset($coclassnew['conditions'][$v]);
				}else{
					$coclassnew['conditions'][$v] = max(0,intval($coclassnew['conditions'][$v]));
				}
			}
			foreach(array('createdatefrom','createdateto',) as $v){
				if($coclassnew['conditions'][$v] == '' || !isdate($coclassnew['conditions'][$v])){
					unset($coclassnew['conditions'][$v]);
				}else{
					$coclassnew['conditions'][$v] = strtotime($coclassnew['conditions'][$v]);
				}
			}
			if($coclassnew['conditions']['closed'] == '-1') unset($coclassnew['conditions']['closed']);
			$coclassnew['conditions']['sqlstr'] = trim($coclassnew['conditions']['sqlstr']);
			if($coclassnew['conditions']['sqlstr'] == '') unset($coclassnew['conditions']['sqlstr']);
			if(empty($coclassnew['conditions'])) amessage(lang('please setting self_reg condition'),'history.go(-1)');
			$coclassnew['conditions'] = addslashes(serialize($coclassnew['conditions']));
			$sqlstr0 .= "conditions='$coclassnew[conditions]',";
		}
		$c_upload = new cls_upload;	
		$ccfields = fields_order($ccfields);
		$a_field = new cls_field;
		$sqlstr = "";
		foreach($ccfields as $field){
			$a_field->init();
			$a_field->field = $field;
			$a_field->deal('coclassnew');
			if(!empty($a_field->error)){
				$c_upload->rollback();
				amessage($a_field->error,'?entry=coclass&action=coclassadd&coid='.$coid);
			}
			$sqlstr .= ','.$field['ename']."='".$a_field->newvalue."'";
		}
		$c_upload->saveuptotal(1);
		unset($a_field,$c_upload);
		$db->query("INSERT INTO {$tblprefix}coclass SET 
			$sqlstr0
			coid='$coid' 
			$sqlstr
			");
		adminlog(lang('add archive coclass'));
		updatecache('coclasses',$coid);
		amessage(lang('coclass add finish'), '?entry=coclass&action=coclassedit&coid='.$coid);
	}
} 
elseif($action == 'coclassedit') {
	if(!submitcheck('bcoclassedit')) {
		$ccidsarr = array('0' => lang('nosetting'));
		a_guide('coclassedit');
		tabheader("[$cotypename]&nbsp;".lang('coclass manager')."&nbsp; &nbsp; >><a href=\"?entry=coclass&action=coclassadd&coid=$coid\">".lang('add coclass')."</a>",'coclassedit','?entry=coclass&action=coclassedit&coid='.$coid,8);
		trcategory(array("<input class=\"checkbox\" type=\"checkbox\" name=\"chkall\" class=\"category\" onclick=\"checkall(this.form, 'selectid', 'chkall')\">",lang('id'),lang('coclass cname'),lang('cotypem'),lang('order'),lang('son coclass'),lang('edit'),lang('delete')));
		foreach($coclasses as $ccid => $coclass){
			$space ='';
			for($i=0;$i<$coclass['level'];$i++) {
				$space .= "&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ";
			}
			echo "<tr><td align=\"center\" class=\"item1\" width=\"30\"><input class=\"checkbox\" type=\"checkbox\" name=\"selectid[$ccid]\" value=\"$ccid\"></td>\n".
				"<td class=\"item2\" align=\"center\" width=\"40\">$ccid</td>\n".
				"<td class=\"item1\">$space<input type=\"text\" name=\"coclassesnew[$ccid][title]\" value=\"".mhtmlspecialchars($coclass['title'])."\" size=\"25\" maxlength=\"30\"></td>\n".
				"<td class=\"item2\" align=\"center\" width=\"100\">$cotypename</td>\n".
				"<td class=\"item1\" align=\"center\" width=\"50\"><input type=\"text\" name=\"coclassesnew[$ccid][vieworder]\" value=\"$coclass[vieworder]\" size=\"1\"></td>\n".
				"<td class=\"item2\" align=\"center\" width=\"50\"><a href=\"?entry=coclass&action=coclassadd&coid=$coid&pid=$coclass[ccid]\">[".lang('add')."]</a></td>\n".
				"<td class=\"item1\" align=\"center\" width=\"50\"><a href=\"?entry=coclass&action=coclassdetail&coid=$coid&ccid=$coclass[ccid]\">[".lang('setting')."]</a></td>\n".
				"<td class=\"item2\" align=\"center\" width=\"50\"><a href=\"?entry=coclass&action=coclassdelete&coid=$coid&ccid=$coclass[ccid]\">[".lang('delete')."]</a></td>\n".
				"</tr>";
		}
		tabfooter();
		tabheader(lang('operate item').viewcheck('viewdetail',0,'tbodyfilter'));
		echo "<tbody id=\"tbodyfilter\" style=\"display: ".(empty($viewdetail) ? 'none' : '')."\">";
		trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[chids]\" value=\"1\">&nbsp;".lang('allow add below channel archive'),'',makecheckbox('arcchids[]',chidsarr(0),array(),5),'');
		trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[atids]\" value=\"1\">&nbsp;".lang('allow add below type album'),'',makecheckbox('arcatids[]',atidsarr(),array(),5),'');
		trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[permission]\" value=\"1\">&nbsp;".lang('content permission project'),'arcpermission',makeoption(pmidsarr()),'select');
		trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[awardcp]\" value=\"1\">&nbsp;".lang('issue archive award currency'),'arcawardcp',makeoption(array('' => lang('noaward')) + $vcps['award']),'select');
		trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[taxcp]\" value=\"1\">&nbsp;".lang('browse archive deduct currency'),'arctaxcp',makeoption(array('' => lang('freesale')) + $vcps['tax']),'select');
		trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[ftaxcp]\" value=\"1\">&nbsp;".lang('attachment operate deduct currency'),'arcftaxcp',makeoption(array('' => lang('freesale')) + $vcps['ftax']),'select');
		trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[allowsale]\" value=\"1\">&nbsp;".lang('author allow sale archive'),'arcallowsale','','radio');
		trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[allowfsale]\" value=\"1\">&nbsp;".lang('author allow sale attachment'),'arcallowfsale','','radio');
		trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[discount]\" value=\"1\">&nbsp;".lang('purchase goods discount (%)'),'arcdiscount','','text');
		echo "</tbody>";
		tabfooter('bcoclassedit');
	}else{
		if(isset($coclassesnew)){
			foreach($coclassesnew as $ccid => $coclassnew){
				$coclassnew['title'] = trim(strip_tags($coclassnew['title']));
				$coclassnew['title'] = $coclassnew['title'] ? $coclassnew['title'] : $coclasses[$ccid]['title'];
				$coclassnew['vieworder'] = max(0,intval($coclassnew['vieworder']));
				if(($coclassnew['title'] != $coclasses[$ccid]['title']) || ($coclassnew['vieworder'] != $coclasses[$ccid]['vieworder'])){
					$db->query("UPDATE {$tblprefix}coclass SET 
								title='$coclassnew[title]', 
								vieworder='$coclassnew[vieworder]' 
								WHERE ccid='$ccid'
								");
				}
			}
			adminlog(lang('edit archive coclass manager list'));
		}
		if(!empty($selectid) && !empty($arcdeal)){
			$sqlstr = '';
			if(!empty($arcdeal['chids'])){
				$arcchids = !empty($arcchids) ? implode(',',$arcchids) : '';
				$sqlstr .= ($sqlstr ? ',' : '')."chids='$arcchids'";
			}
			if(!empty($arcdeal['atids'])){
				$arcatids = !empty($arcatids) ? implode(',',$arcatids) : '';
				$sqlstr .= ($sqlstr ? ',' : '')."atids='$arcatids'";
			}
			if(!empty($arcdeal['permission'])) $sqlstr .= ($sqlstr ? ',' : '')."permission='$arcpermission'";
			if(!empty($arcdeal['awardcp'])) $sqlstr .= ($sqlstr ? ',' : '')."awardcp='$arcawardcp'";
			if(!empty($arcdeal['taxcp'])) $sqlstr .= ($sqlstr ? ',' : '')."taxcp='$arctaxcp'";
			if(!empty($arcdeal['ftaxcp'])) $sqlstr .= ($sqlstr ? ',' : '')."ftaxcp='$arcftaxcp'";
			if(!empty($arcdeal['allowsale'])) $sqlstr .= ($sqlstr ? ',' : '')."allowsale='$arcallowsale'";
			if(!empty($arcdeal['allowfsale'])) $sqlstr .= ($sqlstr ? ',' : '')."allowfsale='$arcallowfsale'";
			if(!empty($arcdeal['discount'])){
				$arcdiscount = round(min(100,max(0,floatval($arcdiscount))),2);
				$sqlstr .= ($sqlstr ? ',' : '')."discount='$arcdiscount'";
			}
			$db->query("UPDATE {$tblprefix}coclass SET $sqlstr WHERE ccid IN (".mimplode($selectid).")");
		}
		updatecache('coclasses',$coid);
		amessage(lang('coclass edit finish'), '?entry=coclass&action=coclassedit&coid='.$coid);
	}
}elseif($action =='coclassdetail' && $ccid) {
	$coclass = read_cache('coclass',$coid,$ccid);
	if(!submitcheck('bcoclassdetail')) {
		$ccidsarr = array('0' => lang('nosetting'));
		a_guide('coclassdetail');
		$submitstr = '';

		tabheader(lang('coclass')."&nbsp;[$coclass[title]]&nbsp;".lang('based setting'),'coclassdetail',"?entry=coclass&action=coclassdetail&coid=$coid&ccid=$ccid",2,1,1);
		trbasic(lang('coclass ename'),'',$coclass['dirname'],'');
		trbasic(lang('parent coclass'),'coclassnew[pid]',makeoption(array('0' => lang('topic coclass')) + ccidsarr($coid),$coclass['pid']),'select');
		trbasic(lang('isframe coclass').'('.lang('only include son coclass').')','coclassnew[isframe]',$coclass['isframe'],'radio');
		trbasic(lang('coclass smallsite'),'coclassnew[smallsite]',$coclass['smallsite'],'text');
		if(empty($cotype['self_reg'])){
			trbasic(lang('allow add below channel archive'),'',makecheckbox('coclassnew[chids][]',chidsarr(1),!empty($coclass['chids']) ? explode(',',$coclass['chids']) : array(),5),'');
			trbasic(lang('allow add below type album'),'',makecheckbox('coclassnew[atids][]',atidsarr(),!empty($coclass['atids']) ? explode(',',$coclass['atids']) : array(),5),'');
			trbasic(lang('content permission project'),'coclassnew[permission]',makeoption(pmidsarr(),$coclass['permission']),'select');
			trbasic(lang('purchase goods discount (%)'),'coclassnew[discount]',$coclass['discount'],'text');
			trbasic(lang('issue archive award currency'),'coclassnew[awardcp]',makeoption(array('' => lang('noaward')) + $vcps['award'],$coclass['awardcp']),'select');
			trbasic(lang('browse archive deduct currency'),'coclassnew[taxcp]',makeoption(array('' => lang('freesale')) + $vcps['tax'],$coclass['taxcp']),'select');
			trbasic(lang('attachment operate deduct currency'),'coclassnew[ftaxcp]',makeoption(array('' => lang('freesale')) + $vcps['ftax'],$coclass['ftaxcp']),'select');
			trbasic(lang('allow author sale archive'),'coclassnew[allowsale]',$coclass['allowsale'],'radio');
			trbasic(lang('allow author sale attachment'),'coclassnew[allowfsale]',$coclass['allowfsale'],'radio');
			$submitstr .= makesubmitstr('coclassnew[discount]',0,'number',0,5);
		}
		tabfooter();
		if(!empty($cotype['self_reg'])){
			tabheader(lang('coclass')."&nbsp;[$coclass[title]]&nbsp;".lang('archive self_reg condition setting')."&nbsp;&nbsp;&nbsp;&nbsp;<input class=\"checkbox\" type=\"checkbox\" name=\"viewdetail\" value=\"1\" onclick=\"alterview('morefilter')\">".lang('viewdetail'));
			trrange(lang('add date'),array('coclassnew[conditions][indays]',isset($coclass['conditions']['indays']) ? $coclass['conditions']['indays'] : '','','&nbsp; '.lang('day before').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][outdays]',isset($coclass['conditions']['outdays']) ? $coclass['conditions']['outdays'] : '','','&nbsp; '.lang('day in')));
			trrange(lang('add date'),array('coclassnew[conditions][createdatefrom]',isset($coclass['conditions']['createdatefrom']) ? date('Y-m-d',$coclass['conditions']['createdatefrom']) : '','','&nbsp; '.lang('start').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][createdateto]',isset($coclass['conditions']['createdateto']) ? date('Y-m-d',$coclass['conditions']['createdateto']) : '','','&nbsp; '.lang('end')),'calendar');
			trrange(lang('clicks'),array('coclassnew[conditions][clicksfrom]',isset($coclass['conditions']['clicksfrom']) ? $coclass['conditions']['clicksfrom'] : '','','&nbsp; '.lang('mini').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][clicksto]',isset($coclass['conditions']['clicksto']) ? $coclass['conditions']['clicksto'] : '','','&nbsp; '.lang('max')));
			trrange(lang('comments'),array('coclassnew[conditions][commentsfrom]',isset($coclass['conditions']['commentsfrom']) ? $coclass['conditions']['commentsfrom'] : '','','&nbsp; '.lang('mini').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][commentsto]',isset($coclass['conditions']['commentsto']) ? $coclass['conditions']['commentsto'] : '','','&nbsp; '.lang('max')));
			trrange(lang('praise pics'),array('coclassnew[conditions][praisesfrom]',isset($coclass['conditions']['praisesfrom']) ? $coclass['conditions']['praisesfrom'] : '','','&nbsp; '.lang('mini').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][praisesto]',isset($coclass['conditions']['praisesto']) ? $coclass['conditions']['praisesto'] : '','','&nbsp; '.lang('max')));
			trrange(lang('debase pics'),array('coclassnew[conditions][debasesfrom]',isset($coclass['conditions']['debasesfrom']) ? $coclass['conditions']['debasesfrom'] : '','','&nbsp; '.lang('mini').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][debasesto]',isset($coclass['conditions']['debasesto']) ? $coclass['conditions']['debasesto'] : '','','&nbsp; '.lang('max')));
			echo "<tbody id=\"morefilter\" style=\"display: none;\">";
			trrange(lang('favorite pics'),array('coclassnew[conditions][favoritesfrom]',isset($coclass['conditions']['favoritesfrom']) ? $coclass['conditions']['favoritesfrom'] : '','','&nbsp; '.lang('mini').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][favoritesto]',isset($coclass['conditions']['favoritesto']) ? $coclass['conditions']['favoritesto'] : '','','&nbsp; '.lang('max')));
			trrange(lang('goods orders amount'),array('coclassnew[conditions][ordersfrom]',isset($coclass['conditions']['ordersfrom']) ? $coclass['conditions']['ordersfrom'] : '','','&nbsp; '.lang('mini').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][ordersto]',isset($coclass['conditions']['ordersto']) ? $coclass['conditions']['ordersto'] : '','','&nbsp; '.lang('max')));
			trrange(lang('goods price'),array('coclassnew[conditions][pricefrom]',isset($coclass['conditions']['pricefrom']) ? $coclass['conditions']['pricefrom'] : '','','&nbsp; '.lang('mini').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][priceto]',isset($coclass['conditions']['priceto']) ? $coclass['conditions']['priceto'] : '','','&nbsp; '.lang('max')));
			trrange(lang('answer0 amount'),array('coclassnew[conditions][answersfrom]',isset($coclass['conditions']['answersfrom']) ? $coclass['conditions']['answersfrom'] : '','','&nbsp; '.lang('mini').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][answersto]',isset($coclass['conditions']['answersto']) ? $coclass['conditions']['answersto'] : '','','&nbsp; '.lang('max')));
			trrange(lang('answer reward currency'),array('coclassnew[conditions][currencyfrom]',isset($coclass['conditions']['currencyfrom']) ? $coclass['conditions']['currencyfrom'] : '','','&nbsp; '.lang('mini').'&nbsp; &nbsp; -&nbsp; &nbsp; '),array('coclassnew[conditions][currencyto]',isset($coclass['conditions']['currencyto']) ? $coclass['conditions']['currencyto'] : '','','&nbsp; '.lang('max')));
			$closedarr = array('-1' => lang('nolimit'),'0' => lang('noclose'),'1' => lang('closed'));
			trbasic(lang('answer weather closed'),'coclassnew[conditions][closed]',makeoption($closedarr,isset($coclass['conditions']['closed']) ? $coclass['conditions']['closed'] : '-1'),'select');
			$createurl = "&nbsp; >><a href=\"?entry=liststr&tclass=coclass\" target=\"_blank\">".lang('create string')."</a>";
			trbasic(lang('user define query string').$createurl,'coclassnew[conditions][sqlstr]',isset($coclass['conditions']['sqlstr']) ? stripslashes($coclass['conditions']['sqlstr']) : '','textarea');
			echo "</tbody>";
			tabfooter();
		}
		$a_field = new cls_field;
		$addfieldstr = "&nbsp; &nbsp; >><a href=\"?entry=cotypes&action=ccfieldsedit\">".lang('iscustom coclass field').'</a>';
		tabheader(lang('coclass')."&nbsp;[$coclass[title]]&nbsp;".lang('iscustom message').$addfieldstr);
		foreach($ccfields as $field){
			$a_field->init();
			$a_field->field = $field;
			$a_field->oldvalue = !isset($coclass[$field['ename']]) ? '' : $coclass[$field['ename']];
			$a_field->trfield('coclassnew');
			$submitstr .= $a_field->submitstr;
		}
		tabfooter('bcoclassdetail');
		check_submit_func($submitstr);
	}else{
		$sonids = array();
		$sonids = son_ids($coclasses,$ccid,$sonids);
		(in_array($coclassnew['pid'],array_merge(array($ccid),$sonids))) && amessage(lang('catas_forbidmove'), '?entry=coclass&action=coclassdetail&coid='.$coid.'&ccid='.$ccid);
		$coclassnew['smallsite'] = strtolower(trim($coclassnew['smallsite']));
		$coclassnew['smallsite'] .= !ereg("/$",$coclassnew['smallsite']) ? '/' : '';
		$coclassnew['smallsite'] = (!eregi("http://",$coclassnew['smallsite']) || eregi($hosturl,$coclassnew['smallsite'])) ? '' : $coclassnew['smallsite'];
		$coclassnew['level'] = !$coclassnew['pid'] ? 0 : $coclasses[$coclassnew['pid']]['level'] + 1;
		$sqlstr0 = "isframe='$coclassnew[isframe]',
					smallsite='$coclassnew[smallsite]',
					level='$coclassnew[level]',
					pid='$coclassnew[pid]'";
		if(empty($cotype['self_reg'])){
			$coclassnew['chids'] = !empty($coclassnew['chids']) ? implode(',',$coclassnew['chids']) : '';
			$coclassnew['atids'] = !empty($coclassnew['atids']) ? implode(',',$coclassnew['atids']) : '';
			$coclassnew['discount'] = round(min(100,max(0,floatval($coclassnew['discount']))),2);
			$sqlstr0 .= ",awardcp='$coclassnew[awardcp]',
						taxcp='$coclassnew[taxcp]',
						ftaxcp='$coclassnew[ftaxcp]',
						allowsale='$coclassnew[allowsale]',
						allowfsale='$coclassnew[allowfsale]',
						permission='$coclassnew[permission]',
						discount='$coclassnew[discount]',
						chids='$coclassnew[chids]',
						atids='$coclassnew[atids]'";
		}else{
			foreach(array('clicksfrom','commentsfrom','indays','favoritesfrom','praisesfrom','debasesfrom','ordersfrom','pricefrom','answersfrom','currencyfrom',
			'clicksto','commentsto','outdays','favoritesto','praisesto','debasesto','ordersto','priceto','answersto','currencyto',) as $v){
				if($coclassnew['conditions'][$v] == ''){
					unset($coclassnew['conditions'][$v]);
				}else{
					$coclassnew['conditions'][$v] = max(0,intval($coclassnew['conditions'][$v]));
				}
			}
			foreach(array('createdatefrom','createdateto',) as $v){
				if($coclassnew['conditions'][$v] == '' || !isdate($coclassnew['conditions'][$v])){
					unset($coclassnew['conditions'][$v]);
				}else{
					$coclassnew['conditions'][$v] = strtotime($coclassnew['conditions'][$v]);
				}
			}
			if($coclassnew['conditions']['closed'] == '-1') unset($coclassnew['conditions']['closed']);
			$coclassnew['conditions']['sqlstr'] = trim($coclassnew['conditions']['sqlstr']);
			if($coclassnew['conditions']['sqlstr'] == '') unset($coclassnew['conditions']['sqlstr']);
			if(empty($coclassnew['conditions'])) amessage(lang('please setting self_reg condition'),'?entry=coclass&action=coclassdetail&coid='.$coid.'&ccid='.$ccid);
			$coclassnew['conditions'] = addslashes(serialize($coclassnew['conditions']));
			$sqlstr0 .= ",conditions='$coclassnew[conditions]'";
		}
		$c_upload = new cls_upload;	
		$ccfields = fields_order($ccfields);
		$a_field = new cls_field;
		$sqlstr = "";
		foreach($ccfields as $field){
			$a_field->init();
			$a_field->field = $field;
			$a_field->oldvalue = !isset($coclass[$field['ename']]) ? '' : $coclass[$field['ename']];
			$a_field->deal('coclassnew');
			if(!empty($a_field->error)){
				$c_upload->rollback();
				amessage($a_field->error,"?entry=coclass&action=coclassdetail&coid=$coid&ccid=$ccid");
			}
			$sqlstr .= ','.$field['ename']."='".$a_field->newvalue."'";
		}
		$c_upload->saveuptotal(1);
		unset($a_field,$c_upload);

		$leveldiff = $coclassnew['level'] - $coclass['level'];
		foreach($sonids as $sonid){
			$db->query("UPDATE {$tblprefix}coclass SET level=level+".$leveldiff." WHERE ccid='$sonid'");
		}

		$db->query("UPDATE {$tblprefix}coclass SET $sqlstr0 $sqlstr WHERE ccid='$ccid'");
		adminlog(lang('detail0 modify archive coclass'));
		updatecache('coclasses',$coid);
		amessage(lang('coclass setting finish'),'?entry=coclass&action=coclassedit&coid='.$coid);
	}

}elseif($action == 'coclassdelete' && $ccid) {
	if($db->result_one("SELECT COUNT(*) FROM {$tblprefix}coclass WHERE pid='$ccid'")) {
		amessage(lang('coclass without son coclass can delete'), '?entry=coclass&action=coclassedit&coid='.$coid);
	}
	$db->query("UPDATE {$tblprefix}archives SET cotype$coid=0 WHERE cotype$coid='$ccid'",'SILENT');//将该分类的信息从主文档中删除
	$sids = array_keys($subsites);
	$sids[] = 0;
	$query = $db->query("SELECT cnid,ename FROM {$tblprefix}cnodes ORDER BY cnid");
	while($row = $db->fetch_array($query)){
		parse_str($row['ename'],$idsarr);
		if(!empty($idsarr["ccid$coid"]) && $idsarr["ccid$coid"] == $ccid){
			$db->query("DELETE FROM {$tblprefix}cnodes WHERE cnid='$row[cnid]'");
			foreach($sids as $k) del_cache('cnode',$row['ename'],'',$k);
		}
	}
	foreach($sids as $k) updatecache('cnodes','',$k);
	$db->query("DELETE FROM {$tblprefix}coclass WHERE ccid='$ccid'");
	del_cache('coclass',$coid,$ccid);
	adminlog(lang('delete archive coclass'));
	updatecache('coclasses',$coid);
	amessage(lang('coclass delete finish'), '?entry=coclass&action=coclassedit&coid='.$coid);

}
?>