在DEDE(织梦)CMS系统中,后台批量***栏目文档的功能是一项非常实用的功能,这一功能可以帮助管理员快速将一个栏目的所有文档***到另一个栏目中,而无需手动一个个地重新建立,这不仅节省了大量时间,还提高了工作效率,以下是实现这一功能的步骤:
修改文件dede/templets/content_batch_up.htm
1、修改头部脚本函数ShowHideMove()
```javascript
function ShowHideMove() {
var selBox = document.getElementByIdx_x('moveradio');
var selBox2 = document.getElementByIdx_x('copyradio'); // edited by adan;090508
var obj = document.getElementByIdx_x('moveField');
if(selBox.checked || selBox2.checked) {
obj.style.display = "block"; // edited by adan;090508
} else {
obj.style.display = "none";
}
}
```
2、添加***栏目按钮
在以下代码段的后面添加一个新的输入框,用于***栏目文档:
```html
<input name="action" type="radio" class="np" value="move" id="moveradio" onClick="ShowHideMove()" />
移动文档
<!add this line >
<input name="action" type="radio" class="np" value="copy" id="copyradio" onClick="ShowHideMove()" />
***栏目文档
```
修改文件dede/content_batch_action.php
1、删除文件最后的两段代码
这两段代码是官方人员重复添加的,需要将其删除:
```php
//删除空标题内容
else if($action=='delnulltitle') {
$dsql>SetQuery("Select id From dede_archives where trim(title)='' ");
$dsql>Execute('x');
$tdd = 0;
while($row = $dsql>GetObject('x')) {
if(DelArc($row>id)) {
$tdd++;
}
}
ShowMsg("成功删除 $tdd 条记录!","javascript:;");
exit();
}
//修正缩略图错误
else if($action=='modddpic') {
$dsql>ExecuteNoneQuery("Update dede_archives set litpic='' where trim(litpic)='litpic' ");
ShowMsg("成功修正缩略图错误!","javascript:;");
exit();
}
```
2、添加***栏目文章功能
在文件末尾添加以下代码段:
```php
//start 添加***栏目文章功能 added by adan;090508
else if($action=='copy') {
if(empty($typeid)) {
ShowMsg('该操作必须指定栏目!','javascript:;');
exit();
}
$typeold = $dsql>GetOne("Select * Fromdede_arctype
where id='$typeid'; ");
$typenew = $dsql>GetOne("Select * Fromdede_arctype
where id='$newtypeid'; ");
if(!is_array($typenew)) {
$dsql>Close();
ShowMsg("无法检测***到的新栏目的信息,不能完成操作!","javascript:;");
exit();
}
if($typenew['ispart']!=0) {
$dsql>Close();
ShowMsg("你不能把数据***到非最终列表的栏目!","javascript:;");
exit();
}
if($typenew['channeltype']!=$typeold['channeltype']) {
$dsql>Close();
ShowMsg("不能把数据***到内容类型不同的栏目!","javascript:;");
exit();
}
$gwhere .= " And channel='".$typenew['channeltype']."' And title like '%$keyword%'";
$ch = $dsql>GetOne("Select addtable Fromdede_channeltype
where id={$typenew['channeltype']} ");
$addtable = $ch['addtable'];
$dsql>SetQuery("Select * Fromdede_archives
where typeid='$typeid'");
$dsql>Execute('c');
$tdd = 0;
while($row = $dsql>GetObject('c')) {
$senddate = time();
$sortrank = AddDay($senddate,0); //第二个参数是排序值,参考article_add.php
$ID = $row>id;
$typeid = $newtypeid; //$newtypeid
$sortrank = $row>sortrank;
$flag = $row>flag;
$i***ake = $row>i***ake;
$channelid = $row>channel;
$arcrank = $row>arcrank;
$click = $row>click;
$money = $row>money;
$title = addslashes($row>title); //需要添加addslashes()转换; adan;090508
$shorttitle = $row>shorttitle;
$color = $row>color;
$writer = $row>writer;
$source = $row>source;
$litpic = $row>litpic; // r
}
```
修改文件dede/js/list.js
1、添加***函数
在文件中找到function moveArc(e, obj, cid)
函数,并在其上方添加新的copyArc
函数:
```javascript
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/templets/content_list.htm和dede/templets/content_i_list.htm
1、添加***链接
在文件中找到以下代码:
```html
<a href="javascript:;" onClick="moveArc(event,this,<?php echo (empty($channelid) ? 0 : $channelid); ?>)" class="coolbg"> 移动 </a>
```
并在其下方添加:
```html
<a href="javascript:;" onClick="copyArc(event,this,<?php echo (empty($channelid) ? 0 : $channelid); ?>);" class="coolbg"> *** </a>
```
通过以上步骤,您就可以在DEDE后台实现栏目文档的批量***功能,从而大大提高工作效率,希望这些步骤对您有所帮助,如果有任何疑问,请随时咨询相关技术支持。
DEDE 在后台添加栏目文档的批量***功能
1. 引言
在DedeCMS(帝国CMS)的后台管理中,批量***栏目文档是一个提高工作效率的重要功能,以下将详细说明如何在DEDE后台添加这一功能。
2. 准备工作
在开始添加批量***功能之前,请确保以下条件已经满足:
已经安装并配置好DedeCMS系统。
熟悉DedeCMS的后台操作流程。
3. 功能实现步骤
3.1 创建批量***脚本
1、新建文件:在DedeCMS的根目录下,创建一个新文件,例如batch_copy.php
。
2、:在batch_copy.php
文件中,编写以下PHP代码:
<?php require_once(dirname(__FILE__).'/config.php'); if(!defined('DEDEINC')) exit("Error!"); // 获取要***的栏目ID $copycid = $_POST['copycid']; // 获取要***的文档ID $docids = $_POST['docids']; // 检查栏目ID和文档ID是否为空 if(empty($copycid) || empty($docids)) { echo "请选择要***的栏目和文档。"; exit; } // 连接数据库 $db = $dsql>connect(); // 循环***文档 foreach($docids as $docid) { $row = $dsql>GetOne("SELECT * FROM#@__archives
WHERE aid='$docid'"); if($row) { $row['arcrmid'] = ''; $row['i***ake'] = 0; $row['arcatt'] = ''; $row['arcurl'] = ''; $row['pubdate'] = time(); $row['id'] = ''; $row['litpic'] = ''; $row>channelid = $copycid; $dsql>AutoExecute("#@__archives", $row, "INSERT"); } } echo "批量***完成。"; ?>
3.2 创建批量***表单
1、登录后台:进入DedeCMS后台管理界面。
2、栏目管理:选择需要***的目标栏目。
3、添加表单:在目标栏目管理页面,添加一个表单,用于选择要***的文档。
<form action="batch_copy.php" method="post"> <input type="hidden" name="copycid" value="目标栏目ID"> <select name="docids[]" multiple> <!循环显示文档列表 > <option value="文档ID1">文档标题1</option> <option value="文档ID2">文档标题2</option> <!... > </select> <input type="submit" value="批量复制"> </form>
3.3 测试功能
1、提交表单:填写好表单后,点击“批量***”按钮。
2、检查结果:查看目标栏目是否已成功***所选文档。
4. 注意事项
确保脚本文件batch_copy.php
的路径正确。
注意数据库连接配置,确保正确连接到数据库。
脚本执行过程中,注意检查是否有任何错误信息输出。
5. 归纳
通过以上步骤,您可以在DEDECMS后台添加批量***栏目文档的功能,从而提高内容管理的效率。