Content.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | 海豚PHP框架 [ DolphinPHP ]
  4. // +----------------------------------------------------------------------
  5. // | 版权所有 2016~2017 河源市卓锐科技有限公司 [ http://www.zrthink.com ]
  6. // +----------------------------------------------------------------------
  7. // | 官方网站: http://dolphinphp.com
  8. // +----------------------------------------------------------------------
  9. // | 开源协议 ( http://www.apache.org/licenses/LICENSE-2.0 )
  10. // +----------------------------------------------------------------------
  11. namespace app\cms\admin;
  12. use app\admin\controller\Admin;
  13. use app\common\builder\ZBuilder;
  14. use app\cms\model\Document;
  15. use think\Db;
  16. /**
  17. * 内容控制器
  18. * @package app\cms\admin
  19. */
  20. class Content extends Admin
  21. {
  22. /**
  23. * 空操作,用于显示各个模型的文档列表
  24. * @author 蔡伟明 <314013107@qq.com>
  25. */
  26. public function _empty()
  27. {
  28. cookie('__forward__', $_SERVER['REQUEST_URI']);
  29. $model_name = $this->request->action();
  30. $model = Db::name('cms_model')->where('name', $model_name)->find();
  31. if (!$model) $this->error('找不到该内容');
  32. // 独立模型
  33. if ($model['type'] == 2) {
  34. $table_name = substr($model['table'], strlen(config('database.prefix')));
  35. // 查询
  36. $map = $this->getMap();
  37. $map['trash'] = 0;
  38. // 排序
  39. $order = $this->getOrder('update_time desc');
  40. // 数据列表
  41. $data_list = Db::view($table_name, true)
  42. ->view("cms_column", ['name' => 'column_name'], 'cms_column.id='.$table_name.'.cid', 'left')
  43. ->view("admin_user", 'username', 'admin_user.id='.$table_name.'.uid', 'left')
  44. ->where($map)
  45. ->order($order)
  46. ->paginate();
  47. $trash_count = Db::table($model['table'])->where('trash', 1)->count();
  48. // 自定义按钮
  49. $btnRecycle = [
  50. 'title' => '回收站('.$trash_count.')',
  51. 'icon' => 'fa fa-trash',
  52. 'class' => 'btn btn-info',
  53. 'href' => url('recycle/index', ['model' => $model['id']])
  54. ];
  55. $columns = Db::name('cms_column')->where(['model' => $model['id']])->column('id,name');
  56. // 使用ZBuilder快速创建数据表格
  57. return ZBuilder::make('table')
  58. ->setSearch(['title' => '标题', 'cms_column.name' => '栏目名称']) // 设置搜索框
  59. ->addColumns([ // 批量添加数据列
  60. ['id', 'ID'],
  61. ['title', '标题'],
  62. ['cid', '栏目名称', 'select', $columns],
  63. ['view', '点击量'],
  64. ['username', '发布人'],
  65. ['update_time', '更新时间', 'datetime'],
  66. ['sort', '排序', 'text.edit'],
  67. ['status', '状态', 'switch'],
  68. ['right_button', '操作', 'btn']
  69. ])
  70. ->setTableName($table_name)
  71. ->addTopButton('add', ['href' => url('document/add', ['model' => $model['id']])]) // 添加顶部按钮
  72. ->addTopButton('enable', ['href' => url('document/enable', ['table' => $table_name])]) // 添加顶部按钮
  73. ->addTopButton('disable', ['href' => url('document/disable', ['table' => $table_name])]) // 添加顶部按钮
  74. ->addTopButton('delete', ['href' => url('document/delete', ['table' => $table_name])]) // 添加顶部按钮
  75. ->addTopButton('custom', $btnRecycle) // 添加顶部按钮
  76. ->addRightButton('edit', ['href' => url('document/edit', ['model' => $model['id'], 'id' => '__id__'])]) // 添加右侧按钮
  77. ->addRightButton('delete', ['href' => url('document/delete', ['ids' => '__id__', 'table' => $table_name])]) // 添加右侧按钮
  78. ->addOrder('id,title,cid,view,username,update_time')
  79. ->addFilter('cid', $columns)
  80. ->addFilter(['username' => 'admin_user'])
  81. ->addFilterMap(['cid' => ['model' => $model['id']]])
  82. ->setRowList($data_list) // 设置表格数据
  83. ->fetch(); // 渲染模板
  84. } else {
  85. // 查询
  86. $map = $this->getMap();
  87. $map['cms_document.trash'] = 0;
  88. $map['cms_document.model'] = $model['id'];
  89. // 排序
  90. $order = $this->getOrder('update_time desc');
  91. // 数据列表
  92. $data_list = Document::getList($map, $order);
  93. $columns = Db::name('cms_column')->where(['model' => $model['id']])->column('id,name');
  94. // 使用ZBuilder快速创建数据表格
  95. return ZBuilder::make('table')
  96. ->setSearch(['title' => '标题', 'cms_column.name' => '栏目名称']) // 设置搜索框
  97. ->addColumns([ // 批量添加数据列
  98. ['id', 'ID'],
  99. ['title', '标题'],
  100. ['cid', '栏目名称', 'select', $columns],
  101. ['view', '点击量'],
  102. ['username', '发布人'],
  103. ['update_time', '更新时间', 'datetime'],
  104. ['sort', '排序', 'text.edit'],
  105. ['status', '状态', 'switch'],
  106. ['right_button', '操作', 'btn']
  107. ])
  108. ->setTableName('cms_document')
  109. ->addTopButton('add', ['href' => url('document/add', ['model' => $model['id']])]) // 添加顶部按钮
  110. ->addTopButton('enable', ['href' => url('document/enable', ['table' => 'cms_document'])]) // 添加顶部按钮
  111. ->addTopButton('disable', ['href' => url('document/disable', ['table' => 'cms_document'])]) // 添加顶部按钮
  112. ->addTopButton('delete', ['href' => url('document/delete', ['table' => 'cms_document'])]) // 添加顶部按钮
  113. ->addRightButton('edit', ['href' => url('document/edit', ['id' => '__id__'])]) // 添加右侧按钮
  114. ->addRightButton('delete', ['href' => url('document/delete', ['ids' => '__id__', 'table' => 'cms_document'])]) // 添加右侧按钮
  115. ->addOrder('id,title,cid,view,username,update_time')
  116. ->addFilter('cid', $columns)
  117. ->addFilter(['username' => 'admin_user'])
  118. ->addFilterMap(['cid' => ['model' => $model['id']]])
  119. ->setRowList($data_list) // 设置表格数据
  120. ->fetch(); // 渲染模板
  121. }
  122. }
  123. }