📖 File Reader
<?php
namespace app\admin\controller;
use adminCreate\form\Form;
use app\admin\common\Common_config;
use think\facade\Db;
use think\facade\View;
class Article extends Base
{
/*分类列表*/
public function act_list()
{
return View::fetch();
}
/*分类列表数据*/
public function act_list_ajax()
{
$keyword = input("param.keyword");
$where = 1;
if (!empty($keyword)){
$where .= " and name like '%".$keyword."%'";
}
$list = db::name("article_act")->where($where)->order("sort desc")->select()->toArray();
foreach ($list as $k => $v){
$list[$k]["time_add"] = date("Y-m-d H:i",$v["time_add"]);
}
$count = db::name("article_act")->where($where)->count();
return $this->layui_json($count,$list);
}
/*分类数据获取(用于多选查询)*/
public function act_checked_list()
{
$act_id = input("param.act_id");
$where = 1;
if (!empty($act_id)){
$where .= " and id in (".$act_id.")";
}
$list = db::name("article_act")->where($where)->order("sort desc")->select()->toArray();
$checked_data = [];
foreach ($list as $v){
$checked_data[] = [
'id'=>$v["id"],
'title'=>$v["name"],
'spread'=>true,
'children'=>[],
];
}
$data = [
'checked_data'=>$checked_data,
];
return $this->succeed_json("ok",$data);
}
/*分类列表字段修改*/
public function act_field_update()
{
$id = input("param.id");
$field_name = input("param.field_name");
$info[$field_name] = input("param.value");
db::name("article_act")->where("id = $id")->data($info)->update();
return $this->succeed_json("操作成功");
}
/*分类上传处理*/
public function act_update()
{
$id = input("param.id");
if (input("post.")){
$info = [
'name'=>input("param.name"),
'sort'=>input("param.sort"),
'time_add'=>time(),
];
if (empty($id)){
db::name("article_act")->insertGetId($info);
}else{
db::name("article_act")->where("id = $id")->data($info)->update();
}
return $this->succeed_json("操作成功");
}else {
$info = ['name'=>'','sort'=>0];
if (!empty($id)){
$info = db::name("article_act")->where("id = $id")->find();
}
$form = new Form();
$form->tabs('tabs1', '基本信息');
$form->input('name', '名称',$info["name"])->required()->tabs('tabs1');
$form->number('sort', '排序', $info["sort"])->tabs('tabs1');
$form->hidden('id',$id);
$form->button('/admin/Article/act_update');
return $form;
}
}
/*分类删除*/
public function act_del()
{
$id = input("param.id");
$article_count = db::name("article")->where("act_id = $id")->count();
if (!empty($article_count)){
return $this->error_json("该分类下存在文章数据,不可删除!");
}
db::name("article_act")->where("id = $id")->delete();
return $this->succeed_json("删除成功");
}
/*文章列表*/
public function article_list()
{
$act_id = input("param.act_id");
$where = 1;
if ($act_id != ''){
$where .= " and id in ($act_id)";
}
$list = db::name("article_act")->where($where)->order("sort desc")->select()->toArray();
View::assign([
'act_id'=>$act_id,
'list'=>$list,
]);
return View::fetch();
}
/*系统文章*/
public function article_list_d()
{
return View::fetch();
}
/*文章信息*/
public function article_list_ajax()
{
$title = input("param.title");
$act_id_lanmu = input("param.act_id_lanmu");//该列表支持查询的分类id
$act_id = input("param.act_id");
$checked_act_id = input("param.checked_act_id");
$where = 1;
if (!empty($title)){
$where .= " and a.title like '%".$title."%'";
}
if ($act_id_lanmu != ''){
$where .= " and a.act_id in ($act_id_lanmu)";
}
if ($act_id != ''){
$where .= " and a.act_id = $act_id";
}else{
$where .= " and a.act_id != 0";
}
if (!empty($checked_act_id)){
$checked_act_id = implode(",", $checked_act_id);
$where .= " and a.act_id in ($checked_act_id)";
}
$list = db::name("article")->alias("a")
->join("article_act b","a.act_id = b.id","LEFT")
->field("a.id,a.act_id,a.title,a.img,a.describe,a.is_show,a.browse_sum,a.add_time,b.name as name_act")
->where($where)
->order("a.id desc")
->page($this->page,$this->limit)
->select();
$list = json_decode($list,true);
foreach ($list as $k => $v){
$list[$k]["add_time"] = date("Y-m-d H:i",$v["add_time"]);
$list[$k]["img"] = str_replace('\\', "/", $v["img"]);
}
//获取总页数
$count = db::name("article")->alias("a")
->join("article_act b","a.act_id = b.id","LEFT")
->where($where)
->count();
return $this->layui_json($count,$list);
}
/*文章预览*/
public function article_preview()
{
$id = input("param.id");
View::assign([
'id'=>$id,
]);
return View::fetch();
}
/*文章详情*/
public function article_info()
{
$id = input("param.id");
$article_info = db::name("article")->where("id = $id")->find();
$article_info["add_time"] = date("Y-m-d",$article_info["add_time"]);
/*附件下载*/
// $file_data = $article_info["file_data"] != ''?explode(',',$article_info['file_data']):[];
// $file_data_regroup = [];
// foreach ($file_data as $v){
// $pathinfo = pathinfo($v);
// $basename = $pathinfo['basename']; // 获取文件名,包含扩展名
// $extension = strrchr($basename, '.');
// $extension = str_replace(".","",$extension);
// $data = [
// 'url'=>$v,
// 'type'=>$extension,
// ];
// $file_data_regroup[] = $data;
// }
$data = [
'article_info'=>$article_info,
];
return $this->succeed_json("ok",$data);
}
/*文章表单处理*/
public function form_article_update()
{
$id = input("param.id");
$act_id_lanmu = input("param.act_id_lanmu");//该列表支持查询的分类id
if ($_POST){
$info = [
'title'=>input("param.title"),
'act_id'=>input("param.act_id"),
'describe'=>input("param.describe"),
'img'=>input("param.img") != ''?implode(",", input("param.img")):'',
'browse_sum'=>input("param.browse_sum"),
'content'=>input("param.content"),
'is_show'=>input("param.is_show"),
'add_time'=>input("param.add_time") != ''?strtotime(input("param.add_time")):time(),
];
/*把富文本里的图片bese64格式转换为路径*/
if (!empty($info["content"])){
$config = Common_config::config("'url'");
$http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';
$url = $config["url"] != ''?$config["url"]:$http_type . $_SERVER['HTTP_HOST'];
$content_img_data = Common_config::getPatternMatchImages($info["content"]);
foreach ($content_img_data as $v){
$content_arr = explode(',',$v);
if($content_arr[0] == 'data:image/png;base64'){
$transition_img = Common_config::bese64_transition($v);
if ($transition_img["code"] == 200){
$img_link = $url.$transition_img["file_link"];
$info["content"] = str_replace($v, $img_link, $info["content"]);
}
}
}
}
if (empty($id)){
db::name("article")->insertGetId($info);
}else{
db::name("article")->where("id = $id")->data($info)->update();
}
return $this->succeed_json("操作成功");
}else{
$time = date("Y-m-d H:i",time());
$info = ['title'=>'','act_id'=>'','describe'=>'','img'=>[],'browse_sum'=>0,'content'=>'','add_time'=>$time,'is_show'=>1];
if (!empty($id)){
$info = db::name("article")->where("id = $id")->find();
$info["img"] = $info["img"] != ''?explode(',',$info['img']):[];
$info["add_time"] = $info["add_time"] != 0?date("Y-m-d H:i",$info["add_time"]):'';
}
$form = new Form();
$form->tabs('tabs1', '基本信息');
$form->tabs('tabs2', '详细描述');
$form->input('title', '标题',$info["title"])->required()->tabs('tabs1');
$form->selectOne('act_id', '所属分类',$info["act_id"])->setOptions(function() use($act_id_lanmu){
$where = 1;
if (!empty($act_id_lanmu)){
$where .= " and id in ($act_id_lanmu)";
}
$list_act = db::name("article_act")->where($where)->order("sort desc")->select()->toArray();
$menus = [];
foreach ($list_act as $k => $v){
$menus[] = ['label'=>$v["name"],'value'=>$v["id"]];
}
return $menus;
})->multiple(false)->filterable(false)->required()->tabs('tabs1');
$form->input('describe', '简单描述',$info["describe"])->type('textarea')->tabs('tabs1');
$form->upload('img', '缩略图', '/admin/ad/uploads', $info['img'])->nultiple(false)->required('',"array")->tabs('tabs1');
$form->number('browse_sum', '浏览量', $info["browse_sum"])->tabs('tabs1');
$form->radio('is_show', '显示', $info["is_show"])->setOptions(function () {
$menus[] = ['label' => '是', 'value' => '1'];
$menus[] = ['label' => '否', 'value' => '0'];
return $menus;
})->tabs('tabs1')->required();
$form->datetime('add_time', '时间',$info["add_time"])->tabs('tabs1')->type('datetime')->required();
$form->editor('content', '详细信息',$info["content"])->action('/admin/ad/uploads')->tabs('tabs2');
$form->hidden('id',$id);
$form->button('/admin/Article/form_article_update');
return $form;
}
}
/*文章表单处理*/
public function form_article_d_update()
{
$id = input("param.id");
if ($_POST){
$info = [
'title'=>input("param.title"),
'act_id'=>0,
'is_show'=>1,
'browse_sum'=>input("param.browse_sum"),
'content'=>input("param.content"),
'add_time'=>time(),
];
/*把富文本里的图片bese64格式转换为路径*/
if (!empty($info["content"])){
$config = Common_config::config("'url'");
$http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';
$url = $config["url"] != ''?$config["url"]:$http_type . $_SERVER['HTTP_HOST'];
$content_img_data = Common_config::getPatternMatchImages($info["content"]);
foreach ($content_img_data as $v){
$content_arr = explode(',',$v);
if($content_arr[0] == 'data:image/png;base64'){
$transition_img = Common_config::bese64_transition($v);
if ($transition_img["code"] == 200){
$img_link = $url.$transition_img["file_link"];
$info["content"] = str_replace($v, $img_link, $info["content"]);
}
}
}
}
if (empty($id)){
db::name("article")->insertGetId($info);
}else{
db::name("article")->where("id = $id")->data($info)->update();
}
return $this->succeed_json("操作成功");
}else{
$article_info = ['title'=>'','act_id'=>0,'describe'=>'','img'=>'','browse_sum'=>0,'content'=>''];
if (!empty($id)){
$article_info = db::name("article")->where("id = $id")->find();
}
$form = new Form();
$form->tabs('tabs1', '基本信息');
$form->input('title', '标题',$article_info["title"])->disabled(true)->tabs('tabs1');
$form->number('browse_sum', '浏览量',$article_info["browse_sum"])->tabs('tabs1');
$form->editor('content', '详细内容',$article_info["content"])->action('/admin/ad/uploads')->tabs('tabs1');
$form->hidden('id',$id);
$form->button("/admin/Article/form_article_d_update");
return $form;
}
}
/*文章删除*/
public function article_del()
{
$id = input("param.id");
db::name("article")->where("id = $id")->delete();
return $this->succeed_json("删除成功");
}
/*文章列表字段修改*/
public function artile_field_update()
{
$id = input("param.id");
$field_name = input("param.field_name");
$info[$field_name] = input("param.value");
db::name("article")->where("id = $id")->data($info)->update();
return $this->succeed_json("操作成功");
}
}