phoneapp.mod.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. defined('IN_IA') or exit('Access Denied');
  3. function phoneapp_support_modules() {
  4. global $_W;
  5. load()->model('user');
  6. $modules = user_modules($_W['uid']);
  7. $phoneapp_modules = array();
  8. if (!empty($modules)) {
  9. foreach ($modules as $module) {
  10. if ($module['phoneapp_support'] == MODULE_SUPPORT_PHONEAPP) {
  11. $phoneapp_modules[$module['name']] = $module;
  12. }
  13. }
  14. }
  15. return $phoneapp_modules;
  16. }
  17. function phoneapp_get_some_lastversions($uniacid) {
  18. load()->model('miniapp');
  19. $version_lasts = array();
  20. $uniacid = intval($uniacid);
  21. if (empty($uniacid)) {
  22. return $version_lasts;
  23. }
  24. $version_lasts = table('wxapp_versions')->latestVersion($uniacid);
  25. $last_switch_version = miniapp_last_switch_version($uniacid);
  26. if (!empty($last_switch_version[$uniacid]) && !empty($version_lasts[$last_switch_version[$uniacid]['version_id']])) {
  27. $version_lasts[$last_switch_version[$uniacid]['version_id']]['current'] = true;
  28. } else {
  29. reset($version_lasts);
  30. $firstkey = key($version_lasts);
  31. $version_lasts[$firstkey]['current'] = true;
  32. }
  33. return $version_lasts;
  34. }
  35. function phoneapp_version_by_version($version) {
  36. global $_W;
  37. if (empty($version)) {
  38. return array();
  39. }
  40. $version_info = table('wxapp_versions')->getByUniacidAndVersion($_W['uniacid'], $version);
  41. if (empty($version_info['id'])) {
  42. return array();
  43. } else {
  44. return phoneapp_version($version_info['id']);
  45. }
  46. }
  47. function phoneapp_version($version_id) {
  48. $version_info = array();
  49. $version_id = intval($version_id);
  50. if (empty($version_id)) {
  51. return $version_info;
  52. }
  53. $version_info = table('wxapp_versions')->getById($version_id);
  54. $version_info = table('wxapp_versions')->dataunserializer($version_info);
  55. if (is_array($version_info['modules'])) {
  56. $uni_modules = uni_modules_by_uniacid($version_info['uniacid']);
  57. $uni_modules = array_keys($uni_modules);
  58. foreach ($version_info['modules'] as $i => $module) {
  59. if (!in_array($module['name'], $uni_modules)) {
  60. unset($version_info['modules'][$i]);
  61. continue;
  62. }
  63. $module_info = module_fetch($module['name']);
  64. $module_info['version'] = $module['version'];
  65. $module['uniacid'] = table('uni_link_uniacid')->getMainUniacid($version_info['uniacid'], $module['name'], $version_id);
  66. if (!empty($module['uniacid'])) {
  67. $module_info['uniacid'] = $module['uniacid'];
  68. $link_account = uni_fetch($module['uniacid']);
  69. $module_info['account'] = $link_account->account;
  70. $module_info['account']['logo'] = $link_account->logo;
  71. }
  72. $version_info['modules'][$i] = $module_info;
  73. }
  74. }
  75. return $version_info;
  76. }
  77. function phoneapp_version_all($uniacid) {
  78. load()->model('module');
  79. $phoneapp_versions = array();
  80. $uniacid = intval($uniacid);
  81. if (empty($uniacid)) {
  82. return $phoneapp_versions;
  83. }
  84. $phoneapp_versions = table('wxapp_versions')->getAllByUniacid($uniacid);
  85. if (!empty($phoneapp_versions)) {
  86. foreach ($phoneapp_versions as &$version) {
  87. $version = phoneapp_version($version['id']);
  88. }
  89. }
  90. return $phoneapp_versions;
  91. }