Heim >CMS-Tutorial >DEDECMS >So löschen Sie Artikel und Anhänge in dedecms

So löschen Sie Artikel und Anhänge in dedecms

藏色散人
藏色散人Original
2019-12-21 10:29:122461Durchsuche

So löschen Sie Artikel und Anhänge in dedecms

dedecms怎么删除文章同时也删除附件?

dedecms删除文章同时也删除附件的修改方法

dedecms删除文章同时也删除附件的修改方法,使用dedecms的朋友可以参考下。

  推荐学习:织梦cms

首先添加两个函数 

代码如下:

/* 
根据文档id获取文档的body部分 
*/ 
function getArcBody($arcid) 
{ 
global $dsql; 
if(empty($arcid)) return ; 
$body = ''; 
$query = "select arc.*,ch.addtable,ch.fieldset from `dede_arctiny` as arc left join `dede_channeltype` as ch on arc.channel=ch.id where arc.id=$arcid"; 
$row = $dsql->GetOne($query); 
if(empty($row)) return ; 
$addtable = $row['addtable']; 
$fieldset = $row['fieldset']; 
include_once(DEDEINC.'./dedetag.class.php'); 
$dtp = new DedeTagParse(); 
$dtp->SetNameSpace(&#39;field&#39;,&#39;<&#39;,&#39;>&#39;); 
$dtp->LoadSource($fieldset); 
if(is_array($dtp->CTags)) 
{ 
foreach($dtp->CTags as $tid=>$tag) 
{ 
if($tag->GetAtt(&#39;type&#39;)==&#39;htmltext&#39;) 
{ 
$body = $tag->GetName(); 
break; 
} 
} 
} 
if(!empty($body)) 
{ 
$query = "select $body from `$addtable` where aid=$arcid"; 
$row = $dsql->GetOne($query); 
$body = $row[$body]; 
return $body; 
} 
return ; 
} 
/* 
解析文档内容的本地图片图片 
*/ 
function get_img_from_body($body) 
{ 
$result = array(); 
if(empty($body)) 
return $result; 
preg_match_all(&#39;/\ssrc=([\"|\&#39;])([^\1]*?)\.(gif|jpg|jpeg|png)\1/&#39;,$body,$res); 
if(!empty($res[2])) 
{ 
foreach($res[2] as $k=>$v) 
{ 
$result[] = $v.&#39;.&#39;.$res[3][$k]; 
} 
} 
return $result; 
}

把这段代码贴到include/common.func.php后面, 

接着打开后台(假设使用默认的dede作为后台)dede/inc/inc_batchup.php文件, 

在第22行添加代码如下: 

$body = getArcBody($aid);

接在在第139行,就是在 

return true;

上面一行加上下面的代码 

代码如下:

if($body) 
{ 
$img_arr = get_img_from_body($body); 
if(!empty($img_arr)) 
{ 
foreach($img_arr as $v) 
{ 
$img_file = GetTruePath().str_replace($GLOBALS[&#39;cfg_basehost&#39;],&#39;&#39;,$v); 
if(file_exists($img_file) && !is_dir($img_file)) 
@unlink($img_file); 
} 
} 
}

这样就可以实现删除文档的时候删除字段为“htmltext”类型的中的本地图片了。 

Das obige ist der detaillierte Inhalt vonSo löschen Sie Artikel und Anhänge in dedecms. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn