📄 mychannel_edit.php
字号:
$query = "Update `#@__channeltype` set
typename = '$typename',
addtable = '$addtable',
addcon = '$addcon',
mancon = '$mancon',
editcon = '$editcon',
useraddcon = '$useraddcon',
usermancon = '$usermancon',
usereditcon = '$usereditcon',
fieldset = '$fieldset',
listfields = '$listfields',
issend = '$issend',
arcsta = '$arcsta',
usertype = '$usertype',
sendrank = '$sendrank',
needdes = '$needdes',
needpic = '$needpic',
titlename = '$titlename',
onlyone = '$onlyone',
dfcid = '$dfcid'
where id='$id' ";
if(trim($fieldset)!='')
{
$dtp = new DedeTagParse();
$dtp->SetNameSpace("field","<",">");
$dtp->LoadSource(stripslashes($fieldset));
if(!is_array($dtp->CTags))
{
ShowMsg("文本配置参数无效,无法进行解析!","-1");
exit();
}
}
$trueTable = str_replace("#@__",$cfg_dbprefix,$addtable);
if(!$dsql->IsTable($trueTable))
{
ShowMsg("系统找不到你所指定的表 $trueTable ,请手工创建这个表!","-1");
exit();
}
$dsql->ExecuteNoneQuery($query);
ShowMsg("成功更改一个模型!","mychannel_main.php");
exit();
}
/*--------------------
function __GetTemplate()
--------------------*/
else if($dopost=="gettemplets")
{
require_once(DEDEINC."/oxwindow.class.php");
$row = $dsql->GetOne("Select * From `#@__channeltype` where id='$id'");
$wintitle = "频道管理-查看模板";
$wecome_info = "<a href='mychannel_main.php'>频道管理</a>::查看模板";
$win = new OxWindow();
$win->Init("","js/blank.js","");
$win->AddTitle("频道:(".$row['typename'].")默认模板文件说明:");
$defaulttemplate = $cfg_templets_dir.'/'.$cfg_df_style;
$msg = "
文档模板:{$defaulttemplate}/article_{$row['nid']}.htm
<a href='tpl.php?acdir={$cfg_df_style}&action=edit&filename=article_{$row['nid']}.htm'>[修改]</a><br/>
列表模板:{$defaulttemplate}/list_{$row['nid']}.htm
<a href='tpl.php?acdir={$cfg_df_style}&action=edit&filename=list_{$row['nid']}.htm'>[修改]</a>
<br/>
频道封面模板:{$defaulttemplate}/index_{$row['nid']}.htm
<a href='tpl.php?acdir={$cfg_df_style}&action=edit&filename=index_{$row['nid']}.htm'>[修改]</a>
";
$win->AddMsgItem("<div style='padding:20px;line-height:300%'>$msg</div>");
$winform = $win->GetWindow("hand","");
$win->Display();
exit();
}
/*--------------------
function __Delete()
--------------------*/
else if($dopost=="delete")
{
CheckPurview('c_Del');
$row = $dsql->GetOne("Select * From `#@__channeltype` where id='$id'");
if($row['issystem'] == 1)
{
ShowMsg("系统模型不允许删除!","mychannel_main.php");
exit();
}
if(empty($job))
{
$job="";
}
if($job=="") //确认提示
{
require_once(DEDEINC."/oxwindow.class.php");
$wintitle = "频道管理-删除模型";
$wecome_info = "<a href='mychannel_main.php'>频道管理</a>::删除模型";
$win = new OxWindow();
$win->Init("mychannel_edit.php","js/blank.js","POST");
$win->AddHidden("job","yes");
$win->AddHidden("dopost",$dopost);
$win->AddHidden("id",$id);
$win->AddTitle("你确实要删除 (".$row['typename'].") 这个频道?");
$winform = $win->GetWindow("ok");
$win->Display();
exit();
}
else if($job=="yes") //操作
{
require_once(DEDEINC."/typeunit.class.admin.php");
$myrow = $dsql->GetOne("Select addtable From `#@__channeltype` where id='$id'",MYSQL_ASSOC);
if(!is_array($myrow))
{
ShowMsg('你所指定的频道信息不存在!','-1');
exit();
}
//检查频道的表是否独占数据表
$addtable = str_replace($cfg_dbprefix,'',str_replace('#@__',$cfg_dbprefix,$myrow['addtable']));
$row = $dsql->GetOne("Select count(id) as dd From `#@__channeltype` where addtable like '{$cfg_dbprefix}{$addtable}' Or addtable like CONCAT('#','@','__','$addtable') ; ");
$isExclusive2 = ($row['dd']>1 ? 0 : 1 );
//获取与频道关连的所有栏目id
$tids = '';
$dsql->Execute('qm',"Select id From `#@__arctype` where channeltype='$id'");
while($row = $dsql->GetArray('qm'))
{
$tids .= ($tids=='' ? $row['id'] : ','.$row['id']);
}
//删除相关信息
if($tids!='')
{
$dsql->ExecuteNoneQuery("Delete From `#@__arctiny` where typeid in($tids); ");
$dsql->ExecuteNoneQuery("Delete From `{$myrow['maintable']}` where typeid in($tids); ");
$dsql->ExecuteNoneQuery("Delete From `#@__spec` where typeid in ($tids); ");
$dsql->ExecuteNoneQuery("Delete From `#@__feedback` where typeid in ($tids); ");
$dsql->ExecuteNoneQuery("Delete From `#@__arctype` where id in ($tids); ");
}
//删除附加表或附加表内的信息
if($isExclusive2==1)
{
$dsql->ExecuteNoneQuery("DROP TABLE IF EXISTS `{$cfg_dbprefix}{$addtable}`;");
}
else
{
if($tids!='' && $myrow['addtable']!='')
{
$dsql->ExecuteNoneQuery("Delete From `{$myrow['addtable']}` where typeid in ($tids); ");
}
}
//删除频道配置信息
$dsql->ExecuteNoneQuery("Delete From `#@__channeltype` where id='$id' ");
//更新栏目缓存
UpDateCatCache($dsql);
ShowMsg("成功删除一个模型!","mychannel_main.php");
exit();
}
}//del
/*----------------
function __modifysearch()
-----------------*/
else if($dopost == 'modifysearch'){
if(!isset($step)) $step=0;
if(empty($step)){
$step = 1;
$mid = intval($mid);
$query = "select mainfields, addonfields, template from #@__advancedsearch where mid='$mid'";
$searchinfo = $dsql->GetOne($query);
if(!is_array($searchinfo)){
$searchinfo['mainfields'] = $searchinfo['addonfields'] = $searchinfo['template'] = '';
}
$searchinfo['mainfields'] = explode(',', $searchinfo['mainfields']);
$searchinfo['addonfields'] = explode(',', $searchinfo['addonfields']);
$addonfieldsarr = array();
foreach($searchinfo['addonfields'] as $k){
$karr = explode(':', $k);
$addonfieldsarr[] = $karr[0];
}
$template = $searchinfo['template'] == '' ? 'advancedsearch.htm' : $searchinfo['template'];
$c1 = in_array('iscommend', $searchinfo['mainfields']) ? 'checked' : '';
$c2 = in_array('typeid', $searchinfo['mainfields']) ? 'checked' : '';
$c3 = in_array('writer', $searchinfo['mainfields']) ? 'checked' : '';
$c4 = in_array('source', $searchinfo['mainfields']) ? 'checked' : '';
$c5 = in_array('senddate', $searchinfo['mainfields']) ? 'checked' : '';
$mainfields = '<label><input type="checkbox" name="mainfields[]" '.$c1.' value="iscommend" class="np" />是否推荐</label>';
$mainfields .= '<label><input type="checkbox" name="mainfields[]" '.$c2.' value="typeid" class="np" />栏目</label>';
$mainfields .= '<label><input type="checkbox" name="mainfields[]" '.$c3.' value="writer" class="np" />作者</label>';
$mainfields .= '<label><input type="checkbox" name="mainfields[]" '.$c4.' value="source" class="np" />来源</label>';
$mainfields .= '<label><input type="checkbox" name="mainfields[]" '.$c5.' value="senddate" class="np" />发布时间</label>';
/*
$mainfields .= '<label><input type="checkbox" name="mainfields[]" value="description" />摘要</label>';
$mainfields .= '<label><input type="checkbox" name="mainfields[]" value="keywords" />关键词</label>';
$mainfields .= '<label><input type="checkbox" name="mainfields[]" value="smalltypeid" />小分类</label>';
$mainfields .= '<label><input type="checkbox" name="mainfields[]" value="area" />地区</label>';
$mainfields .= '<label><input type="checkbox" name="mainfields[]" value="sector" />行业</label>';
*/
$query = "select * from `#@__channeltype` where ID='$mid'";
$channel = $dsql->GetOne($query);
$searchtype = array('int', 'datetime', 'float', 'textdata', 'textchar', 'text', 'htmltext', 'multitext', 'select', 'radio', 'checkbox');
$addonfields = '';
$dtp = new DedeTagParse();
$dtp->SetNameSpace("field","<",">");
$dtp->LoadSource($channel['fieldset']);
if(is_array($dtp->CTags) && !empty($dtp->CTags)){
foreach($dtp->CTags as $ctag){
$datatype = $ctag->GetAtt('type');
$value = $ctag->GetName();
$label = $ctag->GetAtt('itemname');
if(in_array($datatype, $searchtype)){
$checked = in_array($value, $addonfieldsarr) ? 'checked' : '';
$addonfields .= "<label><input type=\"checkbox\" name=\"addonfields[]\" $checked value=\"$value\" class='np' />$label</label>";
}
}
}
require_once(dirname(__FILE__)."/templets/mychannel_modifysearch.htm");
}elseif($step == 1){
if(empty($addonfields))
{
$addonfields = '';
}
$template = trim($template);
$forms = '<form action="'.$cfg_cmspath.'/plus/advancedsearch.php" method="post">';
$forms .= "<input type=\"hidden\" name=\"mid\" value=\"$mid\" />";
$forms .= "<input type=\"hidden\" name=\"dopost\" value=\"search\" />";
$forms .= "关键词:<input type=\"text\" name=\"q\" /><br />";
$mainstring = '';
if(!empty($mainfields) && is_array($mainfields)){
$mainstring = implode(',', $mainfields);
foreach($mainfields as $mainfield){
if($mainfield == 'typeid'){
require_once(dirname(__FILE__)."/../include/typelink.class.php");
$tl = new TypeLink(0);
$typeOptions = $tl->GetOptionArray(0,0,$mid);
$forms .= "<br />栏目:<select name='typeid' style='width:200'>\r\n";
$forms .= "<option value='0' selected>--不限栏目--</option>\r\n";
$forms .= $typeOptions;
$forms .= "</select>";
//$tl->Close();
$forms .= "<label><input type=\"checkbox\" name=\"includesons\" value=\"1\" />包含子栏目</label><br />";
}elseif($mainfield == 'iscommend'){
$forms .= "<label><input type=\"checkbox\" name=\"iscommend\" value=\"1\" />推荐</label><br />";
}elseif($mainfield == 'writer'){
$forms .= "作者: <input type=\"text\" name=\"writer\" value=\"\" /><br />";
}elseif($mainfield == 'source'){
$forms .= "来源: <input type=\"text\" name=\"source\" value=\"\" /><br />";
}elseif($mainfield == 'senddate'){
$forms .= "开始时间:<input type=\"text\" name=\"startdate\" value=\"\" /><br />";
$forms .= "结束时间:<input type=\"text\" name=\"enddate\" value=\"\" /><br />";
}
}
}
$addonstring = '';
$intarr = array('int','float');
$textarr = array('textdata','textchar','text','htmltext','multitext');
if(is_array($addonfields) && !empty($addonfields)){
//$addonstring = implode(',', $addonfields);
$query = "select * from #@__channeltype where ID='$mid'";
$channel = $dsql->GetOne($query);
$dtp = new DedeTagParse();
$dtp->SetNameSpace("field","<",">");
$dtp->LoadSource($channel['fieldset']);
$fieldarr = $itemarr = $typearr = array();
foreach($dtp->CTags as $ctag){
foreach($addonfields as $addonfield){
if($ctag->GetName() == $addonfield){
$fieldarr[] = $addonfield;
$itemarr[] = $ctag->GetAtt('itemname');
$typearr[] = $ctag->GetAtt('type');
$valuearr[] = $ctag->GetInnerText();
$defaultarr[] = $ctag->GetAtt('default');
}
}
}
foreach($fieldarr as $k=>$field){
$itemname = $itemarr[$k];
$name = $field;
$type = $typearr[$k];
$default = $defaultarr[$k];
$tmp = $name.':'.$type;
if(in_array($type, $intarr)){
$forms .= "<br />$itemname : <input type=\"text\" name=\"start".$name."\" value=\"\" /> 到 <input type=\"text\" name=\"end".$name."\" value=\"\" /><br />";
}elseif(in_array($type, $textarr)){
$forms .= "$itemname : <input type=\"text\" name=\"$name\" value=\"\" /><br />";
}elseif($type == 'select'){
$values = explode(',', $valuearr[$k]);
if(is_array($values) && !empty($values)){
$forms .= "<br />$itemname : <select name=\"$name\" ><option value=\"\">不限</option>";
foreach($values as $value){
$forms .= "<option value=\"$value\">$value</option>";
}
$forms .= "</select>";
}
}elseif($type == 'radio'){
$values = explode(',', $valuearr[$k]);
if(is_array($values) && !empty($values)){
$forms .= "<br />$itemname : <label><input type=\"radio\" name=\"".$name."\" value=\"\" checked />不限</label>";
foreach($values as $value){
$forms .= "<label><input type=\"radio\" name=\"".$name."\" value=\"$value\" />$value</label>";
}
}
}elseif($type == 'checkbox'){
$values = explode(',', $valuearr[$k]);
if(is_array($values) && !empty($values)){
$forms .= "<br />$itemname : ";
foreach($values as $value){
$forms .= "<label><input type=\"checkbox\" name=\"".$name."[]\" value=\"$value\" />$value</label>";
}
}
}elseif($type == 'datetime'){
$forms .= "<br />开始时间:<input type=\"text\" name=\"startdate\" value=\"\" /><br />";
$forms .= "结束时间:<input type=\"text\" name=\"enddate\" value=\"\" /><br />";
}else{
$tmp = '';
}
$addonstring .= $tmp.',';
}
}
$forms .= '<input type="submit" name="submit" value="开始搜索" /></form>';
$formssql = addslashes($forms);
$query = "replace into #@__advancedsearch(mid, maintable, mainfields, addontable, addonfields, forms, template) values('$mid','$maintable','$mainstring','$addontable','$addonstring','$formssql', '$template')";
$dsql->SetQuery($query);
$dsql->executenonequery();
$formshtml = htmlspecialchars($forms);
echo '<meta http-equiv="Content-Type" content="text/html; charset=gb2312">';
echo "下面为生成的html表单,请自行复制,根据自己需求修改样式后粘贴到对应的模板中<br><br><textarea cols=\"100\" rows=\"10\">".$forms."</textarea>";
echo '<br />预览:<br /><hr>';
echo $forms;
}
exit;
}
//删除自定义搜索;
else if($dopost == 'del')
{
$mid = intval($mid);
$dsql->ExecuteNoneQuery("Delete From `#@__advancedsearch` where mid = '$mid'; ");
ShowMsg("成功删除一个自定义搜索!","mychannel_main.php");
exit();
}
$row = $dsql->GetOne("Select * From `#@__channeltype` where id='$id' ");
require_once(DEDEADMIN."/templets/mychannel_edit.htm");
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -