找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1876|回复: 0

[分享] 给织梦添加复制文档的功能

[复制链接]
发表于 2018-7-30 14:29:04 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
给织梦添加复制文档的功能步骤如下:

一、打开templets下的content_list.htm

    找到 这一行:

  1. <a href="javascript:;" onClick="moveArc(event,this,<?php echo (empty($channelid) ? 0 : $channelid); ?>)" class="coolbg">&nbsp;移动&nbsp;</a>
复制代码


在这一行的下方添加:

  
  1. <a href="javascript:;" onClick="copyArc(event,this,<?php echo (empty($channelid) ? 0 : $channelid); ?>);" class="coolbg">&nbsp;复制&nbsp;</a>
复制代码


二、打开dede/js/list.js

找到moveArc这个函数

  1. function moveArc(e, obj, cid){
  2.     var qstr=getCheckboxItem();
  3.     if(qstr=='')
  4.     {
  5.         alert('必须选择一个或多个文档!');
  6.         return;
  7.     }
  8.     LoadQuickDiv(e, 'archives_do.php?dopost=moveArchives&qstr='+qstr+'&channelid='+cid+'&rnd='+Math.random(), 'moveArchives', '450px', '180px');
  9.     ChangeFullDiv('show');
  10. }
复制代码


然后在下方添加copyArc这个函数

  1. function copyArc(e, obj, cid){
  2.     var qstr=getCheckboxItem();
  3.     if(qstr=='')
  4.     {
  5.         alert('必须选择一个或多个文档!');
  6.         return;
  7.     }
  8.     LoadQuickDiv(e, 'archives_do.php?dopost=copyArchives&qstr='+qstr+'&channelid='+cid+'&rnd='+Math.random(), 'copyArchives', '450px', '180px');
  9.     ChangeFullDiv('show');
  10. }
复制代码


