当前位置: 主页 > 织梦 >

织梦同步移动整理

摘要:PC和移动同步

数据库的改造dede_arctype

在表的最后添加3个字段

typenameeng     char(100)   utf8_general_ci

ismhtml      tinyint(1)  utf8_general_ci

ism          tinyint(1)  utf8_general_ci

增加的内容用来判断是不是在手机端生成静态页面,是不是在手机端展示栏目。

织梦系统文件的改造,主要是在后台操作生成PC页面的同时也生成了手机页面。织梦系统调取特定模板生成页面。

因此,将系统的生成方法添加一个对手机文件的生成。

/catalog_edit.php
makehtml_homepage.php //1
makehtml_archives_action.php //2
/inc/inc_archives_functions.php //3
/makehtml_list_action.php //4
makehtml_all.php //5
/include/extend.func.php //6
/include/inc/inc_fun_funAdmin.php //10
/include/taglib/channel.lib.php //7
/include/arc.listview.class.php //8
/include/helpers/channelunit.helper.php //9
include/arc.archives.class.php //11


1.后台路径里面的 makehtml_homepage.php 文件

在代码:

    // 判断首页生成模式
    if ($showmod == 1)
    {
        // 需要生成静态
        $templet = str_replace("{style}", $cfg_df_style, $templet);
        $pv = new PartView();
        $GLOBALS['_arclistEnv'] = 'index';
        $pv->SetTemplet($cfg_basedir.$cfg_templets_dir."/".$templet);
        $pv->SaveToHtml($homeFile);

之后添加

//don 手机页面开始
		$homeFile_m=$cfg_basedir.'/../m.xiaochao.me/index.html';
		$homeFile_m = str_replace("\\","/",$homeFile_m);
		$homeFile_m = str_replace("//","/",$homeFile_m);
		$templet_m = str_replace($cfg_df_style, 'm', $templet);
		$pv_m = new PartView();
		$pv_m->SetTemplet($cfg_basedir.$cfg_templets_dir."/".$templet_m);
		$pv_m->SaveToHtml($homeFile_m);//don 手机页面结束

注意www.xiaochao.me和m,分别是手机端生成的根目录和手机端的模板目录。按照PC模式,使用str_replace函数巧妙完成手机首页生成。

2. 后台路径里面的 makehtml_archives_action.php 文件,修改文档生成,增加手机支持

在代码的$rurl = $ac->MakeHtml($isremote);插入手机变量

while($row=$dsql->GetObject('out'))
{
    $tjnum++;
    $id = $row->id;
    $ac = new Archives($id);
    $rurl = $ac->MakeHtml($isremote);
}

添加之后:

while($row=$dsql->GetObject('out'))
{
    $tjnum++;
    $id = $row->id;
    $ac = new Archives($id);
    $rurl = $ac->MakeHtml($isremote);
if($ac->Fields['ismhtml'])$ac->MakeHtml($isremote,$m=1);//don,插入的手机
}

3.在后台inc 目录中的 inc_archives_functions.php 文件

修改MakeArt添加函数的手机代码,在代码:

function MakeArt($aid, $mkindex=FALSE, $ismakesign=FALSE, $isremote=0)
{
    global $envs, $typeid;
    require_once(DEDEINC.'/arc.archives.class.php');
    if($ismakesign) $envs['makesign'] = 'yes';
    $arc = new Archives($aid);
    $reurl = $arc->MakeHtml($isremote);
    return $reurl;
}

增加后

function MakeArt($aid, $mkindex=FALSE, $ismakesign=FALSE, $isremote=0)
{
    global $envs, $typeid;
    require_once(DEDEINC.'/arc.archives.class.php');
    if($ismakesign) $envs['makesign'] = 'yes';
    $arc = new Archives($aid);
    $reurl = $arc->MakeHtml($isremote);
if($arc->Fields['ismhtml'])$arc->MakeHtml($isremote,$m=1);//don,插入的手机
    return $reurl;
}


4.后台 makehtml_list_action.php 文件

查找://如果栏目的文档太多,分多批次更新

 

  //如果栏目的文档太多,分多批次更新
    if($ntotalpage <= $maxpagesize || $lv->TypeLink->TypeInfos['ispart']!=0 || $lv->TypeLink->TypeInfos['isdefault']==-1)
    {
        $reurl = $lv->MakeHtml('', '', $isremote);
        $finishType = TRUE;
    }
    else
    {
        $reurl = $lv->MakeHtml($mkpage, $maxpagesize, $isremote);
        $finishType = FALSE;
        $mkpage = $mkpage + $maxpagesize;
        if( $mkpage >= ($ntotalpage+1) ) $finishType = TRUE;
    }
}

