Menu.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php namespace Manage\Lib;
  2. use Dever;
  3. use Dever\Project;
  4. class Menu
  5. {
  6. # 初始化菜单
  7. public function init()
  8. {
  9. $app = Project::read();
  10. foreach ($app as $k => $v) {
  11. $base = $v['path'] . 'table/manage/core.php';
  12. if (is_file($base)) {
  13. $menu = include $base;
  14. if ($menu) {
  15. $this->add($k, $menu);
  16. }
  17. }
  18. }
  19. return 'ok';
  20. }
  21. private function add($app, $menu)
  22. {
  23. foreach ($menu as $k => $v) {
  24. $where = array();
  25. $where['key'] = $app . '/' . $k;
  26. $data = $where;
  27. $data['name'] = $v['name'];
  28. $data['icon'] = $v['icon'];
  29. $data['sort'] = $v['sort'];
  30. if (isset($v['badge'])) {
  31. $data['badge'] = $v['badge'];
  32. }
  33. if (isset($v['link'])) {
  34. $data['link'] = $v['link'];
  35. }
  36. if (isset($v['parent'])) {
  37. if (!strpos($v['parent'], '/')) {
  38. $v['parent'] = $app . '/' . $v['parent'];
  39. }
  40. $data['parent_key'] = $v['parent'];
  41. }
  42. if (isset($v['show'])) {
  43. $data['show'] = $v['show'];
  44. }
  45. Dever::db('menu')->up($where, $data);
  46. }
  47. }
  48. public function getAll()
  49. {
  50. $data = Dever::db('menu')->select(array('parent_key' => '/'));
  51. return $data;
  52. }
  53. }