三、打开 dede/archives_do.php找到

  1. else if($dopost=='moveArchives')
  2. {
复制代码


这句代码 然后在这个大括弧结尾处 也就是在433行左右添加如下代码:



  1. /*-----------------------------
  2. function copyArchives(){ }
  3. ------------------------------*/


  4. else if($dopost=='copyArchives')
  5. {
  6.     CheckPurview('sys_ArcBatch');
  7.     if(empty($totype))
  8.     {
  9.         require_once(DEDEINC.'/typelink.class.php');
  10.         if( !empty($aid) && empty($qstr) ) $qstr = $aid;

  11.         AjaxHead();
  12.         $channelid = empty($channelid) ? 0 : $channelid;
  13.         $tl = new TypeLink($aid);
  14.         $typeOptions = $tl->GetOptionArray(0, $admin_catalogs, $channelid);
  15.         $typeOptions = "<select name='totype' style='width:90%'>
  16.         <option value='0'>请选择复制到的位置...</option>\r\n
  17.         $typeOptions
  18.         </select>";
  19.         
  20.         //输出AJAX可移动窗体
  21.         $divname = 'copyArchives';
  22.         echo "<div class='title' onmousemove="DropMoveHand('{$divname}', 225);" onmousedown="DropStartHand();" onmouseup="DropStopHand();">\r\n";
  23.         echo "    <div class='titLeft'>复制文档</div>\r\n";
  24.         echo "    <div class='titRight'><img src='images/ico-close.gif' style='cursor:pointer;' onclick='HideObj("{$divname}");ChangeFullDiv("hide");' alt='关闭' title='关闭' /></div>\r\n";
  25.         echo "</div>\r\n";
  26.         echo "<form name='quickeditform' action='archives_do.php' method='post'>\r\n";
  27.         echo "<input type='hidden' name='dopost' value='{$dopost}' />\r\n";
  28.         echo "<input type='hidden' name='qstr' value='{$qstr}' />\r\n";
  29.         echo "<table width='100%' style='margin-top:6px;z-index:9000;'>\r\n";
  30. ?>
  31. <tr height='28'>
  32.     <td width="80" class='bline'>&nbsp;目标栏目:</td>
  33.     <td class='bline'>
  34.     <?php echo $typeOptions; ?>
  35.     </td>
  36. </tr>
  37. <tr height='32'>
  38.     <td width="80" class='bline'>&nbsp;文档ID:</td>
  39.     <td class='bline'>
  40.         <input type='text' name='tmpids' value="<?php echo $qstr; ?>" style='width:310px;overflow:hidden;' />
  41.         <br />
  42.         复制到的目标栏目必须和选定的文档频道类型一致,否则程序会自动勿略不符合的文档。
  43.     </td>
  44. </tr>
  45. <tr height='32'>
  46.     <td colspan='2' align='center' style='padding-top:12px'>
  47.         <input name="imageField" type="image" src="images/button_ok.gif" width="60" height="22" class="np" border="0" style="cursor:pointer" />
  48.         &nbsp;&nbsp;
  49.         <img src="images/button_back.gif" width="60" height="22" border="0" onclick='HideObj("<?php echo $divname; ?>");ChangeFullDiv("hide");' style="cursor:pointer" />
  50.     </td>
  51. </td>
  52. </tr>
  53. </table>
  54. </form>
  55. <?php
  56.     //AJAX窗体结束
  57.     }
  58.     else
  59.     {
  60.         $totype = preg_replace("#[^0-9]#", '', $totype);
  61.         $typeInfos = $dsql->GetOne("SELECT tp.channeltype,tp.ispart,tp.channeltype,ch.maintable,ch.addtable,ch.issystem FROM `me_arctype` tp LEFT JOIN `me_channeltype` ch on ch.id=tp.channeltype WHERE tp.id='$totype' ");
  62.         $idtype = "id";
  63.         if(!is_array($typeInfos))
  64.         {
  65.             ShowMsg('参数错误!','-1');
  66.             exit();
  67.         }
  68.         if($typeInfos['ispart']!=0)
  69.         {
  70.             ShowMsg('文档保存的栏目必须为最终列表栏目!','-1');
  71.             exit();
  72.         }
  73.         if(empty($typeInfos['addtable']))
  74.         {
  75.             $typeInfos['maintable'] = 'me_archives';
  76.         }
  77.         //增加单表模型判断
  78.         if($typeInfos['issystem'] == -1)
  79.         {
  80.             $typeInfos['maintable'] = $typeInfos['addtable'];
  81.             $idtype = "aid";
  82.         }
  83.         $arcids = preg_replace("#[^0-9,]#", '', preg_replace("#`#", ',', $qstr));
  84.         $arc = '';
  85.         $j = 0;
  86.         $okids = array();
  87.         $dsql->SetQuery("SELECT {$idtype},typeid FROM `{$typeInfos['maintable']}` WHERE {$idtype} in($arcids) AND channel='{$typeInfos['channeltype']}' ");
  88.         $dsql->Execute();
  89.         while($row = $dsql->GetArray())
  90.         {
  91.             if($row['typeid']!=$totype)
  92.             {
  93. $dsql->ExecuteNoneQuery("insert into me_arctiny (typeid,typeid2,arcrank,channel,senddate,sortrank,mid) select typeid,typeid2,arcrank,channel,senddate,sortrank,mid from me_arctiny where id='{$row[$idtype]}'");
  94. $xid = $dsql->GetLastID();  
  95.                 $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]}' ");
  96.                 $dsql->ExecuteNoneQuery("insert into `{$typeInfos['addtable']}`(aid,typeid,body,redirecturl,templet,userip,bigpic) select case when aid>'0' then '$xid'  else '' end,$totype,body,redirecturl,templet,userip,bigpic from `{$typeInfos['addtable']}` WHERE aid='{$row[$idtype]}' ");
  97.                 $okids[] = $row[$idtype];
  98.                 $j++;
  99.             }
  100.         }
  101.         //更新HTML
  102.         foreach($okids as $aid)
  103.         {
  104.             $arc = new Archives($aid);
  105.             $arc->MakeHtml();
  106.         }
  107.         ShowMsg("成功复制 $j 个文档!", $ENV_GOBACK_URL);
  108.         exit();
  109.     }
  110. }
复制代码

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-30 13:46 , Processed in 0.047264 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表