惧愁人 发表于 2023-9-11 19:12:00

新建单独页如何实现手机端访问

我新建了一个单独页面tags.php,代码如下
define('CURSCRIPT', 'tags');//定义常量,用于body标签的id选择器名称,与本身文件名相同(不带后缀),可在导航栏实现当前高亮。//define('CURMODULE', 'list');//定义常量,用于body标签的class(类)选择器名称,门户首页为该命名,可以更换,可选require './source/class/class_core.php';//引入系统核心文件$discuz = & discuz_core::instance();//以下代码为创建及初始化对象$cachelist = array('portalcategory', 'diytemplatenameportal');//载入分类数组$discuz->cachelist = $cachelist;//载入分类缓存$discuz->init();//loadcache('diytags');//diy页面 可选$navtitle = '这里定义单页的标题';//可选$metakeywords = '这里定义单页的关键词';//可选$metadescription ='这里定义单页的描述内容';//可选include template('diy:portal/tags');//调用单页模版文件,路径为当前模板目录/portal/tags.htm请问,如何实现手机端访问,如何调用手机端的自定义模板,谢谢!



我知道答案 回答被采纳将会获得1 贡献 已有0人回答

Discuz智能体 发表于 2025-3-18 07:12:45

关于Discuz独立页面的移动端适配,您需要重点关注模板调用机制和设备识别逻辑。以下是具体解决方案:

1. **创建移动端模板文件**
- 在模板目录下新建mobile子目录:`template/您的模板目录/mobile/portal/`
- 创建移动端模板文件:`tags.htm`(建议同时保留PC模板在portal目录)

2. **设备识别逻辑改进**
修改tags.php核心代码:

<?php
define('CURSCRIPT', 'tags');
require './source/class/class_core.php';

$discuz = & discuz_core::instance();
$cachelist = array('portalcategory', 'diytemplatenameportal');
$discuz->cachelist = $cachelist;
$discuz->init();

// 设备类型判断扩展
$is_mobile = helper_device::is_mobile(); // 官方设备检测方法
$template_suffix = $is_mobile ? '_mobile' : '';

// SEO设置(移动端可单独设置)
$navtitle = $is_mobile ? '移动端标题' : 'PC端标题';
$metakeywords = $is_mobile ? '移动端关键词' : 'PC端关键词';
$metadescription = $is_mobile ? '移动端描述' : 'PC端描述';

// 新版模板调用方案
$template_path = 'portal/tags'.$template_suffix;
if($is_mobile && !template_exists($template_path)) {
    $template_path = 'portal/tags'; // 回退机制
}

include template('diy:'.$template_path);

3. **高级适配方案**
建议在模板文件中使用响应式布局判断:

<!--{if $_G['mobile']}-->
    <div class="mobile-content"></div>
<!--{else}-->
    <div class="pc-content"></div>
<!--{/if}-->

4. **模板开发规范**
- 移动端模板命名建议:`tags_mobile.htm`
- 使用移动专用CSS类前缀:`m-`
- 图片适配方案:
<img src="{IMGDIR}/logo.png" class="<!--{if $_G['mobile']}-->m-logo<!--{else}-->pc-logo<!--{/if}-->">

5. **注意事项**
- 确保服务器已开启移动端访问功能(后台→全局→手机版访问设置)
- 清除模板缓存(后台→工具→更新缓存)
- 使用Chrome开发者工具的手机模拟模式调试
- 移动端模板建议继承公共头部文件:
<!--{subtemplate common/header_mobile}-->

如果需要深度定制移动端交互,建议参考DZ插件网的移动适配开发规范,结合Discuz的hook机制进行功能扩展。对于复杂场景,可通过$_G['basescript']判断当前模块实现更精准的适配逻辑。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 新建单独页如何实现手机端访问