添加手机的//don后的

 //如果栏目的文档太多,分多批次更新
    if($ntotalpage <= $maxpagesize || $lv->TypeLink->TypeInfos['ispart']!=0 || $lv->TypeLink->TypeInfos['isdefault']==-1)
    {
        $reurl = $lv->MakeHtml('', '', $isremote);
if($lv->TypeLink->TypeInfos['ism'])$lv->MakeHtml('', '', $isremote,1);//don
        $finishType = TRUE;
    }
    else
    {
        $reurl = $lv->MakeHtml($mkpage, $maxpagesize, $isremote);
        if($lv->TypeLink->TypeInfos['ism'])$lv->MakeHtml($mkpage, $maxpagesize, $isremote,1);//don
        $finishType = FALSE;
        $mkpage = $mkpage + $maxpagesize;
        if( $mkpage >= ($ntotalpage+1) ) $finishType = TRUE;
    }
}


5.后台 makehtml_all.php 文件

在function _3_MakeHomePage() 函数内

if($row['showmod'] == 1)
{
$pv->SetTemplet($cfg_basedir.$cfg_templets_dir.'/'.$templet);
$pv->SaveToHtml($homeFile);
$pv->Close();
} else {
if (file_exists($homeFile)) @unlink($homeFile);
}
        ShowMsg("完成更新所有文档,现在开始更新栏目页!","makehtml_all.php?action=make&step=4&uptype=$uptype&mkvalue=$mkvalue");
        exit();
    }

添加手机//don

if($row['showmod'] == 1)
{
$pv->SetTemplet($cfg_basedir.$cfg_templets_dir.'/'.$templet);
$pv->SaveToHtml($homeFile);
$pv->Close();
} else {
if (file_exists($homeFile)) @unlink($homeFile);
}
//don 手机页面开始
$homeFile_m=$cfg_basedir.'/../m.xiaochao.me/index.html';
$homeFile_m = str_replace("\\","/",$homeFile_m);
$homeFile_m = str_replace("//","/",$homeFile_m);
$templet_m = str_replace($cfg_df_style, 'm', $templet);
$pv_m = new PartView();
$pv_m->SetTemplet($cfg_basedir.$cfg_templets_dir."/".$templet_m);
$pv_m->SaveToHtml($homeFile_m);
$pv_m->Close();//don 手机页面结束
        ShowMsg("完成更新所有文档,现在开始更新栏目页!","makehtml_all.php?action=make&step=4&uptype=$uptype&mkvalue=$mkvalue");
        exit();
    }


6.系统include 文件夹下的函数扩展文件 extend.func.php 文件

的末尾添加:

function GetParentTypename($id){
global $dsql ;
$reid = $dsql->GetOne("SELECT reid FROM dede_arctype where id=$id");
$reid = $reid['reid'];
$row1 = $dsql->GetOne("SELECT typename FROM dede_arctype where id=$reid");
return $row1['typename'];
}//don
function GetTopTypeurl($cid) {
global $dsql ;
if($cid==0) {
$string ="无效参数";
} else {
$cid=GetTopid($cid);
$row1 = $dsql->GetOne("SELECT typedir FROM dede_arctype where id=$cid");
$string=str_replace('{cmspath}','',$row1['typedir']);
}
return $string.'/';
}//don
function don_replace($a,$b,$c) {
return str_replace($a, $b, $c);
}//don
function focuswz($id) {
global $dsql ;
if($id==0) {
$string ="无效参数";
} else {
$row1 = $dsql->GetOne("SELECT catid FROM dede_focus where id=$id");
}
return str_replace(',', '|', $row1['catid']);;
}//don


7. include/taglib 路径下的 channel.lib.php 文件

