当前位置:   article > 正文

织梦mip改造_mip模版修改

mip模版修改

前2天接了个织梦改造mip,之前没怎么接触过织梦,mip也没怎么接触过,这里记录下改造过程,其实需要改造的地方不多。

首先页面改造:

按照mip标准:

       1、需要给html标签加上mip,即:<html mip>

       2、字符集统一为utf-8

       3、需要meta: <meta name="viewport" content="width=device-width,initial-scale=1">

       4、引入mip样式支持和javascript支持:<link rel="stylesheet" type="text/css" href="https://mipcache.bdstatic.com/static/v1/mip.css" >

<script src="https://mipcache.bdstatic.com/static/v1/mip.js" ></script >

       5、head标签中引入 <link rel="canonical" href="http(s)://xxx" > xxx代表原来的网站,如果只有手机端页面,那么这个href就是当前页面就可以了,如果还有电脑端的页面,那这个href可以指向电脑端的页面

       6、其他的就按照mip标准套, 其实大部分还是修改img标签为mip-img,a标签可以不用修改, 还是样式不能直接用style=写在标签上了,如果实在需要在当前页写css,需要在头部添加<style mip-custom></style>


程序改造:

程序需要改造的地方有2个:

1、分页: 找到include/arc.listview.class.php里的GetPageListDM($list_len,$listitem="index,end,pre,next,pageno"),大概在981行,在这个函数里面添加:

$typeDir = str_replace('{cmspath}', '', $this->Fields['typedir']);

然后在有href=的地方添加:.$GLOBALS['cfg_basehost']."/".$typeDir."/"

完整链接如:

if($this->PageNo != 1)
        {
            $prepage.="<li><a href='".$GLOBALS['cfg_basehost']."/".$typeDir."/".str_replace("{page}",$prepagenum,$tnamerule)."'>上一页</a></li>\r\n";
            $indexpage="<li><a href='".$GLOBALS['cfg_basehost']."/".$typeDir."/".str_replace("{page}",1,$tnamerule)."'>首页</a></li>\r\n";
        }

if($this->PageNo!=$totalpage && $totalpage>1)
        {
            $nextpage.="<li><a href='".$GLOBALS['cfg_basehost']."/".$typeDir."/".str_replace("{page}",$nextpagenum,$tnamerule)."'>下一页</a></li>\r\n";
            $endpage="<li><a href='".$GLOBALS['cfg_basehost']."/".$typeDir."/".str_replace("{page}",$totalpage,$tnamerule)."'>末页</a></li>\r\n";
        }

到此,分页改造完毕。

2、内容改造比较复杂:

(1)、找到include/arc.archives.class.php,找到函数ReplaceKeyword($kw,&$body),大概1182行,在这个函数后面添加如下2个函数:

function replacePicUrl($content = null, $url="") {
        $pattern = "/<img(.*?)src=('|\")([^>]*).(bmp|gif|jpeg|jpg|png)('|\")(.*?)>/i";
        $replacement = "<mip-img src={$url}$3.$4></mip-img>";
        $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;
    }

(2)、在函数ParAddTable()里的$this->SplitTitles = Array();上面,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标签内添加如下代码:

<style mip-custom>
  {dede:field.custom_style/}
  </style>

(5)、最后一步,到后台:核心-频道模型-内容模型管理列表找到普通文章,并点击编辑,进入字段管理并添加字段custom_style,表示从内容编辑器中提取出来的样式,选多行文本。


到此,织梦简单改造mip已完成,但是mip对js有限制,目前还没有比较完善的文档,对于评论那块以后研究下mip的js再想办法。最后记住,a标签的href和mip-img的src都需要完整地址,包括域名。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/980876
推荐阅读
相关标签
  

闽ICP备14008679号