phpcms实现手机端与PC端双模板的方法与详细教程(同步跳转)

现在随着智能手机的兴起,我们网站开发移动端版本也显得越来重要了,但是现在phpcms还没有开发手机版,下面我们就教大家如何让phpcms实现手机版访问,一般正常情况下我们电脑版的域名为http://www.你的域名/,而手机版的域名一般为http://m.你的域名/ 例如:   http://m.0317cn.net


找到并打开根目录 caches/configs/route.php

添加

return array(
'default'=>array('m'=>'content', 'c'=>'index', 'a'=>'init'),
'm.0317cn.net'=>array('m'=>'wap', 'c'=>'index', 'a'=>'init'),
);

 

这样就需要我们给手机端另外做一套模板,实现网站双模板。下面是具体方法:

 

首先给phpcms添加自适配的代码,找到并打开/modules/content/index.php文件,在里面找到如下代码:


 

1include template('content',$template);

 

将其修改为如下代码:


 

if(substr($_SERVER['SERVER_NAME'], 0,1) == 'm'){
  include template('wap',$template);
  }else{
  include template('content',$template);
 }

 


以上代码的意思是当前页面url中第一个字符为m时则调用wap模板,否则调用content模板

 

但是由于phpcms把文章的url都固定写死在数据表中,所以页面中的标签不能在使用{$r[url]}

 

而要改成{str_replace('http://www.','http://m.',$r[url])}

 

意思是截取url,把http://www.你的域名/ 替换成http://m.你的域名/

 


这里我们就完成了手机版的设置了,然后我们在制作一套手机端模板wap就可以了。

 

 

 

如果我们要在PC端的内容里面加上当前页面手机端的链接,链接地址写法如下:

 

1http://{str_replace('www.','m.',$_SERVER['SERVER_NAME'])}{$_SERVER['REQUEST_URI']}

 

 


反之,手机端加上PC端的链接:

 

1http://{str_replace('m.','www.',$_SERVER['SERVER_NAME'])}{$_SERVER['REQUEST_URI']}

 

如果你使用的是静态页面,那么只要在模板页头加上以下JS代码就可以实现判断手机端自动跳转到手机端了。

 


<script type="text/javascript">
function browserRedirect() {
var sUserAgent = navigator.userAgent.toLowerCase();
var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
var bIsMidp = sUserAgent.match(/midp/i) == "midp";
var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
var bIsAndroid = sUserAgent.match(/android/i) == "android";
var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {


 //注意下面这里改成手机地址
{if $catid=='' and $id==''}


window.location.href="http://m.0317cn.net/index.php";
{elseif $id=='' and $catid!=''}
window.location.href="http://m.0317cn.net/index.php?m=content&c=index&a=lists&catid={$catid}";
{else}
window.location.href="http://m.0317cn.net/index.php?m=content&c=index&a=show&catid={$catid}&id={$id}";
{/if}
}
}
browserRedirect();
 
function closewindow() {
$("#register-box").hide();
 }
function openwindow() {
 $("#register-box").show();
}
 </script>

模板调用代码使用PC版的

遇到问题--wap 版首页不能调用指定栏目名称,图片,连接

解决办法:

{pc:content action="category"  return="CATEGORYS" }


  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明
`listinfo` 是 PHPCMS 框架提供的一个用于获取数据列表的方法。它的定义如下: ```php /** * 获取数据列表 * @param mixed $model 模型对象或模型名称 * @param mixed $where 查询条件 * @param mixed $order 排序条件 * @param int $page 当前页码 * @param int $pagesize 每页数据量 * @param string $keyfield 主键名称 * @return array */ function listinfo($model, $where, $order, $page = 1, $pagesize = 20, $keyfield = '') { // ... } ``` 该方法有 6 个参数: - `$model`:要查询的模型对象或模型名称。 - `$where`:查询条件,可以是字符串或数组。 - `$order`:排序条件,可以是字符串或数组。 - `$page`:当前页码,默认为 1。 - `$pagesize`:每页数据量,默认为 20。 - `$keyfield`:主键名称,如果不指定则默认为模型的主键。 `listinfo` 方法会根据参数查询数据列表,并返回一个包含查询结果的数组。在 PHPCMS 框架,可以使用模型对象或模型名称来进行查询。例如,要查询 `content` 模型所有状态为已发布的文章,可以这样调用: ```php $content_model = load_app_class('content_model', 'content'); $where = ['status' => 99]; $order = 'inputtime DESC'; $data = listinfo($content_model, $where, $order); ``` 这里指定了查询条件为 `status` 字段等于 99,排序条件为 `inputtime` 字段倒序排列。由于使用了模型对象 `$content_model` 进行查询,因此不需要指定模型名称。如果使用模型名称进行查询,可以这样调用: ```php $where = ['status' => 99]; $order = 'inputtime DESC'; $data = listinfo('content', $where, $order); ``` 这里指定了查询 `content` 模型,其他参数与上述调用方式相同。`listinfo` 方法会将查询结果分页并返回当前页的数据列表。如果要获取总数据量和分页信息,可以使用模型对象的 `count` 和 `pages` 方法。例如,要获取总数据量和分页信息,可以这样调用: ```php $total = $content_model->count($where); $pages = $content_model->pages($total, $page, $pagesize); ``` 这里使用了 `$content_model` 对象的 `count` 和 `pages` 方法,分别用于获取总数据量和分页信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值