Baidupush.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. namespace addons\baidupush;
  3. use addons\baidupush\library\Push;
  4. use app\common\library\Menu;
  5. use think\Addons;
  6. /**
  7. * 百度推送插件
  8. */
  9. class Baidupush extends Addons
  10. {
  11. /**
  12. * 插件安装方法
  13. * @return bool
  14. */
  15. public function install()
  16. {
  17. $menu = [
  18. [
  19. 'name' => 'baidupush',
  20. 'title' => '百度推送管理',
  21. 'icon' => 'fa fa-paper-plane',
  22. 'sublist' => [
  23. ['name' => 'baidupush/index', 'title' => '查看'],
  24. ['name' => 'baidupush/normal', 'title' => '普通收录提交'],
  25. ['name' => 'baidupush/daily', 'title' => '快速收录提交'],
  26. ]
  27. ]
  28. ];
  29. Menu::create($menu);
  30. return true;
  31. }
  32. /**
  33. * 插件卸载方法
  34. * @return bool
  35. */
  36. public function uninstall()
  37. {
  38. Menu::delete('baidupush');
  39. return true;
  40. }
  41. /**
  42. * 插件启用方法
  43. * @return bool
  44. */
  45. public function enable()
  46. {
  47. Menu::enable('baidupush');
  48. return true;
  49. }
  50. /**
  51. * 插件禁用方法
  52. * @return bool
  53. */
  54. public function disable()
  55. {
  56. Menu::disable('baidupush');
  57. return true;
  58. }
  59. /**
  60. * 实现钩子方法
  61. * @param mixed $params URL数组
  62. * @param null $extra
  63. * @return mixed
  64. */
  65. public function baidupush($params, $extra = null)
  66. {
  67. $config = get_addon_config('baidupush');
  68. $statusArr = explode(',', $config['status']);
  69. $urls = is_string($params) ? [$params] : $params;
  70. $extra = $extra ? $extra : 'urls';
  71. foreach ($statusArr as $index => $item) {
  72. if ($extra == 'urls' || $extra == 'append') {
  73. Push::connect(['type' => $item])->realtime($urls);
  74. } elseif ($extra == 'del' || $extra == 'delete') {
  75. Push::connect(['type' => $item])->delete($urls);
  76. }
  77. }
  78. }
  79. }