subscribe.ctrl.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. /**
  3. * [WeEngine System] Copyright (c) 2014 WE7.CC
  4. * WeEngine is NOT a free software, it under the license terms, visited http://www.we7.cc/ for more details.
  5. */
  6. defined('IN_IA') or exit('Access Denied');
  7. $dos = array('subscribe', 'check', 'ban');
  8. $do = in_array($do, $dos) ? $do : 'subscribe';
  9. load()->model('extension');
  10. load()->model('cache');
  11. if ($do == 'subscribe') {
  12. $_W['page']['title'] = '系统 - 订阅管理';
  13. $modules = pdo_fetchall("SELECT title, name, subscribes FROM ".tablename('modules')." WHERE subscribes <> ''", array(), 'name');
  14. if (!empty($modules)) {
  15. foreach ($modules as $module) {
  16. $module['subscribes'] = unserialize($module['subscribes']);
  17. if (!empty($module['subscribes'])) {
  18. foreach ($module['subscribes'] as $event) {
  19. if ($event == 'text' || $event == 'enter') {
  20. continue;
  21. }
  22. $module_subscribes[$module['name']]= $module['subscribes'];
  23. }
  24. }
  25. }
  26. }
  27. $mtypes = ext_module_msg_types();
  28. $module_ban = $_W['setting']['module_receive_ban'];
  29. if (!is_array($module_ban)) {
  30. $module_ban = array();
  31. }
  32. template('extension/subscribe');
  33. }
  34. if ($do == 'check') {
  35. load()->classs('account');
  36. $modulename = $_GPC['modulename'];
  37. $obj = WeUtility::createModuleReceiver($modulename);
  38. if (empty($obj)) {
  39. exit('error');
  40. }
  41. $obj->uniacid = $_W['uniacid'];
  42. $obj->acid = $_W['acid'];
  43. if(method_exists($obj, 'receive')) {
  44. @$obj->receive();
  45. exit('success');
  46. }
  47. }
  48. if ($do == 'ban') {
  49. $modulename = $_GPC['modulename'];
  50. $ban = $_GPC['ban'];
  51. if (empty($modulename)) {
  52. message('请设置模块名', referer(), 'error');
  53. }
  54. if (!is_array($_W['setting']['module_receive_ban'])) {
  55. $_W['setting']['module_receive_ban'] = array();
  56. }
  57. if (empty($ban)) {
  58. $_W['setting']['module_receive_ban'][$modulename] = $modulename;
  59. } else {
  60. unset($_W['setting']['module_receive_ban'][$modulename]);
  61. }
  62. setting_save($_W['setting']['module_receive_ban'], 'module_receive_ban');
  63. cache_build_module_subscribe_type();
  64. message($module_ban, '', 'ajax');
  65. }