很多人用一个后台php批量转换系统设置的方法,分别生成静态页面的方法做移动端和PC端,但是对动态页面就非常棘手。本站也有介绍过动态筛选PC端和移动端的自适应方法,今天就给大家介绍采用一个后台全站动态或伪静态做PC端和移动端的方法,跳转代码适配参考以前文章。选择哪种方式要根据自己的实际需要。
①如果你的站不存在动态页面,就可以用一个后台生成PC和移动端的静态页面的方法;参考文章《dedecms用同一个后台管理PC和移动端》
②有筛选动态页面的话,用一个后台很明显不行,全站动态或伪静态能减少了维护时间,也是只要在一个后台就能管理,不需要来回切换;
③以下介绍的方法仅适合全站动态(伪静态)不能用来做同数据库、生成静态页面,请参考第一种方法。
一个后台全站动态(伪静态)做PC端和移动端的方法如下
1.在一个空间服务器里安装PC和移动端管理程序(两个DedeCMS)
这是参考ECshop的做法,实际上就是两个内容管理系统公用一个数据库,在一个CMS管理数据,另一个完全不用管。是不是比分别更新PC端和WAP端方便多了!
PC为完整版(作为内容管理维护),移动端为精简版(做移动端适配,不需要管理内容)精简版把没必要的模块文件删除即可,其实系统占用的空间并不多,平均为30M以内,但是比起生成很多静态页面来说已经很少了。
移动端的dede不用安装,在根目录新建wap文件夹,直接把pc端的复制一份放进去就行,数据库都用的同一个,不同的只是模板不一样。
2.添加全局变量cfg_wapurl
点击系统-系统基本参数-添加新变量:
变量名称为:cfg_wapurl 变量值为:http://wap.vi586.com 参数说明:移动端路径
保存为站点设置即可。这个变量对PC端和移动端有很重要的作用,比如默认标签的使用:
在移动端模板里,顶级栏目名和链接调用方法:
{dede:channel typeid='top' row='10'} <a href="[field:global.cfg_wapurl/][field:typeurl/]">[field:typename/]</a> {/dede:channel}
生成的顶级栏目链接就是
<a href="http://wap.vi586.com/case/">顶级栏目名</a>
PC和移动端比较多的是链接问题,比如顶部主导航链接、面包屑导航链接、栏目链接、文章链接。这样一个全局变量即可,比用php函数的简单得多。另外要注意写法。
在channel等默认标签里面的写法:[field:global.cfg_wapurl/] 在全局范围的写法:{dede:global.cfg_wapurl/}
3.PC和移动端模板文件夹、模板名字必须一模一样
因为数据库是一样的,当然样式和js这些随便放哪里都可以,只要路径对的上就行。
4.本地测试安装在子目录的设置方法
很多本地测试的时候都会有很多个测试站,比如本地用APMserv搭建的Apache环境:
PC端路径 E:\APMServ5.2.6\www\htdocs\test\ 移动端路径 E:\APMServ5.2.6\www\htdocs\test\wap
点击系统-系统基本参数-站点设置:
站点跟网站:/test 网页主页链接:/test
继续点击系统基本参数-核心设置
DedeCMS安装目录:(空值)
如果原来安装的时候有值,请删除该值。
5.全站栏目与文章动态设置
全站栏目动态,执行SQL命令
update dede_arctype set isdefault=-1
全站文档设置“仅动态”,执行SQL命令
update dede_archives set ismake=-1
如果全站为静态,执行SQL命令
update dede_archives set ismake=0
假如要ID =10 的栏目内所有文章生成动态,其它全部为静态,执行SQL命令
update dede_archives set ismake=-1 where typeid=10
编写、管理文章的时候,只需要在PC端进行,不需要访问移动端路径, 否则上传的附件会出错。
6.全站PC端移动端伪静态设置
PC端和移动端的伪静态设置是分开的,参考文章《dedecms实现全站php伪静态》。这个在本地没有调试成功,毕竟本地的PC站都已经建在二级目录下了,.htaccess需要声明主域名的,建议到实际空间去做吧。
7.二级域名解析到二级目录
这个是重点,参考前面写过的文章《万网利用.htaccess完美实现子域名跳转到子目录》
8.PC端根据访问设备实现跳转到移动端
参考前面文章《完美实现根据设备访问PC端自动跳转到移动端二级域名》,首页、列表页、内容页的JS判断不一样,动态列表页跳转代码:
<meta http-equiv="mobile-agent" content="format=xhtml;url={dede:global.wapurl/}/plus/list.php?tid={dede:field.id/}"> <script type="text/javascript">if(window.location.toString().indexOf('pref=padindex') != -1){}else{if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){if(window.location.href.indexOf("?mobile")<0){try{if(/Android|Windows Phone|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){window.location.href="{dede:global.wapurl/}/plus/list.php?tid={dede:field.id/}";}else if(/iPad/i.test(navigator.userAgent)){}else{}}catch(e){}}}}</script>
第一句<meta>声明告诉搜索引擎这个PC列表页对应的移动端页面。
第二句是跳转到对应的移动端页面,很多跳转代码只是让首页跳转,对应的内容页跳转就不重复了。
以上是动态页面的跳转,如果PC端和移动端已经做好了伪静态的,做相应的修改即可。
动态(伪静态)移动端PC端技术知识总结
至此静态移动端+PC端以及动态(伪静态)移动端+PC知识基本介绍完,根据自己的实际情况学习吧。 后面会涉及到移动端优化内容,改天再唠嗑。
转载请注明来源网址:https://www.mubanyun.com/dedecms_jq/1418.html
发表评论
评论列表(条)