找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 151|回复: 0

[cms教程] 织梦CMS改造mip教程

[复制链接]

该用户从未签到

发表于 2020-8-13 10:42:28 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

×
页面整体结构改造
         
       
       
            
                
                
       
       
       
        样式
       
            
            
       
       
            

       
         
        mip规范结构大致如上代码,具体的就自行修改。
         
        mip图片改造
        图片的格式需要换成
         
        我增加了一个函数,在include 里面的extend.func.php 下。这个应该所有的php后台都是试用的
         
        function replaceurl($content){
        //$pattern = "/
[img][/img]
,*).(bmp|gif|jpeg|jpg|png)('|")(.*?)>/i";
        $pattern="/
[img][/img]
/";
        preg_match_all($pattern, $content,$matches);
        $full_img = $matches[0];
        $full_src = $matches[1,;
        foreach ($full_img as $k => $v) {
        $v1 = str_replace("[i,
        $v1 = str_replace("/>", ">", $v1);
        $v1 = str_replace('src="/ueditor','src="/ueditor',$v1);
        $new_path = $url.$full_src[$k,;
        $v1 = str_replace($full_src[$k,, $new_path, $v1);
        $content = str_replace($v, $v1, $content);
        }
        return $content;
        }
         
        后面又研究了下,如果是用的织梦的编辑器,就会产生style,于是我又弄了另外一个然后织梦调用主体内容 {dede:field.body function='replaceurl(@me)'/} 执行了下函数替换了img标签。
         
        function replaceurl($content){
        $pattern = Array("/
[img][/img]
,*).(bmp|gif|jpeg|jpg|png)('|")(.*?)>/i","/style=(.*?)>/i");
        $replacement = Array("",">");
        $content = preg_replace($pattern, $replacement, $content);
        return $content;  
        }
         
        这个的话就直接把style去掉了,好歹解决了吧!推荐用下面这个。
         
        style标签去除
        我们在里面会更改字的样子,就会产生style,又得替换
         
        function replaceurl($content){
        $pattern = Array("/
[img][/img]
,*).(bmp|gif|jpeg|jpg|png)('|")(.*?)>/i","/style=(.*?)>/i");
        $replacement = Array("",">");
        $content = preg_replace($pattern, $replacement, $content);
        return $content;
        }
         
        还是一样主体内容 {dede:field.body function='replaceurl(@me)'/}  这样调用,具体如果还需要详细的话可以更改里面的正则表达式
         
        不去掉文章style
        比较麻烦,网上看见的,没测试是否可行,可以自行研究下,大概就是提取body里面的style生成class然后再调用到头部去
         
        因为我的并没有用多少style所以懒搞的了。
         
        (1)、找到include/arc.archives.class.php]找到函数ReplaceKeyword($kw,&$body),大概1182行,在这个函数后面添加如下2个函数:
         
        function replacePicUrl($content = null, $url="") {
        $pattern = "/
[img][/img]
,*).(bmp|gif|jpeg|jpg|png)('|")(.*?)>/i";
        $replacement = "";
        $content = preg_replace($pattern, $replacement, $content);
        return $content;
        }
        function getStyle($content = null){
        preg_match_all("/style=('|")([^'",+)('|")/",
        $content,$matches);
        $styles = $matches[0];
        $styles_value = $matches[2,;
        $style_custom = "";
        $i = 0;
        foreach($styles_value as $key){
        $style_custom .= ".class".$i."{".$key."}";
        $class_name = 'class="class'.$i.'"';
        $replacements = $class_name;
        $patterns = $styles[$i,;
        $content = str_replace($patterns, $replacements, $content);
        $i++;
        }
        $res['style_custom', = $style_custom;
        $res['content', = $content;
        return $res;
        }
         
        $this->SplitTitles = Array();上面,(2)在函数ParAddTable()里的
         
        unset($row);下面,大概253行添加如下代码:
         
        $content = $this->replacePicUrl($this->Fields['body',, $GLOBALS['cfg_basehost',);
        $content_arr = $this->getStyle($content);
        $this->Fields['body', = $content_arr['content',;
        $this->Fields['style_custom', = $content_arr['style_custom',;
         
        (3)、找到函数MakeHtml($isremote=0),大概358行,在里面的
         
        $this->Fields['filename', = empty($this->Fields['filename',)? '' : $this->Fields['filename',;下面添加如下代码:
         
        $this->Fields['style_custom', = empty($this->Fields['style_custom',)? '' : $this->Fields['style_custom',;
        (4)、在templete的article_article.htm模板中的head标签内添加如下代码:
       
        {dede:field.custom_style/}
       
         
        文章内链更换
        注明:内链请勿填写绝对地址,还是在上面2、3的方法里面改,还是增加一个变量正则,然后替换。www.adminbuy.cn
         
        function replaceurl($content){
        $pattern = Array("/
[img][/img]
,*).(bmp|gif|jpeg|jpg|png)('|")(.*?)>/i","/style=(.*?)>/i",'/]+bhref="([^",*)"[^>,*>/i');
        $replacement = Array("",">",'[url=,');
        $content = preg_replace($pattern, $replacement, $content);
        return $content;
        }
         
        文章文档关键词链接更换
        如果你用了织梦自带的关键字加链接,在核心》批量维护》文档关键词维护里面,那么就要替换成绝对地址与增加mip链接格式
         
        打开include/arc.archives.class.php 文件 ,大概在1219行,在变量$key_url前面加上自己的链接,与href前面加上 data-type=mip
         
        $query = "SELECT * FROM dede_keywords WHERE rpurl'' ORDER BY rank DESC";
        $this->dsql->SetQuery($query);
        $this->dsql->Execute();
        while($row = $this->dsql->GetArray())
        {
        $key = trim($row['keyword',);
        $key_url=trim($row['rpurl',);
        $karr[, = $key;
        $kaarr[, = "$key[/url]";
        }
回复

使用道具 举报

网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2024-11-26 15:47

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表