欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

http://bbs.dedecms.com/read.php?tid=417230

shiping1 的头像

[安装使用]dedecms栏目批量删除方法 [复制链接]

上一主题 下一主题
 
离线energypwg
 
 
发帖
81
贡献值
9
威望值
9
技术分
0
织梦币
0
只看楼主 倒序阅读 使用道具 0 发表于: 2011-12-30
 
— (xuewl) 见6楼回复 (2013-01-26 10:09) —
 
当我们添加栏目很多但又不使用时想要批量删除栏目,下面我们来扩展系统方法实习这个功能。
1、首先修改模后台网站栏目目录模板(dede/templets/catalog_main.htm)
增加一个js方法
function mutidel()
{
    var checkbox=document.getElementsByName("tids[]");
    var id = '';
    for(var i=0;i<checkbox.length;i++){
         if(checkbox.checked){
          id = checkbox.value + ',' + id;
       }
    }  
    if(id==''){
        alert('请选择栏目');
    }else{
        location.href="catalog_mutidel.php?id="+id;    
    }    
}
</script>
在目录菜单上面和下面各加一行
<a href='javascript:void(0)' onclick="mutidel()" class='np coolbg'>批量删除栏目</a>
<input type="button" name="sb3" value="批量删除栏目" style="width:90px" class="coolbt" onClick="mutidel()" />
2、然后在dede文件夹里增加文件catalog_metidel.php。内容为
<?php
/**
* 删除栏目
*
* @version        $Id: catalog_del.php 1 14:31 2010年7月12日Z tianya $
* @package        DedeCMS.Administrator
* @copyright      Copyright (c) 2007 - 2010, DesDev, Inc.
* @license        http://help.dedecms.com/usersguide/license.html
* @link           http://www.dedecms.com
*/
require_once(dirname(__FILE__).'/config.php');

//检查权限许可
CheckPurview('t_Del,t_AccDel');
require_once(DEDEINC.'/typeunit.class.admin.php');
require_once(DEDEINC.'/oxwindow.class.php');

$idlist = trim($_GET['id'],',');
$idarr = explode(',',$idlist);
$ut = new TypeUnit();
foreach($idarr as $row){
    $row = trim(preg_replace("#[^0-9]#", '', $row));
    //检查栏目操作许可
    CheckCatalog($row,"你无权删除本栏目!");
    $ut->DelType($row,$delfile); //默认删除文件        
}
UpDateCatCache();
ShowMsg("成功删除".count($idarr)."个栏目!","catalog_main.php");

补充:本地测试一下再使用,本功能可能有bug未及时发现,欢迎指正。对于栏目的误删操作本人不负责
附件中的文件是我写好的,可以直接替换。其中catalog_main.htm替换到dede/templets中;catalog_mutidel.php复制到dede中
附件在 这个文件的附件里
来自 http://bbs.dedecms.com/read.php?tid=417230
普通分类: