AdminpostController.php 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. <?php
  2. // +—————————————————————————————————————————————————————————————————————
  3. // | Created by Yunbao
  4. // +—————————————————————————————————————————————————————————————————————
  5. // | Copyright (c) 2013~2022 http://www.yunbaokj.com All rights reserved.
  6. // +—————————————————————————————————————————————————————————————————————
  7. // | Author: https://gitee.com/yunbaokeji
  8. // +—————————————————————————————————————————————————————————————————————
  9. // | Date: 2022-04-30
  10. // +—————————————————————————————————————————————————————————————————————
  11. namespace app\admin\controller;
  12. use cmf\controller\AdminBaseController;
  13. use think\Db;
  14. use think\db\Query;
  15. class AdminpostController extends AdminBaseController{
  16. protected function initialize()
  17. {
  18. parent::initialize();
  19. $adminId = cmf_get_current_admin_id(); //获取后台管理员id,可判断是否登录
  20. if (!empty($adminId)) {
  21. $this->assign('admin_id', $adminId);
  22. }
  23. }
  24. // 后台文章列表
  25. public function index(){
  26. //文章分类
  27. $terms_list=Db::name('terms')
  28. ->order("listorder ASC,id DESC")
  29. ->select();
  30. $this->assign('terms_list', $terms_list);
  31. //文章
  32. $posts=Db::name('posts')
  33. ->where(function (Query $query) {
  34. $data = $this->request->param();
  35. $query->where('post_type', 0);
  36. if ($data['id']!='') {
  37. $query->where('id', $data['id']);
  38. }
  39. if ($data['termid']!='') {
  40. $query->where('termid', $data['termid']);
  41. }
  42. if (!empty($data['keyword'])) {
  43. $keyword = $data['keyword'];
  44. $query->where('post_title|post_keywords', 'like', "%$keyword%");
  45. }
  46. })
  47. ->order("orderno DESC")
  48. ->paginate(20);
  49. $posts->each(function($v,$k){
  50. $userinfo=Db::name("user")
  51. ->field("user_nicename")
  52. ->where("id='$v[post_author]'")
  53. ->find();
  54. if(!$userinfo){
  55. $userinfo=array(
  56. 'user_nicename'=>'已删除',
  57. );
  58. }
  59. $v['userinfo']= $userinfo;
  60. $termsinfo=Db::name("terms")
  61. ->field("name")
  62. ->where("id='$v[termid]'")
  63. ->find();
  64. if(!$termsinfo){
  65. $termsinfo=array(
  66. 'name'=>'已删除'
  67. );
  68. }
  69. $v['termsinfo']= $termsinfo;
  70. return $v;
  71. });
  72. //分页-->筛选条件参数
  73. $data = $this->request->param();
  74. $posts->appends($data);
  75. // 获取分页显示
  76. $page = $posts->render();
  77. $this->assign('posts', $posts);
  78. $this->assign('page', $page);
  79. $configpub=getConfigPub();
  80. $this->assign("site",$configpub['site']);
  81. return $this->fetch();
  82. }
  83. //文章添加
  84. public function add(){
  85. //文章分类
  86. $terms_list=Db::name('terms')
  87. ->order("listorder ASC,id DESC")
  88. ->select();
  89. $this->assign('terms_list', $terms_list);
  90. return $this->fetch();
  91. }
  92. public function add_post(){
  93. $data = input('post.post');
  94. if(empty($data['termid'])){
  95. $this->error("请至少选择一个分类!");
  96. }else if(empty($data['post_title'])){
  97. $this->error('请输入标题!');
  98. }
  99. $data['post_content']=html_entity_decode($data['post_content']);
  100. $data['post_author']=cmf_get_current_admin_id(); //获取后台管理员id
  101. $path='';
  102. if($data['termid']!=0){
  103. $info=Db::name('terms')->where('id',$data['termid'])->value('path');
  104. $path=$info;
  105. }
  106. $data['path']=$path;
  107. $data['post_status']='1';
  108. $data['post_date']=time();
  109. $add=Db::name('posts')->insert($data);
  110. if($add){
  111. $this->success('添加成功!');
  112. }else{
  113. $this->error('添加失败!');
  114. }
  115. }
  116. //文章分类编辑
  117. public function edit(){
  118. $id = input('param.id');
  119. if($id){
  120. //文章分类
  121. $terms_list=Db::name('terms')
  122. ->order("listorder ASC,id DESC")
  123. ->select();
  124. $this->assign('terms_list', $terms_list);
  125. $info=Db::name('posts')->where('id',$id)->find();
  126. $info['post_content']=str_replace('../../','/upload/',$info['post_content']);
  127. $this->assign('info',$info);
  128. }else{
  129. $this->error('数据传入失败!');
  130. }
  131. return $this->fetch();
  132. }
  133. public function edit_post(){
  134. $data = input('post.post');
  135. $data['post_content']=html_entity_decode($data['post_content']);
  136. if(empty($data['termid'])){
  137. $this->error("请至少选择一个分类!");
  138. }else if(empty($data['post_title'])){
  139. $this->error('请输入标题!');
  140. }
  141. $path='';
  142. if($data['termid']!=0){
  143. $info=Db::name('terms')->where('id',$data['termid'])->value('path');
  144. $path=$info;
  145. }
  146. $data['path']=$path;
  147. $save=Db::name('posts')->where('id',$data['id'])->update($data);
  148. if($save!==false){
  149. $this->success('保存成功!');
  150. }else{
  151. $this->error('保存失败!');
  152. }
  153. }
  154. // 文章分类删除
  155. public function del(){
  156. $id = input('param.id');
  157. if($id){
  158. $result=Db::name('posts')->delete($id);
  159. if($result){
  160. $this->success('删除成功');
  161. }else{
  162. $this->error('删除失败');
  163. }
  164. }else{
  165. $this->error('数据传入失败!');
  166. }
  167. }
  168. // 文章批量审核或取消审核
  169. public function check(){
  170. $data = input();
  171. foreach ($data['ids'] as $k => $r) {
  172. $save=array();
  173. $save['post_status'] = $data['check'];
  174. Db::name('posts')->where(['id'=>$r])->update($save);
  175. }
  176. $status = true;
  177. if ($status) {
  178. $this->success("操作成功!");
  179. } else {
  180. $this->error("操作失败!");
  181. }
  182. }
  183. // 文章批量置顶或取消置顶
  184. public function tops(){
  185. $data = input();
  186. foreach ($data['ids'] as $k => $r) {
  187. $save=array();
  188. $save['istop'] = $data['top'];
  189. Db::name('posts')->where(['id'=>$r])->update($save);
  190. }
  191. $status = true;
  192. if ($status) {
  193. $this->success("操作成功!");
  194. } else {
  195. $this->error("操作失败!");
  196. }
  197. }
  198. // 文章批量删除
  199. public function deletes(){
  200. $data = input();
  201. foreach ($data['ids'] as $k => $r) {
  202. Db::name('posts')->where(['id'=>$r])->delete();
  203. }
  204. $status = true;
  205. if ($status) {
  206. $this->success("操作成功!");
  207. } else {
  208. $this->error("操作失败!");
  209. }
  210. }
  211. // 文章排序
  212. public function listordersset() {
  213. $ids=$this->request->param('listordersset');
  214. foreach ($ids as $key => $r) {
  215. $data['orderno'] = $r;
  216. Db::name("posts")
  217. ->where(array('id' => $key))
  218. ->update($data);
  219. }
  220. $status = true;
  221. if ($status) {
  222. $this->success("排序更新成功!");
  223. } else {
  224. $this->error("排序更新失败!");
  225. }
  226. }
  227. }