作者 lihan
1 个管道 的构建 通过 耗费 3 秒

赠送积分和角色管理

... ... @@ -42,11 +42,6 @@ class IndexController extends HomeBaseController
]);
}
//强制绑定手机页面
public function login() {
return $this->fetch();
}
/**
* 易连云打印机demo
*/
... ...
<?php
/**
* Created by PhpStorm.
* User: yhbr
* Date: 2018/11/10
* Time: 9:50
*/
namespace app\login\controller;
use cmf\controller\NoneBaseController;
class LoginController extends NoneBaseController
{
//强制绑定手机页面
public function login() {
return $this->fetch();
}
}
\ No newline at end of file
... ...
... ... @@ -60,12 +60,12 @@ class HomeBaseController extends BaseController
}
}
}else {
if(Db::name('user')->where(['id'=>session('user.id')])->value('mobile') == null) {
$this->redirect(url('index/Index/login'));
}
echo session('user.id');
}
}else {
$this->error('请从微信浏览器打开');
if(Db::name('user')->where(['id'=>session('user.id')])->value('mobile') == null) {
$this->redirect(url('login/Login/login'));
}
}
... ...
<?php
// +----------------------------------------------------------------------
// | bronet [ 以客户为中心 以奋斗者为本 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2017 http://www.bronet.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +---------------------------------------------------------------------
// | Author: Dean <zxxjjforever@163.com>
// +----------------------------------------------------------------------
namespace cmf\controller;
use app\user\model\UserModel;
use think\Db;
use app\admin\model\ThemeModel;
use think\View;
class NoneBaseController extends BaseController
{
public function _initialize()
{
parent::_initialize(); // TODO: Change the autogenerated stub
// 监听home_init
hook('home_init');
parent::_initialize();
$siteInfo = cmf_get_site_info();
View::share('site_info', $siteInfo);
}
public function _initializeView()
{
$cmfThemePath = config('cmf_theme_path');
$cmfDefaultTheme = cmf_get_current_theme();
$themePath = "{$cmfThemePath}{$cmfDefaultTheme}";
$root = cmf_get_root();
//使cdn设置生效
$cdnSettings = cmf_get_option('cdn_settings');
if (empty($cdnSettings['cdn_static_root'])) {
$viewReplaceStr = [
'__ROOT__' => $root,
'__TMPL__' => "{$root}/{$themePath}",
'__STATIC__' => "{$root}/static",
'__WEB_ROOT__' => $root
];
} else {
$cdnStaticRoot = rtrim($cdnSettings['cdn_static_root'], '/');
$viewReplaceStr = [
'__ROOT__' => $root,
'__TMPL__' => "{$cdnStaticRoot}/{$themePath}",
'__STATIC__' => "{$cdnStaticRoot}/static",
'__WEB_ROOT__' => $cdnStaticRoot
];
}
$viewReplaceStr = array_merge(config('view_replace_str'), $viewReplaceStr);
config('template.view_base', "{$themePath}/");
config('view_replace_str', $viewReplaceStr);
$themeErrorTmpl = "{$themePath}/error.html";
if (file_exists_case($themeErrorTmpl)) {
config('dispatch_error_tmpl', $themeErrorTmpl);
}
$themeSuccessTmpl = "{$themePath}/success.html";
if (file_exists_case($themeSuccessTmpl)) {
config('dispatch_success_tmpl', $themeSuccessTmpl);
}
}
/**
* 加载模板输出
* @access protected
* @param string $template 模板文件名
* @param array $vars 模板输出变量
* @param array $replace 模板替换
* @param array $config 模板参数
* @return mixed
*/
protected function fetch($template = '', $vars = [], $replace = [], $config = [])
{
$template = $this->parseTemplate($template);
$more = $this->getThemeFileMore($template);
$this->assign('theme_vars', $more['vars']);
$this->assign('theme_widgets', $more['widgets']);
return parent::fetch($template, $vars, $replace, $config);
}
/**
* 自动定位模板文件
* @access private
* @param string $template 模板文件规则
* @return string
*/
private function parseTemplate($template)
{
// 分析模板文件规则
$request = $this->request;
// 获取视图根目录
if (strpos($template, '@')) {
// 跨模块调用
list($module, $template) = explode('@', $template);
}
$viewBase = config('template.view_base');
if ($viewBase) {
// 基础视图目录
$module = isset($module) ? $module : $request->module();
$path = $viewBase . ($module ? $module . DS : '');
} else {
$path = isset($module) ? APP_PATH . $module . DS . 'view' . DS : config('template.view_path');
}
$depr = config('template.view_depr');
if (0 !== strpos($template, '/')) {
$template = str_replace(['/', ':'], $depr, $template);
$controller = cmf_parse_name($request->controller());
if ($controller) {
if ('' == $template) {
// 如果模板文件名为空 按照默认规则定位
$template = str_replace('.', DS, $controller) . $depr . $request->action();
} elseif (false === strpos($template, $depr)) {
$template = str_replace('.', DS, $controller) . $depr . $template;
}
}
} else {
$template = str_replace(['/', ':'], $depr, substr($template, 1));
}
return $path . ltrim($template, '/') . '.' . ltrim(config('template.view_suffix'), '.');
}
/**
* 获取模板文件变量
* @param string $file
* @param string $theme
* @return array
*/
private function getThemeFileMore($file, $theme = "")
{
//TODO 增加缓存
$theme = empty($theme) ? cmf_get_current_theme() : $theme;
// 调试模式下自动更新模板
if (APP_DEBUG) {
$themeModel = new ThemeModel();
$themeModel->updateTheme($theme);
}
$themePath = config('cmf_theme_path');
$file = str_replace('\\', '/', $file);
$file = str_replace('//', '/', $file);
$file = str_replace(['.html', '.php', $themePath . $theme . "/"], '', $file);
$files = Db::name('theme_file')->field('more')->where(['theme' => $theme])->where(function ($query) use ($file) {
$query->where(['is_public' => 1])->whereOr(['file' => $file]);
})->select();
$vars = [];
$widgets = [];
foreach ($files as $file) {
$oldMore = json_decode($file['more'], true);
if (!empty($oldMore['vars'])) {
foreach ($oldMore['vars'] as $varName => $var) {
$vars[$varName] = $var['value'];
}
}
if (!empty($oldMore['widgets'])) {
foreach ($oldMore['widgets'] as $widgetName => $widget) {
$widgetVars = [];
if (!empty($widget['vars'])) {
foreach ($widget['vars'] as $varName => $var) {
$widgetVars[$varName] = $var['value'];
}
}
$widget['vars'] = $widgetVars;
$widgets[$widgetName] = $widget;
}
}
}
return ['vars' => $vars, 'widgets' => $widgets];
}
public function checkUserLogin()
{
$userId = cmf_get_current_user_id();
if (empty($userId)) {
$this->error("用户尚未登录", url("user/login/index"));
}
}
}
\ No newline at end of file
... ...