group.ctrl.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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. load()->model('module');
  8. load()->model('user');
  9. load()->model('module');
  10. $dos = array('display', 'delete', 'post', 'save');
  11. $do = !empty($_GPC['do']) ? $_GPC['do'] : 'display';
  12. if (!in_array($_W['role'], array(ACCOUNT_MANAGE_NAME_OWNER, ACCOUNT_MANAGE_NAME_MANAGER, ACCOUNT_MANAGE_NAME_FOUNDER, ACCOUNT_MANAGE_NAME_VICE_FOUNDER))){
  13. itoast('无权限操作!', referer(), 'error');
  14. }
  15. if ($do != 'display' && !in_array($_W['role'], array(ACCOUNT_MANAGE_NAME_FOUNDER, ACCOUNT_MANAGE_NAME_VICE_FOUNDER))) {
  16. itoast('您只有查看权限!', url('module/group'), 'error');
  17. }
  18. if ($do == 'save') {
  19. $modules = empty($_GPC['modules']) ? array() : (array)$_GPC['modules'];
  20. $wxapp = empty($_GPC['wxapp']) ? array() : (array)$_GPC['wxapp'];
  21. $webapp = empty($_GPC['webapp']) ? array() : (array)array_keys($_GPC['webapp']);
  22. $package_info = array(
  23. 'id' => intval($_GPC['id']),
  24. 'name' => $_GPC['name'],
  25. 'modules' => array_merge($modules, $wxapp, $webapp),
  26. 'templates' => $_GPC['templates'],
  27. );
  28. $package_info = module_save_group_package($package_info);
  29. if (is_error($package_info)) {
  30. iajax(1, $package_info['message'], '');
  31. }
  32. iajax(0, '', url('module/group'));
  33. }
  34. if ($do == 'display') {
  35. $_W['page']['title'] = '应用套餐列表';
  36. $param = array('uniacid' => 0);
  37. $modules = user_modules($_W['uid']);
  38. $modules_group_list = uni_groups();
  39. if (!empty($modules_group_list)) {
  40. foreach ($modules_group_list as $group_key => &$group) {
  41. if (!empty($_GPC['name']) && !strexists($group['name'], $_GPC['name'])) {
  42. unset($modules_group_list[$group_key]);
  43. continue;
  44. }
  45. if (empty($group['modules'])) {
  46. $group['modules'] = array();
  47. }
  48. if (!empty($group['wxapp'])) {
  49. $wxapp = $group['wxapp'];
  50. if (is_array($wxapp) && !empty($wxapp)) {
  51. if (!empty($group['wxapp'])) {
  52. foreach ($group['wxapp'] as &$wxapp) {
  53. if (file_exists(IA_ROOT.'/addons/'.$wxapp['name'].'/icon-custom.jpg')) {
  54. $wxapp['logo'] = tomedia(IA_ROOT.'/addons/'.$wxapp['name'].'/icon-custom.jpg');
  55. } else {
  56. $wxapp['logo'] = tomedia(IA_ROOT.'/addons/'.$wxapp['name'].'/icon.jpg');
  57. }
  58. }
  59. unset($wxapp);
  60. }
  61. } else {
  62. $group['wxapp'] = array();
  63. }
  64. }
  65. $group['templates'] = !empty($group['templates']) ? $group['templates'] : array();
  66. }
  67. unset($group);
  68. }
  69. }
  70. if ($do == 'delete') {
  71. $id = intval($_GPC['id']);
  72. if (!empty($id)) {
  73. pdo_delete('uni_group', array('id' => $id));
  74. cache_build_uni_group();
  75. cache_build_account_modules();
  76. }
  77. itoast('删除成功!', referer(), 'success');
  78. }
  79. if ($do == 'post') {
  80. $group_id = intval($_GPC['id']);
  81. $_W['page']['title'] = $group_id ? '编辑应用套餐' : '添加应用套餐';
  82. $group_have_module_app = array();
  83. $group_have_module_wxapp = array();
  84. $group_have_template = array();
  85. $group_have_module_webapp = array();
  86. $group_have_module_phoneapp = array();
  87. if (!empty($group_id)) {
  88. $uni_groups = uni_groups();
  89. $module_group = $uni_groups[$group_id];
  90. $group_have_module_app = empty($module_group['modules']) ? array() : $module_group['modules'];
  91. $group_have_module_wxapp = empty($module_group['wxapp']) ? array() : $module_group['wxapp'];
  92. $group_have_template = empty($module_group['templates']) ? array() : $module_group['templates'];
  93. $group_have_module_webapp = empty($module_group['webapp']) ? array() : $module_group['webapp'];
  94. $group_have_module_phoneapp = empty($module_group['phoneapp']) ? array() : $module_group['phoneapp'];
  95. }
  96. $module_list = user_uniacid_modules($_W['uid']);
  97. $group_not_have_module_app = array();
  98. $group_not_have_module_wxapp = array();
  99. $group_not_have_module_webapp = array();
  100. $group_not_have_module_phoneapp = array();
  101. if (!empty($module_list)) {
  102. foreach ($module_list as $name => $module_info) {
  103. $module_info = module_fetch($name);
  104. if ($module_info['app_support'] == MODULE_SUPPORT_WXAPP && !in_array($name, array_keys($group_have_module_app))) {
  105. if (!empty($module_info['main_module'])) {
  106. if (in_array($module_info['main_module'], array_keys($group_have_module_app))) {
  107. $group_not_have_module_app[$name] = $module_info;
  108. }
  109. } elseif (is_array($module_info['plugin_list']) && !empty($module_info['plugin_list'])) {
  110. $group_not_have_module_app[$name] = $module_info;
  111. foreach ($module_info['plugin_list'] as $plugin) {
  112. if (!in_array($plugin, array_keys($group_have_module_app))) {
  113. $plugin = module_fetch($plugin);
  114. if (!empty($plugin)) {
  115. $group_not_have_module_app[$plugin['name']] = $plugin;
  116. }
  117. }
  118. }
  119. } else {
  120. $group_not_have_module_app[$name] = $module_info;
  121. }
  122. }
  123. if ($module_info['wxapp_support'] == MODULE_SUPPORT_WXAPP && !in_array($name, array_keys($group_have_module_wxapp))) {
  124. $group_not_have_module_wxapp[$name] = $module_info;
  125. }
  126. if ($module_info['webapp_support'] == MODULE_SUPPORT_WEBAPP && !in_array($name, array_keys($group_have_module_webapp))) {
  127. $group_not_have_module_webapp[$name] = $module_info;
  128. }
  129. if ($module_info['phoneapp_support'] == MODULE_SUPPORT_PHONEAPP && !in_array($name, array_keys($group_have_module_phoneapp))) {
  130. $group_not_have_module_phoneapp[$name] = $module_info;
  131. }
  132. }
  133. }
  134. if (user_is_vice_founder($_W['uid'])) {
  135. $template_list = user_founder_templates($_W['user']['groupid']);
  136. } else {
  137. $template_list = pdo_getall('site_templates', array(), array(), 'name');
  138. }
  139. $group_not_have_template = array(); if (!empty($template_list)) {
  140. foreach ($template_list as $template) {
  141. if (!in_array($template['name'], array_keys($group_have_template))) {
  142. $group_not_have_template[$template['name']] = $template;
  143. }
  144. }
  145. }
  146. }
  147. template('module/group');