从所周知,帝国确实强大,可是做手机端的时候,要用到二个后台,而且刷新的时候,也要在二个后台里面刷新。
我们先来看看帝国官方的解密:
帝国CMS7.5版多终端访问功能使用图文教程
原文:http://bbs.phome.net/showthread-13-329096-0.html
随着PC互联网与移动互联网的不断融合、以及各类移动访问终端增加,网站移动互联越来越重要了,所以帝国CMS7.2版本在原来版本的多访问终端功能基础上,做出更多的改进,让网站多种移动访问端制作更加方便。下面我们来讲解帝国CMS7.2版本的“多终端访问功能”使用:
新增网站访问端步骤:
一、设置所有访问端统一的访问地址;
二、新增访问端使用的模板组;
三、新建访问端目录,并复制一份帝国CMS程序文件进去;
四、给新增的访问端目录绑定个二级域名;
五、到主访问端后台新增“网站访问端”;
六、到新访问端目录修改配置文件参数;
七、完成。
确实,帝国CMS7.5已经可以在同一个后台刷新两端,可是还是要先刷新完电脑端,再刷新手机端,才可以完成终极刷新。我相信这份解密非常多人看过吧!
这对我们一些站长来讲,真是一件非常蛋疼的事情。
那么,有没有更合理的方法,只需要刷新一次,即可以生成两端呢?
答案是有的,只要用上我们的插件,即可快速的完成刷新,并且数据非常完整,不会有任何的错漏。
我们来讲一下如何利用一个后台,一次刷新,就可以生成手机和电脑同步的页面。
第一步:拿到程序后,第一步是安装:
http://localhost/e/install/
第二步:安装好然后,还原数据库
第三步:这一步是我们的精华部分,独立自主研发的插件,我们只需要一个后台就可以完成刷新
改造后的源代码,大家可以对比原来系统默认的。
<?php define('InEmpireCMSHfun',TRUE); //-------------- 公共区 ---------------------- //返回后台风格 function EcmsReturnAdminStyle(){ global $public_r; $adminstyle=(int)getcvar('loginadminstyleid',1); if(!strstr($public_r['adminstyle'],','.$adminstyle.',')) { $adminstyle=$public_r['defadminstyle']?$public_r['defadminstyle']:1; } return $adminstyle; } //返回后台管理信息栏目导航字符串 function AdminReturnClassLink($classid){ global $class_r,$editor,$fun_r,$ecmscheck,$ecms_hashur; $addcheck=''; if($ecmscheck) { $addcheck='&ecmscheck=1'; } if($editor==1) { $addurl='../'; } if(empty($class_r[$classid][featherclass])) { $class_r[$classid][featherclass]="|"; } $r=explode("|",$class_r[$classid][featherclass].$classid."|"); $string=""; $count=count($r)-1; for($i=1;$i<$count;$i++) { $curl=$class_r[$r[$i]][islast]?"ListNews.php?classid=".$r[$i].$addcheck.$ecms_hashur['ehref']:"ListAllInfo.php?tbname=".$class_r[$r[$i]][tbname]."&classid=".$r[$i].$addcheck.$ecms_hashur['ehref']; $string.=" > "; } return $string; } //加验证代码 function AddCheckViewCode(){ $code="if(!defined('InEmpireCMS')) { exit(); }"; return $code; } //加模板验证代码 function AddCheckViewTempCode(){ $code=""; return $code; } //后台分页 function page2($num,$line,$page_line,$start,$page,$search){ global $fun_r; if($num<=$line) { return ''; } $search=RepPostStr($search,1); $url=eReturnSelfPage(0).'?page'; $snum=2;//最小页数 $totalpage=ceil($num/$line);//取得总页数 $firststr=' '; //上一页 if($page<>0) { $toppage=' '; $pagepr=$page-1; $prepage=''; } //下一页 if($page!=$totalpage-1) { $pagenex=$page+1; $nextpage=' '; $lastpage=' '; } $starti=$page-$snum<0?0:$page-$snum; $no=0; for($i=$starti;$i<$totalpage&&$no<$page_line;$i++) { $no++; if($page==$i) { $is_1=""; } else { $is_1='"; } $pagenum=$i+1; $returnstr.=" ".$is_1.$pagenum.$is_2; } $returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage; return ''; } //后台分页 function postpage($num,$line,$page_line,$start,$page,$form){ global $fun_r; if($num<=$line) { return ''; } $snum=2;//最小页数 $totalpage=ceil($num/$line);//取得总页数 $firststr=' '; //上一页 if($page<>0) { $toppage=' '; $pagepr=$page-1; $prepage=''; } //下一页 if($page!=$totalpage-1) { $pagenex=$page+1; $nextpage=' '; $lastpage=' '; } $starti=$page-$snum<0?0:$page-$snum; $no=0; for($i=$starti;$i<$totalpage&&$no<$page_line;$i++) page="=$i)" is_1="fetch1("select tid,tbname from {$dbtbpre}enewsmod where mid='$mid'"); return $r; } //建立专题目录 function CreateZtPath($ztpath){ $createpath=eReturnTrueEcmsPath().$ztpath; $mk=DoMkdir($createpath); $createfilepath=$createpath.'/uploadfile';//建立附件目录 $mk1=DoMkdir($createfilepath); } //建立栏目目录 function CreateClassPath($classpath){ $createpath=eReturnTrueEcmsPath().$classpath; $mk=DoMkdir($createpath); $createfilepath=eReturnTrueEcmsPath().'d/file/'.$classpath;//建立附件目录 $mk1=DoMkdir($createfilepath); } //建立标题分类目录 function CreateInfoTypePath($tpath){ $createpath=eReturnTrueEcmsPath().$tpath; $mk=DoMkdir($createpath); } //建立栏目目录 function FormatClassPath($classpath,$islast){ $r=explode("/",$classpath); $returnpath=""; for($i=0;$i
第四步:
第五步:
备注:如果有子域名的,就直接把http://localhost/m/改成http://m.xxxx.com 即可!
C:/ecms/htdocs/m/这个路径,是根据你的实际路径得出。
最简单的方法,利用系统自带的适应功能。
点击增加,就可以自动生成访问端目录了,所有的网站通用。
再讲解一下:
帝国cms电脑网站跳转到手机动态网站和手机静态网站的方法。
方法一:帝国pc站跳转到手机静态站
1、假设我们有帝国cms 电脑网站www.lazybirdfly.com,手机网站m.lazybirdfly.com ,手机网站使用帝国cms的多访问端功能制作,如果不了解帝国cms多访问端制作手机网站的方法,请参考:http://www.lazybirdfly.com/a/ecms/658.html
现在电脑端和手机端都是生成静态网站,除了域名不同,静态连接地址都是相同的,例如:
www.lazybirdfly.com/china/1.html对应 m.lazybirdfly.com/china/1.html
2、接下来要给电脑网站的首页、列表页、内容页的模板添加跳转代码,方法如下:
js是浏览器跳转,meta是告诉搜索引擎移动页面的地址。
(1)首页模板需添加下面代码
<script type="text/javascript"> try {var urlhash = window.location.hash;if (!urlhash.match("fromapp")) {if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios|iPad)/i))) {window.location="http://m.lazybirdfly.com/";}}} catch(err) { }</script> <meta name="mobile-agent" content="format=xhtml;url=http://m.lazybirdfly.com/">
(2)封面页和列表页添加下面代码
<script type="text/javascript"> try {var urlhash = window.location.hash;if (!urlhash.match("fromapp")) {if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios|iPad)/i))) {window.location="http://m.lazybirdfly.com<?=sys_ReturnBqClassUrl($class_r[$GLOBALS[navclassid]]);?>";}}} catch(err) { }</script> <meta name="mobile-agent" content="format=xhtml;url=http://m.lazybirdfly.com<?=sys_ReturnBqClassUrl($class_r[$GLOBALS[navclassid]]);?>">
(3)内容页添加下面代码
<script type="text/javascript"> try {var urlhash = window.location.hash;if (!urlhash.match("fromapp")) {if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios|iPad)/i))) {window.location="http://m.lazybirdfly.com[!--titleurl--]";}}} catch(err) { }</script> <meta name="mobile-agent" content="format=xhtml;url=http://m.lazybirdfly.com[!--titleurl--]">
添加完上面代码后,帝国cms的电脑网站的每个页面都可以跳转到手机静态网站了。
但手机静态站是有缺点的,每次我们更新电脑端文章,都要去手机端后台重新生成一下html,比较麻烦,所以我们可以把手机站设置成动态访问,接下来就讲解一下电脑端跳转手机动态站的方法。
方法二:帝国cms电脑网站跳转到手机动态站的方法
1、首先在电脑端的多访问端设置,把手机端设置成强制动态页面模式。这样手机站就是动态了,不用每次都去生成html 。
2、接下来就是给电脑端模板的首页、列表页、内容页添加相依跳转代码,和方法一类似。
js是浏览器跳转,meta是告诉搜索引擎移动页面的地址。
(1)首页模板需添加下面代码
2)封面页和列表页添加下面代码
(3)内容页添加下面代码
有时候,也会跳转不了,主要是因为冲突造成的!有二个跳转JS,可能是jquery-1.8.3.min.js 也有可能隐含在jquery.js里面!
if (is_mobile()) { document.location.href = '/wap/'; } function is_mobile() { var regex_match = /(nokia|android|motorola|^mot-|softbank|foma|docomo|kddi|up.browser|up.link|htc|dopod|blazer|netfront|helio|hosin|huawei|novarra|webos|techfaith|palmsource|alcatel|amoi|nexian|samsung|^sam-|s[cg]h|^lge|ericsson|sagem|wellcom|bunjalloo|maui|symbian|smartphone|midp|phone|windows ce|iemobile|^spice|^bird|^zte-|longcos|pantech|gionee|^sie-|portalmmm|jigs browser|hiptop|^benq|haier|^lct|operas*mobi|opera*mini|320x320|240x320|176x220)/i; var u = navigator.userAgent; if (null == u) { return true; } var result = regex_match.exec(u); if (null == result) { return false } else { return true } }