当前位置:首页 > 建站笔记 > 正文

织梦增加权限后,需要将栏目/文章浏览权限改为可以多选

客户要求将权限改为多选,意思是:栏目和文章可以选择有几个科室能浏览,不是现在的单一科室和局领导。

应对此要求,就需要修改原来的逻辑了:

  1. 现将数据库中对应的权限字段由smallint改为varchar

    arctype表的corank字段和archives表的arcrank字段

    image.png



    image.png

  2. 修改list.php函数,判断列表页的访问权限时,先遍历下文章的阅读权限,看用户的权限包含在(这里用到了in_array函数)是否符合文章阅读权限要求,不符合就提示权限错误。

<?php
/**
 *
 * 栏目列表/频道动态页
 *
 * @version        $Id: list.php 1 15:38 2010年7月8日Z tianya $
 * @package        DedeCMS.Site
 * @copyright      Copyright (c) 2007 - 2010, DesDev, Inc.
 * @license        http://help.dedecms.com/usersguide/license.html
 * @link           http://www.dedecms.com
 */
require_once(dirname(__FILE__)."/../include/common.inc.php");

//$t1 = ExecTime();

$tid = (isset($tid) && is_numeric($tid) ? $tid : 0);

$channelid = (isset($channelid) && is_numeric($channelid) ? $channelid : 0);

if($tid==0 && $channelid==0) die(" Request Error! ");
if(isset($TotalResult)) $TotalResult = intval(preg_replace("/[^\d]/", '', $TotalResult));


//如果指定了内容模型ID但没有指定栏目ID,那么自动获得为这个内容模型的第一个顶级栏目作为频道默认栏目
if(!empty($channelid) && empty($tid))
{
    $tinfos = $dsql->GetOne("SELECT tp.id,ch.issystem FROM `#@__arctype` tp LEFT JOIN `#@__channeltype` ch ON ch.id=tp.channeltype WHERE tp.channeltype='$channelid' And tp.reid=0 order by sortrank asc");
    if(!is_array($tinfos)) die(" No catalogs in the channel! ");
    $tid = $tinfos['id'];
}
else
{
    $tinfos = $dsql->GetOne("SELECT ch.issystem FROM `#@__arctype` tp LEFT JOIN `#@__channeltype` ch ON ch.id=tp.channeltype WHERE tp.id='$tid' ");
}
//管理员级别
if($tinfos['issystem']==-1)
{
    $nativeplace = ( (empty($nativeplace) || !is_numeric($nativeplace)) ? 0 : $nativeplace );
    $infotype = ( (empty($infotype) || !is_numeric($infotype)) ? 0 : $infotype );
    if(!empty($keyword)) $keyword = FilterSearch($keyword);
    $cArr = array();
    if(!empty($nativeplace)) $cArr['nativeplace'] = $nativeplace;
    if(!empty($infotype)) $cArr['infotype'] = $infotype;
    if(!empty($keyword)) $cArr['keyword'] = $keyword;
    include(DEDEINC."/arc.sglistview.class.php");
    $lv = new SgListView($tid,$cArr);
} else {
    include(DEDEINC."/arc.listview.class.php");
    $lv = new ListView($tid);
    //对设置了会员级别的栏目进行处理
	//文章权限>0
    if(isset($lv->Fields['corank']) && $lv->Fields['corank'] !="")
    {
        require_once(DEDEINC.'/memberlogin.class.php');
        $cfg_ml = new MemberLogin();
		
		
		$ranks=explode(",",$lv->Fields['corank']);
		
		
		foreach($ranks as $rank){
		//文章阅读权限>10,用户权限>10&&!=100 则只有相等才能阅读
        if( $rank>10 &&$cfg_ml->M_Rank>10 &&$cfg_ml->M_Rank!=100 && !in_array($cfg_ml->M_Rank,$ranks) )
        {
            $dsql->Execute('me' , "SELECT * FROM `#@__arcrank` ");
            while($row = $dsql->GetObject('me'))
            {
                $memberTypes[$row->rank] = $row->membername;
            }
            $memberTypes[0] = "游客或没权限会员";
            $msgtitle = "你没有权限浏览栏目:{$lv->Fields['typename']} !";
            $moremsg = "这个栏目需要 <font color='red'>".$memberTypes[$rank]."</font> 才能访问,你目前是:<font color='red'>".$memberTypes[$cfg_ml->M_Rank]."</font> !";
            include_once(DEDETEMPLATE.'/plus/view_msg_catalog.htm');
            exit();
        }else if(($cfg_ml->M_Rank<=10 ||$cfg_ml->M_Rank ==100 )&&($cfg_ml->M_Rank < $rank)){
			$dsql->Execute('me' , "SELECT * FROM `#@__arcrank` ");
            while($row = $dsql->GetObject('me'))
            {
                $memberTypes[$row->rank] = $row->membername;
            }
            $memberTypes[0] = "游客或没权限会员";
            $msgtitle = "你没有权限浏览栏目:{$lv->Fields['typename']} !";
            $moremsg = "这个栏目需要 <font color='red'>".$memberTypes[$rank]."</font> 才能访问,你目前是:<font color='red'>".$memberTypes[$cfg_ml->M_Rank]."</font> !";
            include_once(DEDETEMPLATE.'/plus/view_msg_catalog.htm');
            exit();
		}
		
		}
		
    }
}

if($lv->IsError) ParamError();

$lv->Display();

3.修改vew.php文件,修改文章权限逻辑,判断登录用户是否包含在文章权限内,逻辑同上。

<?php
/**
 *
 * 关于文章权限设置的说明
 * 文章权限设置限制形式如下:
 * 如果指定了会员等级,那么必须到达这个等级才能浏览
 * 如果指定了金币,浏览时会扣指点的点数,并保存记录到用户业务记录中
 * 如果两者同时指定,那么必须同时满足两个条件
 *
 * @version        $Id: view.php 1 15:38 2010年7月8日Z tianya $
 * @package        DedeCMS.Site
 * @copyright      Copyright (c) 2007 - 2010, DesDev, Inc.
 * @license        http://help.dedecms.com/usersguide/license.html
 * @link           http://www.dedecms.com
 */
require_once(dirname(__FILE__)."/../include/common.inc.php");
require_once(DEDEINC.'/arc.archives.class.php');

$t1 = ExecTime();

if(empty($okview)) $okview = '';
if(isset($arcID)) $aid = $arcID;
if(!isset($dopost)) $dopost = '';

$arcID = $aid = (isset($aid) && is_numeric($aid)) ? $aid : 0;
if($aid==0) die(" Request Error! ");

$arc = new Archives($aid);
if($arc->IsError) ParamError();


//检查阅读权限
$needMoney = $arc->Fields['money'];
$needRank = $arc->Fields['arcrank'];

require_once(DEDEINC.'/memberlogin.class.php');
$cfg_ml = new MemberLogin();

if($needRank < 0 && $arc->Fields['mid'] != $cfg_ml->M_ID)
{
    ShowMsg('文章尚未审核,非作者本人无权查看!', 'javascript:;');
    exit();
}

//设置了权限限制的文章
//arctitle msgtitle moremsg
if($needMoney>0 || $needRank!='')
{
    $arctitle = $arc->Fields['title'];
    /*
    $arclink = GetFileUrl($arc->ArcID,$arc->Fields["typeid"],$arc->Fields["senddate"],
                             $arc->Fields["title"],$arc->Fields["ismake"],$arc->Fields["arcrank"]);
    */                        
    $arclink = $cfg_phpurl.'/view.php?aid='.$arc->ArcID;                         
    $arcLinktitle = "<a href=\"{$arclink}\"><u>".$arctitle."</u></a>";
    
    $description =  $arc->Fields["description"];
    $pubdate = GetDateTimeMk($arc->Fields["pubdate"]);
    
	
	$ranks=explode(",",$needRank);
		
		
	foreach($ranks as $rank){
    //会员级别不足
	if(($rank>10 && $cfg_ml->M_Rank>10 && $cfg_ml->M_Rank!=100 && !in_array($cfg_ml->M_Rank,$ranks) && $arc->Fields['mid']!=$cfg_ml->M_ID))
    {
        $dsql->Execute('me' , "SELECT * FROM `#@__arcrank` ");
        while($row = $dsql->GetObject('me'))
        {
            $memberTypes[$row->rank] = $row->membername;
        }
        $memberTypes[0] = "游客或没权限会员";
        $msgtitle = "你没有权限浏览文档:{$arctitle} !";
        $moremsg = "这篇文档需要 <font color='red'>".$memberTypes[$rank]."</font> 才能访问,你目前是:<font color='red'>".$memberTypes[$cfg_ml->M_Rank]."</font> !";
        include_once(DEDETEMPLATE.'/plus/view_msg.htm');
        exit();
    }
    else if(($cfg_ml->M_Rank<=10 ||$cfg_ml->M_Rank ==100 ) && $cfg_ml->M_Rank < $rank && $arc->Fields['mid']!=$cfg_ml->M_ID)
    {
        $dsql->Execute('me' , "SELECT * FROM `#@__arcrank` ");
        while($row = $dsql->GetObject('me'))
        {
            $memberTypes[$row->rank] = $row->membername;
        }
        $memberTypes[0] = "游客或没权限会员";
        $msgtitle = "你没有权限浏览文档:{$arctitle} !";
        $moremsg = "这篇文档需要 <font color='red'>".$memberTypes[$rank]."</font> 才能访问,你目前是:<font color='red'>".$memberTypes[$cfg_ml->M_Rank]."</font> !";
        include_once(DEDETEMPLATE.'/plus/view_msg.htm');
        exit();
    }
	}
    //需要金币的情况
    if($needMoney > 0  && $arc->Fields['mid'] != $cfg_ml->M_ID)
    {
        $sql = "SELECT aid,money FROM `#@__member_operation` WHERE buyid='ARCHIVE".$aid."' AND mid='".$cfg_ml->M_ID."'";
        $row = $dsql->GetOne($sql);
        //未购买过此文章
        if(!is_array($row))
        {
            if($cfg_ml->M_Money=='' || $needMoney > $cfg_ml->M_Money)
            {
                    $msgtitle = "你没有权限浏览文档:{$arctitle} !";
                    $moremsg = "这篇文档需要 <font color='red'>".$needMoney." 金币</font> 才能访问,你目前拥有金币:<font color='red'>".$cfg_ml->M_Money." 个</font> !";
                    include_once(DEDETEMPLATE.'/plus/view_msg.htm');
                    $arc->Close();
                    exit();
            }
            else
            {
                if($dopost=='buy')
                {
                    $inquery = "INSERT INTO `#@__member_operation`(mid,oldinfo,money,mtime,buyid,product,pname)
                              VALUES ('".$cfg_ml->M_ID."','$arctitle','$needMoney','".time()."', 'ARCHIVE".$aid."', 'archive',''); ";
                    if($dsql->ExecuteNoneQuery($inquery))
                    {
                        $inquery = "UPDATE `#@__member` SET money=money-$needMoney WHERE mid='".$cfg_ml->M_ID."'";
                        if(!$dsql->ExecuteNoneQuery($inquery))
                        {
                            showmsg('购买失败, 请返回', -1);
                            exit;
                        }
                        #api{{
                        if(defined('UC_APPID'))
                        {
                            include_once DEDEROOT.'/api/uc.func.php';
                            $row = $dsql->GetOne("SELECT `scores`,`userid` FROM `#@__member` WHERE `mid`='".$cfg_ml->M_ID."'");
                            uc_credit_note($row['userid'],-$needMoney,'money');
                        }
                        #/aip}}
    
                        showmsg('购买成功,购买扣点不会重扣金币,谢谢!', '/plus/view.php?aid='.$aid);
                        exit;
                    } else {
                        showmsg('购买失败, 请返回', -1);
                        exit;
                    }
                }
                
                $msgtitle = "扣金币购买阅读!";
                $moremsg = "阅读该文档内容需要付费!<br>这篇文档需要 <font color='red'>".$needMoney." 金币</font> 才能访问,你目前拥有金币 <font color='red'>".$cfg_ml->M_Money." </font>个!<br>确认阅读请点 [<a href='/plus/view.php?aid=".$aid."&dopost=buy' target='_blank'>确认付点阅读</a>]" ;
                include_once($cfg_basedir.$cfg_templets_dir."/plus/view_msg.htm");
                $arc->Close();
                exit();
            }
        }
    }//金币处理付处理
}

$arc->Display();

4.修改浏览权限选择模板页面catalog_edit.htm,改为多选:

<select name="corank[]" id="corank" style="width:100" multiple="true">

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $cfg_soft_lang; ?>">
<title>栏目管理</title>
<link href="css/base.css" rel="stylesheet" type="text/css">
<script language='javascript' src="js/main.js"></script>
<script language="javascript">
var channelArray = new Array();
<?php    
$i = 0;
foreach($channelArray as $k=>$arr){
  echo "channelArray[$k] = \"{$arr['nid']}\";\r\n";
}
?>

function Nav()
{
    if(window.navigator.userAgent.indexOf("MSIE")>=1) return 'IE';
  else if(window.navigator.userAgent.indexOf("Firefox")>=1) return 'FF';
  else return "OT";
}
    
function SelectTemplets(fname)
{
   var posLeft = 200;
   var posTop = 300;
   window.open("../include/dialog/select_templets.php?f="+fname, "poptempWin", "scrollbars=yes,resizable=yes,statebar=no,width=600,height=400,left="+posLeft+", top="+posTop);
}
  
function ShowHide(objname)
{
  var obj = document.getElementById(objname);
  if(obj.style.display != "none")
       obj.style.display = "none";
  else {
       if(Nav()=='IE') obj.style.display = "block";
       else obj.style.display = "table-row";
    }
}
  
function ShowObj(objname)
{
   var obj = document.getElementById(objname);
     if(Nav()=='IE') obj.style.display = "block";
     else obj.style.display = "table"; 
}
  
function HideObj(objname){
  var obj = document.getElementById(objname);
    obj.style.display = "none";
}
  
function ShowItem1(){
  ShowObj('head1'); ShowObj('needset');
  HideObj('head2'); HideObj('adset');
  HideObj('head3'); HideObj('ctset');
}
  
function ShowItem2(){
  ShowObj('head2'); ShowObj('adset');
  HideObj('head1'); HideObj('needset');
  HideObj('head3'); HideObj('ctset');
}

function ShowItem3(){
  ShowObj('head3'); ShowObj('ctset');
  HideObj('head1'); HideObj('needset');
  HideObj('head2'); HideObj('adset');
}
  
function CheckTypeDir()
{
  var upinyin = document.getElementById('upinyin');
  var tpobj = document.getElementById('typedir');
  if(upinyin.checked) tpobj.style.display = "none";
  else tpobj.style.display = "block";
}
  
function ParTemplet(obj)
{
  var sevvalue = channelArray[obj.value];
  var tobj = document.getElementById('smclass');
  var tempindex = document.getElementsByName('tempindex');
  var templist = document.getElementsByName('templist');
  var temparticle = document.getElementsByName('temparticle');
  var dfstyle = document.getElementsByName('dfstyle');
  var dfstyleValue = dfstyle[0].value;
  tempindex[0].value = dfstyleValue+"/index_"+sevvalue+".htm";
  templist[0].value = dfstyleValue+"/list_"+sevvalue+".htm";
  temparticle[0].value = dfstyleValue+"/article_"+sevvalue+".htm";
  if(obj.value < 0)
  {
      if(Nav()=='IE') tobj.style.display = "block";
      else tobj.style.display = "table-row";
  }
  else
  {
      tobj.style.display = "none";
  }
}
  
function checkSubmit()
{
   if(document.form1.typename.value==""){
          alert("栏目名称不能为空!");
          document.form1.typename.focus();
          return false;
     }
     return true;
}

function CheckCross()
{
    var cross2 = document.getElementById('cross2');
    var crossid = document.getElementById('crossid');
    if(cross2.checked) crossid.style.display = 'block';
    else crossid.style.display = 'none';
}

</script>
</head>
<body leftmargin='15' topmargin='10' bgcolor="#FFFFFF">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#cfcfcf" style="BORDER-COLLAPSE: collapse">
  <tr> 
    <td width="100%" height="20" valign="top">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr> 
          <td height="30"><IMG height=14 src="images/book1.gif" width=20>&nbsp;<a href="catalog_main.php"><u>栏目管理</u></a>&gt;&gt;&nbsp;修改栏目</td>
        </tr>
      </table></td>
  </tr>
  <tr> 
    <td width="100%" height="1" background="images/sp_bg.gif"></td>
  </tr>
