Famysql.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. namespace addons\famysql;
  3. use app\common\library\Menu;
  4. use app\admin\model\AuthRule;
  5. use think\Addons;
  6. /**
  7. * Famysql插件
  8. */
  9. class Famysql extends Addons
  10. {
  11. /**
  12. * 插件安装方法
  13. * @return bool
  14. */
  15. public function install()
  16. {
  17. $menu = [];
  18. $config_file = ADDON_PATH . "famysql" . DS . 'data' . DS . "menu.php";
  19. if (is_file($config_file)) {
  20. $menu = include $config_file;
  21. }
  22. if ($menu) {
  23. Menu::create($menu);
  24. }
  25. return true;
  26. }
  27. /**
  28. * 插件卸载方法
  29. * @return bool
  30. */
  31. public function uninstall()
  32. {
  33. AuthRule::destroy($this->getIds());
  34. return true;
  35. }
  36. /**
  37. * 插件启用方法
  38. */
  39. public function enable()
  40. {
  41. AuthRule::where('id', 'in', $this->getIds())->update(['status' => 'normal']);
  42. return true;
  43. }
  44. /**
  45. * 插件禁用方法
  46. */
  47. public function disable()
  48. {
  49. AuthRule::where('id', 'in', $this->getIds())->update(['status' => 'hidden']);
  50. return true;
  51. }
  52. /**
  53. * 插件升级方法
  54. */
  55. public function upgrade()
  56. {
  57. AuthRule::destroy($this->getIds());
  58. $menu = [];
  59. $config_file = ADDON_PATH . "famysql" . DS . 'data' . DS . "menu.php";
  60. if (is_file($config_file)) {
  61. $menu = include $config_file;
  62. }
  63. if ($menu) {
  64. Menu::create($menu);
  65. AuthRule::where('id', 'in', $this->getIds())->update(['status' => 'hidden']);
  66. }
  67. return true;
  68. }
  69. private function getIds()
  70. {
  71. $ids = AuthRule::where('name', 'like', "famysql%")->column('id');
  72. return $ids;
  73. }
  74. }