DEDE删除文章同时删除附件解决代码
发布:smiling 来源: PHP粉丝网 添加日期:2015-03-24 16:38:05 浏览: 评论:0
DEDE删除文章同时删除附件解决代码:
- /*
- 根据文档id获取文档的body部分
- */
- function getArcBody($arcid)
- {
- global $dsql;
- if(emptyempty($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(emptyempty($row)) return ;
- $addtable = $row['addtable'];
- $fieldset = $row['fieldset'];
- include_once(DEDEINC.'./dedetag.class.php教程');
- $dtp = new DedeTagParse();
- $dtp->SetNameSpace('field','<','>');
- $dtp->LoadSource($fieldset);
- if(is_array($dtp->CTags))
- {
- foreach($dtp->CTags as $tid=>$tag)
- {
- if($tag->GetAtt('type')=='htmltext')
- {
- $body = $tag->GetName();
- break;
- }
- }
- }
- if(!emptyempty($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(emptyempty($body))
- return $result;
- preg_match_all('/ssrc=(["|'])([^1]*?).(gif|jpg|jpeg|png)1/',$body,$res);
- if(!emptyempty($res[2]))//开源软件:phpfensi.com
- {
- foreach($res[2] as $k=>$v)
- {
- $result[] = $v.'.'.$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(!emptyempty($img_arr))
- {
- foreach($img_arr as $v)
- {
- $img_file = GetTruePath().str_replace($GLOBALS['cfg_basehost'],'',$v);
- if(file_exists($img_file) && !is_dir($img_file))
- @unlink($img_file);
- }
- }
- }
这样就可以实现删除文档的时候删除字段为“htmltext”类型的中的本地图片了.
Tags: DEDE删除文章 DEDE删除附件
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)