</table>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr><td height="10"></td></tr>
  <tr>
  <form name="form1" action="catalog_edit.php" method="post" onSubmit="return checkSubmit();">
  <input type="hidden" name="dopost" value="save" />
  <input type="hidden" name="id" value="<?php echo $id; ?>" />
  <input type="hidden" name="topid" value="<?php echo $myrow['topid']; ?>" />
  <td height="95" align="center" bgcolor="#FFFFFF">
    
    <table width="100%" border="0" cellspacing="0" id="head1" cellpadding="0">
          <tr> 
            <td colspan="2" bgcolor="#FFFFFF" align="left">
           <table border="0" cellpadding="0" cellspacing="0">
                <tr>
                  <td width="84" height="24" align="center" background="images/itemnote1.gif">&nbsp;常规选项&nbsp;</td>
                  <td width="84" align="center" background="images/itemnote2.gif"><a href="#" onClick="ShowItem2()"><u>高级选项</u></a>&nbsp;</td>
                  <td width="84" align="center" background="images/itemnote2.gif"><a href="#" onClick="ShowItem3()"><u>栏目内容</u></a>&nbsp;</td>
                </tr>
              </table>
            </td>
          </tr>
        </table> 
        
        <table width="100%" border="0" cellspacing="0" id="head2" cellpadding="0" style="display:none">
          <tr>
            <td colspan="2" bgcolor="#FFFFFF"  style="text-align:left;">
          <table height="24" border="0" cellpadding="0" cellspacing="0">
                <tr> 
                  <td width="84" align="center" background="images/itemnote2.gif" bgcolor="#F2F7DF"><a href="#" onClick="ShowItem1()"><u>常规选项</u></a>&nbsp;</td>
                  <td width="84" align="center" background="images/itemnote1.gif">高级选项&nbsp;</td>
                  <td width="84" align="center" background="images/itemnote2.gif"><a href="#" onClick="ShowItem3()"><u>栏目内容</u></a>&nbsp;</td>
                </tr>
              </table>
            </td>
          </tr>
       </table>
       
       <table width="100%" border="0" cellspacing="0" id="head3" cellpadding="0" style="display:none">
          <tr>
            <td colspan="2" bgcolor="#FFFFFF" style="text-align:left;">
             <table height="24" border="0" cellpadding="0" cellspacing="0">
                <tr> 
                  <td width="84" align="center" background="images/itemnote2.gif" bgcolor="#F2F7DF"><a href="#" onClick="ShowItem1()"><u>常规选项</u></a>&nbsp;</td>
                  <td width="84" align="center" background="images/itemnote2.gif"><a href="#" onClick="ShowItem2()"><u>高级选项</u>&nbsp;</td>
                  <td width="84" align="center" background="images/itemnote1.gif">栏目内容&nbsp;</td>
                </tr>
              </table>
            </td>
          </tr>
       </table>
       
        <table width="100%" border="0"  id="needset" cellspacing="0" cellpadding="0" style="border:1px solid #cfcfcf;background:#ffffff;text-align:left;">
          <tr> 
            <td width="150" class='bline' height="26" style="padding-left:10px;">是否支持投稿:</td>
            <td class='bline'> <input type='radio' name='issend' value='0' class='np' <?php if($myrow['issend']=="0") echo " checked='1' ";?> />
              不支持&nbsp; <input type='radio' name='issend' value='1' class='np' <?php if($myrow['issend']=="1") echo " checked='1' ";?> />
              支持 </td>
          </tr>
          <tr> 
            <td width="150" class='bline' height="26" style="padding-left:10px;">是否隐藏栏目:</td>
            <td class='bline'> <input type='radio' name='ishidden' value='0' class='np'<?php if($myrow['ishidden']=="0") echo " checked='1' ";?>/>
              显示 &nbsp; <input type='radio' name='ishidden' value='1' class='np'<?php if($myrow['ishidden']=="1") echo " checked='1' ";?>/>
              隐藏 </td>
          </tr>
          <tr> 
            <td class='bline' height="26" style="padding-left:10px;"><font color='red'>内容模型:</font> </td>
            <td class='bline'> <select name="channeltype" id="channeltype" style="width:200px" onChange="ParTemplet(this)">
                <?php    
            foreach($channelArray as $k=>$arr)
            {
                if($k==$channelid) echo "    <option value='{$k}' selected>{$arr['typename']}|{$arr['nid']}</option>\r\n";
              else  echo "    <option value='{$k}'>{$arr['typename']}|{$arr['nid']}</option>\r\n";
            }
            ?>
              </select> </td>
          </tr>
          <tr> 
            <td class='bline' height="26" style="padding-left:10px;"><font color='red'>栏目名称:</font></td>
            <td class='bline'><input name="typename" type="text" id="typename" size="30" value="<?php echo $myrow['typename']?>" class="iptxt" /></td>
          </tr>
          <tr>
            <td class='bline' height="26" style="padding-left:10px;">英文名称:</td>
            <td class='bline'><input name="typenameen" type="text" id="typenameen" size="30" value="<?php echo $myrow['typenameen']?>" class="iptxt" />
              (栏目模板里用{dede:field.typenameen /}调用)</td>
          </tr>
          <tr> 
            <td class='bline' height="26" style="padding-left:10px;"> 排列顺序: </td>
            <td class='bline'> <input name="sortrank" size="6" type="text" value="<?php echo $myrow['sortrank']?>" class="iptxt" />
              (由低 -&gt; 高) </td>
          </tr>
          <tr> 
            <td class='bline' height="76px" style="padding-left:10px;">浏览权限:</td>
            <td class='bline'> <select name="corank[]" id="corank" style="width:100" multiple="true">
                <?php
              $dsql->SetQuery("Select * from #@__arcrank where rank >= 0");
              $dsql->Execute('cc');
              while($row = $dsql->GetObject('cc'))
              {
                  if(in_array($row->rank,$ranks))
                    echo "<option value='".$row->rank."' selected>".$row->membername."</option>\r\n";
                   else
                    echo "<option value='".$row->rank."'>".$row->membername."</option>\r\n";
              }
              ?>
              </select>
              (仅限制栏目里的文档浏览权限) </td>
          </tr>
          <tr> 
            <td class='bline' height="26" style="padding-left:10px;">文件保存目录:</td>
            <td class='bline'> <input name="typedir" type="text" id="typedir" value="<?php echo $myrow['typedir']?>" style="width:300px"  class="iptxt" /> 
            </td>
          </tr>
          <tr> 
            <td height="26" style="padding-left:10px;">栏目列表选项:</td>
            <td> <input type='radio' name='isdefault' value='1' class='np'<?php if($myrow['isdefault']==1) echo " checked='1' ";?>/>
              链接到默认页 
              <input type='radio' name='isdefault' value='0' class='np'<?php if($myrow['isdefault']==0) echo " checked='1' ";?>/>
              链接到列表第一页 
              <input type='radio' name='isdefault' value='-1' class='np'<?php if($myrow['isdefault']==-1) echo " checked='1' ";?>/>
              使用动态页 </td>
          </tr>
          <tr> 
            <td class='bline' height="26" style="padding-left:10px;">默认页的名称: </td>
            <td class='bline'><input name="defaultname" type="text" value="<?php echo $myrow['defaultname']?>" class="iptxt" /></td>
          </tr>
          <tr> 
            <td height="26" class='bline' style="padding-left:10px;">栏目属性:</td>
            <td class='bline'>
                <input name="ispart" type="radio" id="radio" value="0" class='np'<?php if($myrow['ispart']==0) echo " checked='1' ";?>/>
              最终列表栏目(允许在本栏目发布文档,并生成文档列表)<br>
              <input name="ispart" type="radio" id="radio2" value="1" class='np'<?php if($myrow['ispart']==1) echo " checked='1' ";?>/>
              频道封面(栏目本身不允许发布文档)<br>
              <input name="ispart" type="radio" id="radio3" value="2" class='np'<?php if($myrow['ispart']==2) echo " checked='1' ";?>/>
              外部连接(在"文件保存目录"处填写网址)
              </td>
          </tr>
          <tr id='helpvarco' style='display:none'> 
            <td height="80" bgcolor="#F3F7EA" style="padding-left:10px;">栏目交叉说明: </td>
            <td bgcolor="#F3F7EA">
            交叉栏目是指一个大栏目与另一个非下级的子栏目出现交叉的情况,相当于系统原来的副栏目功能,不过现在改在栏目里预先设置好。<br />例如:
            网站上有大栏目——智能手机、音乐手机,另外又有栏目——诺基亚-&gt;智能手机、诺基亚-&gt;音乐手机,这样顶级的大栏目就和另一个大栏目的子栏目形成了交叉,这样只需要在大栏目中指定交叉的栏目即可。
            <br />注:会自动索引交叉栏目的内容,但不会索引交叉栏目下级栏目的内容,这种应用也适用于按地区划分资讯的站点。
            </td>
          </tr>
          <tr> 
            <td style="padding-left:10px;">栏目交叉:<img src="images/help.gif" alt="帮助" width="16" height="16" border="0" style="cursor:pointer" onClick="ShowHide('helpvarco')" /><br />仅适用[最终列表栏目]</td>
            <td class='bline' style="padding:3px 0px 3px 0px">
                <input name="cross" type="radio" id="cross0" onClick="CheckCross()" value="0" class='np'<?php if($myrow['cross']==0) echo " checked='1' ";?> />
                不交叉
                <input name="cross" type="radio" id="cross1" onClick="CheckCross()" value="1" class='np'<?php if($myrow['cross']==1) echo " checked='1' ";?>/>
                自动获取同名栏目内容
                <input name="cross" type="radio" id="cross2" onClick="CheckCross()" value="2" class='np'<?php if($myrow['cross']==2) echo " checked='1' ";?>/>
                手工指定交叉栏目ID(用逗号分开)
                <br />
                <textarea name="crossid" cols="50" rows="3" id="crossid" style="<?php if($myrow['cross']!=2) echo "display:none";?>" class="alltxt" ><?php echo $myrow['crossid']; ?></textarea>
            </td>
          </tr>
          <tr id='smclass' style='<?php echo ($channelid<0 ? '' : 'display:none'); ?>'>
            <td class='bline' style="padding-left:10px;">绑定小分类:  <br />仅适用[分类信息模型]</td>
            <td class='bline' style="padding:3px 0px 3px 0px">
                <select name='smalltype[]' size='5' style='width:120px' multiple='yes'>
                    <?php
                    $smtypes = explode(',',trim($myrow['smalltypes']));
                    $sql = "Select * From `#@__sys_enum` where egroup like 'infotype' order by disorder asc, id desc ";
                    $dsql->Execute('s',$sql);
                    while($arr = $dsql->GetArray('s'))
                    {
                        if(in_array($arr['evalue'],$smtypes)) {
                            $selstr = " selected='1' ";
                        }
                        else {
                            $selstr = '';
                        }
                        if($arr['evalue']%500==0) {
                            echo "<option value='{$arr['evalue']}'{$selstr}>{$arr['ename']}</option>\r\n";
                        }
                        else if(preg_match("#\.#", $arr['evalue']))
                        {
                            echo "<option value='{$arr['evalue']}'{$selstr}> └───{$arr['ename']}</option>\r\n";
                        }
                        else {
                            echo "<option value='{$arr['evalue']}'{$selstr}> └─{$arr['ename']}</option>\r\n";
                        }
                    }
                    ?>
                </select>    
                按 Ctrl 多选,不选系统将调用全部分类,在<a href='stepselect_main.php'>“<u>联动类别管理</u>”</a>中管理
            </td>
          </tr>
      </table>
        
        <table width="100%" border="0" cellspacing="0" cellpadding="0" style="border:1px solid #cfcfcf;background:#ffffff;display:none;text-align:left;" id="adset">
          <tr> 
            <td class='bline' width="150" height="24" style="padding-left:10px;">多站点支持:</td>
            <td class='bline'> <input name="moresite" type="radio"  class="np" value="0"<?php if($myrow['moresite']==0) echo " checked='1' ";?>/>
              不启用 
              <input type="radio" name="moresite" class="np" value="1"<?php if($myrow['moresite']==1) echo " checked='1' ";?>/>
              启用 </td>
          </tr>
          <tr> 
            <td height="24" bgcolor="#F9FCEF" style="padding-left:10px;">说明:</td>
            <td bgcolor="#F9FCEF">绑名绑定仅需要在顶级栏目设定,子级栏目更改无效。</td>
          </tr>
          <tr> 
            <td class='bline' height="24" style="padding-left:10px;">绑定域名:</td>
            <td class='bline'> <input name="siteurl" type="text" id="siteurl" size="35" value="<?php echo $myrow['siteurl']?>" class="iptxt" />
              (需加 http://,一级或二级域名的根网址) </td>
          </tr>
          <tr> 
            <td class='bline' height="24" style="padding-left:10px;">站点根目录:</td>
            <td class='bline'>
                为简化操作,站点根目录与当前栏目目录一致,请注意当前栏目文件保存目录的设置,域名需自行手工绑定到这个目录。
            </td>
          </tr>
          <tr id='helpvar1' style='display:none'> 
            <td height="24" bgcolor="#F9FCEF" style="padding-left:10px;">支持变量: </td>
            <td bgcolor="#F9FCEF"> {tid}表示栏目ID,<br>
              {cid}表示频道模型的'名字ID' <font color='#888888'> ( 
              <?php
              foreach($channelArray as $k=>$arr)
              {
                   echo "{$arr['typename']}({$arr['nid']})、";
              }
             ?>
              ) </font> <br/>
              模板文件的默认位置是放在模板目录 "cms安装目录 
              <?php echo $cfg_templets_dir ?>
              " 内。 
              <input type='hidden' value='{style}' name='dfstyle' /> </td>
          </tr>
          <tr> 
            <td height="26" style="padding-left:10px;">封面模板:</td>
            <td> <input name="tempindex" type="text" value="<?php echo $myrow['tempindex']?>" style="width:300px" class="iptxt" /> 
              <input type="button" name="set1" value="浏览..." class="coolbg np" style="width:60px" onClick="SelectTemplets('form1.tempindex');"/> 
              <img src="images/help.gif" alt="帮助" width="16" height="16" border="0" style="cursor:pointer" onClick="ShowHide('helpvar1')"/> 
            </td>
          </tr>
          <tr> 
            <td height="26" style="padding-left:10px;">列表模板:</td>
            <td> <input name="templist" type="text" value="<?php echo $myrow['templist']?>" style="width:300px" class="iptxt" /> 
              <input type="button" name="set3" value="浏览..." class="coolbg np" style="width:60px" onClick="SelectTemplets('form1.templist');"/> 
            </td>
          </tr>
          <tr> 
            <td height="26" style="padding-left:10px;">文章模板:</td>
            <td><input name="temparticle" type="text" value="<?php echo $myrow['temparticle']?>" style="width:300px"  class="iptxt" /> 
              <input type="button" name="set4" value="浏览..." class="coolbg np" style="width:60px" onClick="SelectTemplets('form1.temparticle');"/> 
            </td>
          </tr>
          <tr id='helpvar2' style='display:none'> 
            <td height="24" bgcolor="#F9FCEF" style="padding-left:10px;">支持变量: </td>
            <td height="24" bgcolor="#F9FCEF"> {Y}、{M}、{D} 年月日<br/>
              {timestamp} INT类型的UNIX时间戳<br/>
              {aid} 文章ID<br/>
              {pinyin} 拼音+文章ID<br/>
              {py} 拼音部首+文章ID<br/>
              {typedir} 栏目目录 <br/>
              {cc} 日期+ID混编后用转换为适合的字母 <br/>
              </td>
          </tr>
          <tr> 
            <td height="26" style="padding-left:10px;">文章命名规则:</td>
            <td> <input name="namerule" type="text" id="namerule" value="<?php echo $myrow['namerule']?>" size="40" class="iptxt" /> 
              <img src="images/help.gif" alt="帮助" width="16" height="16" border="0" style="cursor:pointer" onClick="ShowHide('helpvar2')"/> 
            </td>
          </tr>
          <tr id='helpvar3' style='display:none'> 
            <td height="24" bgcolor="#F9FCEF" style="padding-left:10px;">支持变量: </td>
            <td bgcolor="#F9FCEF">{page} 列表的页码</td>
          </tr>
          <tr> 
            <td height="26" style="padding-left:10px;">列表命名规则:</td>
            <td> <input name="namerule2" type="text" id="namerule2" value="<?php echo $myrow['namerule2']?>" size="40" class="iptxt" /> 
              <img src="images/help.gif" alt="帮助" width="16" height="16" border="0" style="cursor:pointer" onClick="ShowHide('helpvar3')"/></td>
          </tr>
          <tr>
            <td height="65" style="padding-left:10px;">栏目图片:</td>
            <td><input name="typeimg" type="text" style="width:250px"id="typeimg" class="alltxt" value="<?php echo $myrow['typeimg'];?>"/>
              <input type="button" name="set9" value="浏览... " class="coolbgnp" style="width:60px" onClick="SelectImage('form1.typeimg','small');"/>
              (栏目模板里用{dede:field.typeimg /}调用) </td>
          </tr>
          <tr>
            <td height="65" style="padding-left:10px;">SEO标题:</td>
            <td>
                <input name="seotitle" type="text" style="width:250px" id="seotitle" class="alltxt" value="<?php echo $myrow['seotitle']?>" />
                (栏目模板里用{dede:field.seotitle /}调用)
            </td>
          </tr>
          <tr> 
            <td height="65" style="padding-left:10px;">关键字:</td>
            <td> <textarea name="keywords" cols="70" rows="4" id="keywords"  class="alltxt" ><?php echo $myrow['keywords']?></textarea> 
            </td>
          </tr>
          <tr>
            <td height="65" style="padding-left:10px;">栏目描述:</td>
            <td height="65"><textarea name="description" cols="70" style="height:50px" rows="4" id="description" class="alltxt" ><?php echo $myrow['description']?></textarea></td>
          </tr>
          <tr> 
            <td height="45" style="padding-left:10px;">继承选项:</td>
            <td> 
              <input name="upnext" type="checkbox" id="upnext" value="1" class="np"/>
              同时更改下级栏目的浏览权限、内容类型、模板风格、命名规则等通用属性
            </td>
          </tr>
        </table>
        
        <table width="100%" border="0" cellspacing="0" cellpadding="0" style="border:1px solid #cfcfcf;background:#ffffff;display:none;text-align:left;" id="ctset">
          <tr> 
            <td height="28">&nbsp;说明:栏目内容是替代原来栏目单独页的更灵活的一种方式,可在栏目模板中用{dede:field.content/}调用,通常用于企业简介之类的用途。</td>
          </tr>
          <tr> 
            <td style="padding:10px;">
                <?php
                GetEditor("content",$myrow['content'],"450","Default","print","false");
                ?> 
            </td>
          </tr>
      </table>
        
          <table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#F9FCEF" style="border:1px solid #cfcfcf;border-top:none;">
               <tr> 
            <td width="1%" height="36"></td>
            <td width="99%" valign="bottom">
            <input name="imageField" type="image" src="images/button_ok.gif" width="60" height="22" border="0" class="np"/>
            &nbsp;&nbsp;&nbsp;
            <a href="catalog_main.php"><img src="images/button_back.gif" width="60" height="22" border="0"></a>
                </td>
          </tr>
        </table></td>
      </form>
  </tr>
</table>
</body>
</html>

4.修改存入数据库的数据处理逻辑catlog_edit.php

//add by xiaorui 20200320 增加权限多选

$corank=implode(',',$corank);

//add end

<?php
/**
 * 栏目编辑
 *
 * @version        $Id: catalog_edit.php 1 14:31 2010年7月12日Z tianya $
 * @package        DedeCMS.Administrator
 * @copyright      Copyright (c) 2007 - 2010, DesDev, Inc.
 * @license        http://help.dedecms.com/usersguide/license.html
 * @link           http://www.dedecms.com
 */
require_once(dirname(__FILE__)."/config.php");
require_once(DEDEINC."/typelink.class.php");
if(empty($dopost)) $dopost = '';
$id = isset($id) ? intval($id) : 0;

//检查权限许可
CheckPurview('t_Edit,t_AccEdit');

//检查栏目操作许可
CheckCatalog($id, '你无权更改本栏目!');

/*栏目二开字段 by 小虎哥*/
$dsql->GetTableFields('#@__arctype');
$fieldArray = $dsql->GetArray();
if (!in_array('typenameen', $fieldArray)) { // 英文栏目名称
  $dsql->ExecuteNoneQuery("ALTER TABLE `#@__arctype` ADD `typenameen` char(100) NOT NULL default ''");
}
if (!in_array('typeimg', $fieldArray)) { // 栏目封面图
  $dsql->ExecuteNoneQuery("ALTER TABLE `#@__arctype` ADD `typeimg` char(100) NOT NULL default ''");
}
/*--end*/

/*-----------------------
function action_save()
----------------------*/
if($dopost=="save")
{
    $description = Html2Text($description,1);
    $keywords = Html2Text($keywords,1);
    $uptopsql = $smalltypes = '';
    if(isset($smalltype) && is_array($smalltype)) $smalltypes = join(',',$smalltype);
    if($topid==0)
    {
        $sitepath = $typedir;
        $uptopsql = " ,siteurl='$siteurl',sitepath='$sitepath',ishidden='$ishidden' ";
    }
	
	//add by xiaorui 20200320 增加权限多选
	$corank=implode(',',$corank);
	//add end
    if($ispart!=0) $cross = 0;

    $upquery = "UPDATE `#@__arctype` SET
     issend='$issend',
     sortrank='$sortrank',
     typename='$typename',
     typenameen='$typenameen',
     typedir='$typedir',
     typeimg='$typeimg',
     isdefault='$isdefault',
     defaultname='$defaultname',
     issend='$issend',
     ishidden='$ishidden',
     channeltype='$channeltype',
     tempindex='$tempindex',
     templist='$templist',
     temparticle='$temparticle',
     namerule='$namerule',
     namerule2='$namerule2',
     ispart='$ispart',
     corank='$corank',
     description='$description',
     keywords='$keywords',
     seotitle='$seotitle',
     moresite='$moresite',
     `cross`='$cross',
     `content`='$content',
     `crossid`='$crossid',
     `smalltypes`='$smalltypes'
     $uptopsql
    WHERE id='$id' ";

    if(!$dsql->ExecuteNoneQuery($upquery))
    {
        ShowMsg("保存当前栏目更改时失败,请检查你的输入资料是否存在问题!","-1");
        exit();
    }

    //如果选择子栏目可投稿,更新顶级栏目为可投稿
    if($topid>0 && $issend==1)
    {
        $dsql->ExecuteNoneQuery("UPDATE `#@__arctype` SET issend='$issend' WHERE id='$topid'; ");
    }
    $slinks = " id IN (".GetSonIds($id).")";

    //修改顶级栏目时强制修改下级的多站点支持属性
    if($topid==0 && preg_match("#,#", $slinks))
    {
        $upquery = "UPDATE `#@__arctype` SET moresite='$moresite', siteurl='$siteurl',sitepath='$sitepath',ishidden='$ishidden' WHERE 1=1 AND $slinks";
        $dsql->ExecuteNoneQuery($upquery);
    }

    //更改子栏目属性
    if(!empty($upnext))
    {
        $upquery = "UPDATE `#@__arctype` SET
       issend='$issend',
       defaultname='$defaultname',
       channeltype='$channeltype',
       tempindex='$tempindex',
       templist='$templist',
       temparticle='$temparticle',
       namerule='$namerule',
       namerule2='$namerule2',
       ishidden='$ishidden'
     WHERE 1=1 AND $slinks";
        if(!$dsql->ExecuteNoneQuery($upquery))
        {
            ShowMsg("更改当前栏目成功,但更改下级栏目属性时失败!","-1");
            exit();
        }
    }
    UpDateCatCache();
    ShowMsg("成功更改一个分类!","catalog_main.php");
    exit();
}//End Save Action
else if ($dopost=="savetime")
{
    $uptopsql = '';
    $slinks = " id IN (".GetSonIds($id).")";
    
    //顶级栏目二级域名根目录处理
    if($topid==0 && $moresite==1)
    {
        $sitepath = $typedir;
        $uptopsql = " ,sitepath='$sitepath' ";
        if(preg_match("#,#", $slinks))
        {
            $upquery = "UPDATE `#@__arctype` SET sitepath='$sitepath' WHERE $slinks";
            $dsql->ExecuteNoneQuery($upquery);
        }
    }
    //如果选择子栏目可投稿,更新顶级栏目为可投稿
    if($topid > 0 && $issend==1)
    {
        $dsql->ExecuteNoneQuery("UPDATE `#@__arctype` SET issend='$issend' WHERE id='$topid'; ");
    }
    
    $upquery = "UPDATE `#@__arctype` SET
     issend='$issend',
     sortrank='$sortrank',
     typedir='$typedir',
     typename='$typename',
        isdefault='$isdefault',
     defaultname='$defaultname',
     ispart='$ispart',
     corank='$corank' $uptopsql
    WHERE id='$id' ";
    
    if(!$dsql->ExecuteNoneQuery($upquery))
    {
        ShowMsg("保存当前栏目更改时失败,请检查你的输入资料是否存在问题!","-1");
        exit();
    }
    UpDateCatCache();
    ShowMsg("成功更改一个分类!","catalog_main.php");
    exit();
}

//读取栏目信息
$dsql->SetQuery("SELECT tp.*,ch.typename as ctypename FROM `#@__arctype` tp LEFT JOIN `#@__channeltype` ch ON ch.id=tp.channeltype WHERE tp.id=$id");
$myrow = $dsql->GetOne();
$topid = $myrow['topid'];
if($topid>0)
{
    $toprow = $dsql->GetOne("SELECT moresite,siteurl,sitepath FROM `#@__arctype` WHERE id=$topid");
    foreach($toprow as $k=>$v)
    {
        if(!preg_match("#[0-9]#", $k))
        {
            $myrow[$k] = $v;
        }
    }
}
$myrow['content']=empty($myrow['content'])? "&nbsp;" : $myrow['content'];
//add by xiaorui 显示权限多选 20200320
$ranks = explode(',',$myrow['corank']);
//add end
//读取频道模型信息
$channelid = $myrow['channeltype'];
$dsql->SetQuery("SELECT id,typename,nid FROM `#@__channeltype` WHERE id<>-1 AND isshow=1 ORDER BY id");
$dsql->Execute();
while($row = $dsql->GetObject())
{
    $channelArray[$row->id]['typename'] = $row->typename;
    $channelArray[$row->id]['nid'] = $row->nid;
    if($row->id==$channelid)
    {
        $nid = $row->nid;
    }
}
PutCookie('lastCid',GetTopid($id),3600*24,"/");
if($dopost == 'time')
{
    ?>
      <form name="form1" action="catalog_edit.php" method="post" onSubmit="return checkSubmit();">
  <input type="hidden" name="dopost" value="savetime" />
  <input type="hidden" name="id" value="<?php echo $id; ?>" />
  <input type="hidden" name="topid" value="<?php echo $myrow['topid']; ?>" />
  <input type="hidden" name="moresite" value="<?php echo $myrow['moresite']; ?>" />
    <table width="100%" border="0" cellpadding="0" cellspacing="0">
       <tr> 
            <td class='bline' height="26" align="center" colspan="2">
            <a href='catalog_edit.php?id=<?php echo $id; ?>'><u>当前是快捷编辑模式,如果您要修改更详细的参数,请使用高级模式&gt;&gt;</u></a>
            </td>
          </tr>
         <tr> 
            <td width="150" class='bline' height="26" align="center">是否支持投稿:</td>
            <td class='bline'> <input type='radio' name='issend' value='0' class='np' <?php if($myrow['issend']=="0") echo " checked='1' ";?> />
              不支持&nbsp; <input type='radio' name='issend' value='1' class='np' <?php if($myrow['issend']=="1") echo " checked='1' ";?> />
              支持 </td>
          </tr>
          <!-- 在快速修改更改内容模型后,因为模板没改变,会导致错误,因此去除些选择框。 -->
          <tr> 
            <td class='bline' height="26" align="center"><font color='red'>内容模型:</font> </td>
            <td class='bline'>
            <?php    
            foreach($channelArray as $k=>$arr)
            {
                if($k==$channelid) echo "{$arr['typename']} | {$arr['nid']}";
            }
            ?>
            <a href='catalog_edit.php?id=<?php echo $id; ?>'><u>[修改]</u></a>
            </td>
          </tr>
          <tr> 
            <td class='bline' height="26" align="center"><font color='red'>栏目名称:</font></td>
            <td class='bline'><input name="typename" type="text" id="typename" size="30" value="<?php echo $myrow['typename']?>" class="iptxt" /></td>
          </tr>
          <tr> 
            <td class='bline' height="26" align="center"> 排列顺序: </td>
            <td class='bline'> <input name="sortrank" size="6" type="text" value="<?php echo $myrow['sortrank']?>" class="iptxt" />
              (由低 -&gt; 高) </td>
          </tr>
          <tr> 
            <td class='bline' height="26" align="center">浏览权限:</td>
            <td class='bline'> <select name="corank" id="corank" style="width:100" >
                <?php
              $dsql->SetQuery("SELECT * FROM #@__arcrank WHERE rank >= 0");
              $dsql->Execute();
              while($row = $dsql->GetObject())
              {
                  if($myrow['corank']==$row->rank)
                    echo "<option value='".$row->rank."' selected>".$row->membername."</option>\r\n";
                        else
                          echo "<option value='".$row->rank."'>".$row->membername."</option>\r\n";
              }
              ?>
              </select>
              (仅限制栏目里的文档浏览权限) </td>
          </tr>
          <tr>
              <td class='bline' height="26" align="center">文件保存目录:</td>
              <td class='bline'><input name="typedir" type="text" id="typedir" value="<?php echo $myrow['typedir']?>" style="width:300px"  class="iptxt" /></td>
          </tr>
          <tr> 
            <td height="26" align="center" class='bline'>栏目列表选项:</td>
            <td class='bline'> <input type='radio' name='isdefault' value='1' class='np'<?php if($myrow['isdefault']==1) echo " checked='1' ";?>/>
              链接到默认页 
              <input type='radio' name='isdefault' value='0' class='np'<?php if($myrow['isdefault']==0) echo " checked='1' ";?>/>
              链接到列表第一页 
              <input type='radio' name='isdefault' value='-1' class='np'<?php if($myrow['isdefault']==-1) echo " checked='1' ";?>/>
              使用动态页 </td>
          </tr>
          <tr> 
            <td class='bline' height="26" align="center">默认页的名称: </td>
            <td class='bline'><input name="defaultname" type="text" value="<?php echo $myrow['defaultname']?>" class="iptxt" /></td>
          </tr>
          <tr> 
            <td height="26" class='bline' align="center">栏目属性:</td>
            <td class='bline'>
                <input name="ispart" type="radio" id="radio" value="0" class='np'<?php if($myrow['ispart']==0) echo " checked='1' ";?>/>
              最终列表栏目(允许在本栏目发布文档,并生成文档列表)<br>
              <input name="ispart" type="radio" id="radio2" value="1" class='np'<?php if($myrow['ispart']==1) echo " checked='1' ";?>/>

              频道封面(栏目本身不允许发布文档)<br>
              <input name="ispart" type="radio" id="radio3" value="2" class='np'<?php if($myrow['ispart']==2) echo " checked='1' ";?>/>
              外部连接(在"文件保存目录"处填写网址)              </td>
          </tr>
          <tr>              
            <td align="center" colspan="2" height="54" bgcolor='#FAFEE0'>
            <input name="imageField" type="image" src="images/button_ok.gif" width="60" height="22" border="0" class="np"/>
            &nbsp;&nbsp;&nbsp;
            <a title='关闭' onclick='CloseMsg()'><img src="images/button_back.gif" width="60" height="22" border="0"></a>
            </td>
          </tr>
      </table>
      </form>
    <?php
    exit();
}
else 
{
    include DedeInclude('templets/catalog_edit.htm');
}
?>

5.同上,修改文章修改权限模板页面article_edit.htm/php

//add by xiaorui 20200320 多选权限

$arcrank=implode(',',$arcrank);

//add end 

<?php
/**
 * 文档编辑
 *
 * @version        $Id: article_edit.php 1 14:12 2010年7月12日Z tianya $
 * @package        DedeCMS.Administrator
 * @copyright      Copyright (c) 2007 - 2010, DesDev, Inc.
 * @license        http://help.dedecms.com/usersguide/license.html
 * @link           http://www.dedecms.com
 */
require_once(dirname(__FILE__)."/config.php");
CheckPurview('a_Edit,a_AccEdit,a_MyEdit');
require_once(DEDEINC."/customfields.func.php");
require_once(DEDEADMIN."/inc/inc_archives_functions.php");
if(file_exists(DEDEDATA.'/template.rand.php'))
{
    require_once(DEDEDATA.'/template.rand.php');
}
if(empty($dopost)) $dopost = '';


$aid = isset($aid) && is_numeric($aid) ? $aid : 0;
if($dopost!='save')
{
    require_once(DEDEADMIN."/inc/inc_catalog_options.php");
    require_once(DEDEINC."/dedetag.class.php");
    ClearMyAddon();

    //读取归档信息
    $query = "SELECT ch.typename AS channelname,ar.membername AS rankname,arc.*
    FROM `#@__archives` arc
    LEFT JOIN `#@__channeltype` ch ON ch.id=arc.channel
    LEFT JOIN `#@__arcrank` ar ON ar.rank=arc.arcrank WHERE arc.id='$aid' ";
    $arcRow = $dsql->GetOne($query);
    if(!is_array($arcRow))
    {
        ShowMsg("读取档案基本信息出错!","-1");
        exit();
    }
    $query = "SELECT * FROM `#@__channeltype` WHERE id='".$arcRow['channel']."'";
    $cInfos = $dsql->GetOne($query);
    if(!is_array($cInfos))
    {
        ShowMsg("读取频道配置信息出错!","javascript:;");
        exit();
    }
    $addtable = $cInfos['addtable'];
    $addRow = $dsql->GetOne("SELECT * FROM `$addtable` WHERE aid='$aid'");
    if(!is_array($addRow))
    {
        ShowMsg("读取附加信息出错!","javascript:;");
        exit();
    }
    $channelid = $arcRow['channel'];
    $tags = GetTags($aid);
    include DedeInclude("templets/article_edit.htm");
    exit();
}
/*--------------------------------
function __save(){  }
-------------------------------*/
else if($dopost=='save')
{
    require_once(DEDEINC.'/image.func.php');
    require_once(DEDEINC.'/oxwindow.class.php');
    $flag = isset($flags) ? join(',',$flags) : '';
    $notpost = isset($notpost) && $notpost == 1 ? 1: 0;
    
    if(empty($typeid2)) $typeid2 = 0;
    if(!isset($autokey)) $autokey = 0;
    if(!isset($remote)) $remote = 0;
    if(!isset($dellink)) $dellink = 0;
    if(!isset($autolitpic)) $autolitpic = 0;
    
    if(empty($typeid))
    {
        ShowMsg("请指定文档的栏目!", "-1");
        exit();
    }
    if(empty($channelid))
    {
        ShowMsg("文档为非指定的类型,请检查你发布内容的表单是否合法!", "-1");
        exit();
    }
    if(!CheckChannel($typeid, $channelid))
    {
        ShowMsg("你所选择的栏目与当前模型不相符,请选择白色的选项!", "-1");
        exit();
    }
    if(!TestPurview('a_Edit'))
    {
        if(TestPurview('a_AccEdit'))
        {
            CheckCatalog($typeid, "对不起,你没有操作栏目 {$typeid} 的文档权限!");
        }
        else
        {
            CheckArcAdmin($id, $cuserLogin->getUserID());
        }
    }


    //对保存的内容进行处理
    $pubdate = GetMkTime($pubdate);
    $sortrank = AddDay($pubdate,$sortup);
    $ismake = $ishtml==0 ? -1 : 0;
    $autokey = 1;
    $title = dede_htmlspecialchars(cn_substrR($title,$cfg_title_maxlen));
    $shorttitle = cn_substrR($shorttitle,36);
    $color =  cn_substrR($color,7);
    $writer =  cn_substrR($writer,20);
    $source = cn_substrR($source,30);
    $description = cn_substrR($description,250);
    $keywords = trim(cn_substrR($keywords,60));
    $filename = trim(cn_substrR($filename,40));
    $isremote  = (empty($isremote)? 0  : $isremote);
    $serviterm=empty($serviterm)? "" : $serviterm;
    if(!TestPurview('a_Check,a_AccCheck,a_MyCheck'))
    {
        $arcrank = -1;
    }
    $adminid = $cuserLogin->getUserID();

    //处理上传的缩略图
    if(empty($ddisremote))
    {
        $ddisremote = 0;
    }
    $litpic = GetDDImage('none',$picname,$ddisremote);

    //分析body里的内容
    $body = AnalyseHtmlBody($body,$description,$litpic,$keywords,'htmltext');

    //分析处理附加表数据
    $inadd_f = '';
    $inadd_v = '';
    if(!empty($dede_addonfields))
    {
        $addonfields = explode(';',$dede_addonfields);
        $inadd_f = '';
        $inadd_v = '';
        if(is_array($addonfields))
        {
            foreach($addonfields as $v)
            {
                if($v=='')
                {
                    continue;
                }
                $vs = explode(',',$v);
                if($vs[1]=='htmltext'||$vs[1]=='textdata') //HTML文本特殊处理
                {
                    ${$vs[0]} = AnalyseHtmlBody(${$vs[0]},$description,$litpic,$keywords,$vs[1]);
                }else
                {
                    if(!isset(${$vs[0]}))
                    {
                        ${$vs[0]} = '';
                    }
                    ${$vs[0]} = GetFieldValueA(${$vs[0]},$vs[1],$id);
                }
                $inadd_f .= ",`{$vs[0]}` = '".${$vs[0]}."'";
            }
        }
    }

    //处理图片文档的自定义属性
    if($litpic!='' && !preg_match("#p#", $flag))
    {
        $flag = ($flag=='' ? 'p' : $flag.',p');
    }
    if($redirecturl!='' && !preg_match("#j#", $flag))
    {
        $flag = ($flag=='' ? 'j' : $flag.',j');
    }

    //跳转网址的文档强制为动态
    if(preg_match("#j#", $flag)) $ismake = -1;
	
	
	//add by xiaorui 20200320 多选权限
	$arcrank=implode(',',$arcrank);
	//add end 
    //更新数据库的SQL语句
    $query = "UPDATE #@__archives SET
    typeid='$typeid',
    typeid2='$typeid2',
    sortrank='$sortrank',
    flag='$flag',
    click='$click',
    ismake='$ismake',
    arcrank='$arcrank',
    money='$money',
    title='$title',
    color='$color',
    writer='$writer',
    source='$source',
    litpic='$litpic',
    pubdate='$pubdate',
    voteid='$voteid',
    notpost='$notpost',
    description='$description',
    keywords='$keywords',
    shorttitle='$shorttitle',
    filename='$filename',
    dutyadmin='$adminid',
    weight='$weight'
    WHERE id='$id'; ";

    if(!$dsql->ExecuteNoneQuery($query))
    {
        ShowMsg('更新数据库archives表时出错,请检查',-1);
        exit();
    }
    
    $cts = $dsql->GetOne("SELECT addtable FROM `#@__channeltype` WHERE id='$channelid' ");
    $addtable = trim($cts['addtable']);
    if($addtable!='')
    {
        $useip = GetIP();
        $templet = empty($templet) ? '' : $templet;
        $iquery = "UPDATE `$addtable` SET typeid='$typeid',body='$body'{$inadd_f},redirecturl='$redirecturl',templet='$templet',userip='$useip' WHERE aid='$id'";
        if(!$dsql->ExecuteNoneQuery($iquery))
        {
            ShowMsg("更新附加表 `$addtable`  时出错,请检查原因!","javascript:;");
            exit();
        }
    }

    //生成HTML
    UpIndexKey($id, $arcrank, $typeid, $sortrank, $tags);
    if($cfg_remote_site=='Y' && $isremote=="1")
    {    
        if($serviterm!=""){
            list($servurl, $servuser, $servpwd) = explode(',', $serviterm);
            $config=array( 'hostname' => $servurl, 'username' => $servuser, 
                                           'password' => $servpwd,'debug' => 'TRUE');
        } else {
            $config=array();
        }
        if(!$ftp->connect($config)) exit('Error:None FTP Connection!');
    }
    $artUrl = MakeArt($id,true,true,$isremote);
    if($artUrl=='')
    {
        $artUrl = $cfg_phpurl."/view.php?aid=$id";
    }
    ClearMyAddon($id, $title);
    
    //返回成功信息
    $msg = "
      请选择你的后续操作:
    <a href='article_add.php?cid=$typeid'><u>发布新文章</u></a>
    &nbsp;&nbsp;
    <a href='archives_do.php?aid=".$id."&dopost=editArchives'><u>查看更改</u></a>
    &nbsp;&nbsp;
    <a href='$artUrl' target='_blank'><u>查看文章</u></a>
    &nbsp;&nbsp;
    <a href='catalog_do.php?cid=$typeid&dopost=listArchives'><u>管理文章</u></a>
    &nbsp;&nbsp;
    $backurl
    ";

    $wintitle = "成功更改文章!";
    $wecome_info = "文章管理::更改文章";
    $win = new OxWindow();
    $win->AddTitle("成功更改文章:");
    $win->AddMsgItem($msg);
    $winform = $win->GetWindow("hand","&nbsp;",false);
    $win->Display();
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $cfg_soft_lang; ?>">
<title>更改文章</title>
<style type="text/css">
<!--
body {
	background-image: url(images/allbg.gif);
}
-->
</style>
<link href="css/base.css" rel="stylesheet" type="text/css">
<link href='css/tb-box.css' rel='stylesheet' type='text/css' />
<script language="javascript" src="../include/js/dedeajax2.js"></script>
<script type="text/javascript" src="js/calendar/calendar.js"></script>
<script language="javascript" src="js/main.js"></script>
<script type="text/javascript"src="js/handlers.js"></script>
<script type="text/javascript" src="../images/swfupload/swfupload.js"></script>
<script language="javascript" src="../include/js/jquery/jquery.js"></script>
<script language="javascript" src="../include/js/jquery/ui.core.js"></script>
<script language="javascript" src="../include/js/jquery/ui.draggable.js"></script>
<script language='javascript' src='js/tb-box.js'></script>
<script language="javascript">
<!--
var swfu = null;
var arctype = 'article';
function checkSubmit()
{
	if(document.form1.title.value=='')
	{
		alert('文章标题不能为空!');
		document.form1.title.focus();
		return false;
	}
}

function addVote()
{
    tb_show('添加投票', 'vote_add.php?isarc=1&TB_iframe=true&height=460&width=600', false);
}

function selectVote()
{
    tb_show('选取投票','vote_main.php?issel=1&TB_iframe=true&height=460&width=600',false);
}


function viewVote()
{
    if($("#voteid").val() != 0)
    {
        window.open('<?php echo $cfg_cmsurl;?>/plus/vote.php?dopost=view&aid=' + $("#voteid").val());
    } else {
        alert('请选择一个投票');
        return false;
    }
}
window.onload = function ()
{
	swfu = new SWFUpload(
	{
		// Backend Settings
		upload_url: "swfupload.php",
		post_params: {"PHPSESSID": "<?php echo session_id(); ?>", "dopost" : "", "arctype" : arctype,
		"arcid":<?php echo $arcRow['id']?>},

		// File Upload Settings
		file_size_limit : "2 MB",	// 2MB
		file_types : "*.jpg; *.gif; *.png",
		file_types_description : "选择 JPEG/GIF/PNG 格式图片",
		file_upload_limit : "0",

		file_queue_error_handler : fileQueueError,
		file_dialog_complete_handler : fileDialogComplete,
		upload_progress_handler : uploadProgress,
		upload_error_handler : uploadError,
		upload_success_handler : uploadSuccess,
		upload_complete_handler : uploadComplete,

		button_image_url : "../images/SmallSpyGlassWithTransperancy_17x18.png",
		button_placeholder_id : "spanButtonPlaceholder",
		button_width: '100%',
		button_height: 26,
		button_text : '<div class="button" style="background-color:#E5F1CF; height:26px; text-align:center; line-height:26px">上传图片(可多选)</div>',
		button_text_style : '',
		button_text_top_padding: 0,
		button_text_left_padding: 10,
		button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
		button_cursor: SWFUpload.CURSOR.HAND,
		
		// Flash Settings
		flash_url : "../images/swfupload/swfupload.swf",

		custom_settings : {
			upload_target : "divFileProgressContainer"
		},
		
		// Debug Settings
		debug: false
	});
};

function addtoEditOld(picurl,pid)
{
	var picTitle = jQuery('input[name="picinfook'+pid+'"]').val();
	var picHTML = '<img src="'+picurl+'" alt="'+picTitle+'"/>';
	CKEDITOR.instances.body.insertHtml(picHTML);
}

//删除已经上传的图片
function delAlbPic(pid){
	// 同步删除编辑器中插入的图片
	jQuery("#__tmpbody").html();
	jQuery.get('swfupload.php?dopost=addtoedit&id=' + pid, function(data)
	{
		var iptbody = CKEDITOR.instances.body.getData();
		jQuery("#__tmpbody").html(iptbody);
		jQuery("#__tmpbody").find('img').each(function()
		{
			if(jQuery(this).attr('src') == data)
			{
				//alert(data);
				jQuery(this).remove();
			}
		});
		CKEDITOR.instances.body.setData(jQuery("#__tmpbody").html()); 
		jQuery("#__tmpbody").html();
		var tgobj = $Obj('albCtok'+pid);
		var myajax = new DedeAjax(tgobj);
		myajax.SendGet2('swfupload.php?dopost=del&id='+pid);
		$Obj('thumbnails').removeChild(tgobj);
	});
}

function addtoEdit(pid)
{
	jQuery.get('swfupload.php?dopost=addtoedit&id=' + pid, function(data)
	{
		var picTitle = jQuery('input[name="picinfook'+pid+'"]').val();
		var picHTML = '<img src="'+data+'" alt="'+picTitle+'"/>';
		CKEDITOR.instances.body.insertHtml(picHTML);
	});
}

//删除已经上传的图片(编辑时用)
function delAlbPicOld(picfile, pid){
	var iptbody = CKEDITOR.instances.body.getData();
	jQuery("#__tmpbody").html(iptbody);
	jQuery("#__tmpbody").find('img').each(function()
	{
		if(jQuery(this).attr('src') == picfile)
		{
			//alert(data);
			jQuery(this).remove();
		}
	});
	CKEDITOR.instances.body.setData(jQuery("#__tmpbody").html()); 
	jQuery("#__tmpbody").html();
	
	var tgobj = $Obj('albold'+pid);
	var myajax = new DedeAjax(tgobj);
	myajax.SendGet2('swfupload.php?dopost=delold&picfile='+picfile);
	$Obj('thumbnailsEdit').removeChild(tgobj);
}
-->
</script>
</head>
<body topmargin="8">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="60%" height="30"><IMG height=14 src="images/book1.gif" width=20>&nbsp;<a href="catalog_do.php?cid=<?php echo $arcRow['typeid']?>&channelid=<?php echo $channelid?>&dopost=listArchives"><u>文章列表</u></a> &gt;&gt; 更改文章</td>
    <td width="30%" align='right'>&nbsp; <?php echo $backurl; ?><a href="catalog_main.php">[<u>栏目管理</u>]</a></td>
    <td width="1%">&nbsp;</td>
  </tr>
</table>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" id="head1">
  <tr>
    <td colspan="2"><table border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td width="84" height="24" align="center" background="images/itemnote1.gif">&nbsp;常规信息&nbsp;</td>
          <td width="84" align="center" background="images/itemnote2.gif"><a href="#" onClick="ShowItem2()"><u>高级参数</u></a></td>
        </tr>
      </table></td>
  </tr>
</table>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" id="head2" style="display:none">
  <tr>
    <td colspan="2"><table height="24" border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td width="84" align="center" background="images/itemnote2.gif"><a href="#" onClick="ShowItem1()"><u>常规信息</u></a>&nbsp;</td>
          <td width="84" align="center" background="images/itemnote1.gif">高级参数</td>
        </tr>
      </table></td>
  </tr>
</table>
<form name="form1" action="article_edit.php" enctype="multipart/form-data" method="post" onSubmit="return checkSubmit();">
  <input type="hidden" name="dopost" value="save" />
  <input type="hidden" name="channelid" value="<?php echo $channelid?>" />
  <input type="hidden" name="id" value="<?php echo $aid?>" />
  <table width="100%"  border="0" align="center" cellpadding="2" cellspacing="2" id="needset" style="border:1px solid #cfcfcf;background:#ffffff;">
    <tr>
      <td height="24" colspan="2" class="bline"><table width="800" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="90">&nbsp;文章标题:</td>
            <td width='408'><input name="title" type="text" id="title" value="<?php echo $arcRow['title']; ?>" style="width:388px"></td>
            <td width="90">&nbsp;简略标题:</td>
            <td><input name="shorttitle" type="text" id="shorttitle" style="width:150px"  value="<?php echo $arcRow['shorttitle']; ?>"></td>
          </tr>
        </table></td>
    </tr>
    <tr>
      <td width="400%" height="24" colspan="2" class="bline"><table width="800" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="90">&nbsp;自定义属性:</td>
            <td><?php
         $dsql->SetQuery("SELECT * FROM `#@__arcatt` ORDER BY sortid ASC");
         $dsql->Execute();
         while($trow = $dsql->GetObject())
         {
         	if($trow->att=='j')
         	{
         		$jumpclick = " onclick='ShowUrlTr()'";
         	}
         	else
         	{
         		$jumpclick = '';
         	}
         	if(preg_match("#".$trow->att."#", $arcRow['flag']))
         	{
         		echo "<input class='np' type='checkbox' name='flags[]' id='flags{$trow->att}' value='{$trow->att}' {$jumpclick} checked='checked' />{$trow->attname}[{$trow->att}]";
         	}

         	else
         	{
         		echo "<input class='np' type='checkbox' name='flags[]' id='flags{$trow->att}' value='{$trow->att}'{$jumpclick} />{$trow->attname}[{$trow->att}]";
         	}
         }
          ?></td>
          </tr>
        </table></td>
    </tr>
    <tr>
      <td height="24" colspan="2" class="bline" id="redirecturltr" style="display:<?php echo (empty($addRow['redirecturl']) ? 'none' : 'block');?>"><table width="800" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="90">&nbsp;跳转网址:</td>
            <td><input name="redirecturl" type="text" id="redirecturl" style="width:300px" value="<?php echo $addRow["redirecturl"]?>" /></td>
          </tr>
        </table></td>
    </tr>
    <tr>
      <td width="400%" height="24" colspan="2" class="bline"><table width="800" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="90">&nbsp;TAG标签:</td>
            <td><input name="tags" type="text" id="tags" value="<?php echo $tags; ?>" style="width:300px" />
              (','号分开,单个标签小于12字节)</td>
            <td width="40">权重:</td>
            <td width="141"><input name="weight" type="text" id="weight" style="width:50px" value="<?php echo $arcRow['weight'];?>" />
              (越小越靠前)</td>
          </tr>
        </table></td>
    </tr>
    <tr id="pictable">
      <td height="24" colspan="2" class="bline"><table width="800" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="90" height="81">&nbsp;缩 略 图:<br/></td>
            <td><input name="picname" type="text" id="picname" style="width:300px" value="<?php echo $arcRow["litpic"]?>">
              <input type="button" name="Submit" value="浏览..." style="width:70px" onClick="SelectImage('form1.picname','');">
              <input type="button" name="Submit2" value="裁剪" style="margin-left:8px;" onClick="imageCut('picname');" class='np coolbg'/>
              <input type='checkbox' class='np' name='ddisremote' value='1' />
              远程 </td>
            <td align="center"><img src="<?php if($arcRow["litpic"]!="") echo $arcRow["litpic"]; else echo "images/pview.gif";?>" width="150" height="100" id="picview" name="picview"></td>
          </tr>
        </table></td>
    </tr>
    <tr>
      <td height="24" colspan="2" class="bline"><table width="800" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="90">&nbsp;文章来源:</td>
            <td width="250"><input name="source" type="text" id="source" style="width:160px" value="<?php echo $arcRow["source"]?>" size="16">
              <input name="selsource" type="button" id="selsource" value="选择" /></td>
            <td width="90">作 者:</td>
            <td><input name="writer" type="text" id="writer" style="width:120px" value="<?php echo $arcRow["writer"]?>">
              <input name="selwriter" type="button" id="selwriter" value="选择" /></td>
          </tr>
        </table></td>
    </tr>
    <tr>
      <td height="24" colspan="2" class="bline"><table width="800" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="90">&nbsp;文章主栏目:</td>
            <td><?php
            $typeOptions = GetOptionList($arcRow['typeid'],$cuserLogin->getUserChannel(),$channelid);
            echo "<select name='typeid' id='typeid' style='width:240px'>\r\n";
            if($arcRow["typeid"]=="0") echo "<option value='0' selected>请选择栏目...</option>\r\n";
            echo $typeOptions;
            echo "</select>";
			     ?>
              <img src='images/menusearch.gif' style='cursor:pointer' onClick="ShowCatMap(event, this, <?php echo $channelid; ?>, 'typeid', '<?php echo $arcRow['typeid']; ?>')" alt='快捷选择' title='快捷选择' />
              <?php 
     			 if($cfg_remote_site=='Y')
     			 {
   				 ?>
              <input name="isremote" type="checkbox" id="isremote" value="1" <?php if($cfg_title_site=='Y') echo "checked";?>>
              是否同步远程发布
              <?php GetFtp();?>
              <?php
     			 }
    		?></td>
          </tr>
        </table></td>
    </tr>
    <?php
if($cfg_need_typeid2=='Y') {
?>
    <tr>
      <td height="24" colspan="2" class="bline"><table width="800" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="90">&nbsp;文章副栏目:</td>
            <td><span id='typeid2ct'></span>
              <input type='text' name='typeid2' id='typeid2' value='<?php echo ($arcRow['typeid2']=='0' ? '' : $arcRow['typeid2']); ?>' style='width:200px;' />
              <img src='images/menusearch2.gif' style='cursor:pointer;' onClick="ShowCatMap(event, this, <?php echo $channelid; ?>, 'typeid2', '<?php echo $arcRow['typeid2']; ?>')" alt='选择副栏目' title='选择副栏目' /></td>
          </tr>
        </table></td>
    </tr>
    <?php } ?>
    <tr>
      <td colspan="2"><?php
      PrintAutoFieldsEdit($cInfos['fieldset'],$addRow,'autofield');
      ?></td>
    </tr>
    <tr>
      <td height="24" colspan="2" bgcolor="#F9FCEF" class="bline2">&nbsp;文章内容:</td>
    </tr>
    <tr>
      <td width="400%" height="24" colspan="2" class="bline"><table width="800" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="90">&nbsp;附加选项:</td>
            <td><input name="remote" type="checkbox" class="np" id="remote" value="1" checked>
              下载远程图片和资源
              <input name="autolitpic" type="checkbox" class="np" id="autolitpic" value="1" checked>
              提取第一个图片为缩略图 </td>
          </tr>
        </table></td>
    </tr>
    <tr>
      <td width="100%"><?php GetEditor("body",stripcslashes($addRow['body']),450); ?></td>
      <td width="255" align="center" valign="top" bgcolor="#FFFFCC" id="mPic" style="display:none"><div class="multipic">
          <div style="display: block;background-color:#E5F1CF; height:26px"> <span id="spanButtonPlaceholder"></span> </div>
          <div id="divFileProgressContainer"></div>
          
          
          <div id="thumbnailsEdit" style="width: 254px; height: 535px; background-color: rgb(255, 255, 255); overflow-y: scroll;">
          <?php
           //var_dump("SELECT * FROM `#@__uploads` WHERE arcid = {$addRow['aid']}");
            $dsql->SetQuery("SELECT * FROM `#@__uploads` WHERE arcid = {$addRow['aid']}");
            $dsql->Execute();
            while($trow = $dsql->GetArray())
            {
          ?>
            <div class="albCt" id="albold<?php echo $trow['aid'];?>"><img width="120" onclick="addtoEditOld('<?php echo $trow['url'];?>',<?php echo $trow['aid'];?>)" src="<?php echo $trow['url'];?>" style="cursor:pointer"><a href="javascript:delAlbPicOld('<?php echo $trow['url'];?>', <?php echo $trow['aid'];?>)">[删除]</a>
              <div style="margin-top:10px">注释:
                <input type="text" style="width:100px;" value="<?php echo $trow['title'];?>" name="picinfook<?php echo $trow['aid'];?>">
              </div>
            </div>
            <?php
            }
            ?>
            <div id="thumbnails"></div>
          </div>
          
        </div></td>
    </tr>
  </table>
  <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" id="votehead" style="margin-top:10px;">
    <tr>
      <td><table border="0" cellpadding="0" cellspacing="0">
          <tr>
            <td width="84" height="24" align="center" background="images/itemnote1.gif"><a href='javascript:ShowHideT("voteset")'><u>插入投票</u></a></td>
          </tr>
        </table></td>
    </tr>
  </table>
  <table width="100%"  border="0" align="center" cellpadding="2" cellspacing="2" id="voteset" style="border:1px solid #cfcfcf;background:#ffffff;">
    <tr>
      <td height="30"><table width="800" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="90" height="22">&nbsp;投票:</td>
            <td><input type="text" name="voteid" id="voteid" value="<?php echo $arcRow['voteid']; ?>" />
              <input name="selvote" type="button" id="selvote" value="选择投票" onClick="selectVote()" />
              <input name="addvote" type="button" id="addvote" value="新增投票" onclick="addVote()" />
              <input type="button" name="viewvote" id="viewvote" value="查看投票" onclick="viewVote()" /></td>
          </tr>
        </table></td>
    </tr>
  </table>
  <!-- //高级参数 -->
  <table width="100%"  border="0" align="center" cellpadding="2" cellspacing="2" id="adset" style="border:1px solid #cfcfcf;background:#ffffff;display:none">
    <tr>
      <td height="24" colspan="4" class="bline"><table width="800" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td  width="110" height="22">&nbsp;评论选项:</td>
            <td width="250"><input type='radio' name='notpost' class='np' value='0'<?php if($arcRow['notpost']==0) echo " checked='1' "; ?>/>
              允许评论
              &nbsp;
              <input type='radio' name='notpost' class='np' value='1'<?php if($arcRow['notpost']==1) echo " checked='1' "; ?>/>
              禁止评论 </td>
            <td width="90">浏览次数:</td>
            <td><input type='text' name='click' value='<?php echo $arcRow['click']; ?>' style='width:100px;' /></td>
          </tr>
        </table></td>
    </tr>
    <tr>
      <td height="24" class="bline"><table width="800" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="110">&nbsp;文章排序:</td>
            <td width="250"><select name="sortup" id="sortup" style="width:150">
                <?php
                $subday = SubDay($arcRow["sortrank"],$arcRow["pubdate"]);
                echo "<option value='0'>正常排序</option>\r\n";
                if($subday>0) echo "<option value='$subday' selected>置顶 $subday 天</option>\r\n";
                ?>
                <option value="7">置顶一周</option>
                <option value="30">置顶一个月</option>
                <option value="90">置顶三个月</option>
                <option value="180">置顶半年</option>
                <option value="360">置顶一年</option>
              </select></td>
            <td width="90">标题颜色:</td>
            <td><input name="color" type="text" id="color" style="width:120" value="<?php echo $arcRow["color"]?>">
              <input name="modcolor" type="button" id="modcolor" value="选取" onClick="ShowColor(event,this)"></td>
          </tr>
        </table></td>
    </tr>
    <tr>
      <td height="24" class="bline"><table width="800" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="110">&nbsp;阅读权限:</td>
            <td width="250"><select name="arcrank[]" id="arcrank" style="width:150" multiple="true">
                
                <?php
                $urank = $cuserLogin->getUserRank();
				//管理员用户
				if($urank==10){
					$dsql->SetQuery("Select * from `#@__arcrank` where adminrank<='$urank'");
					$dsql->Execute();
					while($row = $dsql->GetObject()){
					if($arcRow["arcrank"]==$row->rank) echo "<option value='".$row->rank."' selected='1'>".$row->membername."</option>\r\n";
					else echo "<option value='".$row->rank."'>".$row->membername."</option>\r\n";  
					}
				}else if($urank==6){//信息发布员6
					$userid=$cuserLogin->getUserID();
					$dsql->SetQuery("Select * from `#@__member` where mid='$userid'");
					$dsql->Execute('us');
					$row = $dsql->GetObject('us');
					$mrank=$row->rank;
					//echo "<option value='".$row->rank."' selected='1'>".$mrank."</option>\r\n";
					$dsql->SetQuery("Select * from `#@__arcrank` where rank in('0','10','$mrank')");
					$dsql->Execute();
					while($row = $dsql->GetObject()){
					if($arcRow["arcrank"]==$row->rank) echo "<option value='".$row->rank."' selected='1'>".$row->membername."</option>\r\n";
					else echo "<option value='".$row->rank."'>".$row->membername."</option>\r\n";  
					
					}
				}
              ?>
              </select></td>
            <td width="90">发布选项:</td>
            <td><input name="ishtml" type="radio" class="np" value="1"<?php if($arcRow["ismake"]!=-1) echo " checked";?>>
              生成HTML
              <input type="radio" name="ishtml" class="np" value="0"<?php if($arcRow["ismake"]==-1) echo " checked";?>>
              仅动态浏览 </td>
          </tr>
        </table></td>
    </tr>
    <tr>
      <td height="75" class="bline"><table width="800" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="110">&nbsp;更新时间:</td>
            <td width="250"><?php
          $nowtime = GetDateTimeMk(time());
          echo "<input name=\"pubdate\" value=\"$nowtime\" type=\"text\" id=\"pubdate\" style=\"width:120px;\">";
			?>
              <script language="javascript" type="text/javascript">
					Calendar.setup({
						inputField     :    "pubdate",
						ifFormat       :    "%Y-%m-%d %H:%M:%S",
						showsTime      :    true,
						timeFormat     :    "24"
					});
				 </script></td>
            <td width="92">消费金币:</td>
            <td width="368"><input name="money" type="text" id="money" value="<?php echo $arcRow["money"]?>" size="10"></td>
          </tr>
        </table></td>
    </tr>
    <tr>
      <td height="24" class="bline"><table width="800" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="110" height="51">&nbsp;关键字:</td>
            <td><input type="text"  name="keywords"  id="keywords" style="width:60%" value="<?php echo $arcRow["keywords"]?>" /></td>
          </tr>
        </table></td>
    </tr>
    <tr>
      <td height="24" class="bline"><table width="800" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="110" height="51">&nbsp;文章摘要:</td>
            <td><textarea name="description" rows="5" id="description" style="width:80%"><?php echo $arcRow["description"]?></textarea></td>
          </tr>
        </table></td>
    </tr>
    <tr>
      <td height="24" colspan="4"><table width="800" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="110">&nbsp;自定义文件名:</td>
            <td><input type="text" name="filename" id="filename" value="<?php echo $arcRow["filename"]?>" />
              (不包括后缀名如.html等)</td>
            <td><?php
  if(isset($cfg_tamplate_rand) && $cfg_tamplate_rand==1)
  {
  ?>
              模板选择:
              <select name='templet' id='templet' style='width:200px' size='1'>
                <?php
     foreach($cfg_tamplate_arr as $k=>$v)
     {
         $v = trim($v);
         echo ($v==$addRow['templet'] ? "<option value='$v' selected>$v</option>\r\n" : "<option value='$v'>$v</option>\r\n");
     }
 ?>
              </select>
              <?php
	}
	else{
		echo "<input type='hidden' name='templet' value='{$addRow['templet']}' />";
	}
  ?></td>
          </tr>
        </table></td>
    </tr>
  </table>
  <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#F9FCEF" style="border:1px solid #cfcfcf;border-top:none;">
    <tr>
      <td height="35"><table width="100%" border="0" cellspacing="1" cellpadding="1">
          <tr>
            <td width="17%">&nbsp;</td>
            <td width="83%"><table width="214" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td width="115"><input name="imageField" type="image" src="images/button_ok.gif" width="60" height="22" class="np" border="0" style="cursor:pointer"></td>
                  <td width="99"><img src="images/button_reset.gif" width="60" height="22" border="0" onClick="location.reload();" style="cursor:pointer"></td>
                </tr>
              </table></td>
          </tr>
        </table></td>
    </tr>
  </table>
  <script language='javascript'>InitPage();</script>
</form>
<div id="__tmpbody" style="display:none"></div>
</body>
</html>


6.根据上面的edit编辑页面再去修改下add页面  article_add.htm/php    catalog_add.htm/php


更新时间 2020-03-20

有话要说...