打开后台目录下archives_do.php约430行下添加:

else if($dopost=='copyArchives')

{

    CheckPurview('sys_ArcBatch');

    if(empty($totype))

    {

        require_once(DEDEINC.'/typelink.class.php');

        if( !empty($aid) && empty($qstr) ) $qstr = $aid;

 

        AjaxHead();

        $channelid = empty($channelid) ? 0 : $channelid;

        $tl = new TypeLink($aid);

        $typeOptions = $tl->GetOptionArray(0, $admin_catalogs, $channelid);

        $typeOptions = "<select name='totype' style='width:90%'>

        <option value='0'>请选择复制到的位置...</option>\r\n

        $typeOptions

        </select>";

        

        //输出AJAX可移动窗体

        $divname = 'copyArchives';

        echo "<div class='title' onmousemove=\"DropMoveHand('{$divname}', 225);\" onmousedown=\"DropStartHand();\" onmouseup=\"DropStopHand();\">\r\n";

        echo "    <div class='titLeft'>复制文档</div>\r\n";

        echo "    <div class='titRight'><img src='images/ico-close.gif' style='cursor:pointer;' onclick='HideObj(\"{$divname}\");ChangeFullDiv(\"hide\");' alt='关闭' title='关闭' /></div>\r\n";

        echo "</div>\r\n";

        echo "<form name='quickeditform' action='archives_do.php' method='post'>\r\n";

        echo "<input type='hidden' name='dopost' value='{$dopost}' />\r\n";

        echo "<input type='hidden' name='qstr' value='{$qstr}' />\r\n";

        echo "<table width='100%' style='margin-top:6px;z-index:9000;'>\r\n";

?>

<tr height='28'>

    <td width="80" class='bline'>&nbsp;目标栏目:</td>

    <td class='bline'>

    <?php echo $typeOptions; ?>

    </td>

</tr>

<tr height='32'>

    <td width="80" class='bline'>&nbsp;文档ID:</td>

    <td class='bline'>

        <input type='text' name='tmpids' value="<?php echo $qstr; ?>" style='width:310px;overflow:hidden;' />

        <br />

        复制到的目标栏目必须和选定的文档频道类型一致,否则程序会自动勿略不符合的文档。

    </td>

</tr>

<tr height='32'>

    <td colspan='2' align='center' style='padding-top:12px'>

        <input name="imageField" type="image" src="images/button_ok.gif" width="60" height="22" class="np" border="0" style="cursor:pointer" />

        &nbsp;&nbsp;

        <img src="images/button_back.gif" width="60" height="22" border="0" onclick='HideObj("<?php echo $divname; ?>");ChangeFullDiv("hide");' style="cursor:pointer" />

    </td>

</td>

</tr>

</table>

</form>

<?php

    //AJAX窗体结束

    }

    else

    {

        $totype = preg_replace("#[^0-9]#", '', $totype);

        $typeInfos = $dsql->GetOne("SELECT tp.channeltype,tp.ispart,tp.channeltype,ch.maintable,ch.addtable,ch.issystem FROM `dede_arctype` tp LEFT JOIN `dede_channeltype` ch on ch.id=tp.channeltype WHERE tp.id='$totype' ");

        $idtype = "id";

        if(!is_array($typeInfos))

        {

            ShowMsg('参数错误!','-1');

            exit();

        }

        if($typeInfos['ispart']!=0)

        {

            ShowMsg('文档保存的栏目必须为最终列表栏目!','-1');

            exit();

        }

        if(empty($typeInfos['addtable']))

        {

            $typeInfos['maintable'] = 'dede_archives';

        }

        //增加单表模型判断

        if($typeInfos['issystem'] == -1)

        {

            $typeInfos['maintable'] = $typeInfos['addtable'];

            $idtype = "aid";

        }

        $arcids = preg_replace("#[^0-9,]#", '', preg_replace("#`#", ',', $qstr));

        $arc = '';

        $j = 0;

        $okids = array();

        $dsql->SetQuery("SELECT {$idtype},typeid FROM `{$typeInfos['maintable']}` WHERE {$idtype} in($arcids) AND channel='{$typeInfos['channeltype']}' ");

        $dsql->Execute();

while ($row = $dsql->GetArray()) {

            if ($row['typeid'] != $totype) {

                

                $dsql->ExecuteNoneQuery("insert into `dede_arctiny` (typeid,typeid2,arcrank,channel,senddate,sortrank,mid) select typeid,typeid2,arcrank,channel,senddate,sortrank,mid from `dede_arctiny` where id='{$row[$idtype]}'");

                

                $xid = $dsql->GetLastID();

                

                $dsql->ExecuteNoneQuery("insert into `{$typeInfos['maintable']}`(id,typeid,typeid2,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,color,writer,source,litpic,pubdate,senddate,mid,keywords,lastpost,scores,goodpost,badpost,voteid,notpost,description,filename,dutyadmin,tackid,mtype,weight) select case when id>'0' then '$xid'  else '' end, case when typeid>'0' then '$totype'  else '' end,typeid2,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,color,writer,source,litpic,pubdate,senddate,mid,keywords ,lastpost,scores,goodpost,badpost,voteid,notpost,description,filename,dutyadmin,tackid,mtype,weight from `{$typeInfos['maintable']}` WHERE id='{$row[$idtype]}' ");

                

                $dsql->ExecuteNoneQuery("insert into `{$typeInfos['addtable']}`(aid,typeid,body,redirecturl,templet,userip) select case when aid>'0' then '$xid'  else '' end,$totype,body,redirecturl,templet,userip from `{$typeInfos['addtable']}` WHERE aid='{$row[$idtype]}' ");

                

                $okids[] = $row[$idtype];

                $j++;

            }

        }

 

UpDateCatCache();

$sql = " TRUNCATE TABLE `dede_arctiny`";

$dsql->ExecuteNoneQuery($sql);

//导入普通模型微数据

$sql = "INSERT INTO `dede_arctiny`(id, typeid, typeid2, arcrank, channel, senddate, sortrank, mid)  

SELECT id, typeid, typeid2, arcrank, channel, senddate, sortrank, mid FROM `dede_archives` ";

$dsql->ExecuteNoneQuery($sql);

//导入单表模型微数据

$dsql->SetQuery("SELECT id,addtable FROM `dede_channeltype` WHERE id < -1 ");

$dsql->Execute();

$doarray = array();

        while($row = $dsql->GetArray())

{

        $tb = str_replace('dede_', $cfg_dbprefix, $row['addtable']);

        if(empty($tb) || isset($doarray[$tb]) )

        {

            continue;

        }

        else

        {

            $sql = "INSERT INTO `dede_arctiny`(id, typeid, typeid2, arcrank, channel, senddate, sortrank, mid)  

                    SELECT aid, typeid, 0, arcrank, channel, senddate, 0, mid FROM `$tb` ";

            $rs = $dsql->executenonequery($sql);

            $doarray[$tb]  = 1;

        }

}

        //更新HTML

        foreach($okids as $aid)

        {

            $arc = new Archives($aid);

            $arc->MakeHtml();

        }

        ShowMsg("成功复制 $j 个文档!", $ENV_GOBACK_URL);

        exit();

    }

}

