admin 发表于 2022-4-25 09:19:05

织梦自动插入图片 插件

一、安装插件
二、
打开 dede/article_add.php

找到 //自动分页 在他上面添加



//替换标签

//if(($cfg_article_dc=="N" && $imgSet=="on") || ($cfg_article_dc=="N" && $imgSub=="on")){    //自动加工使用这行,下面一行注释或删除,单独使用本插件使用请无视
if($imgSet=="on" || $imgSub == "on"){
        if(substr_count($body,"</p>")<3){
    $body=replace_html($body);
        }
}

// 是否开启插【插入】图片
if(preg_match("/<.*>/",$body) == false && substr_count($body,"</p>") !=0 && substr_count($body,"</p>")>=3){ //进行正则匹配判断是否有图片
       if($imgSet=="on"){
                preg_match_all('/<p.*?>(.*?)<\/p>/is',$body,$match);
                $imgStr="";
                $imgUpid="";
                foreach ($match as $k=>$v){
                if($in_img=="on"){
                       $diyimg = $dsql->GetOne("SELECT * FROM `#@__diyimg` WHERE typeid='$typeid' order by rand() limit 1");
               }else{
                        $diyimg = $dsql->GetOne("SELECT * FROM `#@__diyimg` order by rand() limit 1");
               }
                if(!empty($diyimg) && $k !=count($match)-1){
                                $diyimgurl="<p></p>";
                                $gig=$diyimg['gid'].",";
                        }else{
                                $diyimgurl="";
                               
                                $gig="";
                        }
                       
                        if(mb_strlen($v)>$dltp_max){
                                $imgStr[].="<p>".$v."</p>".$diyimgurl;
                                $imgUpid.=$gig;
                        }else{
                                $imgStr[].="<p>".$v."</p>";
                        }
               
                }
                // 再检查是否有图片,每行过短默认插入第二段
                if(preg_match("/<.*>/",join('',$imgStr)) == false){
                        if(!empty($diyimg)){
                                $gig=$diyimg['gid'].",";
                                $imgStr.="<p></p>";
                        }
                }
       
                $body=join("",$imgStr);
               
        }
}else{
        // 是否开启【替换】图片
        if($imgSub == "on"){
                $diyimgs="";
                // 定义匹配正则
                $body=preg_replace('/<.*?src=\\\"(.*?)\\\".*?[\/]?>/si','',$body);
                $pregRule = "/(<.*?src=[\'|\"])(.*?(?:[\.jpg|\.jpeg|\.png|\.gif|\.bmp]))([\'|\"].*?[\/]?>)/";
                $diyimgs="";
                $body = preg_replace_callback($pregRule,function ($thimg) use($typeid,$dsql,$diyimgs,$in_img){
                        global $dsql;
                        if($in_img=="on"){
                               $diyimgs = $dsql->GetOne("SELECT gid,url,typeid FROM `#@__diyimg` WHERE typeid='$typeid' order by rand() limit 1");
                       }
                       else{
                                $diyimgs = $dsql->GetOne("SELECT gid,url,typeid FROM `#@__diyimg` order by rand() limit 1");
                       }
                        if(!empty($diyimgs)){
                                global $imgUpid;
                                $imgUpid.=$diyimgs['gid'].",";
                                return $thimg.$diyimgs['url'].$thimg;
                        }else{
                                return $thimg.$thimg.$thimg;
                        }
                }, $body);
               
        }

}

三、找到
//处理body字段自动摘要、自动提取缩略图等
$body = AnalyseHtmlBody($body,$description,$litpic,$keywords,'htmltext');

剪切到刚刚添加的代码的下面

四、找到ClearMyAddon($arcID, $title);在他下面添加

if(($imgSet=="on" && !empty($imgUpid)) || ($imgSub=="on" && !empty($imgUpid))){
            $imgUpid=trim($imgUpid,",");
            $imgUpid=explode(",",$imgUpid);
            foreach ($imgUpid as $v){
                    $dsql->ExecuteNoneQuery("UPDATE `#@__diyimg` SET `usenum`=`usenum`+1 WHERE gid='$v'");
            }
    }

六、将需要导入的函数.txt 复制添加到自己的 include/ extend.func.php 里

注:注意看函数是否已经存在,只需要一个就好了

PS:300个utf字符=100字

页: [1]
查看完整版本: 织梦自动插入图片 插件