mirror of
https://gitee.com/ulthon/ulthon_information.git
synced 2026-03-03 16:24:28 +08:00
优化网站性能;
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'\app\middleware\PermissionRecord',
|
// '\app\middleware\PermissionRecord',
|
||||||
'\app\middleware\AdminLog',
|
// '\app\middleware\AdminLog',
|
||||||
];
|
];
|
||||||
303
app/common.php
303
app/common.php
@@ -24,167 +24,166 @@ use think\app\Url;
|
|||||||
|
|
||||||
function json_message($data = [], $code = 0, $msg = '')
|
function json_message($data = [], $code = 0, $msg = '')
|
||||||
{
|
{
|
||||||
if (is_string($data)) {
|
if (is_string($data)) {
|
||||||
|
|
||||||
if(strpos($data,'http') === 0 || strpos($data,'/') === 0){
|
if (strpos($data, 'http') === 0 || strpos($data, '/') === 0) {
|
||||||
$data = [
|
$data = [
|
||||||
'jump_to_url'=>$data
|
'jump_to_url' => $data
|
||||||
];
|
];
|
||||||
}else{
|
} else {
|
||||||
|
|
||||||
$code = $code === 0 ? 500 : $code;
|
$code = $code === 0 ? 500 : $code;
|
||||||
$msg = $data;
|
$msg = $data;
|
||||||
$data = [];
|
$data = [];
|
||||||
|
}
|
||||||
|
} else if ($data instanceof Url) {
|
||||||
|
$data = [
|
||||||
|
'jump_to_url' => (string)$data
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
}else if($data instanceof Url){
|
return json([
|
||||||
$data = [
|
'code' => $code,
|
||||||
'jump_to_url'=>(string)$data
|
'msg' => $msg,
|
||||||
];
|
'data' => $data
|
||||||
}
|
]);
|
||||||
|
|
||||||
return json([
|
|
||||||
'code' => $code,
|
|
||||||
'msg' => $msg,
|
|
||||||
'data' => $data
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
function get_system_config($name = '', $default = '')
|
function get_system_config($name = '', $default = '')
|
||||||
{
|
{
|
||||||
$list = Cache::get('system_config');
|
$list = Cache::get('system_config');
|
||||||
|
|
||||||
if (empty($list)) {
|
if (empty($list)) {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
$list = SystemConfig::column('value', 'name');
|
$list = SystemConfig::column('value', 'name');
|
||||||
Cache::set('system_config',$list);
|
Cache::set('system_config', $list);
|
||||||
} catch (\Throwable $th) {
|
} catch (\Throwable $th) {
|
||||||
return $default;
|
return $default;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ($name === '') {
|
if ($name === '') {
|
||||||
return $list;
|
return $list;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($list[$name])) {
|
if (isset($list[$name])) {
|
||||||
return $list[$name];
|
return $list[$name];
|
||||||
}
|
}
|
||||||
|
|
||||||
return $default;
|
return $default;
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_source_link($url)
|
function get_source_link($url)
|
||||||
{
|
{
|
||||||
|
|
||||||
if(empty($url)){
|
if (empty($url)) {
|
||||||
$url = '/static/images/avatar.jpeg';
|
$url = '/static/images/avatar.jpeg';
|
||||||
}
|
}
|
||||||
if (strpos($url, '/') === 0) {
|
if (strpos($url, '/') === 0) {
|
||||||
return $url;
|
return $url;
|
||||||
}
|
}
|
||||||
if (strpos($url, 'http') === 0) {
|
if (strpos($url, 'http') === 0) {
|
||||||
return $url;
|
return $url;
|
||||||
} else {
|
} else {
|
||||||
$resource_domain = get_system_config('resource_domain');
|
$resource_domain = get_system_config('resource_domain');
|
||||||
|
|
||||||
if (empty($resource_domain)) {
|
if (empty($resource_domain)) {
|
||||||
$resource_domain = request()->domain();
|
$resource_domain = request()->domain();
|
||||||
|
}
|
||||||
|
return $resource_domain . '/' . $url;
|
||||||
}
|
}
|
||||||
return $resource_domain . '/' . $url;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function de_source_link($url)
|
function de_source_link($url)
|
||||||
{
|
{
|
||||||
$domain = get_system_config('resource_domain') . '/';
|
$domain = get_system_config('resource_domain') . '/';
|
||||||
if (strpos($url, $domain) === 0) {
|
if (strpos($url, $domain) === 0) {
|
||||||
return str_replace($domain, '', $url);
|
return str_replace($domain, '', $url);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function save_url_file($url, $type)
|
function save_url_file($url, $type)
|
||||||
{
|
{
|
||||||
|
|
||||||
$file_data = geturl($url);
|
$file_data = geturl($url);
|
||||||
|
|
||||||
$mime_type = MimeType::detectByContent($file_data);
|
$mime_type = MimeType::detectByContent($file_data);
|
||||||
|
|
||||||
$ext_name = array_search($mime_type, MimeType::getExtensionToMimeTypeMap());
|
$ext_name = array_search($mime_type, MimeType::getExtensionToMimeTypeMap());
|
||||||
$temp_file = tempnam(app()->getRuntimePath(), 'url_save_') . '.' . $ext_name;
|
$temp_file = tempnam(app()->getRuntimePath(), 'url_save_') . '.' . $ext_name;
|
||||||
file_put_contents($temp_file, $file_data);
|
file_put_contents($temp_file, $file_data);
|
||||||
$file = new File($temp_file);
|
$file = new File($temp_file);
|
||||||
|
|
||||||
$save_name = Filesystem::putFile('wx_public_account/qrcode_url', $file, 'unique');
|
$save_name = Filesystem::putFile('wx_public_account/qrcode_url', $file, 'unique');
|
||||||
|
|
||||||
$model_file = new UploadFiles();
|
$model_file = new UploadFiles();
|
||||||
$model_file->file_name = $file->getFilename();
|
$model_file->file_name = $file->getFilename();
|
||||||
$model_file->mime_type = $mime_type;
|
$model_file->mime_type = $mime_type;
|
||||||
$model_file->ext_name = $file->extension();
|
$model_file->ext_name = $file->extension();
|
||||||
$model_file->file_size = $file->getSize();
|
$model_file->file_size = $file->getSize();
|
||||||
$model_file->file_md5 = $file->md5();
|
$model_file->file_md5 = $file->md5();
|
||||||
$model_file->file_sha1 = $file->sha1();
|
$model_file->file_sha1 = $file->sha1();
|
||||||
$model_file->create_time = time();
|
$model_file->create_time = time();
|
||||||
$model_file->type = $type;
|
$model_file->type = $type;
|
||||||
|
|
||||||
$model_file->save_name = $save_name;
|
$model_file->save_name = $save_name;
|
||||||
$model_file->save();
|
$model_file->save();
|
||||||
|
|
||||||
return $save_name;
|
return $save_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
function geturl($url)
|
function geturl($url)
|
||||||
{
|
{
|
||||||
$headerArray = array();
|
$headerArray = array();
|
||||||
$ch = curl_init();
|
$ch = curl_init();
|
||||||
curl_setopt($ch, CURLOPT_URL, $url);
|
curl_setopt($ch, CURLOPT_URL, $url);
|
||||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
|
||||||
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
|
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
|
||||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArray);
|
curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArray);
|
||||||
$output = curl_exec($ch);
|
$output = curl_exec($ch);
|
||||||
curl_close($ch);
|
curl_close($ch);
|
||||||
|
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function posturl($url, $data)
|
function posturl($url, $data)
|
||||||
{
|
{
|
||||||
$data = json_encode($data);
|
$data = json_encode($data);
|
||||||
$headerArray = array();
|
$headerArray = array();
|
||||||
$curl = curl_init();
|
$curl = curl_init();
|
||||||
curl_setopt($curl, CURLOPT_URL, $url);
|
curl_setopt($curl, CURLOPT_URL, $url);
|
||||||
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
|
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
|
||||||
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
|
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
|
||||||
curl_setopt($curl, CURLOPT_POST, 1);
|
curl_setopt($curl, CURLOPT_POST, 1);
|
||||||
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
|
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
|
||||||
curl_setopt($curl, CURLOPT_HTTPHEADER, $headerArray);
|
curl_setopt($curl, CURLOPT_HTTPHEADER, $headerArray);
|
||||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
||||||
$output = curl_exec($curl);
|
$output = curl_exec($curl);
|
||||||
curl_close($curl);
|
curl_close($curl);
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
function format_size($filesize)
|
function format_size($filesize)
|
||||||
{
|
{
|
||||||
|
|
||||||
if ($filesize >= 1073741824) {
|
if ($filesize >= 1073741824) {
|
||||||
|
|
||||||
$filesize = round($filesize / 1073741824 * 100) / 100 . ' GB';
|
$filesize = round($filesize / 1073741824 * 100) / 100 . ' GB';
|
||||||
} elseif ($filesize >= 1048576) {
|
} elseif ($filesize >= 1048576) {
|
||||||
|
|
||||||
$filesize = round($filesize / 1048576 * 100) / 100 . ' MB';
|
$filesize = round($filesize / 1048576 * 100) / 100 . ' MB';
|
||||||
} elseif ($filesize >= 1024) {
|
} elseif ($filesize >= 1024) {
|
||||||
|
|
||||||
$filesize = round($filesize / 1024 * 100) / 100 . ' KB';
|
$filesize = round($filesize / 1024 * 100) / 100 . ' KB';
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
$filesize = $filesize . ' 字节';
|
$filesize = $filesize . ' 字节';
|
||||||
}
|
}
|
||||||
|
|
||||||
return $filesize;
|
return $filesize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -199,65 +198,65 @@ function format_size($filesize)
|
|||||||
function array2level($array, $pid = 0, $level = 1)
|
function array2level($array, $pid = 0, $level = 1)
|
||||||
{
|
{
|
||||||
|
|
||||||
static $list = [];
|
static $list = [];
|
||||||
if ($level == 0) {
|
if ($level == 0) {
|
||||||
$list = [];
|
$list = [];
|
||||||
$level = 1;
|
$level = 1;
|
||||||
}
|
|
||||||
foreach ($array as $v) {
|
|
||||||
if ($v['pid'] == $pid) {
|
|
||||||
$v['level'] = $level;
|
|
||||||
$list[] = $v;
|
|
||||||
array2level($array, $v['id'], $level + 1);
|
|
||||||
}
|
}
|
||||||
}
|
foreach ($array as $v) {
|
||||||
// halt($list);
|
if ($v['pid'] == $pid) {
|
||||||
|
$v['level'] = $level;
|
||||||
|
$list[] = $v;
|
||||||
|
array2level($array, $v['id'], $level + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// halt($list);
|
||||||
|
|
||||||
return $list;
|
return $list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function check_permission($key,$admin_id = null)
|
function check_permission($key, $admin_id = null)
|
||||||
{
|
{
|
||||||
if(is_null($admin_id)){
|
if (is_null($admin_id)) {
|
||||||
$admin_id = Session::get('admin_id');
|
$admin_id = Session::get('admin_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
if(empty($admin_id)){
|
if (empty($admin_id)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($admin_id == 1){
|
if ($admin_id == 1) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$model_admin = Admin::cache(60)->find($admin_id);
|
$model_admin = Admin::cache(60)->find($admin_id);
|
||||||
|
|
||||||
if(empty($model_admin->getData('group_id'))){
|
if (empty($model_admin->getData('group_id'))) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$cache_key = 'permission_'.$key;
|
$cache_key = 'permission_' . $key;
|
||||||
|
|
||||||
$model_permission = Cache::get($cache_key);
|
$model_permission = Cache::get($cache_key);
|
||||||
if (empty($model_permission)) {
|
if (empty($model_permission)) {
|
||||||
$model_permission = AdminPermission::where('key',$key)->find();
|
$model_permission = AdminPermission::where('key', $key)->find();
|
||||||
Cache::set($cache_key,$model_permission);
|
Cache::set($cache_key, $model_permission);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($model_permission)) {
|
if (empty($model_permission)) {
|
||||||
$model_permission = AdminPermission::create([
|
$model_permission = AdminPermission::create([
|
||||||
'key'=>$key
|
'key' => $key
|
||||||
]);
|
]);
|
||||||
Cache::set($cache_key,$model_permission,60);
|
Cache::set($cache_key, $model_permission, 60);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(in_array($model_permission->id,$model_admin->group->permissions)){
|
if (in_array($model_permission->id, $model_admin->group->permissions)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -275,5 +274,5 @@ function app_url(string $url = '', array $vars = [], $suffix = true, $domain = f
|
|||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
return url($url, $vars, $suffix, $domain);
|
return url($url, $vars, $suffix, $domain);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,136 +5,151 @@ namespace app\index\controller;
|
|||||||
use app\model\Category;
|
use app\model\Category;
|
||||||
use app\model\Post;
|
use app\model\Post;
|
||||||
use app\model\PostCategory;
|
use app\model\PostCategory;
|
||||||
|
use think\facade\Cache;
|
||||||
use think\facade\Session;
|
use think\facade\Session;
|
||||||
use think\facade\View;
|
use think\facade\View;
|
||||||
use think\Request;
|
use think\Request;
|
||||||
|
|
||||||
class Index extends Common
|
class Index extends Common
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* 显示资源列表
|
* 显示资源列表
|
||||||
*
|
*
|
||||||
* @return \think\Response
|
* @return \think\Response
|
||||||
*/
|
*/
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
//
|
|
||||||
$sub_category = [];
|
|
||||||
$current_category = [];
|
|
||||||
|
|
||||||
if (!empty($this->request->param('category_id'))) {
|
|
||||||
$sub_category = Category::where('pid', $this->request->param('category_id'))->where('type', 3)->order('sort asc')->select();
|
|
||||||
$current_category = Category::find($this->request->param('category_id'));
|
|
||||||
if (empty($this->request->param('sub_category_id'))) {
|
|
||||||
$categorys = [$this->request->param('category_id')];
|
|
||||||
|
|
||||||
$categorys = array_merge($categorys, array_column((array)Category::getListLevel($this->request->param('category_id')), 3));
|
$page_cache_key = md5($this->request->url());
|
||||||
|
|
||||||
$categorys_where = PostCategory::whereIn('category_id', $categorys);
|
|
||||||
|
|
||||||
$model_post = Post::hasWhere('categorys', $categorys_where)->where('status', 1)->order('id desc');
|
$content = Cache::get($page_cache_key);
|
||||||
} else {
|
|
||||||
$model_post = Post::hasWhere('categorys', ['category_id' => $this->request->param('sub_category_id')])->where('status', 1)->order('id desc');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
|
|
||||||
$model_post = Post::where('status', 1)->order('id desc');
|
if (!empty($content)) {
|
||||||
}
|
return $content;
|
||||||
|
}
|
||||||
|
|
||||||
$model_post->where('type', 3);
|
//
|
||||||
|
$sub_category = [];
|
||||||
|
$current_category = [];
|
||||||
|
|
||||||
$keywords = $this->request->param('keywords');
|
if (!empty($this->request->param('category_id'))) {
|
||||||
|
$sub_category = Category::where('pid', $this->request->param('category_id'))->where('type', 3)->order('sort asc')->select();
|
||||||
|
$current_category = Category::find($this->request->param('category_id'));
|
||||||
|
if (empty($this->request->param('sub_category_id'))) {
|
||||||
|
$categorys = [$this->request->param('category_id')];
|
||||||
|
|
||||||
if (!empty($keywords)) {
|
$categorys = array_merge($categorys, array_column((array)Category::getListLevel($this->request->param('category_id')), 3));
|
||||||
$model_post->whereLike('title|desc', "%$keywords%");
|
|
||||||
|
$categorys_where = PostCategory::whereIn('category_id', $categorys);
|
||||||
|
|
||||||
|
$model_post = Post::hasWhere('categorys', $categorys_where)->where('status', 1)->order('id desc');
|
||||||
|
} else {
|
||||||
|
$model_post = Post::hasWhere('categorys', ['category_id' => $this->request->param('sub_category_id')])->where('status', 1)->order('id desc');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
|
||||||
|
$model_post = Post::where('status', 1)->order('id desc');
|
||||||
|
}
|
||||||
|
|
||||||
|
$model_post->where('type', 3);
|
||||||
|
|
||||||
|
$keywords = $this->request->param('keywords');
|
||||||
|
|
||||||
|
if (!empty($keywords)) {
|
||||||
|
$model_post->whereLike('title|desc', "%$keywords%");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$list_post = $model_post->paginate([
|
||||||
|
'url' => 'Index/index',
|
||||||
|
'query' => $this->request->get(),
|
||||||
|
'list_rows' => 10
|
||||||
|
]);
|
||||||
|
|
||||||
|
View::assign('current_category', $current_category);
|
||||||
|
View::assign('sub_category', $sub_category);
|
||||||
|
|
||||||
|
View::assign('list_post', $list_post);
|
||||||
|
|
||||||
|
$content = View::fetch();
|
||||||
|
|
||||||
|
Cache::tag('page_cache')->set($page_cache_key, $content);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$list_post = $model_post->paginate([
|
public function logout()
|
||||||
'url' => 'Index/index',
|
{
|
||||||
'query' => $this->request->get()
|
Session::clear();
|
||||||
]);
|
|
||||||
|
|
||||||
View::assign('current_category', $current_category);
|
$back_url = $this->request->param('back_url', '/');
|
||||||
View::assign('sub_category', $sub_category);
|
return $this->success('退出成功', $back_url);
|
||||||
|
}
|
||||||
|
|
||||||
View::assign('list_post', $list_post);
|
/**
|
||||||
|
* 显示创建资源表单页.
|
||||||
|
*
|
||||||
|
* @return \think\Response
|
||||||
|
*/
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
return View::fetch();
|
/**
|
||||||
}
|
* 保存新建的资源
|
||||||
|
*
|
||||||
|
* @param \think\Request $request
|
||||||
|
* @return \think\Response
|
||||||
|
*/
|
||||||
|
public function save(Request $request)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 显示指定的资源
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \think\Response
|
||||||
|
*/
|
||||||
|
public function read($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
public function logout()
|
/**
|
||||||
{
|
* 显示编辑资源表单页.
|
||||||
Session::clear();
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return \think\Response
|
||||||
|
*/
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
$back_url = $this->request->param('back_url','/');
|
/**
|
||||||
return $this->success('退出成功',$back_url);
|
* 保存更新的资源
|
||||||
}
|
*
|
||||||
|
* @param \think\Request $request
|
||||||
|
* @param int $id
|
||||||
|
* @return \think\Response
|
||||||
|
*/
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 显示创建资源表单页.
|
* 删除指定资源
|
||||||
*
|
*
|
||||||
* @return \think\Response
|
* @param int $id
|
||||||
*/
|
* @return \think\Response
|
||||||
public function create()
|
*/
|
||||||
{
|
public function delete($id)
|
||||||
//
|
{
|
||||||
}
|
//
|
||||||
|
}
|
||||||
/**
|
|
||||||
* 保存新建的资源
|
|
||||||
*
|
|
||||||
* @param \think\Request $request
|
|
||||||
* @return \think\Response
|
|
||||||
*/
|
|
||||||
public function save(Request $request)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 显示指定的资源
|
|
||||||
*
|
|
||||||
* @param int $id
|
|
||||||
* @return \think\Response
|
|
||||||
*/
|
|
||||||
public function read($id)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 显示编辑资源表单页.
|
|
||||||
*
|
|
||||||
* @param int $id
|
|
||||||
* @return \think\Response
|
|
||||||
*/
|
|
||||||
public function edit($id)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 保存更新的资源
|
|
||||||
*
|
|
||||||
* @param \think\Request $request
|
|
||||||
* @param int $id
|
|
||||||
* @return \think\Response
|
|
||||||
*/
|
|
||||||
public function update(Request $request, $id)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除指定资源
|
|
||||||
*
|
|
||||||
* @param int $id
|
|
||||||
* @return \think\Response
|
|
||||||
*/
|
|
||||||
public function delete($id)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,11 @@ class Category extends Base
|
|||||||
[
|
[
|
||||||
'name' => 'category_type_list',
|
'name' => 'category_type_list',
|
||||||
'field' => 'type'
|
'field' => 'type'
|
||||||
]
|
],
|
||||||
|
[
|
||||||
|
'type' => 'tag',
|
||||||
|
'name' => 'page_cache'
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,11 @@ class Nav extends Base
|
|||||||
'type' => 'key',
|
'type' => 'key',
|
||||||
'name' => 'type_list',
|
'name' => 'type_list',
|
||||||
'field' => 'type'
|
'field' => 'type'
|
||||||
]
|
],
|
||||||
|
[
|
||||||
|
'type' => 'tag',
|
||||||
|
'name' => 'page_cache'
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
public static $statusName = [
|
public static $statusName = [
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace app\model;
|
namespace app\model;
|
||||||
|
|
||||||
|
use app\common\model\Base;
|
||||||
use think\facade\Cache;
|
use think\facade\Cache;
|
||||||
use think\facade\Request;
|
use think\facade\Request;
|
||||||
use think\Model;
|
use think\Model;
|
||||||
@@ -13,161 +14,171 @@ use think\Paginator;
|
|||||||
/**
|
/**
|
||||||
* @mixin think\Model
|
* @mixin think\Model
|
||||||
*/
|
*/
|
||||||
class Post extends Model
|
class Post extends Base
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
|
||||||
public static $stausNameList = [
|
public static $autoClearCache = [
|
||||||
0 => '不发布',
|
[
|
||||||
1 => '发布'
|
'name' => 'top_post'
|
||||||
];
|
],
|
||||||
|
[
|
||||||
|
'type' => 'tag',
|
||||||
|
'name' => 'page_cache'
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
||||||
use SoftDelete;
|
public static $stausNameList = [
|
||||||
|
0 => '不发布',
|
||||||
|
1 => '发布'
|
||||||
|
];
|
||||||
|
|
||||||
protected $defaultSoftDelete = 0;
|
use SoftDelete;
|
||||||
|
|
||||||
public function categorys()
|
protected $defaultSoftDelete = 0;
|
||||||
{
|
|
||||||
return $this->hasMany(PostCategory::class, 'post_id');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function tags()
|
public function categorys()
|
||||||
{
|
{
|
||||||
return $this->hasMany(PostTag::class, 'post_id');
|
return $this->hasMany(PostCategory::class, 'post_id');
|
||||||
}
|
|
||||||
|
|
||||||
public function comments()
|
|
||||||
{
|
|
||||||
return $this->hasMany(PostComment::class,'post_id');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function getCommentCountAttr()
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return PostComment::getPostCommentsCount($this->getData('id'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function setPublishTimeAttr($value)
|
|
||||||
{
|
|
||||||
return strtotime($value);
|
|
||||||
}
|
|
||||||
public function getPublishTimeTextAttr()
|
|
||||||
{
|
|
||||||
|
|
||||||
$value = $this->getData('publish_time');
|
|
||||||
return date('Y-m-d', $value);
|
|
||||||
}
|
|
||||||
public function getPublishTimeDatetimeAttr()
|
|
||||||
{
|
|
||||||
|
|
||||||
$value = $this->getData('publish_time');
|
|
||||||
return date('Y-m-d H:i:s', $value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCategorysListAttr()
|
|
||||||
{
|
|
||||||
$list_post_categorys = $this->getAttr('categorys');
|
|
||||||
|
|
||||||
$list = array_column($list_post_categorys->append(['category'])->toArray(), 'category');
|
|
||||||
|
|
||||||
$list = array2level($list, 0, 0);
|
|
||||||
|
|
||||||
return $list;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getTagsListAttr()
|
|
||||||
{
|
|
||||||
$list_post_tags = $this->getAttr('tags');
|
|
||||||
|
|
||||||
$list = array_column($list_post_tags->append(['tag'])->toArray(), 'tag');
|
|
||||||
|
|
||||||
return $list;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getDescShortAttr()
|
|
||||||
{
|
|
||||||
$desc = $this->getData('desc');
|
|
||||||
|
|
||||||
if (strlen($desc) > 100) {
|
|
||||||
$desc = mb_substr($desc, 0, 100) . '...';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $desc;
|
public function tags()
|
||||||
}
|
{
|
||||||
|
return $this->hasMany(PostTag::class, 'post_id');
|
||||||
public function getDescListAttr()
|
|
||||||
{
|
|
||||||
$desc = $this->getData('desc');
|
|
||||||
|
|
||||||
if (empty($desc)) {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
$list = explode("\n", $desc);
|
|
||||||
|
|
||||||
return $list;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getDescHtmlAttr()
|
|
||||||
{
|
|
||||||
$desc = $this->getData('desc');
|
|
||||||
|
|
||||||
if (empty($desc)) {
|
|
||||||
return '';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return str_replace("\n", '<br>', $desc);
|
public function comments()
|
||||||
}
|
{
|
||||||
|
return $this->hasMany(PostComment::class, 'post_id');
|
||||||
public function getStatusNameAttr()
|
|
||||||
{
|
|
||||||
return self::$stausNameList[$this->getData('status')];
|
|
||||||
}
|
|
||||||
|
|
||||||
public function setPubishTimeAttr($value)
|
|
||||||
{
|
|
||||||
return strtotime($value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function setContentAttr($value)
|
|
||||||
{
|
|
||||||
return json_encode($value);
|
|
||||||
}
|
|
||||||
public function setContentHtmlAttr($value)
|
|
||||||
{
|
|
||||||
return trim($value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getContentAttr($value)
|
|
||||||
{
|
|
||||||
return json_decode($value, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getPosterAttr($value)
|
|
||||||
{
|
|
||||||
if (empty($value)) {
|
|
||||||
$value = '/static/images/avatar.jpeg';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return get_source_link($value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getReadUrlAttr()
|
public function getCommentCountAttr()
|
||||||
{
|
{
|
||||||
|
|
||||||
return Request::domain() . '/index/a' . $this->getData('uid') . '.html';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getShareTextAttr()
|
|
||||||
{
|
|
||||||
$share_text = get_system_config('post_share_text_tpl');
|
|
||||||
|
|
||||||
$share_text = str_replace('%post_title%', $this->getAttr('title'), $share_text);
|
return PostComment::getPostCommentsCount($this->getData('id'));
|
||||||
$share_text = str_replace('%post_desc%', $this->getAttr('desc'), $share_text);
|
}
|
||||||
$share_text = str_replace('%post_url%', $this->getAttr('read_url'), $share_text);
|
|
||||||
|
|
||||||
return $share_text;
|
public function setPublishTimeAttr($value)
|
||||||
}
|
{
|
||||||
|
return strtotime($value);
|
||||||
|
}
|
||||||
|
public function getPublishTimeTextAttr()
|
||||||
|
{
|
||||||
|
|
||||||
|
$value = $this->getData('publish_time');
|
||||||
|
return date('Y-m-d', $value);
|
||||||
|
}
|
||||||
|
public function getPublishTimeDatetimeAttr()
|
||||||
|
{
|
||||||
|
|
||||||
|
$value = $this->getData('publish_time');
|
||||||
|
return date('Y-m-d H:i:s', $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getCategorysListAttr()
|
||||||
|
{
|
||||||
|
$list_post_categorys = $this->getAttr('categorys');
|
||||||
|
|
||||||
|
$list = array_column($list_post_categorys->append(['category'])->toArray(), 'category');
|
||||||
|
|
||||||
|
$list = array2level($list, 0, 0);
|
||||||
|
|
||||||
|
return $list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getTagsListAttr()
|
||||||
|
{
|
||||||
|
$list_post_tags = $this->getAttr('tags');
|
||||||
|
|
||||||
|
$list = array_column($list_post_tags->append(['tag'])->toArray(), 'tag');
|
||||||
|
|
||||||
|
return $list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getDescShortAttr()
|
||||||
|
{
|
||||||
|
$desc = $this->getData('desc');
|
||||||
|
|
||||||
|
if (strlen($desc) > 100) {
|
||||||
|
$desc = mb_substr($desc, 0, 100) . '...';
|
||||||
|
}
|
||||||
|
|
||||||
|
return $desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getDescListAttr()
|
||||||
|
{
|
||||||
|
$desc = $this->getData('desc');
|
||||||
|
|
||||||
|
if (empty($desc)) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
$list = explode("\n", $desc);
|
||||||
|
|
||||||
|
return $list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getDescHtmlAttr()
|
||||||
|
{
|
||||||
|
$desc = $this->getData('desc');
|
||||||
|
|
||||||
|
if (empty($desc)) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
return str_replace("\n", '<br>', $desc);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getStatusNameAttr()
|
||||||
|
{
|
||||||
|
return self::$stausNameList[$this->getData('status')];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setPubishTimeAttr($value)
|
||||||
|
{
|
||||||
|
return strtotime($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setContentAttr($value)
|
||||||
|
{
|
||||||
|
return json_encode($value);
|
||||||
|
}
|
||||||
|
public function setContentHtmlAttr($value)
|
||||||
|
{
|
||||||
|
return trim($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getContentAttr($value)
|
||||||
|
{
|
||||||
|
return json_decode($value, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getPosterAttr($value)
|
||||||
|
{
|
||||||
|
if (empty($value)) {
|
||||||
|
$value = '/static/images/avatar.jpeg';
|
||||||
|
}
|
||||||
|
|
||||||
|
return get_source_link($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getReadUrlAttr()
|
||||||
|
{
|
||||||
|
|
||||||
|
return Request::domain() . '/index/a' . $this->getData('uid') . '.html';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getShareTextAttr()
|
||||||
|
{
|
||||||
|
$share_text = get_system_config('post_share_text_tpl');
|
||||||
|
|
||||||
|
$share_text = str_replace('%post_title%', $this->getAttr('title'), $share_text);
|
||||||
|
$share_text = str_replace('%post_desc%', $this->getAttr('desc'), $share_text);
|
||||||
|
$share_text = str_replace('%post_url%', $this->getAttr('read_url'), $share_text);
|
||||||
|
|
||||||
|
return $share_text;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user