您现在的位置是:首页 > 二次开发 > dedecms网站首页dedecms

dedecms增加复制栏目文章功能

简介1.修改文件dede/templets/content_batch_up.htm 在: <input name="action" type="radio" class="np" value="move&a

1.修改文件dede/templets/content_batch_up.htm 在:

<input name="action" type="radio" class="np" value="move" id="moveradio" onClick="ShowHideMove()" />
    移动文档

下面添加:

<input name="1" type="radio">
<input name="action" type="radio" class="np" value="copy" id="copyradio" onClick="ShowHideMove()" /><!--added by adan;090508-->
    复制栏目文档


2.修改文件dede/content_batchup_action.php 

删除最后面的两段代码:

//删除空标题内容
else if($action=='delnulltitle')
{
   $dsql->SetQuery("SELECT id FROM #@__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 #@__archives SET litpic='' WHERE trim(litpic)='litpic' ");
   ShowMsg("成功修正缩略图错误!","javascript:;");
   exit();
}

然后添加代码:

//start 添加复制栏目文章功能 added by adan;090508
else if($action=='copy') {    if(empty($typeid))
{
  ShowMsg('该操作必须指定栏目!','javascript:;');
  exit();
}
$typeold = $dsql->GetOne("Select * From `dede_arctype` where id='$typeid'; ");
$typenew = $dsql->GetOne("Select * From `dede_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 From `dede_channeltype` where id={$typenew['channeltype']} ");
$addtable = $ch['addtable'];
$dsql->SetQuery("Select * From `dede_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;
    $ismake = $row->ismake;
    $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;
    $pubdate = $row->pubdate;
    $adminid = $cuserLogin->getUserID();
    $notpost = $row->notpost;
    $description = addslashes($row->description);//需要添加addslashes()转换; adan;090508
    $keywords = $row->keywords;
    require_once(DEDEADMIN."/inc/inc_archives_functions.php");       //生成文档ID
    $arcID = GetIndexKey($arcrank,$typeid,$sortrank,$channelid,$senddate,$adminid);
    if(empty($arcID)){
        ShowMsg("无法获得主键,因此无法进行后续操作!","-1");
        exit();
    }          //加入数据表dede_archives的SQL语句         //----------------------------------
    $inQuery = "INSERT INTO `dede_archives`(id,typeid,typeid2,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,          color,writer,source,litpic,pubdate,senddate,mid,lastpost,scores,goodpost,badpost,notpost,description,keywords,filename)          VALUES  ('$arcID','$typeid','','$sortrank','$flag','$ismake','$channelid','$arcrank','0','$money',         '$title','$shorttitle','$color','$writer','$source','$litpic','$pubdate','$senddate',         '$adminid','0','0','0','0','0','$description','$keywords','');";
    if(!$dsql->ExecuteNoneQuery($inQuery)){
        $gerr = $dsql->GetError();
        $dsql->ExecuteNoneQuery("Delete From `dede_arctiny` where id='$arcID'");
        ShowMsg("把数据保存到数据库主表 `dede_archives` 时出错,请把相关信息提交给DedeCms官方。".str_replace('"','',$gerr),"javascript:;");
        exit();
    }           //保存到附加表
    $cts = $dsql->GetOne("Select addtable From `dede_channeltype` where id='$channelid' ");
    $addtable = trim($cts['addtable']);
    if(empty($addtable)){
        $dsql->ExecuteNoneQuery("Delete From `dede_archives` where id='$arcID'");
        $dsql->ExecuteNoneQuery("Delete From `dede_arctiny` where id='$arcID'");
        ShowMsg("没找到当前模型[{$channelid}]的主表信息,无法完成操作!。","javascript:;");
        exit();
    }
    $useip = GetIP();
    $redirecturl = $addRow['redirecturl'];
    $templet = $addRow['templet'];
    $addRow = $dsql->GetOne("Select * from `{$addtable}` where aid='$ID'");
    $body = addslashes($addRow["body"]);
    $query = "INSERT INTO `{$addtable}`(aid,typeid,redirecturl,templet,userip,body) Values('$arcID','$typeid','$redirecturl','$templet','$useip','$body')";
    if(!$dsql->ExecuteNoneQuery($query)){
        $gerr = $dsql->GetError();
        $dsql->ExecuteNoneQuery("Delete From `dede_archives` where id='$arcID'");
        $dsql->ExecuteNoneQuery("Delete From `dede_arctiny` where id='$arcID'");
        ShowMsg("把数据保存到数据库附加表 `{$addtable}` 时出错,请把相关信息提交给DedeCms官方。".str_replace('"','',$gerr),"javascript:;");
        exit();
    }
    else $tdd++;
}
if($tdd>0){
    $jumpurl  = "makehtml_archives_action.php?endid=$endid&startid=$startid";
    $jumpurl .= "&typeid=$newtypeid&pagesize=20&seltime=$seltime";
    $jumpurl .= "&stime=".urlencode($starttime)."&etime=".urlencode($endtime);
    ShowMsg("成功复制了 $tdd 条记录,准备重新生成HTML...",$jumpurl);
}
else ShowMsg("完成操作,没复制任何数据...","javascript:;");   exit(); }  //end 090508保存完毕,对应文件上传后,在核心->批量维护->文档批量维护中使用



PS:新字段内容复制不了


文章评论

Top