打开后台目录/js/list.js 搜索 function moveArc(e, obj, cid)下约35行添加

function copyArc(e, obj, cid){

    var qstr=getCheckboxItem();

    if(qstr=='')

    {

        alert('必须选择一个或多个文档!');

        return;

    }

    LoadQuickDiv(e, 'archives_do.php?dopost=copyArchives&qstr='+qstr+'&channelid='+cid+'&rnd='+Math.random(), 'copyArchives', '450px', '180px');

    ChangeFullDiv('show');

}

打开后台目录/js/list.js 搜索  function ShowMenu(evt,obj,aid,atitle)里面的

new ContextItem("推荐文档",function(){ adArc(aid); }),的下面添加

new ContextItem("复制(<u>C</u>)",function(){ copyToClipboard(atitle); }),



打开后台目录/templets下的content_list.htm找到

<a href="javascript:;" onClick="moveArc(event,this,<?php echo (empty($channelid) ? 0 : $channelid); ?>)" class="layui-btn layui-btn-small">&nbsp;移动&nbsp;</a>

当前行的下方添加

<a href="javascript:;" onClick="copyArc(event,this,<?php echo (empty($channelid) ? 0 : $channelid); ?>);" class="layui-btn layui-btn-small"> 复制 </a>

完成


THE END

本站部分文章搜集整理于互联网或者网友提供,如有侵权请联系站长

如若转载,请注明出处:https://htmlbk.com/dedecms/235.html

温馨提示:该文档最后一次修改时间为2019-08-12 09:20:14,请注意相关的内容是否还可用!

TAG标签:DedeCMS教程