AnnController.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php
  2. namespace App\Controllers\Admin;
  3. use App\Models\Ann;
  4. use App\Controllers\AdminController;
  5. use App\Utils\Telegram;
  6. use Ozdemir\Datatables\Datatables;
  7. use App\Utils\DatatablesHelper;
  8. class AnnController extends AdminController
  9. {
  10. public function index($request, $response, $args)
  11. {
  12. $table_config['total_column'] = array("op" => "操作", "id" => "ID",
  13. "date" => "日期", "content" => "内容");
  14. $table_config['default_show_column'] = array("op", "id",
  15. "date", "content");
  16. $table_config['ajax_url'] = 'announcement/ajax';
  17. return $this->view()->assign('table_config', $table_config)->display('admin/announcement/index.tpl');
  18. }
  19. public function create($request, $response, $args)
  20. {
  21. return $this->view()->display('admin/announcement/create.tpl');
  22. }
  23. public function add($request, $response, $args)
  24. {
  25. $ann = new Ann();
  26. $ann->date = date("Y-m-d H:i:s");
  27. $ann->content = $request->getParam('content');
  28. $ann->markdown = $request->getParam('markdown');
  29. if (!$ann->save()) {
  30. $rs['ret'] = 0;
  31. $rs['msg'] = "添加失败";
  32. return $response->getBody()->write(json_encode($rs));
  33. }
  34. Telegram::SendMarkdown("新公告:".PHP_EOL.$request->getParam('markdown'));
  35. $rs['ret'] = 1;
  36. $rs['msg'] = "公告添加成功";
  37. return $response->getBody()->write(json_encode($rs));
  38. }
  39. public function edit($request, $response, $args)
  40. {
  41. $id = $args['id'];
  42. $ann = Ann::find($id);
  43. if ($ann == null) {
  44. }
  45. return $this->view()->assign('ann', $ann)->display('admin/announcement/edit.tpl');
  46. }
  47. public function update($request, $response, $args)
  48. {
  49. $id = $args['id'];
  50. $ann = Ann::find($id);
  51. $ann->content = $request->getParam('content');
  52. $ann->markdown = $request->getParam('markdown');
  53. $ann->date = date("Y-m-d H:i:s");
  54. if (!$ann->save()) {
  55. $rs['ret'] = 0;
  56. $rs['msg'] = "修改失败";
  57. return $response->getBody()->write(json_encode($rs));
  58. }
  59. Telegram::SendMarkdown("公告更新:".PHP_EOL.$request->getParam('markdown'));
  60. $rs['ret'] = 1;
  61. $rs['msg'] = "修改成功";
  62. return $response->getBody()->write(json_encode($rs));
  63. }
  64. public function delete($request, $response, $args)
  65. {
  66. $id = $request->getParam('id');
  67. $ann = Ann::find($id);
  68. if (!$ann->delete()) {
  69. $rs['ret'] = 0;
  70. $rs['msg'] = "删除失败";
  71. return $response->getBody()->write(json_encode($rs));
  72. }
  73. $rs['ret'] = 1;
  74. $rs['msg'] = "删除成功";
  75. return $response->getBody()->write(json_encode($rs));
  76. }
  77. public function ajax($request, $response, $args)
  78. {
  79. $datatables = new Datatables(new DatatablesHelper());
  80. $datatables->query('Select id as op,id,date,content from announcement');
  81. $datatables->edit('op', function ($data) {
  82. return '<a class="btn btn-brand" href="/admin/announcement/'.$data['id'].'/edit">编辑</a>
  83. <a class="btn btn-brand-accent" id="delete" value="'.$data['id'].'" href="javascript:void(0);" onClick="delete_modal_show(\''.$data['id'].'\')">删除</a>';
  84. });
  85. $datatables->edit('DT_RowId', function ($data) {
  86. return 'row_1_'.$data['id'];
  87. });
  88. $body = $response->getBody();
  89. $body->write($datatables->generate());
  90. }
  91. }