function DelArc($aid,$onlyfile=false,$channelid=0)
{
	  global $dsql;
	  if(!is_object($dsql)) $dsql = new DedeSql(false);
	  $tables = GetChannelTable($dsql,$aid,'arc');
    //读取文档信息
    $arctitle = "";
    $arcurl = "";
    $arcQuery = "
    Select a.ID,a.title,a.typeid,
    a.ismake,a.senddate,a.arcrank,c.addtable,
 		a.money,t.typedir,t.typename,a.adminID,
 		t.namerule,t.namerule2,t.ispart,
 		t.moresite,t.siteurl,t.siterefer,t.sitepath 
		from `{$tables['maintable']}` a 
		left join `#@__arctype` t on a.typeid=t.ID
		left join `#@__channeltype` c on c.ID=a.channel
    where a.ID='$aid'
    ";
    $arcRow = $dsql->GetOne($arcQuery);
    if(!is_array($arcRow)) return false;
    //删除数据库的内容
    $rs = $dsql->ExecuteNoneQuery("Delete From `{$tables['maintable']}` where ID='$aid'");
    if($rs){
       $dsql->ExecuteNoneQuery("Delete From `#@__full_search` where aid='$aid'");
       if($arcRow['addtable']!=""){
         $dsql->ExecuteNoneQuery("Delete From `{$tables['addtable']}` where aid='$aid'");
       }
       $dsql->ExecuteNoneQuery("Delete From `#@__feedback` where aid='$aid'");
       $dsql->ExecuteNoneQuery("Delete From `#@__memberstow` where arcid='$aid'");
    }
    //删除HTML
    if($arcRow['ismake']==-1||$arcRow['arcrank']!=0
    ||$arcRow['typeid']==0||$arcRow['money']>0){
  		return true;
  	}
  	$arcurl = GetFileUrl($arcRow['ID'],$arcRow['typeid'],$arcRow['senddate'],$arcRow['title'],$arcRow['ismake'],
           $arcRow['arcrank'],$arcRow['namerule'],$arcRow['typedir'],$arcRow['money'],false,'');
    if(!ereg("\?",$arcurl)){
    	 $truedir = GetTruePath($arcRow['siterefer'],$arcRow['sitepath']);
    	 $htmlfile = $truedir.$arcurl;
    	 if(file_exists($htmlfile) && !is_dir($htmlfile)) unlink($htmlfile);
    	 $arcurls = explode(".",$arcurl);
    	 $sname = $arcurls[count($arcurls)-1];
    	 $fname = ereg_replace("(\.$sname)$","",$arcurl);
    	 for($i=2;$i<=100;$i++){
    		 $htmlfile = $truedir.$fname."_$i".".".$sname;
    		 if(file_exists($htmlfile) && !is_dir($htmlfile)) unlink($htmlfile);
    		 else break;
    	 }
    }
    //删除文本文件
    $ipath = $GLOBALS['cfg_cmspath']."/data/textdata/".(ceil($aid/5000))."/";
		$filename = $GLOBALS['cfg_basedir'].$ipath."{$aid}.txt";
		if(is_file($filename)) unlink($filename);
    return true;
}
         $arcRow['ismake'] = 1;
         $arcRow['arcrank'] = $trow['corank'];
         $arcRow['namerule'] = $trow['namerule'];
         $arcRow['typedir'] = $trow['typedir'];
         $arcRow['money'] = 0;
         $arcRow['filename'] = '';
         $arcRow['moresite'] = $trow['moresite'];
         $arcRow['siteurl'] = $trow['siteurl'];
         $arcRow['sitepath'] = $trow['sitepath'];
     }
     $arcurl = GetFileUrl($arcRow['id'], $arcRow['typeid'], $arcRow['senddate'], $arcRow['title'], $arcRow['ismake'], $arcRow['arcrank'], $arcRow['namerule'], $arcRow['typedir'], $arcRow['money'], $arcRow['filename'], $arcRow['moresite'], $arcRow['siteurl'], $arcRow['sitepath']);
     $arcfile = GetFileUrl($arcRow['id'], $arcRow['typeid'], $arcRow['senddate'], $arcRow['title'], $arcRow['ismake'], $arcRow['arcrank'], $arcRow['namerule'], $arcRow['typedir'], $arcRow['money'], $arcRow['filename']);
     if (preg_match("#^http:#", $arcfile)) {
         $arcfile = preg_replace("#^http:\\/\\/([^\\/]*)\\/#i", '/', $arcfile);
     }
     $truefile = GetTruePath() . $arcfile;
     if (!file_exists($truefile)) {
         MakeArt($aid, TRUE);
     }
     echo "<script language='javascript'>location.href='{$arcurl}" . "?" . time() . "';</script>";
     exit;
 } else {
     if ($dopost == "uploadLitpic") {
         $upfile = AdminUpload('litpic', 'imagelit', 0, false);
         if ($upfile == '-1') {
             $msg = "<script language='javascript'>\n                parent.document.getElementById('uploadwait').style.display = 'none';\n                alert('你没指定要上传的文件或文件大小超过限制!');\n            </script>";
         } else {
             if ($upfile == '-2') {
                 $msg = "<script language='javascript'>\n                parent.document.getElementById('uploadwait').style.display = 'none';\n                alert('上传文件失败,请检查原因!');\n            </script>";
             } else {
                 if ($upfile == '0') {
		left join #@__channeltype c on c.ID = arc.channel
		where arc.ID='$aid'
  ";
  $arcRow = $dsql->GetOne($arcQuery);
	if($arcRow['ismake']==-1||$arcRow['arcrank']!=0
    ||$arcRow['typeid']==0||$arcRow['money']>0||$arcRow['channel']<-1)
  {
    	$dsql->Close();
    	echo "<script language='javascript'>location.href='{$cfg_plus_dir}/view.php?aid={$aid}';</script>";
    	exit();
  }
  $arcurl = GetFileUrl($arcRow['ID'],$arcRow['typeid'],$arcRow['senddate'],$arcRow['title'],$arcRow['ismake'],
           $arcRow['arcrank'],$arcRow['namerule'],$arcRow['typedir'],$arcRow['money'],true,$arcRow['siteurl']);
  $arcfile = GetFileUrl($arcRow['ID'],$arcRow['typeid'],$arcRow['senddate'],$arcRow['title'],$arcRow['ismake'],
           $arcRow['arcrank'],$arcRow['namerule'],$arcRow['typedir'],$arcRow['money'],false,'');
	$truefile = GetTruePath($arcRow['siterefer'],$arcRow['sitepath']).$arcfile;
  MakeArt($aid,true,true);
  $dsql->Close();
  echo "<script language='javascript'>location.href='$arcurl"."?".time()."';</script>";
	exit();
}
/*--------------------------
//推荐文档
function commendArchives();
---------------------------*/
else if($dopost=="commendArchives")
{
	CheckPurview('a_Commend,sys_ArcBatch');
	$dsql = new DedeSql(false);
	if( $aid!="" && !ereg("(".$aid."`|`".$aid.")",$qstr) ) $qstr .= "`".$aid;
	if($qstr==""){
Example #4
0
/**
 *  删除不带主表内容模型的数据
 *
 * @access    public
 * @param     int  $aid  文档ID
 * @return    string
 */
function DelArcSg($aid)
{
    global $dsql, $cfg_cookie_encode, $cfg_ml, $cfg_upload_switch, $cfg_medias_dir;
    $aid = intval($aid);
    //读取文档信息
    $arctitle = '';
    $arcurl = '';
    $arcQuery = "Select arc.id,arc.typeid,arc.senddate,arc.arcrank,ch.addtable,ch.nid,\n        tp.typedir,tp.typename,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath\n          from `#@__arctiny` arc\n          left join `#@__arctype` tp on tp.id=arc.typeid\n          left join `#@__channeltype` ch on ch.id=arc.channel\n        where arc.id='{$aid}' ";
    $arcRow = $dsql->GetOne($arcQuery);
    if (!is_array($arcRow)) {
        return FALSE;
    }
    //删除数据库的内容
    $dsql->ExecuteNoneQuery("DELETE FROM `#@__arctiny` where id='{$aid}' ");
    $dsql->ExecuteNoneQuery("DELETE FROM `" . $arcRow['addtable'] . "` where aid='{$aid}' ");
    $dsql->ExecuteNoneQuery("DELETE FROM `#@__feedback` where aid='{$aid}'");
    $dsql->ExecuteNoneQuery("DELETE FROM `#@__member_stow` where aid='{$aid}'");
    $dsql->ExecuteNoneQuery("DELETE FROM `#@__taglist ` where aid='{$aid}'");
    //删除HTML
    if ($arcRow['arcrank'] != 0 || $arcRow['typeid'] == 0) {
        return TRUE;
    }
    $arcurl = GetFileUrl($arcRow['id'], $arcRow['typeid'], $arcRow['senddate'], '', 1, $arcRow['arcrank'], $arcRow['namerule'], $arcRow['typedir'], 0, '');
    if (!preg_match("#\\?#", $arcurl)) {
        $htmlfile = GetTruePath() . str_replace($GLOBALS['cfg_basehost'], '', $arcurl);
        if (file_exists($htmlfile) && !is_dir($htmlfile)) {
            @unlink($htmlfile);
            $arcurls = explode(".", $htmlfile);
            $sname = $arcurls[count($arcurls) - 1];
            $fname = preg_replace("#(\\.{$sname})\$#", "", $htmlfile);
            for ($i = 2; $i <= 100; $i++) {
                $htmlfile = $fname . "_{$i}" . "." . $sname;
                if (file_exists($htmlfile) && !is_dir($htmlfile)) {
                    @unlink($htmlfile);
                } else {
                    break;
                }
            }
        }
    }
    //删除文本文件
    $filenameh = DEDEDATA . "/textdata/" . ceil($aid / 5000) . "/{$aid}-" . substr(md5($cfg_cookie_encode), 0, 16) . ".txt";
    return TRUE;
}
Example #5
0
function DelArc($aid, $type = 'ON', $onlyfile = false)
{
    global $dsql, $cfg_cookie_encode, $cfg_multi_site, $cfg_medias_dir;
    global $cuserLogin, $cfg_upload_switch, $cfg_delete, $cfg_basedir;
    global $admin_catalogs, $cfg_admin_channel;
    if ($cfg_delete == 'N') {
        $type = 'OK';
    }
    if (empty($aid)) {
        return;
    }
    $aid = ereg_replace("[^0-9]", '', $aid);
    $arctitle = $arcurl = '';
    //查询表信息
    $query = "Select ch.maintable,ch.addtable,ch.nid,ch.issystem From `#@__arctiny` arc\r\n\t            left join `#@__arctype` tp on tp.id=arc.typeid\r\n              left join `#@__channeltype` ch on ch.id=arc.channel where arc.id='{$aid}' ";
    $row = $dsql->GetOne($query);
    $nid = $row['nid'];
    $maintable = trim($row['maintable']) == '' ? '#@__archives' : trim($row['maintable']);
    $addtable = trim($row['addtable']);
    $issystem = $row['issystem'];
    //查询档案信息
    if ($issystem == -1) {
        $arcQuery = "Select arc.*,tp.* from `{$addtable}` arc left join `#@__arctype` tp on arc.typeid=tp.id where arc.aid='{$aid}' ";
    } else {
        $arcQuery = "Select arc.*,tp.*,arc.id as aid from `{$maintable}` arc left join `#@__arctype` tp on arc.typeid=tp.id where arc.id='{$aid}' ";
    }
    $arcRow = $dsql->GetOne($arcQuery);
    //检测权限
    if (!TestPurview('a_Del,sys_ArcBatch')) {
        if (TestPurview('a_AccDel')) {
            if (!in_array($arcRow['typeid'], $admin_catalogs) && (count($admin_catalogs) != 0 || $cfg_admin_channel != 'all')) {
                return false;
            }
        } else {
            if (TestPurview('a_MyDel')) {
                if ($arcRow['mid'] != $cuserLogin->getUserID()) {
                    return false;
                }
            } else {
                return false;
            }
        }
    }
    //$issystem==-1 是单表模型,不使用回收站
    if ($issystem == -1) {
        $type = 'OK';
    }
    if (!is_array($arcRow)) {
        return false;
    }
    /** 删除到回收站 **/
    if ($cfg_delete == 'Y' && $type == 'ON') {
        $dsql->ExecuteNoneQuery("Update `{$maintable}` set arcrank='-2' where id='{$aid}' ");
        $dsql->ExecuteNoneQuery("Update `#@__arctiny` set `arcrank` = '-2' where id = '{$aid}'; ");
    } else {
        //删除数据库记录
        if (!$onlyfile) {
            //删除相关附件
            if ($cfg_upload_switch == 'Y') {
                $dsql->Execute("me", "SELECT * FROM `#@__uploads` WHERE arcid = '{$aid}'");
                while ($row = $dsql->GetArray('me')) {
                    $addfile = $row['url'];
                    $aid = $row['aid'];
                    $dsql->ExecuteNoneQuery("Delete From `#@__uploads` where aid = '{$aid}' ");
                    $upfile = $cfg_basedir . $addfile;
                    if (@file_exists($upfile)) {
                        @unlink($upfile);
                    }
                }
            }
            $dsql->ExecuteNoneQuery("Delete From `#@__arctiny` where id='{$aid}'");
            if ($addtable != '') {
                $dsql->ExecuteNoneQuery("Delete From `{$addtable}` where aid='{$aid}' ");
            }
            if ($issystem != -1) {
                $dsql->ExecuteNoneQuery("Delete From `#@__archives` where id='{$aid}' ");
            }
            $dsql->ExecuteNoneQuery("Delete From `#@__feedback` where aid='{$aid}' ");
            $dsql->ExecuteNoneQuery("Delete From `#@__member_stow` where aid='{$aid}' ");
            $dsql->ExecuteNoneQuery("Delete From `#@__taglist` where aid='{$aid}' ");
            $dsql->ExecuteNoneQuery("Delete From `#@__erradd` where aid='{$aid}' ");
        }
        //删除文本数据
        $filenameh = DEDEDATA . "/textdata/" . ceil($aid / 5000) . "/{$aid}-" . substr(md5($cfg_cookie_encode), 0, 16) . ".txt";
        if (@is_file($filenameh)) {
            @unlink($filenameh);
        }
    }
    if (empty($arcRow['money'])) {
        $arcRow['money'] = 0;
    }
    if (empty($arcRow['ismake'])) {
        $arcRow['ismake'] = 1;
    }
    if (empty($arcRow['arcrank'])) {
        $arcRow['arcrank'] = 0;
    }
    if (empty($arcRow['filename'])) {
        $arcRow['filename'] = '';
    }
    //删除HTML
    if ($arcRow['ismake'] == -1 || $arcRow['arcrank'] != 0 || $arcRow['typeid'] == 0 || $arcRow['money'] > 0) {
        return true;
    }
    //强制转换非多站点模式,以便统一方式获得实际HTML文件
    $GLOBALS['cfg_multi_site'] = 'N';
    $arcurl = GetFileUrl($arcRow['aid'], $arcRow['typeid'], $arcRow['senddate'], $arcRow['title'], $arcRow['ismake'], $arcRow['arcrank'], $arcRow['namerule'], $arcRow['typedir'], $arcRow['money'], $arcRow['filename']);
    if (!ereg("\\?", $arcurl)) {
        $htmlfile = GetTruePath() . str_replace($GLOBALS['cfg_basehost'], '', $arcurl);
        if (file_exists($htmlfile) && !is_dir($htmlfile)) {
            @unlink($htmlfile);
            $arcurls = explode(".", $htmlfile);
            $sname = $arcurls[count($arcurls) - 1];
            $fname = ereg_replace("(\\.{$sname})\$", "", $htmlfile);
            for ($i = 2; $i <= 100; $i++) {
                $htmlfile = $fname . "_{$i}." . $sname;
                if (@file_exists($htmlfile)) {
                    @unlink($htmlfile);
                } else {
                    break;
                }
            }
        }
    }
    return true;
}