Category.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. namespace app\admin\controller;
  3. use app\common\controller\Backend;
  4. use app\common\model\Category as CategoryModel;
  5. use fast\Tree;
  6. /**
  7. * 分类管理
  8. *
  9. * @icon fa fa-list
  10. * @remark 用于统一管理网站的所有分类,分类可进行无限级分类
  11. */
  12. class Category extends Backend
  13. {
  14. protected $model = null;
  15. protected $categorylist = [];
  16. protected $noNeedRight = ['selectpage'];
  17. public function _initialize()
  18. {
  19. parent::_initialize();
  20. $this->request->filter(['strip_tags']);
  21. $this->model = model('Category');
  22. $tree = Tree::instance();
  23. $tree->init(collection($this->model->order('weigh desc,id desc')->select())->toArray(), 'pid');
  24. $this->categorylist = $tree->getTreeList($tree->getTreeArray(0), 'name');
  25. $categorydata = [0 => ['type' => 'all', 'name' => __('None')]];
  26. foreach ($this->categorylist as $k => $v)
  27. {
  28. $categorydata[$v['id']] = $v;
  29. }
  30. $this->view->assign("flagList", $this->model->getFlagList());
  31. $this->view->assign("typeList", CategoryModel::getTypeList());
  32. $this->view->assign("parentList", $categorydata);
  33. }
  34. /**
  35. * 查看
  36. */
  37. public function index()
  38. {
  39. if ($this->request->isAjax())
  40. {
  41. $search = $this->request->request("search");
  42. //构造父类select列表选项数据
  43. $list = [];
  44. if ($search)
  45. {
  46. foreach ($this->categorylist as $k => $v)
  47. {
  48. if (stripos($v['name'], $search) !== false || stripos($v['nickname'], $search) !== false)
  49. {
  50. $list[] = $v;
  51. }
  52. }
  53. }
  54. else
  55. {
  56. $list = $this->categorylist;
  57. }
  58. $total = count($list);
  59. $result = array("total" => $total, "rows" => $list);
  60. return json($result);
  61. }
  62. return $this->view->fetch();
  63. }
  64. /**
  65. * Selectpage搜索
  66. *
  67. * @internal
  68. */
  69. public function selectpage()
  70. {
  71. return parent::selectpage();
  72. }
  73. }