www.gusucode.com > 08CMS空白站群系统 3.3 繁体 UTF-8 > upload/admina/channels.inc.php
<?php (!defined('M_COM') || !defined('M_ADMIN')) && exit('No Permission'); aheader(); load_cache('channels,fieldwords,initfields,rprojects,commus'); load_cache('mtpls',$sid); cache_merge($channels,'channels',$sid); include_once M_ROOT."./include/fields.fun.php"; include_once M_ROOT."./include/commu.fun.php"; if($action == 'channeledit'){ !checkapermission($sid ? 125 : 54) && amessage(lang('no_apermission')); if(!submitcheck('bchanneledit') && !submitcheck('bchanneladd')){ a_guide('channeledit'); $cuidsarr = array(0 => '-') + cuidsarr(); tabheader(lang('channel manager'),'channeledit',"?entry=channels&action=channeledit$param_suffix",'10'); trcategory(array(lang('id'),lang('available'),lang('channel cname'),lang('commu'),lang('admin'),lang('copy'),lang('edit'),lang('delete'))); foreach($channels as $k => $channel){ echo "<tr>". "<td class=\"item1\" width=\"30\" align=\"center\">$k</td>\n". "<td class=\"item2\" align=\"center\" width=\"30\"><input class=\"checkbox\" type=\"checkbox\" name=\"channelnew[$k][available]\" value=\"1\"".($channel['available'] ? " checked" : "")."></td>\n". "<td class=\"item1\">".($sid ? "$channel[cname]" : "<input type=\"text\" size=\"30\" maxlength=\"30\" name=\"channelnew[$k][cname]\" value=\"$channel[cname]\">")."</td>\n". "<td class=\"item2\" align=\"center\">".$cuidsarr[$channel['cuid']]."</td>\n". "<td class=\"item1\" width=\"30\" align=\"center\">".(empty($channel['userforbidadd']) ? '-' : 'Y')."</td>\n". "<td class=\"item2\" width=\"30\" align=\"center\">".($sid ? '-' : "<a href=\"?entry=channels&action=channelcopy&chid=$channel[chid]\">".lang('copy')."</a>")."</td>\n". "<td class=\"item1\" width=\"30\" align=\"center\"><a href=\"?entry=channels&action=channeldetail&chid=$channel[chid]$param_suffix\">".lang('detail')."</a></td>\n". "<td class=\"item2\" width=\"30\" align=\"center\">".($sid ? '-' : "<a href=\"?entry=channels&action=channeldel&chid=$channel[chid]\">".lang('delete')."</a>")."</td>\n". "</tr>\n"; } tabfooter('bchanneledit',lang('modify')); if(!$sid){ $cuidsarr = array(0 => lang('based config')) + cuidsarr(); tabheader(lang('add channel'),'channeladd','?entry=channels&action=channeledit',2,0,1); trbasic(lang('channel cname'),'channeladd[cname]'); trbasic(lang('commu item config'),'channeladd[cuid]',makeoption($cuidsarr),'select'); tabfooter('bchanneladd',lang('add')); $submitstr = ''; $submitstr .= makesubmitstr('channeladd[cname]',1,0,0,30); check_submit_func($submitstr); } }elseif(submitcheck('bchanneledit')){ if(isset($channelnew)){ if(!$sid){ foreach($channelnew as $k => $v){ $v['available'] = isset($v['available']) ? $v['available'] : 0; $v['cname'] = trim(strip_tags($v['cname'])); $v['cname'] = $v['cname'] ? $v['cname'] : $channels[$k]['cname']; if(($v['cname'] != $channels[$k]['cname']) || ($v['available'] != $channels[$k]['available'])) { $db->query("UPDATE {$tblprefix}channels SET cname='$v[cname]', available='$v[available]' WHERE chid='$k'"); } } adminlog(lang('edit archive channel list')); updatecache('channels'); }else{ $t_channels = empty($subsites[$sid]['channels']) ? array() : $subsites[$sid]['channels']; foreach($channels as $k => $v){ $t_channels[$k]['available'] = empty($channelnew[$k]['available']) ? 0 : 1; } $t_channels = addslashes(serialize($t_channels)); $db->query("UPDATE {$tblprefix}subsites SET channels='$t_channels' WHERE sid='$sid'"); adminlog(lang('edit archive channel list')); updatecache('subsites'); } } amessage(lang('archive channel edit finish'),"?entry=channels&action=channeledit$param_suffix"); }elseif(submitcheck('bchanneladd')){ $channeladd['cname'] = trim(strip_tags($channeladd['cname'])); empty($channeladd['cname']) && amessage(lang('channel cname missing'), '?entry=channels&action=channeledit'); !empty($channeladd['cuid']) && $channeladd['album'] = 0; $db->query("INSERT INTO {$tblprefix}channels SET cname='$channeladd[cname]', cuid='$channeladd[cuid]' "); if($chid = $db->insert_id()){ $sqlstr = ''; if(@$commus[$channeladd['cuid']]['cclass'] == 'answer'){ $sqlstr = "question text NOT NULL,"; } $customtable = "archives_$chid"; $db->query("CREATE TABLE {$tblprefix}$customtable ( aid mediumint(8) unsigned NOT NULL default '0', $sqlstr PRIMARY KEY (aid))".(mysql_get_server_info() > '4.1' ? " ENGINE=MYISAM DEFAULT CHARSET=$dbcharset" : " TYPE=MYISAM")); foreach($initfields as $field){ $sqlstr = ''; foreach(array('ename','cname','datatype','issystem','iscustom','length','notnull','nohtml','mode','guide','isadmin','mlimit','rpid','issearch','innertext','mcommon','min','max','regular','isfunc','func','vdefault','istxt') as $var){ isset($field[$var]) && $sqlstr .= (!$sqlstr ? '' : ',')."$var='".$field[$var]."'"; } $sqlstr .= ",chid='$chid',available='1'"; $db->query("INSERT INTO {$tblprefix}fields SET $sqlstr"); } cu_addfields($chid,$channeladd['cuid']); updatecache('channels'); updatecache('btagnames'); updatecache('fields',$chid); } adminlog(lang('add archive channel')); amessage(lang('archive channel add finish'),"?entry=channels&action=channeledit$param_suffix"); } }elseif($action == 'channelcopy' && $chid){ !checkapermission(54) && amessage(lang('no_apermission')); if($sid && $sid_self) amessage(lang('msite admin item !')); $forward = empty($forward) ? M_REFERER : $forward; if(!submitcheck('bchannelcopy')){ a_guide('channelcopy'); $channel = read_cache('channel',$chid); $fields = read_cache('fields',$chid); $cuidsarr = array(0 => lang('default')) + cuidsarr(); tabheader(lang('archive channel copy'),'channelcopy',"?entry=channels&action=channelcopy&chid=$chid&forward=".rawurlencode($forward),2,0,1); trbasic(lang('soc channel cname'),'',$channel['cname'],''); trbasic(lang('soc channel commu config'),'',$cuidsarr[$channel['cuid']],''); trbasic(lang('new channel cname'),'channelnew[cname]'); if($channel['cuid']){ $cuidsarr = cuidsarr($commus[$channel['cuid']]['cclass']); trbasic(lang('new channel commu config'),'channelnew[cuid]',makeoption($cuidsarr,$channel['cuid']),'select'); } tabfooter('bchannelcopy'); $submitstr = ''; $submitstr .= makesubmitstr('channelnew[cname]',1,0,0,30); check_submit_func($submitstr); }else{ $channelnew['cname'] = trim(strip_tags($channelnew['cname'])); empty($channelnew['cname']) && amessage(lang('channel cname missing'),M_REFERER); $channelnew['cuid'] = empty($channelnew['cuid']) ? 0 : $channelnew['cuid']; $channel = $db->fetch_one("SELECT * FROM {$tblprefix}channels WHERE chid='$chid'"); $sqlstr = ''; foreach(array('userforbidadd','autocheck','autostatic','arctpl','pretpl','srhtpl','autoabstract','autokeyword','autothumb','autosize','autosizemode','baidu','fulltxt','ugids',) as $k){ $sqlstr .= ",$k='".addslashes($channel[$k])."'"; } $db->query("INSERT INTO {$tblprefix}channels SET cname='$channelnew[cname]', cuid='$channelnew[cuid]' $sqlstr "); if($nchid = $db->insert_id()){ $customtable = "archives_$nchid"; $db->query("CREATE TABLE {$tblprefix}$customtable ( aid mediumint(8) unsigned NOT NULL default '0', PRIMARY KEY (aid))".(mysql_get_server_info() > '4.1' ? " ENGINE=MYISAM DEFAULT CHARSET=$dbcharset" : " TYPE=MYISAM")); $query = $db->query("SELECT * FROM {$tblprefix}fields WHERE chid='$chid' ORDER BY fid ASC"); while($fieldnew = $db->fetch_array($query)){ if($fieldnew['tbl'] == 'custom'){ $fieldnew = maddslashes($fieldnew); $fconfigarr = array( 'errorurl' => M_REFERER, 'enamearr' => array(), 'altertable' => $tblprefix.$customtable, 'fieldtable' => $tblprefix.'fields', 'sqlstr' => "chid=$nchid,issystem='$fieldnew[issystem]',iscustom='$fieldnew[iscustom]',available='$fieldnew[available]',vieworder='$fieldnew[vieworder]',tbl='custom'", 'filterstr' => "", ); list($fmode,$fnew,$fsave) = array('a',true,true); include_once M_ROOT."./include/fields/$fieldnew[datatype].php"; }else{ $sqlstr = ''; foreach(array('ename','cname','issystem','iscustom','mcommon','available','tbl','innertext','issearch','length', 'datatype','notnull','mlimit','rpid','isadmin','vieworder','mode','guide','min','max','regular','vdefault') as $k){ $sqlstr .= ",$k='".addslashes($fieldnew[$k])."'"; } $db->query("INSERT INTO {$tblprefix}fields SET chid='$nchid' $sqlstr"); } } updatecache('channels'); updatecache('btagnames'); updatecache('fields',$nchid); } adminlog(lang('copy archive channel')); amessage(lang('archive channel copy finish'),"?entry=channels&action=channeledit"); } }elseif($action == 'channeldetail' && $chid){ !checkapermission($sid ? 125 : 54) && amessage(lang('no_apermission')); $channel = read_cache('channel',$chid); cache_merge($channel,'channel',$sid); $fields = read_cache('fields',$chid); if(!submitcheck('bchanneldetail')){ a_guide('channeldetail'); tabheader("[$channel[cname]]".lang('channel setting'),'channeldetail',"?entry=channels&action=channeldetail&chid=$chid$param_suffix",'4'); if(!$sid){ $abstractarr = $thumbarr = $newsarr = $sizearr = array('0' => lang('nosetting')); foreach($fields as $k => $field){ if($field['available']){ (!$field['mcommon'] && in_array($field['datatype'],array('text','multitext','htmltext'))) && $abstractarr[$k] = $field['cname']; (!$field['mcommon'] && in_array($field['datatype'],array('image','images','text','multitext','htmltext'))) && $thumbarr[$k] = $field['cname']; in_array($field['datatype'],array('multitext','htmltext')) && $newsarr[$k] = $field['cname']; in_array($field['datatype'],array('image','flash','media','file','images','flashs','medias','files',)) && $sizearr[$k] = $field['cname']; } } $autosizemodearr = array('0' => lang('sum'),'1' => lang('oneof')); trbasic(lang('admin_self channel'),'channelnew[userforbidadd]',$channel['userforbidadd'],'radio'); trbasic(lang('archive auto check'),'channelnew[autocheck]',$channel['autocheck'],'radio'); trbasic(lang('archive auto static'),'channelnew[autostatic]',$channel['autostatic'],'radio'); trbasic(lang('auto abstract source'),'channelnew[autoabstract]',makeoption($abstractarr,$channel['autoabstract']),'select'); trbasic(lang('auto thumb source'),'channelnew[autothumb]',makeoption($thumbarr,$channel['autothumb']),'select'); trbasic(lang('auto keyword source'),'channelnew[autokeyword]',makeoption($abstractarr,$channel['autokeyword']),'select'); trbasic(lang('auto stat attachment size source'),'channelnew[autosize]',makeoption($sizearr,$channel['autosize']),'select'); trbasic(lang('auto stat attachment size mode'),'channelnew[autosizemode]',makeradio('channelnew[autosizemode]',$autosizemodearr,$channel['autosizemode']),''); trbasic(lang('Baidu map content source'),'channelnew[baidu]',makeoption($newsarr,$channel['baidu']),'select'); trbasic(lang('fulltxt search source'),'channelnew[fulltxt]',makeoption($newsarr,$channel['fulltxt']),'select'); trbasic(lang('archive content template'),'channelnew[arctpl]',makeoption(array('' => lang('nosetting')) + mtplsarr('archive'),$channel['arctpl']),'select'); trbasic(lang('archive prepage template'),'channelnew[pretpl]',makeoption(array('' => lang('nosetting')) + mtplsarr('archive'),$channel['pretpl']),'select'); trbasic(lang('search template'),'channelnew[srhtpl]',makeoption(array('' => lang('nosetting')) + mtplsarr('search'),$channel['srhtpl']),'select'); tabfooter(); $items = array(); foreach($grouptypes as $gtid => $grouptype){ if(!$grouptype['forbidden']){ foreach(ugidsarr($gtid) as $ugid => $ugcname){ $items[$ugid] = $ugcname; } } } $items['0'] = lang('user0'); $items['-1'] = lang('nouser'); $num = 3; tabheader(lang('issue1 permission setting').'<input class="checkbox" type="checkbox" name="chkall" onclick="checkall(this.form,\'ugidsnew\')">'.lang('selectall'),'','',2 * $num); $i = 0; foreach($items as $ugid => $item){ if(!($i % $num)){ echo "<tr>"; } echo "<td class=\"item1\" width=\"5%\" align=\"center\"><input class=\"checkbox\" type=\"checkbox\" name=\"ugidsnew[$ugid]\" value=\"$ugid\"".(in_array($ugid,$channel['ugids']) ? " checked" : "")."></td>\n". "<td class=\"item2\" width=\"28%\">$item</td>\n"; $i ++; if(!($i % $num)){ echo "</tr>\n"; } } if($i % $num){ while($i % $num){ echo "<td class=\"item1\" width=\"5%\"></td>\n". "<td class=\"item2\" width=\"28%\"></td>\n"; $i ++; } echo "</tr>\n"; } tabfooter(); tabheader("[$channel[cname]]".lang('field manager')." >><a href=\"?entry=channels&action=fieldadd&chid=$chid\">".lang('add field')."</a>",'','','7'); trcategory(array(lang('delete'),lang('available'),lang('field cname'),lang('admin_self'),lang('order'),lang('field ename'),lang('field type'),lang('edit'))); foreach($fields as $k => $field){ fieldlist($k,$field); } }else{ trbasic(lang('archive content template'),'channelnew[arctpl]',makeoption(array('' => lang('nosetting')) + mtplsarr('archive'),$channel['arctpl']),'select'); trbasic(lang('archive prepage template'),'channelnew[pretpl]',makeoption(array('' => lang('nosetting')) + mtplsarr('archive'),$channel['pretpl']),'select'); } tabfooter('bchanneldetail'); }else{ if(!$sid){ if(!empty($delete)){ foreach($delete as $id){ if(!$fields[$id]['mcommon']){ $customtable = "archives_$chid"; if(!empty($fields[$id]['istxt'])){//如果是文本字段,需要删除相关的存储文件 $query = $db->query("SELECT $id FROM {$tblprefix}$customtable"); while($row = $db->fetch_array($query)) txtunlink($row[$id]); } $db->query("ALTER TABLE {$tblprefix}$customtable DROP $id",'SILENT'); $db->query("DELETE FROM {$tblprefix}fields WHERE ename='$id' AND chid='$chid'"); unset($fields[$id]); unset($fieldsnew[$id]); del_cache('field',$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['available'] = $field['issystem'] ? $field['available'] : (empty($fieldsnew[$id]['available']) ? 0 : 1); $field['isadmin'] = $field['issystem'] ? '0' : (empty($fieldsnew[$id]['isadmin']) ? 0 : 1); $field['vieworder'] = max(0,intval($fieldsnew[$id]['vieworder'])); $db->query("UPDATE {$tblprefix}fields SET cname='$field[cname]',available='$field[available]',vieworder='$field[vieworder]',isadmin='$field[isadmin]' WHERE ename='$id' AND chid='$chid'"); } $channelnew['ugids'] = !empty($ugidsnew) ? implode(',',$ugidsnew) : ''; $db->query("UPDATE {$tblprefix}channels SET userforbidadd='$channelnew[userforbidadd]', autoabstract='$channelnew[autoabstract]', autokeyword='$channelnew[autokeyword]', autocheck='$channelnew[autocheck]', autostatic='$channelnew[autostatic]', autothumb='$channelnew[autothumb]', autosize='$channelnew[autosize]', autosizemode='$channelnew[autosizemode]', baidu='$channelnew[baidu]', fulltxt='$channelnew[fulltxt]', arctpl='$channelnew[arctpl]', pretpl='$channelnew[pretpl]', srhtpl='$channelnew[srhtpl]', ugids='$channelnew[ugids]' WHERE chid='$chid'"); updatecache('channels'); updatecache('fields',$chid); updatecache('btagnames'); }else{ $s_channels = empty($subsites[$sid]['channels']) ? array() : $subsites[$sid]['channels']; $s_channels[$chid]['arctpl'] = $channelnew['arctpl']; $s_channels[$chid]['pretpl'] = $channelnew['pretpl']; $s_channels[$chid]['srhtpl'] = $channelnew['srhtpl']; $s_channels = addslashes(serialize($s_channels)); $db->query("UPDATE {$tblprefix}subsites SET channels='$s_channels' WHERE sid='$sid'"); updatecache('subsites'); } adminlog(lang('detail0 modify archive channel')); amessage(lang('channel modify finish'), "?entry=channels&action=channeledit$param_suffix"); } } elseif($action == 'fieldadd' && $chid){ !checkapermission(54) && amessage(lang('no_apermission')); if($sid && $sid_self) amessage(lang('msite admin item !')); if(!submitcheck('bfieldadd')){ a_guide('fieldadd'); tabheader(lang('add archive channel field')." - ".$channels[$chid]['cname'],'fieldadd',"?entry=channels&action=fieldadd&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('bfieldaddpre',lang('continue')); }else{ list($fmode,$fnew,$fsave) = array('a',true,false); include_once M_ROOT."./include/fields/$fieldnew[datatype].php"; tabfooter('bfieldadd',lang('add')); } check_submit_func($submitstr); }else{ $enamearr = $usednames['fields']; $fields = read_cache('fields',$chid); foreach($fields as $ename => $field){ if(!in_array($ename,$enamearr)) $enamearr[] = $ename; } $fconfigarr = array( 'errorurl' => '?entry=channels&action=channeldetail&chid='.$chid, 'enamearr' => $enamearr, 'altertable' => $tblprefix.'archives_'.$chid, 'fieldtable' => $tblprefix.'fields', 'sqlstr' => "chid=$chid,iscustom='1',available='1',tbl='custom'", 'filterstr' => "/[^a-zA-Z_0-9]+|^[0-9_]+|^cotype(.*?)/", ); list($fmode,$fnew,$fsave) = array('a',true,true); include_once M_ROOT."./include/fields/$fieldnew[datatype].php"; adminlog(lang('add archive channel message field')); updatecache('fields',$chid); updatecache('btagnames'); amessage(lang('field add finish'), '?entry=channels&action=channeldetail&chid='.$chid); } } elseif($action == 'channeldel' && $chid) { !checkapermission(54) && amessage(lang('no_apermission')); if($sid && $sid_self) amessage(lang('msite admin item !')); $channel = $channels[$chid]; if(empty($confirm)){ $message = lang('del_alert')."<br><br>"; $message .= lang('confirm click')."[<a href=?entry=channels&action=channeldel&chid=".$chid."&confirm=1>".lang('delete')."</a>] "; $message .= lang('giveup click')."[<a href=?entry=channels&action=channeledit>".lang('goback')."</a>]"; amessage($message); } if($db->result_one("SELECT COUNT(*) FROM {$tblprefix}archives WHERE chid='$chid'")){ amessage(lang('channel without archive can delete'), '?entry=channels&action=channeledit'); } $customtable = "archives_$chid"; $db->query("DROP TABLE IF EXISTS {$tblprefix}$customtable",'SILENT'); $db->query("DELETE FROM {$tblprefix}channels WHERE chid='$chid'",'SILENT'); $db->query("DELETE FROM {$tblprefix}fields WHERE chid='$chid'",'SILENT'); //清除相关缓存 $fields = array_keys(read_cache('fields',$chid)); foreach($fields as $k) del_cache('field',$chid,$k); del_cache('fields',$chid); del_cache('channel',$chid); @unlink(M_ROOT.'./dynamic/mguides/add_'.$chid.'.php'); @unlink(M_ROOT.'./dynamic/mguides/search_'.$chid.'.php'); adminlog(lang('delete archive channel')); updatecache('channels'); updatecache('btagnames'); amessage(lang('archive channel delete finish'),"?entry=channels&action=channeledit"); }elseif($action == 'fielddetail' && $chid && $fieldename){ !checkapermission(54) && amessage(lang('no_apermission')); if($sid && $sid_self) amessage(lang('msite admin item !')); !isset($channels[$chid]) && amessage(lang('confirmchoose channel'), '?entry=channels&action=channeledit'); $field = read_cache('field',$chid,$fieldename); empty($field) && amessage(lang('confirmchoose field'), '?entry=channels&action=channeldetail&chid='.$chid); if(!submitcheck('bfielddetail')){ a_guide('fielddetail'); $submitstr = ''; tabheader(lang('edit channel field')." - ".$channels[$chid]['cname']." - $field[cname]",'fielddetail',"?entry=channels&action=fielddetail&chid=$chid&fieldename=$fieldename",2,0,1); list($fmode,$fnew,$fsave) = array('a',false,false); include_once M_ROOT."./include/fields/$field[datatype].php"; tabfooter('bfielddetail'); check_submit_func($submitstr); }else{ $fconfigarr = array( 'altertable' => $tblprefix.'archives_'.$chid, 'fieldtable' => $tblprefix.'fields', 'wherestr' => "WHERE ename='$fieldename' AND chid=$chid", ); list($fmode,$fnew,$fsave) = array('a',false,true); include_once M_ROOT."./include/fields/$field[datatype].php"; updatecache('fields',$chid); adminlog(lang('detail0 modify archive channel message field')); amessage(lang('field edit finish'),'?entry=channels&action=channeldetail&chid='.$chid); } }elseif($action == 'initfieldadd'){ !checkapermission(55) && amessage(lang('no_apermission')); if($sid && $sid_self) amessage(lang('msite admin item !')); if(!submitcheck('binitfieldadd')){ a_guide('initfieldadd'); tabheader(lang('add common field'),'initfieldadd',"?entry=channels&action=initfieldadd",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('binitfieldaddpre',lang('continue')); }else{ list($fmode,$fnew,$fsave) = array('i',true,false); include_once M_ROOT."./include/fields/$fieldnew[datatype].php"; tabfooter('binitfieldadd',lang('add')); } check_submit_func($submitstr); }else{ $enamearr = $usednames['fields']; $fconfigarr = array( 'errorurl' => '?entry=channels&action=initfieldsedit', 'enamearr' => $enamearr, 'altertable' => $tblprefix.'archives', 'fieldtable' => $tblprefix.'fields', 'sqlstr' => "iscustom='1',mcommon='1',available='1',tbl='main'", 'filterstr' => "/[^a-zA-Z_0-9]+|^[0-9_]+|^cotype(.*?)|^album(.*?)/", ); list($fmode,$fnew,$fsave) = array('i',true,true); include_once M_ROOT."./include/fields/$fieldnew[datatype].php"; updatecache('initfields'); $chids = array_keys($channels); foreach($chids as $chid){ $sqlstr = "ename='$fieldnew[ename]',cname='$fieldnew[cname]',issystem='0',iscustom='1',mcommon='1',chid='$chid',tbl='main'"; foreach(array('datatype','length','notnull','nohtml','mode','guide','isadmin','mlimit','rpid','issearch','innertext','mcommon','min','max','regular','isfunc','func','vdefault') as $var){ isset($fieldnew[$var]) && $sqlstr .= (!$sqlstr ? '' : ',')."$var='".$fieldnew[$var]."'"; } $db->query("INSERT INTO {$tblprefix}fields SET $sqlstr"); updatecache('fields',$chid); } adminlog(lang('add archive common message field')); updatecache('btagnames'); updatecache('usednames','fields'); amessage(lang('field add finish'), '?entry=channels&action=initfieldsedit'); } } elseif($action == 'initfieldsedit'){ !checkapermission(55) && amessage(lang('no_apermission')); if($sid && $sid_self) amessage(lang('msite admin item !')); if(!submitcheck('binitfieldsedit')){ a_guide('initfieldsedit'); tabheader(lang('common field manager')." >><a href=\"?entry=channels&action=initfieldadd\">".lang('add field')."</a>",'initfieldsedit','?entry=channels&action=initfieldsedit','5'); trcategory(array(lang('delete'),lang('field cname'),lang('field ename'),lang('field type'),lang('edit'))); foreach($initfields as $k => $field) { fieldlist($k,$field,'init'); } tabfooter('binitfieldsedit'); }else{ if(!empty($delete)){ $chids = array_keys($channels); foreach($delete as $fieldename){ if($initfields[$fieldename]['iscustom']){ if(!empty($initfields[$fieldename]['istxt'])){//删除相应的文件存储记录 $query = $db->query("SELECT $fieldename FROM {$tblprefix}archives"); while($row = $db->fetch_array($query)) txtunlink($row[$fieldename]); } $db->query("ALTER TABLE {$tblprefix}archives DROP $fieldename"); $db->query("DELETE FROM {$tblprefix}fields WHERE ename='$fieldename'"); unset($initfields[$fieldename]); unset($fieldsnew[$fieldename]); foreach($chids as $chid){ del_cache('field',$chid,$fieldename); } } } foreach($chids as $chid){ updatecache('fields',$chid); } updatecache('usednames','fields'); updatecache('btagnames'); } foreach($initfields as $id => $field){ $field['cname'] = trim($fieldsnew[$id]['cname']) ? trim($fieldsnew[$id]['cname']) : $field['cname']; $db->query("UPDATE {$tblprefix}fields SET cname='$field[cname]' WHERE ename='$id' AND chid='0'"); } adminlog(lang('edit archive common message field manager list')); updatecache('initfields'); amessage(lang('field edit finish'),'?entry=channels&action=initfieldsedit'); } }elseif($action == 'initfielddetail' && $fieldename){ !checkapermission(55) && amessage(lang('no_apermission')); if($sid && $sid_self) amessage(lang('msite admin item !')); if(empty($initfields[$fieldename])){ amessage(lang('confirmchoose field'), '?entry=channels&action=initfieldsedit'); } $field = $initfields[$fieldename]; if(!submitcheck('binitfielddetail')){ a_guide('initfielddetail'); tabheader(lang('common field manager'),'initfielddetail',"?entry=channels&action=initfielddetail&fieldename=$fieldename",2,0,1); $submitstr = ''; list($fmode,$fnew,$fsave) = array('i',false,false); include_once M_ROOT."./include/fields/$field[datatype].php"; tabfooter('binitfielddetail'); check_submit_func($submitstr); }else{ $fconfigarr = array( 'altertable' => $tblprefix.'archive', 'fieldtable' => $tblprefix.'fields', 'wherestr' => "WHERE ename='$fieldename' AND chid=0", ); list($fmode,$fnew,$fsave) = array('i',false,true); include_once M_ROOT."./include/fields/$field[datatype].php"; adminlog(lang('detail0 modify archive common message field')); updatecache('initfields'); amessage(lang('field modify finish'),'?entry=channels&action=initfieldsedit'); } } ?>