PHPCMS手机插件把手机跟PC一样静态的办法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHPCMS手机插件把手机跟PC一样静态的办法相关的知识,希望对你有一定的参考价值。
phpcms中的手机模块没有指定生成静态网页功能。那么,分一下两种情况解决:
如果你会二次开发,最好还是自己扩展开发出手机模块的生成静态功能。其实开发思路非常简单,因为内容模块中已经有生成静态的类了,只要复制一份放到手机模块中然后进行引用将静态页面生成到指定的目录下即可。内容页生成静态类目录:phpcms/modules/content/class/html.class.php
如果你对php不熟悉不能进行二次开发,建议“曲线救国”:
第一种方案:使用伪静态路由规则替代生成静态,这样“表面上”路由地址也很简略对seo等起到同样的效果。
第二种方案:再安装一个独立的phpcms系统,但是注意安装时选择“手工指定phpsso”那项来达到与你原phpcms系统用户同步。然后这个心phpcms系统直接在内容模块模板中使用你的手机页面制作模板。相当于搭建了两个用户同步的phpcms系统,一个是pc端一个是手机端。好处是可以自由生成静态了,差异是两端内容不同步是相对独立的。
ps:以上内容只提供了本人现在想到的解决办法思路。如果不会二次开发或对phpcms系统不熟悉可能吃力点,希望对你有帮助吧。对于phpcms的使用和二次开发教程可参考官网手册和 IPHPCMS 提供的视频教程。
追问谢谢
参考技术A index不对追问什么??
用phpcms切换中英文网页的方法(不用解析二级域名)phpcms完成pc和手机端切换(同一域名)
AA。phpcms进行双语切换方法(不用解析二级域名)
phpcms进行两种语言的切换,有一把部分的人都是进行的二级域名的解析,这样的话可能会有一部分的麻烦,我这里有一种方法可以不用解析二级域名就可以,不过因为是模板所以可能麻烦一点,不过真的是不接触不知道,接触到没有用到的东西就可以进行进一步的学习。作者:悦悦 博客地址:http://www.cnblogs.com/nuanai/
这里我使用的方法是进行一级栏目的读取,通过不同的一级栏目进行不同的内容调取。只要修改一级栏目的id就可以了,这就需要用到不同的id,因此就进行了头部文件的修改,其它的列表页或是内容页的东西不用进行修改。但是怎么判断当前页面我应该调取那个语言的一级栏目的id呢?这就是我需要考虑的问题,不过这个问题已经解决了,看下我是怎么解决的吧。下面就是进行phpcms的步骤,因为phpcms的安装步骤一直到添加内容、更换模板风格等在之前的博客中都有写到,这里就不多说了,直接从怎么替换语言来说。作者:悦悦 博客地址:http://www.cnblogs.com/nuanai/
一、两种语言模板的替换(中文---英文)默认首页假如是中文
1.模板结构功能如果一样,直接在你的content文件夹中复制一模一样的默认文件出来(包括所有的文件)
2.修改文件的名字,要和默认中文的文件名字区分开,好进行中英文的模板切换
3.找到你的中文模板的头文件,我这里是header.html文件,打开头文件,进行如下修改
(1)找到你要进行切换语言的位置,修改你的语言切换的指向路径是一个php的处理文件
<!--找到你要进行双语切换的地方,这里是进行英文版的切换--> <a href="qhe.php">English</a>
注意:这里指向的php文件是要放到“phpcmswm\\install_package”文件夹下的,不然在走这个php文件的时候会出错
(2)进行编写这个php处理文件
<?php //开启缓存 session_start(); //给一个默认的值,这里是英文语言的默认值,默认值你们可以自己定义 $_SESSION[\'qhz\'] = 1; //跳转到自己的phpcms的首页,使用的是window.location.href = \'自己的phpcms的主页路径\' echo "<script type=\'text/javascript\'>window.location.href = \'/phpcmswm/install_package/\'</script>" ?>
(3)编写结束php处理文件之后,对默认的首页跳转的处理文件进行修改
首先,找到这个路径下的index.php文件并打开,文件的路径是: phpcmswm\\install_package\\phpcms\\modules\\content\\index.php
其次,A.在index.php文件中开启缓存
//开启缓存 session_start();
B.找到文件中的这句话,大约在31行
include template(\'content\',\'index\',$default_style);
替换成如下这样,这是进行判读
//判断传过来的session的值是不是空的,是的话就跳默认中文主页,不是就跳英文主页 if(empty($_SESSION["qhz"])) { include template(\'content\',\'index\',$default_style); } else { //这是英文版的主页,我的英文版主页的名字是index1 include template(\'content\',\'index1\',$default_style); }
到这里关于中文版的头部文件修改就结束了。
4.中文头部文件结束了,然后是英文的头部文件了(同上面的第3步骤)
注意:不同的地方是你的英文的php处理文件,不要指向同一个处理文件,所以要进行新的处理文件的编写,除了文件名和传值不一样外,其他的其实都是一样的。
(1)中文的头部文件
<!--切换中文的指向文件--> <a href="qhz.php">中文</a>
(2)php处理的页面
<?php session_start(); $_SESSION[\'qhz\'] = 0; //传的中文状态下的值 echo "<script type=\'text/javascript\'>window.location.href = \'/phpcmswm/install_package/\'</script>" ?>
(3)phpcmswm\\install_package\\phpcms\\modules\\content\\index.php这个index.php文件是不需要修改的,因为里面的判断已经写了空的时候就是默认的中文界面,值是空的其实和0是一样的,所以不用进行别的修改。
这样中文和英文的模板需要修改的地方就写完了。
二、phpcms后台的修改部分
1.默认的模板不用进行修改,需要修改的是英文状态下的模板,这里你就需要进行一级栏目的添加
(1)选择“内容”标签,单击“添加栏目”,进行信息的添加
(2)进行到“模板设置”的栏目的时候,选择“可用风格”---“是站点管理中的风格名字”这个是不用变得;“栏目首页模板”---“是你的英文的首页模板”;“列表页、内容页”----“都是对应的英文的模板文件”
(3)进行“提交”就可以了
2.进行英文栏目下的菜单栏目的添加,正常的添加菜单栏目就可以了
3.其他的内容页、列表页都是正常的添加内容就可以了
到这里,后台的修改就结束了
三、整体看效果就可以了
以上就是进行双语的切换步骤,修改的只有中英文的头部文件和传值的处理页面,需要后台添加的就是你的英文栏目,其它的东西就是全靠传的id值进行内容切换就可以了,因为功能都是样的,所以直接复制了默认模板的所有文件就可以了。
作者:悦悦 博客地址:http://www.cnblogs.com/nuanai/
BB。 phpcms完成pc和手机端切换(同一域名)作者:悦悦 博客地址:http://www.cnblogs.com/nuanai/
一、手机端文件的创建和修改
1.在这个文件路径下新建一个手机端网页文件
phpcmswm\\install_package\\phpcms\\templates\\wm 这路径就是后台的“站点管理”中的模板风格文件,在这个模板风格文件下创建一个文件夹,我这里叫做content_m,这个文件夹就是用来做手机网站的
2.将你的手机网页的文件复制到这个content_m文件夹下,进行拆分成phpcms使用的分类文件就可以了(正常的网页文件拆分:头部、尾部、中心等),然后修改文件中的各个文件路径就可以了,这里不多说,路径修改什么的都在前面的博客中详细讲解过了。
二、修改首页跳转的处理文件
1.找到这个index.php文件,就是首页跳转的处理文件 路径:phpcmswm\\install_package\\phpcms\\modules\\content\\index.php
2.将判断设备的代码复制到index的类方法里(类名大约是第8行),判断设备的代码如下:
//判断是不是手机端 function isMobile() { // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset ($_SERVER[\'HTTP_X_WAP_PROFILE\'])) { return true; } // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息 if (isset ($_SERVER[\'HTTP_VIA\'])) { // 找不到为flase,否则为true return stristr($_SERVER[\'HTTP_VIA\'], "wap") ? true : false; } // 脑残法,判断手机发送的客户端标志,兼容性有待提高 if (isset ($_SERVER[\'HTTP_USER_AGENT\'])) { $clientkeywords = array (\'nokia\', \'sony\', \'ericsson\', \'mot\', \'samsung\', \'htc\', \'sgh\', \'lg\', \'sharp\', \'sie-\', \'philips\', \'panasonic\', \'alcatel\', \'lenovo\', \'iphone\', \'ipod\', \'blackberry\', \'meizu\', \'android\', \'netfront\', \'symbian\', \'ucweb\', \'windowsce\', \'palm\', \'operamini\', \'operamobi\', \'openwave\', \'nexusone\', \'cldc\', \'midp\', \'wap\', \'mobile\' ); // 从HTTP_USER_AGENT中查找手机浏览器的关键字 if (preg_match("/(" . implode(\'|\', $clientkeywords) . ")/i", strtolower($_SERVER[\'HTTP_USER_AGENT\']))) { return true; } } // 协议法,因为有可能不准确,放到最后判断 if (isset ($_SERVER[\'HTTP_ACCEPT\'])) { // 如果只支持wml并且不支持html那一定是移动设备 // 如果支持wml和html但是wml在html之前则是移动设备 if ((strpos($_SERVER[\'HTTP_ACCEPT\'], \'vnd.wap.wml\') !== false) && (strpos($_SERVER[\'HTTP_ACCEPT\'], \'text/html\') === false || (strpos($_SERVER[\'HTTP_ACCEPT\'], \'vnd.wap.wml\') < strpos($_SERVER[\'HTTP_ACCEPT\'], \'text/html\')))) { return true; } } return false;
3.找到本处理文件中的这句代码(处理文件的所有这句代码都要替换)
include template(\'content\',$template);
替换成如下代码:
if($this->isMobile()) { //第一个参数是你要跳转的手机网页文件夹名 include template(\'content_m\',$template); } else { include template(\'content\',$template); }
4.找到处理文件中的这句代码
include template(\'content\',\'index\',$default_style);
替换成如下代码:
if($this->isMobile()) { //这是手机端的网页 include template(\'content_m\',\'index\',$default_style); } else { include template(\'content\',\'index\',$default_style); }
到这里就是PC和手机的切换步骤基本结束了,你可以通过火狐浏览器的手机模拟器来查看是不是可以修改了。作者:悦悦 博客地址:http://www.cnblogs.com/nuanai/
以上的两大内容就是我在做项目的时候遇到过的新的问题,现在已经都解决了,所以分享一下过程,需要的同志们可以查看一下。
作者:悦悦 博客地址:http://www.cnblogs.com/nuanai/
以上是关于PHPCMS手机插件把手机跟PC一样静态的办法的主要内容,如果未能解决你的问题,请参考以下文章
phpcms怎么做到移动端和pc端同步使用数据,并且,都要静态化页面,帮我解决再加100分