增加对channel标签的增强改造,增强type属性类型,在代码:

  if($type=='top')
    {
        $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
          From `dede_arctype` WHERE reid=0 And ishidden<>1 order by sortrank asc limit 0, $line ";
    }
    else if($type=='son')
    {
        if($typeid==0) return '';
        $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
          From `dede_arctype` WHERE reid='$typeid' And ishidden<>1 order by sortrank asc limit 0, $line ";
    }
    else if($type=='self')
    {
        if($reid==0) return '';
        $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
            FROM `dede_arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";
    }
    //And id<>'$typeid'  注意dede_arctype

添加后的don

   if($type=='top')
    {
        $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
          From `dede_arctype` WHERE reid=0 And ishidden<>1 order by sortrank asc limit 0, $line ";
    }
    else if($type=='son')
    {
        if($typeid==0) return '';
        $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
          From `dede_arctype` WHERE reid='$typeid' And ishidden<>1 order by sortrank asc limit 0, $line ";
    }
    else if($type=='self')
    {
        if($reid==0) return '';
        $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
            FROM `dede_arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";
    }//don开始
else if($type=='self_m')
    {
        if($reid==0) return '';
        $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
      FROM `dede_arctype` WHERE reid='$reid' And ism=1 And ishidden<>1 order by sortrank asc limit 0, $line ";
    }
else if($type=='mson')
    {
        if($typeid==0) return '';
        $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
      From `dede_arctype` WHERE reid='$typeid' And ism=1 And ishidden<>1 order by sortrank asc limit 0, $line ";
    }//don
    //And id<>'$typeid'


8.include 文件夹下面的 arc.listview.class.php  文件

   

a. 给 function CountRecord($m=0)//don添加手机

原:

