www.gusucode.com > 08CMS空白站群系统 3.3 繁体 UTF-8 > upload/admina/fchannels.inc.php
<?php (!defined('M_COM') || !defined('M_ADMIN')) && exit('No Permission'); aheader(); !checkapermission(96) && amessage(lang('no_apermission')); if($sid && $sid_self) amessage(lang('msite admin item !')); load_cache('fchannels,mtpls,fieldwords,initfields,rprojects'); include_once M_ROOT."./include/fields.fun.php"; if($action == 'fchannelsedit') { if(!submitcheck('bfchannelsedit') && !submitcheck('bfchanneladd')) { a_guide('fchannelsedit'); tabheader(lang('channel manager'),'fchannelsedit','?entry=fchannels&action=fchannelsedit','4'); trcategory(array(lang('id'),lang('channel cname'),lang('edit'),lang('delete'))); foreach($fchannels as $k => $fchannel) { echo "<tr>". "<td class=\"item1\" width=\"30\" align=\"center\">$k</td>\n". "<td class=\"item2\"><input type=\"text\" size=\"30\" maxlength=\"30\" name=\"fchannelnew[$k][cname]\" value=\"$fchannel[cname]\"></td>\n". "<td class=\"item1\" width=\"40\" align=\"center\"><a href=\"?entry=fchannels&action=fchanneldetail&chid=$fchannel[chid]\">".lang('detail')."</a></td>\n". "<td class=\"item2\" width=\"40\" align=\"center\"><a href=\"?entry=fchannels&action=fchanneldel&chid=$fchannel[chid]\">".lang('delete')."</a></td>\n". "</tr>\n"; } tabfooter('bfchannelsedit',lang('modify')); tabheader(lang('add channel'),'fchanneladd','?entry=fchannels&action=fchannelsedit',2,0,1); trbasic(lang('channel cname'),'fchanneladd[cname]'); tabfooter('bfchanneladd',lang('add')); $submitstr = ''; $submitstr .= makesubmitstr('fchanneladd[cname]',1,0,3,30); check_submit_func($submitstr); }elseif(submitcheck('bfchannelsedit')) { !checkapermission('fchannelsedit') && amessage(lang('no_apermission')); if(isset($fchannelnew)) { foreach($fchannelnew as $k => $v) { $v['cname'] = trim(strip_tags($v['cname'])); $v['cname'] = $v['cname'] ? $v['cname'] : $fchannels[$k]['cname']; if($v['cname'] != $fchannels[$k]['cname']){ $db->query("UPDATE {$tblprefix}fchannels SET cname='$v[cname]' WHERE chid='$k'"); } } adminlog(lang('edit freeinfo channel manager list')); updatecache('fchannels'); amessage(lang('freeinfo channel edit finish'),"?entry=fchannels&action=fchannelsedit"); } }elseif(submitcheck('bfchanneladd')) { $fchanneladd['cname'] = trim(strip_tags($fchanneladd['cname'])); empty($fchanneladd['cname']) && amessage(lang('channel cname missing'),'?entry=fchannels&action=fchannelsedit'); $db->query("INSERT INTO {$tblprefix}fchannels SET cname='$fchanneladd[cname]'"); if($chid = $db->insert_id()){ $db->query("CREATE TABLE {$tblprefix}farchives_$chid ( aid mediumint(8) unsigned NOT NULL default '0', PRIMARY KEY (aid))".(mysql_get_server_info() > '4.1' ? " ENGINE=MYISAM DEFAULT CHARSET=$dbcharset" : " TYPE=MYISAM")); $db->query("INSERT INTO {$tblprefix}ffields SET ename='subject', cname='".lang('message title')."', chid='$chid', issystem='1', available='1', innertext='', length='255', datatype='text', notnull='1', mlimit='0', rpid='0'"); updatecache('ffields',$chid); updatecache('fchannels'); updatecache('btagnames'); } adminlog(lang('add freeinfo channel')); amessage(lang('freeinfo channel add finish'),"?entry=fchannels&action=fchannelsedit"); } }elseif($action == 'ffieldadd' && $chid){ if(!submitcheck('bffieldadd')){ a_guide('ffieldadd'); tabheader(lang('add')." [".$fchannels[$chid]['cname']."] ".lang('field'),'ffieldadd',"?entry=fchannels&action=ffieldadd&chid=$chid",2,0,1); $submitstr = ''; if(empty($fieldnew['datatype'])){ trbasic(lang('field type'),'fieldnew[datatype]',makeoption($datatypearr),'select'); trbasic(lang('weather func field'),'fieldnew[isfunc]',0,'radio'); tabfooter('bffieldaddpre',lang('continue')); }else{ list($fmode,$fnew,$fsave) = array('fa',true,false); include_once M_ROOT."./include/fields/$fieldnew[datatype].php"; tabfooter('bffieldadd',lang('add')); } check_submit_func($submitstr); }else{ $enamearr = $usednames['ffields']; $fields = read_cache('ffields',$chid); foreach($fields as $ename => $field){ if(!in_array($ename,$enamearr)) $enamearr[] = $ename; } $fconfigarr = array( 'errorurl' => '?entry=fchannels&action=fchanneldetail&chid='.$chid, 'enamearr' => $enamearr, 'altertable' => $tblprefix.'farchives_'.$chid, 'fieldtable' => $tblprefix.'ffields', 'sqlstr' => "chid=$chid,available='1'", ); list($fmode,$fnew,$fsave) = array('fa',true,true); include_once M_ROOT."./include/fields/$fieldnew[datatype].php"; adminlog(lang('add freeinfo channel field')); updatecache('ffields',$chid); updatecache('btagnames'); amessage(lang('field add finish'), '?entry=fchannels&action=fchanneldetail&chid='.$chid); } }elseif($action == 'fchanneldetail' && $chid) { $fchannel = $fchannels[$chid]; $fields = read_cache('ffields',$chid); if(!submitcheck('bfchanneldetail')){ a_guide('fchanneldetail'); tabheader("[".$fchannel['cname']."]".lang('field edit')." >><a href=\"?entry=fchannels&action=ffieldadd&chid=$chid\">".lang('add field')."</a>",'fchanneldetail',"?entry=fchannels&action=fchanneldetail&chid=$chid",'6'); trcategory(array(lang('delete'),lang('field cname'),lang('admin_self'),lang('order'),lang('field ename'),lang('field type'),lang('detail'))); foreach($fields as $k => $field){ fieldlist($k,$field,'fch'); } tabfooter('bfchanneldetail'); }else{ if(!empty($delete)){ foreach($delete as $id){ if(!$fields[$id]['issystem']){ $db->query("ALTER TABLE {$tblprefix}farchives_$chid DROP $id"); $db->query("DELETE FROM {$tblprefix}ffields WHERE ename='$id' AND chid='$chid'"); unset($fields[$id]); unset($fieldsnew[$id]); del_cache('ffield',$chid,$id); } } } foreach($fields as $id => $field){ $fieldsnew[$id]['cname'] = trim(strip_tags($fieldsnew[$id]['cname'])); $field['cname'] = $fieldsnew[$id]['cname'] ? $fieldsnew[$id]['cname'] : $field['cname']; $field['isadmin'] = $field['issystem'] ? '0' : (empty($fieldsnew[$id]['isadmin']) ? 0 : 1); $field['vieworder'] = max(0,intval($fieldsnew[$id]['vieworder'])); $db->query("UPDATE {$tblprefix}ffields SET cname='$field[cname]',vieworder='$field[vieworder]',isadmin='$field[isadmin]' WHERE ename='$id' AND chid='$chid'"); } adminlog(lang('detail0 modify freeinfo channel field')); updatecache('ffields',$chid); updatecache('btagnames'); amessage(lang('channel modify finish'), '?entry=fchannels&action=fchanneldetail&chid='.$chid); } } elseif($action == 'fchanneldel' && $chid) { if(empty($confirm)){ $message = lang('del_alert')."<br><br>"; $message .= lang('confirm click')."[<a href=?entry=fchannels&action=fchanneldel&chid=".$chid."&confirm=1>".lang('delete')."</a>] "; $message .= lang('giveup click')."[<a href=?entry=fchannels&action=fchannelsedit>".lang('goback')."</a>]"; amessage($message); } if($db->result_one("SELECT COUNT(*) FROM {$tblprefix}fcatalogs WHERE chid='$chid'")) { amessage(lang('channel without related coclass can delete'), '?entry=fchannels&action=fchannelsedit'); } $db->query("DROP TABLE IF EXISTS {$tblprefix}farchives_$chid"); $db->query("DELETE FROM {$tblprefix}fchannels WHERE chid='$chid'"); $db->query("DELETE FROM {$tblprefix}ffields WHERE chid='$chid'"); $fields = array_keys(read_cache('ffields',$chid)); foreach($fields as $k){ del_cache('ffield',$chid,$k); } del_cache('ffields',$chid); del_cache('fchannel',$chid); @unlink(M_ROOT.'./dynamic/mguides/free_'.$chid.'.php'); adminlog(lang('delete freeinfo channel')); updatecache('fchannels'); updatecache('btagnames'); amessage(lang('freeinfo channel delete finish'),"?entry=fchannels&action=fchannelsedit"); }elseif($action == 'fielddetail' && $chid && $fieldename){ !isset($fchannels[$chid]) && amessage(lang('confirmchoose channel'), '?entry=fchannels&action=fchannelsedit'); $field = read_cache('ffield',$chid,$fieldename); empty($field) && amessage(lang('confirmchoose field'), '?entry=fchannels&action=fchanneldetail&chid='.$chid); if(!submitcheck('bfielddetail')){ a_guide('ffielddetail'); tabheader("[".$fchannels[$chid]['cname']."] ".lang('field edit')." [$field[cname]]",'fielddetail',"?entry=fchannels&action=fielddetail&chid=$chid&fieldename=$fieldename",2,0,1); $submitstr = ''; list($fmode,$fnew,$fsave) = array('fa',false,false); include_once M_ROOT."./include/fields/$field[datatype].php"; tabfooter('bfielddetail',lang('submit')); check_submit_func($submitstr); }else{ $fconfigarr = array( 'altertable' => $tblprefix.'farchives'.$chid, 'fieldtable' => $tblprefix.'ffields', 'wherestr' => "WHERE ename='$fieldename' AND chid=$chid", ); list($fmode,$fnew,$fsave) = array('fa',false,true); include_once M_ROOT."./include/fields/$field[datatype].php"; adminlog(lang('detail0 modify freeinfo channel field')); updatecache('ffields',$chid); amessage(lang('field edit finish'),'?entry=fchannels&action=fchanneldetail&chid='.$chid); } } ?>