在项目开发过程中会遇到一个网站有不同风格,本文详细介绍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. 模块加载——modprobe和insmod的区别(转)

    转载地址:https://blog.csdn.net/qianyizhou17/article/details/44135133 linux设备驱动有两种加载方式insmod和modprobe,下面谈 ...

  2. win黑窗口命令

    rd 删除 文件夹, 语法: rd [/S] [/Q] [drive:]path 参数: drive 盘符 path 文件路径 /S   递归删除文件夹( 删除前, 要确认是否进行删除) /Q  关闭 ...

  3. wentaolovesmeng.club

    wentaolovesmeng.club wentaostudy.club

  4. PAT 乙级 1005.继续(3n+1)猜想 C++/Java

    1005 继续(3n+1)猜想 (25 分) 题目来源  卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂. 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记 ...

  5. 错误 Unable to connect to a repository at URL 'svn://ip地址' 和 No repository found in 'svn://ip地址'

    SVN服务器是CentOS6.10 使用TortoiseSVN客户端检出时遇到如下图所示的错误: 是因为没有指定SVN仓库的路径 在SVN服务器执行命令:svnserve -d -r /SVN版本库的 ...

  6. 【P1889】SOLDIERS (中位数)

    题目描述 在一个划分成网格的操场上, n个士兵散乱地站在网格点上.由整数 坐标 (x,y) 表示.士兵们可以沿网格边上.下左右移动一步,但在同时刻任一网格点上只能有名士兵.按照军官的命令,们要整齐地列 ...

  7. mysql 的 docker image 使用(官方文档节选)

    1.创建一个 mysql 实例: $ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag 2.创 ...

  8. Docker for Windows 使用命令报错

    could not read CA certificate "C:\Users\username\.docker\machine\machines\default\ca.pem": ...

  9. GridControl 使用方法篇 --- 隐藏表头、隐藏Group by Box

  10. 2019牛客国庆集训派对day3 买一送一

    题目链接: 题意:有n个点,n-1条单向边,每个点都销售一类商品 问从点1开始走,买第一样商品类型为x,买第二样商品类型为y,问不同有序对<x,y>的数量 解法: col[i]表示这个点的 ...