function CountRecord()
    {
        global $cfg_list_son,$cfg_need_typeid2,$cfg_cross_sectypeid;
        if(empty($cfg_need_typeid2)) $cfg_need_typeid2 = 'N';
        
        //统计数据库记录

添加后:

    function CountRecord($m=0)
    {
        global $cfg_list_son,$cfg_need_typeid2,$cfg_cross_sectypeid;
        if(empty($cfg_need_typeid2)) $cfg_need_typeid2 = 'N';
        //统计数据库记录//don

b.在这底下添加手机的if

原:

 if(!file_exists($tempfile)||!is_file($tempfile))
        {
            echo "模板文件不存在,无法解析文档!";
            exit();
        }

添加后的

 if(!file_exists($tempfile)||!is_file($tempfile))
        {
            echo "模板文件不存在,无法解析文档!";
            exit();
        }
if($m) $tempfile=str_replace($GLOBALS['cfg_df_style'], 'm',$tempfile);//don


织梦同步移动整理


C、修改 function MakeHtml 为 function MakeHtml($startpage=1, $makepagesize=0, $isremote=0, $m=0)

并且在 代码 global $cfg_remote_site; 之后添加代码:global $cfg_remote_site; 之后添加代码: $this->Fields['typedir_bak']=$this->Fields['typedir'];//don

function MakeHtml($startpage=1, $makepagesize=0, $isremote=0)
    {
        global $cfg_remote_site;
        if(empty($startpage))
        {
            $startpage = 1;
        }
        //创建封面模板文件

修改后的:

    function MakeHtml($startpage=1, $makepagesize=0, $isremote=0, $m=0)
    {
        global $cfg_remote_site;
$this->Fields['typedir_bak']=$this->Fields['typedir'];//don
if($m){
$this->Fields['typedir']=preg_match("{cmspath}", $this->Fields['typedir'])&&!preg_match("/^http:|^ftp:/i", $typedir)?str_replace("{cmspath}",$GLOBALS['cfg_cmspath'].'/../m.xiaochao.me',$this->Fields['typedir']):'/../m.xiaochao.me'.$this->Fields['typedir'];
}//don
        if(empty($startpage))
        {
            $startpage = 1;
        }
        //创建封面模板文件

D、

原:

    else if($this->TypeLink->TypeInfos['ispart']>0)
        {
            $reurl = $this->MakePartTemplets();
            return $reurl;
        }
        $this->CountRecord();
        //初步给固定值的标记赋值

修改后 

      else if($this->TypeLink->TypeInfos['ispart']>0)
        {
            $reurl = $this->MakePartTemplets($m);//don
            return $reurl;
        }
        $this->CountRecord($m);//don
        //初步给固定值的标记赋


E、

function MakePartTemplets()

修改:

    function MakePartTemplets($m=0)

F、在代码的上方,加上:if($m) $tempfile=str_replace($GLOBALS['cfg_df_style'], 'm',$tempfile);//don

原:

      $this->PartView->SetTemplet($tempfile);

改:if(!file_exists($tempfile)){}的下方:

if($m) $tempfile=str_replace($GLOBALS['cfg_df_style'], 'm',$tempfile);//don
            $this->PartView->SetTemplet($tempfile);

9.inlcude/helpers 下面的 channelunit.helper.php

      $okdir = substr($articlename,0,$subpos);
        CreateDir($okdir);
        return $articlename;

修改后:

 

      $okdir = substr($articlename,0,$subpos);
      if($m)$okdir='/../m.xiaochao.me'.$okdir;//don
        CreateDir($okdir);
        return $articlename;

10、在原的后面加上

原:

 if($spath=="")
        {
            continue;
        }

修改

if($spath=="..")
        {
            $truepath=str_replace('/blog.xiaochao.me','',$truepath);
continue;
        }//don

11、include/arc.archives.class.php

原1、

// 如果当前文档不是系统模型,为单表模型
                $query = "SELECT arc.*,tp.reid,tp.typedir,ch.addtable
                FROM `dede_archives` arc
                         LEFT JOIN dede_arctype tp on tp.id=arc.typeid
                          LEFT JOIN dede_channeltype as ch on arc.channel = ch.id
                          WHERE arc.id='$aid' ";

修改:

              // 如果当前文档不是系统模型,为单表模型
                $query = "SELECT arc.*,tp.reid,tp.typedir,tp.ismhtml,ch.addtable
                FROM `dede_archives` arc
                         LEFT JOIN dede_arctype tp on tp.id=arc.typeid
                          LEFT JOIN dede_channeltype as ch on arc.channel = ch.id
                          WHERE arc.id='$aid' ";//don 添加ismhtml

2、

       在最后一个}前面添加:

  //设置全局环境变量
            $this->Fields['typename'] = $this->TypeLink->TypeInfos['typename'];
            @SetSysEnv($this->Fields['typeid'],$this->Fields['typename'],$this->Fields['id'],$this->Fields['title'],'archives');
       //在这添加下面代码
        }

后:

//替换图片Alt为文档标题
if($m){
$this->Fields['body'] = str_ireplace("src=\"/uploads" ,"src=\"".$GLOBALS['cfg_basehost']."/uploads",$this->Fields['body']);
$this->Fields['body'] = preg_replace('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i','<img src="$2">',$this->Fields['body']);
if($this->Fields['content']){
$this->Fields['content'] = preg_replace('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i','<img src="$2">',$this->Fields['content']);
$this->Fields['content'] = str_ireplace("src=\"/uploads" ,"src=\"".$GLOBALS['cfg_basehost']."/uploads",$this->Fields['content']);}
}//don
$this->Fields['body'] = str_ireplace(array('altalt=""','alt=\'\''),'',$this->Fields['body']);  
$this->Fields['body'] = preg_replace("@ [\s]{0,}alt[\s]{0,}=[\"'\s]{0,}[\s\S]{0,}[\"'\s] @isU"," ",$this->Fields['body']);  
$this->Fields['body'] = str_ireplace("<img " ,"<img alt='".$this->Fields['title']."' ",$this->Fields['body']);
  }

3、

 else
                {
                    $TRUEfilename = $this->GetTruePath().$filename;
                }
                $this->ParseDMFields($i,1);
                $this->dtp->SaveTo($TRUEfilename);
                //如果启用远程发布则需要进行判断

修改后

else
                {
                    $TRUEfilename = $this->GetTruePath().$filename;
                }
$TRUEfilename=$m?str_replace($this->GetTruePath(), $this->GetTruePath().'/../m.xiaochao.me', $TRUEfilename):$TRUEfilename;//don
                $this->ParseDMFields($i,1);
                $this->dtp->SaveTo($TRUEfilename);
                //如果启用远程发布则需要进行判断

4、原:

function GetTempletFile()

修改后: 

function GetTempletFile($m=0)

5、在这行代码下添加:

 else
        {
            $filetag = MfTemplet($this->TypeLink->TypeInfos["temparticle"]);
        }

添加如下:

$filetag=$m?str_replace($GLOBALS['cfg_df_style'],'m',$filetag):$filetag;//don

6、原

function MakeHtml($isremote=0)

 修改成

function MakeHtml($isremote=0,$m=0)


剩下同步:

[日志信息]

该日志于 2017-06-20 12:38 由 陈文超 发表在 小超无Bug 网站下,你除了可以发表评论外,还可以转载 “织梦同步移动整理” 日志到你的网站或博客,但是请保留源地址及作者信息,谢谢!!    (尊重他人劳动,你我共同努力)

Copyright © 2015-2016 陈文超博客 保留所有权利 琼ICP备15003229号| 托管于阿里云 · 博客稳定运行 | 网站地图 |

返回顶部