TaoLer/app/common/controller/BaseController.php

142 lines
3.4 KiB
PHP
Raw Normal View History

2020-01-01 13:17:19 +08:00
<?php
2022-08-02 21:13:36 +08:00
/*
* @Author: TaoLer <alipay_tao@qq.com>
* @Date: 2021-12-06 16:04:50
2022-08-16 15:21:08 +08:00
* @LastEditTime: 2022-08-03 10:34:42
2022-08-02 21:13:36 +08:00
* @LastEditors: TaoLer
* @Description: 前端基础控制器设置
* @FilePath: \github\TaoLer\app\common\controller\BaseController.php
* Copyright (c) 2020~2022 https://www.aieok.com All rights reserved.
*/
2020-01-01 13:17:19 +08:00
declare (strict_types = 1);
namespace app\common\controller;
2022-08-02 21:13:36 +08:00
use think\facade\Request;
2020-01-01 13:17:19 +08:00
use think\facade\View;
use think\facade\Db;
use think\facade\Session;
use think\facade\Cache;
2022-08-02 21:13:36 +08:00
use app\facade\Article;
2021-07-16 17:42:07 +08:00
use app\BaseController as BaseCtrl;
2020-01-01 13:17:19 +08:00
/**
* 控制器基础类
*/
2021-07-16 17:42:07 +08:00
class BaseController extends BaseCtrl
2020-01-01 13:17:19 +08:00
{
2021-12-15 15:46:04 +08:00
/**
* 初始化系统,导航,用户
*/
2020-01-01 13:17:19 +08:00
protected function initialize()
{
2021-07-16 17:42:07 +08:00
$this->uid = Session::get('user_id');
2020-01-01 13:17:19 +08:00
//系统配置
$this->showSystem();
//显示分类导航
$this->showNav();
2021-12-15 15:46:04 +08:00
//用户
2021-07-22 10:54:03 +08:00
$this->showUser($this->uid);
2020-01-01 13:17:19 +08:00
2021-07-16 17:42:07 +08:00
}
2020-01-01 13:17:19 +08:00
//判断是否已登录?
protected function isLogged()
{
if(Session::has('user_id')){
$this->success('您已登录','/index/index/index');
}
}
//判断是否需要登录?
protected function isLogin()
{
if(!Session::has('user_id')){
$this->error('请登录','/index/user/login');
}
}
2022-04-17 17:09:19 +08:00
// 显示导航
2020-01-01 13:17:19 +08:00
protected function showNav()
{
//1.查询分类表获取所有分类
2020-03-13 22:59:38 +08:00
$cateList = Db::name('cate')->where(['status'=>1,'delete_time'=>0])->order('sort','asc')->cache('catename',3600)->select();
2020-01-01 13:17:19 +08:00
//2.将catelist变量赋给模板 公共模板nav.html
View::assign('cateList',$cateList);
2021-08-03 17:33:48 +08:00
return $cateList;
2020-01-01 13:17:19 +08:00
}
2020-05-15 17:04:04 +08:00
//显示当前登录用户
2021-07-22 10:54:03 +08:00
protected function showUser($id)
2020-01-01 13:17:19 +08:00
{
2020-05-15 17:04:04 +08:00
$user = Cache::get('user'.$id);
if(!$user){
//1.查询用户
$user = Db::name('user')->field('id,name,nickname,user_img,sex,area_id,auth,city,email,active,sign,point,vip,create_time')->find($id);
2020-05-15 17:04:04 +08:00
Cache::tag('user')->set('user'.$id,$user,600);
}
2020-03-05 20:15:01 +08:00
//2.将User变量赋给模板 公共模板nav.html
View::assign('user',$user);
2021-07-22 10:54:03 +08:00
return $user;
2020-01-01 13:17:19 +08:00
}
2022-08-02 21:13:36 +08:00
//热门标签
protected function getHotTag()
{
//热门标签
return Article::getHotTags();
//转换为字符串
// $tagStr = implode(",",$tags);
//转换为数组并去重
// return array_unique(explode(",",$tagStr));
}
2020-01-01 13:17:19 +08:00
2022-08-02 21:13:36 +08:00
//显示网站设置
2020-01-01 13:17:19 +08:00
protected function showSystem()
{
//1.查询分类表获取所有分类
2022-08-02 21:13:36 +08:00
$sysInfo = $this->getSystem();
$slider = new \app\common\model\Slider();
2021-07-07 17:17:58 +08:00
//头部链接
2022-08-02 21:13:36 +08:00
$head_links = $slider->getSliderList(10);
2021-07-07 17:17:58 +08:00
//页脚链接
2022-08-02 21:13:36 +08:00
$foot_links = $slider->getSliderList(11);
//友情链接
$friend_links = $slider->getSliderList(9);
//获取热门标签
$hotTag = $this->getHotTag();
$assign = [
'sysInfo' => $sysInfo,
'headlinks' => $head_links,
'footlinks' => $foot_links,
'flinks' => $friend_links,
'hotTag' => $hotTag,
'host' => Request::domain() . '/'
];
View::assign($assign);
2021-08-03 17:33:48 +08:00
return $sysInfo;
2020-01-01 13:17:19 +08:00
}
2022-08-16 15:21:08 +08:00
//获取artcile所有图片
protected function getArticleAllpic($str)
{
// <img src="http://img.com" />
$pattern = "/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/";
preg_match_all($pattern,$str,$matchContent);
if(isset($matchContent[1])){
$img = $matchContent[1];
}else{
$temp = "./images/no-image.jpg";//在相应位置放置一张命名为no-image的jpg图片
}
return $img;
}
2020-01-01 13:17:19 +08:00
}