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')." [$cotypename] ".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')." [$cotypename] ".lang('coclass')."-".lang('archive self_reg condition setting')." <input class=\"checkbox\" type=\"checkbox\" name=\"viewdetail\" value=\"1\" onclick=\"alterview('morefilter')\">".lang('viewdetail')); trrange(lang('add date'),array('coclassnew[conditions][indays]','','',' '.lang('day before').' - '),array('coclassnew[conditions][outdays]','','',' '.lang('day in'))); trrange(lang('add date'),array('coclassnew[conditions][createdatefrom]','','',' '.lang('start').' - '),array('coclassnew[conditions][createdateto]','','',' '.lang('end')),'calendar'); trrange(lang('clicks'),array('coclassnew[conditions][clicksfrom]','','',' '.lang('mini').' - '),array('coclassnew[conditions][clicksto]','','',' '.lang('max'))); trrange(lang('comments'),array('coclassnew[conditions][commentsfrom]','','',' '.lang('mini').' - '),array('coclassnew[conditions][commentsto]','','',' '.lang('max'))); trrange(lang('praise pics'),array('coclassnew[conditions][praisesfrom]','','',' '.lang('mini').' - '),array('coclassnew[conditions][praisesto]','','',' '.lang('max'))); trrange(lang('debase pics'),array('coclassnew[conditions][debasesfrom]','','',' '.lang('mini').' - '),array('coclassnew[conditions][debasesto]','','',' '.lang('max'))); echo "<tbody id=\"morefilter\" style=\"display: none;\">"; trrange(lang('favorite pics'),array('coclassnew[conditions][favoritesfrom]','','',' '.lang('mini').' - '),array('coclassnew[conditions][favoritesto]','','',' '.lang('max'))); trrange(lang('goods orders amount'),array('coclassnew[conditions][ordersfrom]','','',' '.lang('mini').' - '),array('coclassnew[conditions][ordersto]','','',' '.lang('max'))); trrange(lang('goods price'),array('coclassnew[conditions][pricefrom]','','',' '.lang('mini').' - '),array('coclassnew[conditions][priceto]','','',' '.lang('max'))); trrange(lang('answer0 amount'),array('coclassnew[conditions][answersfrom]','','',' '.lang('mini').' - '),array('coclassnew[conditions][answersto]','','',' '.lang('max'))); trrange(lang('answer reward currency'),array('coclassnew[conditions][currencyfrom]','','',' '.lang('mini').' - '),array('coclassnew[conditions][currencyto]','','',' '.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 = " >><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 = " >><a href=\"?entry=cotypes&action=ccfieldsedit\">".lang('iscustom coclass field').'</a>'; tabheader(lang('add')." [$cotypename] ".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] ".lang('coclass manager')." >><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 .= " "; } 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\"> ".lang('allow add below channel archive'),'',makecheckbox('arcchids[]',chidsarr(0),array(),5),''); trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[atids]\" value=\"1\"> ".lang('allow add below type album'),'',makecheckbox('arcatids[]',atidsarr(),array(),5),''); trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[permission]\" value=\"1\"> ".lang('content permission project'),'arcpermission',makeoption(pmidsarr()),'select'); trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[awardcp]\" value=\"1\"> ".lang('issue archive award currency'),'arcawardcp',makeoption(array('' => lang('noaward')) + $vcps['award']),'select'); trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[taxcp]\" value=\"1\"> ".lang('browse archive deduct currency'),'arctaxcp',makeoption(array('' => lang('freesale')) + $vcps['tax']),'select'); trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[ftaxcp]\" value=\"1\"> ".lang('attachment operate deduct currency'),'arcftaxcp',makeoption(array('' => lang('freesale')) + $vcps['ftax']),'select'); trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[allowsale]\" value=\"1\"> ".lang('author allow sale archive'),'arcallowsale','','radio'); trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[allowfsale]\" value=\"1\"> ".lang('author allow sale attachment'),'arcallowfsale','','radio'); trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[discount]\" value=\"1\"> ".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')." [$coclass[title]] ".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')." [$coclass[title]] ".lang('archive self_reg condition setting')." <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'] : '','',' '.lang('day before').' - '),array('coclassnew[conditions][outdays]',isset($coclass['conditions']['outdays']) ? $coclass['conditions']['outdays'] : '','',' '.lang('day in'))); trrange(lang('add date'),array('coclassnew[conditions][createdatefrom]',isset($coclass['conditions']['createdatefrom']) ? date('Y-m-d',$coclass['conditions']['createdatefrom']) : '','',' '.lang('start').' - '),array('coclassnew[conditions][createdateto]',isset($coclass['conditions']['createdateto']) ? date('Y-m-d',$coclass['conditions']['createdateto']) : '','',' '.lang('end')),'calendar'); trrange(lang('clicks'),array('coclassnew[conditions][clicksfrom]',isset($coclass['conditions']['clicksfrom']) ? $coclass['conditions']['clicksfrom'] : '','',' '.lang('mini').' - '),array('coclassnew[conditions][clicksto]',isset($coclass['conditions']['clicksto']) ? $coclass['conditions']['clicksto'] : '','',' '.lang('max'))); trrange(lang('comments'),array('coclassnew[conditions][commentsfrom]',isset($coclass['conditions']['commentsfrom']) ? $coclass['conditions']['commentsfrom'] : '','',' '.lang('mini').' - '),array('coclassnew[conditions][commentsto]',isset($coclass['conditions']['commentsto']) ? $coclass['conditions']['commentsto'] : '','',' '.lang('max'))); trrange(lang('praise pics'),array('coclassnew[conditions][praisesfrom]',isset($coclass['conditions']['praisesfrom']) ? $coclass['conditions']['praisesfrom'] : '','',' '.lang('mini').' - '),array('coclassnew[conditions][praisesto]',isset($coclass['conditions']['praisesto']) ? $coclass['conditions']['praisesto'] : '','',' '.lang('max'))); trrange(lang('debase pics'),array('coclassnew[conditions][debasesfrom]',isset($coclass['conditions']['debasesfrom']) ? $coclass['conditions']['debasesfrom'] : '','',' '.lang('mini').' - '),array('coclassnew[conditions][debasesto]',isset($coclass['conditions']['debasesto']) ? $coclass['conditions']['debasesto'] : '','',' '.lang('max'))); echo "<tbody id=\"morefilter\" style=\"display: none;\">"; trrange(lang('favorite pics'),array('coclassnew[conditions][favoritesfrom]',isset($coclass['conditions']['favoritesfrom']) ? $coclass['conditions']['favoritesfrom'] : '','',' '.lang('mini').' - '),array('coclassnew[conditions][favoritesto]',isset($coclass['conditions']['favoritesto']) ? $coclass['conditions']['favoritesto'] : '','',' '.lang('max'))); trrange(lang('goods orders amount'),array('coclassnew[conditions][ordersfrom]',isset($coclass['conditions']['ordersfrom']) ? $coclass['conditions']['ordersfrom'] : '','',' '.lang('mini').' - '),array('coclassnew[conditions][ordersto]',isset($coclass['conditions']['ordersto']) ? $coclass['conditions']['ordersto'] : '','',' '.lang('max'))); trrange(lang('goods price'),array('coclassnew[conditions][pricefrom]',isset($coclass['conditions']['pricefrom']) ? $coclass['conditions']['pricefrom'] : '','',' '.lang('mini').' - '),array('coclassnew[conditions][priceto]',isset($coclass['conditions']['priceto']) ? $coclass['conditions']['priceto'] : '','',' '.lang('max'))); trrange(lang('answer0 amount'),array('coclassnew[conditions][answersfrom]',isset($coclass['conditions']['answersfrom']) ? $coclass['conditions']['answersfrom'] : '','',' '.lang('mini').' - '),array('coclassnew[conditions][answersto]',isset($coclass['conditions']['answersto']) ? $coclass['conditions']['answersto'] : '','',' '.lang('max'))); trrange(lang('answer reward currency'),array('coclassnew[conditions][currencyfrom]',isset($coclass['conditions']['currencyfrom']) ? $coclass['conditions']['currencyfrom'] : '','',' '.lang('mini').' - '),array('coclassnew[conditions][currencyto]',isset($coclass['conditions']['currencyto']) ? $coclass['conditions']['currencyto'] : '','',' '.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 = " >><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 = " >><a href=\"?entry=cotypes&action=ccfieldsedit\">".lang('iscustom coclass field').'</a>'; tabheader(lang('coclass')." [$coclass[title]] ".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); } ?>