module-link-uniacid.ctrl.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  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('module_link_uniacid', 'search_link_account', 'module_unlink_uniacid');
  8. $do = in_array($do, $dos) ? $do : 'module_link_uniacid';
  9. $_W['page']['title'] = '数据同步 - PC - 管理';
  10. $module_table = table('module');
  11. if ($do == 'module_link_uniacid') {
  12. if (checksubmit('submit')) {
  13. $module_name = trim($_GPC['module_name']);
  14. $uniacid = intval($_GPC['uniacid']);
  15. if (empty($module_name) || empty($uniacid)) {
  16. iajax('1', '参数错误!');
  17. }
  18. $module = module_fetch($module_name);
  19. if (empty($module)) {
  20. iajax('1', '模块不存在!');
  21. }
  22. $account_module = pdo_get('uni_account_modules', array('module' => $module_name, 'uniacid' => $_W['uniacid']), array('id', 'settings'));
  23. if (!empty($account_module)) {
  24. $settings = iunserializer($account_module['settings']);
  25. $settings['link_uniacid'] = $uniacid;
  26. pdo_update('uni_account_modules', array('settings' => iserializer($settings)), array('id' => $account_module['id']));
  27. } else {
  28. $settings = array('link_uniacid' => $uniacid);
  29. $data = array(
  30. 'settings' => iserializer($settings),
  31. 'uniacid' => $_W['uniacid'],
  32. 'module' => $module_name,
  33. 'enabled' => STATUS_ON,
  34. );
  35. pdo_insert('uni_account_modules', $data);
  36. }
  37. cache_build_module_info($module_name);
  38. iajax(0, '关联公众号成功');
  39. }
  40. $modules = uni_modules();
  41. foreach ($modules as $key => $value) {
  42. if ($value['wxapp_support'] == MODULE_NONSUPPORT_WXAPP && $value['webapp_support'] == MODULE_NOSUPPORT_WEBAPP || !empty($value['issystem'])) {
  43. unset($modules[$key]);
  44. continue;
  45. }
  46. if (!empty($value['config']) && !empty($value['config']['link_uniacid'])) {
  47. $modules[$key]['link_uniacid_info'] = uni_fetch($value['config']['link_uniacid']);
  48. continue;
  49. }
  50. $link_uniacid_info = $module_table->moduleLinkUniacidInfo($value['name']);
  51. if (empty($link_uniacid_info)) {
  52. continue;
  53. }
  54. foreach ($link_uniacid_info as $info) {
  55. if ($info['settings']['link_uniacid'] == $_W['uniacid']) {
  56. $modules[$key]['other_link'] = uni_fetch($info['uniacid']);
  57. }
  58. }
  59. }
  60. template('webapp/module-link-uniacid');
  61. }
  62. if ($do == 'module_unlink_uniacid') {
  63. $module_name = trim($_GPC['module_name']);
  64. if (empty($module_name)) {
  65. iajax(-1, '参数错误!');
  66. }
  67. $module = module_fetch($module_name);
  68. if (empty($module)) {
  69. iajax(-1, '模块不存在!');
  70. }
  71. $account_module = pdo_get('uni_account_modules', array('module' => $module_name, 'uniacid' => $_W['uniacid']), array('id', 'settings'));
  72. if (!empty($account_module)) {
  73. $settings = iunserializer($account_module['settings']);
  74. if (empty($settings['link_uniacid'])) {
  75. $result = true;
  76. } else {
  77. unset($settings['link_uniacid']);
  78. $data = empty($settings) ? '' : iserializer($settings);
  79. $result = pdo_update('uni_account_modules', array('settings' => $data), array('id' => $account_module['id']));
  80. }
  81. }
  82. if ($result) {
  83. cache_build_module_info($module_name);
  84. iajax(0, '删除成功!', referer());
  85. } else {
  86. iajax(0, '删除失败!', referer());
  87. }
  88. }
  89. if ($do == 'search_link_account') {
  90. $module_name = trim($_GPC['module_name']);
  91. $account_type = intval($_GPC['type']);
  92. if (empty($module_name)) {
  93. iajax(0, array());
  94. }
  95. $module = module_fetch($module_name);
  96. if (empty($module)) {
  97. iajax(0, array());
  98. }
  99. if (!in_array($account_type, array(ACCOUNT_TYPE_APP_NORMAL, ACCOUNT_TYPE_OFFCIAL_NORMAL))) {
  100. iajax(0, array());
  101. }
  102. $have_link_uniacid = array();
  103. $link_uniacid_info = $module_table->moduleLinkUniacidInfo($module_name);
  104. if (!empty($link_uniacid_info)) {
  105. foreach ($link_uniacid_info as $info) {
  106. if (!empty($info['settings']['link_uniacid'])) {
  107. $have_link_uniacid[] = $info['uniacid'];
  108. }
  109. }
  110. }
  111. if ($account_type == ACCOUNT_TYPE_OFFCIAL_NORMAL) {
  112. $account_normal_list = uni_search_link_account($module_name, ACCOUNT_TYPE_OFFCIAL_NORMAL);
  113. $account_auth_list = uni_search_link_account($module_name, ACCOUNT_TYPE_OFFCIAL_AUTH);
  114. $account_list = array_merge($account_normal_list, $account_auth_list);
  115. } else {
  116. $account_list = uni_search_link_account($module_name, $account_type);
  117. }
  118. if (!empty($account_list)) {
  119. foreach ($account_list as $key => $account) {
  120. if (in_array($account['uniacid'], $have_link_uniacid)) {
  121. unset($account_list[$key]);
  122. continue;
  123. }
  124. $account_list[$key]['logo'] = is_file(IA_ROOT . '/attachment/headimg_' . $account['acid'] . '.jpg') ? tomedia('headimg_'.$account['acid']. '.jpg').'?time='.time() : './resource/images/nopic-107.png';
  125. }
  126. }
  127. iajax(0, $account_list);
  128. }