打开后台目录(/dede)下archives_do.php约430行下添加:
/*-----------------------------
//复制文档
------------------------------*/
elseif ($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= "";
//输出AJAX可移动窗体
$divname = 'copyArchives';
echo "\r\n";
echo "
复制文档
\r\n";
echo "
\r\n";
echo "
\r\n";
echo "\r\n";
echo "\r\n";
echo "\r\n";
echo "
GetOne("SELECT tp.channeltype,tp.ispart,tp.channeltype,ch.maintable,ch.addtable,ch.issystem FROM `#@__arctype` tp LEFT JOIN `#@__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'] = '`#@__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 `#@__arctiny` (typeid,typeid2,arcrank,channel,senddate,sortrank,mid) select typeid,typeid2,arcrank,channel,senddate,sortrank,mid from `#@__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 `#@__arctiny`";
$dsql->ExecuteNoneQuery($sql);
//导入普通模型微数据
$sql = "INSERT INTO `#@__arctiny`(id, typeid, typeid2, arcrank, channel, senddate, sortrank, mid)
SELECT id, typeid, typeid2, arcrank, channel, senddate, sortrank, mid FROM `#@__archives` ";
$dsql->ExecuteNoneQuery($sql);
//导入单表模型微数据
$dsql->SetQuery("SELECT id,addtable FROM `#@__channeltype` WHERE id <-1 ");
$dsql->Execute();
$doarray = array();
while($row = $dsql->GetArray())
{
$tb = str_replace('#@__', $cfg_dbprefix, $row['addtable']);
if(empty($tb) || isset($doarray[$tb]) )
{
continue;
}
else
{
$sql = "INSERT INTO `#@__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();
}
}
打开dede/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');
}
打开dede/js/list.js 搜索 function ShowMenu(evt,obj,aid,atitle)里面的
new ContextItem("推荐文档",function(){ adArc(aid); }),的下面添加
new ContextItem("复制(C)",function(){ copyToClipboard(atitle); }),
打开dede/templets下的content_list.htm找到
移动
当前行的下方添加
复制