|
给织梦添加复制文档的功能步骤如下:
一、打开templets下的content_list.htm
找到 这一行:
- <a href="javascript:;" onClick="moveArc(event,this,<?php echo (empty($channelid) ? 0 : $channelid); ?>)" class="coolbg"> 移动 </a>
复制代码
在这一行的下方添加:
- <a href="javascript:;" onClick="copyArc(event,this,<?php echo (empty($channelid) ? 0 : $channelid); ?>);" class="coolbg"> 复制 </a>
复制代码
二、打开dede/js/list.js
找到moveArc这个函数
- function moveArc(e, obj, cid){
- var qstr=getCheckboxItem();
- if(qstr=='')
- {
- alert('必须选择一个或多个文档!');
- return;
- }
- LoadQuickDiv(e, 'archives_do.php?dopost=moveArchives&qstr='+qstr+'&channelid='+cid+'&rnd='+Math.random(), 'moveArchives', '450px', '180px');
- ChangeFullDiv('show');
- }
复制代码
然后在下方添加copyArc这个函数
- 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/archives_do.php找到
- else if($dopost=='moveArchives')
- {
复制代码
这句代码 然后在这个大括弧结尾处 也就是在433行左右添加如下代码:
- /*-----------------------------
- function copyArchives(){ }
- ------------------------------*/
-
-
- 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'> 目标栏目:</td>
- <td class='bline'>
- <?php echo $typeOptions; ?>
- </td>
- </tr>
- <tr height='32'>
- <td width="80" class='bline'> 文档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" />
-
- <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 `me_arctype` tp LEFT JOIN `me_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'] = 'me_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 me_arctiny (typeid,typeid2,arcrank,channel,senddate,sortrank,mid) select typeid,typeid2,arcrank,channel,senddate,sortrank,mid from me_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,bigpic) select case when aid>'0' then '$xid' else '' end,$totype,body,redirecturl,templet,userip,bigpic from `{$typeInfos['addtable']}` WHERE aid='{$row[$idtype]}' ");
- $okids[] = $row[$idtype];
- $j++;
- }
- }
- //更新HTML
- foreach($okids as $aid)
- {
- $arc = new Archives($aid);
- $arc->MakeHtml();
- }
- ShowMsg("成功复制 $j 个文档!", $ENV_GOBACK_URL);
- exit();
- }
- }
复制代码 |
|