thinkphp5.0实现网站英文切换 --- 2020-08-26

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp5.0实现网站英文切换 --- 2020-08-26相关的知识,希望对你有一定的参考价值。

参考技术A 首先来看下它的配置:

// 是否开启多语言
'lang_switch_on' => true,

//语音列表
'lang_list' => ['zh-cn','en-us'],

// 获取当前选择语言的方法类

GetLang.php
<?php
namespace app\index\controller;
use think\Cookie;
use think\Lang;
use think\Request;
class GetLang
  public function get_lang()
     lang = input('lang');
    
    if( lang = Cookie::get('think_var');
      else
         lang = Lang::range( lang.EXT, lang);
    return $lang;
  

?>

// 显示效果的控制器类

Index.php

<?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller

  public function index()
     now_lang = now_lang=='zh-cn')
       now_lang=='en-us')
       this->assign('set_lang', this->fetch();
  

?>

// 视图页

index.html

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>:lang('TITLE')</title>
  </head>
  <body>
    <a href="?lang=$set_lang">:lang('NOW_LANG')</a>    
  </body>
</html>

//语言包文件

zh-cn.php

<?php
return [
  'TITLE'=>'语言切换',
  'NOW_LANG'=>'切换',
]
?>

en-us.php
<?php
return [
  'TITLE'=>'Language switching',
  'NOW_LANG'=>'Switch',
];
?>

Thinkphp5 实现动态模板主题多个模板切换

在项目开发过程中会遇到一个网站有不同风格,本文详细介绍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.0实现网站英文切换 --- 2020-08-26的主要内容,如果未能解决你的问题,请参考以下文章

利用Thinkphp 5缓存漏洞实现前台Getshell

网站有漏洞被***该怎么解决和修复

thinkphp5网站的安全防护测试

thinkphp5网站的安全防护测试

thinkphp5.0 配置文件加载路径说明

thinkphp5.0URL访问