在项目开发过程中会遇到一个网站有不同风格,本文详细介绍Thinkphp5 实现模板主题多个模板切换

一、在Config中配置view_path模板路径代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
'template'               => [
      // 模板引擎类型 支持 php think 支持扩展
      'type'         => 'Think',
      // 模板路径
      'view_path'    => '/template/',
      // 模板后缀
      'view_suffix'  => 'html',
      // 模板文件名分隔符
      'view_depr'    => DS,
      // 模板引擎普通标签开始标记
      'tpl_begin'    => '{',
      // 模板引擎普通标签结束标记
      'tpl_end'      => '}',
      // 标签库标签开始标记
      'taglib_begin' => '{',
      // 标签库标签结束标记
      'taglib_end'   => '}',
  ],

  

二、所有控制器继承 Base控制器,Base 控制器代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Base extends Controller
{
 
    public  function __construct(Request $request)
    {
        if($request->isMobile())
        {
            config('template.view_path','template/default/mobile/'.$request->module()."/");
        }
        else{
            config('template.view_path','template/default/web/'.$request->module()."/");
        }
        parent::__construct($request);
    }
}

  

PS:必须在构造函数里用config,构造函数过后调用就没用了

====================================

以上是全局切换,下面 是自定义切换

====================================

1.无参数调用

return $view->fetch();

2.指定操作调用

return $view->fetch("index");

3.带控制器

return $view->fetch("demo/index");

4.跨模块调用

return $view->fetch("admin@demo/index");

5.全路径模板调用

return $view->fetch(APP_PATH.request()->module().'/view/demo/index.html');

采用5,全路径模板调用可解决

Thinkphp5 实现动态模板主题多个模板切换的更多相关文章

  1. Thinkphp学习笔记-模板主题

    一个模块如果需要支持多套模板文件的话,就可以使用模板主题功能. 默认情况下,没有开启模板主题功能,如果需要开启,设置 DEFAULT_THEME 参数即可: // 设置默认的模板主题 'DEFAULT ...

  2. thinkphp 模板主题

    一个模块如果需要支持多套模板文件的话,就可以使用模板主题功能. 默认情况下,没有开启模板主题功能,如果需要开启,设置 DEFAULT_THEME 参数即可: 大理石平台精度等级 // 设置默认的模板主 ...

  3. 纸壳CMS主题增强,支持主题中加入模板

    背景 在之前,纸壳CMS的主题仅仅只是CSS样式,并不支持在主题下使用模板来构建不同的HTML结构.现在我们对主题功能做了增强,可以在主题下添加各自的模板,这样在制作主题时,就会更加自由.不仅如此,新 ...

  4. ThinkPHP示例:模板主题

    ThinkPHP示例之模板主题,模板主题可以对相同的控制器输出进行不同的布局和样式调整.首先需要下载框架核心,然后把示例解压到Web根目录下面,并修改入口文件中的框架入口文件的位置.访问 http:/ ...

  5. DevExpress XtraReport - 动态加载报表布局模板

    XtraReport的报表模板文件是.repx,下面的代码演示动态加载报表布局模板. XtraReport mReport = new XtraReport(); mReport.LoadLayout ...

  6. discuz默认模板文件结构详解-模板文件夹介绍

    | — template — default   系统内置风格模板(默认风格)| — template — default  – discuz_style_default.xml  风格安装文件,可用 ...

  7. flask模板结构组织(局部模板、宏、模板继承)

    模板结构组织 除了使用函数.过滤器等工具控制模板的输出外,jinja2还提供了一些工具来在宏观上组织模板内容. 局部模板 在Web程序中,我们通常会为每一类页面编写一个独立的模板.比如主页模板.用户资 ...

  8. flask模板的基本用法(定界符、模板语法、渲染模板),模板辅助工具(上下文、全局对象、过滤器、测试器、模板环境对象)

    flask模板 在动态web程序中,视图函数返回的HTML数据往往需要根据相应的变量(比如查询参数)动态生成. 当HTML代码保存到单独的文件中时,我们没法再使用字符串格式化或拼接字符串的当时在HTM ...

  9. Handlebars的基本用法 Handlebars.js使用介绍 http://handlebarsjs.com/ Handlebars.js 模板引擎 javascript/jquery模板引擎——Handlebars初体验 handlebars.js 入门(1) 作为一名前端的你,必须掌握的模板引擎:Handlebars 前端数据模板handlebars与jquery整

    Handlebars的基本用法 使用Handlebars,你可以轻松创建语义化模板,Mustache模板和Handlebars是兼容的,所以你可以将Mustache导入Handlebars以使用 Ha ...

随机推荐

  1. H3C 什么是漫游

  2. kubernetes集群证书过期之后--转发

    步骤 如果有多master,需要在每个master上进行以下操作. 需要进行以下步骤 重新生成证书 重新生成对应的配置文件 重启docker 和 kubelet 拷贝kubectl 客户端文件 [ro ...

  3. chrome开发者工具--使用 Network 面板测量您的网站网络性能。

    转自:Tools for Web Developers   Network 面板记录页面上每个网络操作的相关信息,包括详细的耗时数据.HTTP 请求与响应标头和 Cookie,等等. TL;DR 使用 ...

  4. PAT 乙级 1011.A+B 和 C C++/Java

    题目来源 给定区间 [−] 内的 3 个整数 A.B 和 C,请判断 A+B 是否大于 C. 输入格式: 输入第 1 行给出正整数 T (≤),是测试用例的个数.随后给出 T 组测试用例,每组占一行, ...

  5. Vue工程化之引入element-ui框架后图标失效

    场景: vue-cli搭建的工程化项目,引入element框架后发现图标无效,变为方块 解决方案: 在index.html引入样式文件CDN链接即可 <!-- 引入样式 --> <l ...

  6. 【转】Linux虚拟网络基础——tap

    原文:https://blog.csdn.net/chengqiuming/article/details/80071073 ------------------------------------- ...

  7. WebLogic任意文件上传漏洞(CVE-2019-2618)

    WebLogic任意文件上传漏洞(CVE-2019-2618) 0x01 漏洞描述 漏洞介绍 CVE-2019-2618漏洞主要是利用了WebLogic组件中的DeploymentService接口, ...

  8. MySQL中经典的too many connection怎么破

    文章来源:云栖社区,经同意授权转载 链接:https://yq.aliyun.com/articles/226984?spm=5176.8091938.0.0.nCksaV 错误解决记录:java d ...

  9. Go依赖管理工具 - dep

    https://segmentfault.com/a/1190000013561841 Go依赖管理工具 Go dependency management tool 环境要求 Golang >= ...

  10. 如何保证javascript算数计算结果的精度

    前言: 我们先看如下这个js的代数计算结果,什么? 明显不是我们想要的结果3.52!! 备注:其实这个小数计算精度问题,在弱类型语言python等语言中同样存在. 问题原因之所在: JavaScrip ...