cache_usergroups.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. /**
  3. * [Discuz!] (C)2001-2099 Comsenz Inc.
  4. * This is NOT a freeware, use is subject to license terms
  5. *
  6. * $Id: cache_usergroups.php 32967 2013-03-28 10:57:48Z zhengqingpeng $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. function build_cache_usergroups() {
  12. global $_G;
  13. $data_uf = C::t('common_usergroup_field')->fetch_all_fields(null, array('groupid', 'readaccess', 'allowgetattach', 'allowgetimage', 'allowmediacode', 'maxsigsize', 'allowbegincode'));
  14. foreach(C::t('common_usergroup')->range_orderby_creditshigher() as $key=>$value) {
  15. $group = array_merge(array('groupid' => $value['groupid'], 'type' => $value['type'], 'grouptitle' => $value['grouptitle'], 'creditshigher' => $value['creditshigher'], 'creditslower' => $value['creditslower'], 'stars' => $value['stars'], 'color' => $value['color'], 'icon' => $value['icon'], 'system' => $value['system']), $data_uf[$key]);
  16. if($group['type'] == 'special') {
  17. if($group['system'] != 'private') {
  18. list($dailyprice) = explode("\t", $group['system']);
  19. $group['pubtype'] = $dailyprice > 0 ? 'buy' : 'free';
  20. }
  21. }
  22. unset($group['system']);
  23. $groupid = $group['groupid'];
  24. $group['grouptitle'] = $group['color'] ? '<font color="'.$group['color'].'">'.$group['grouptitle'].'</font>' : $group['grouptitle'];
  25. if($_G['setting']['userstatusby'] == 1) {
  26. $group['userstatusby'] = 1;
  27. } elseif($_G['setting']['userstatusby'] == 2) {
  28. if($group['type'] != 'member') {
  29. $group['userstatusby'] = 1;
  30. } else {
  31. $group['userstatusby'] = 2;
  32. }
  33. }
  34. if($group['type'] != 'member') {
  35. unset($group['creditshigher'], $group['creditslower']);
  36. }
  37. unset($group['groupid']);
  38. $data[$groupid] = $group;
  39. }
  40. savecache('usergroups', $data);
  41. build_cache_usergroups_single();
  42. foreach(C::t('common_admingroup')->range() as $data) {
  43. savecache('admingroup_'.$data['admingid'], $data);
  44. }
  45. }
  46. function build_cache_usergroups_single() {
  47. $pluginvalue = pluginsettingvalue('groups');
  48. $allowthreadplugin = C::t('common_setting')->fetch('allowthreadplugin', true);
  49. $data_uf = C::t('common_usergroup_field')->range();
  50. $data_ag = C::t('common_admingroup')->range();
  51. foreach(C::t('common_usergroup')->range() as $gid => $data) {
  52. $data = array_merge($data, (array)$data_uf[$gid], (array)$data_ag[$gid]);
  53. $ratearray = array();
  54. if($data['raterange']) {
  55. foreach(explode("\n", $data['raterange']) as $rating) {
  56. $rating = explode("\t", $rating);
  57. $ratearray[$rating[0]] = array('isself' => $rating[1], 'min' => $rating[2], 'max' => $rating[3], 'mrpd' => $rating[4]);
  58. }
  59. }
  60. $data['raterange'] = $ratearray;
  61. $data['grouptitle'] = $data['color'] ? '<font color="'.$data['color'].'">'.$data['grouptitle'].'</font>' : $data['grouptitle'];
  62. $data['grouptype'] = $data['type'];
  63. $data['grouppublic'] = $data['system'] != 'private';
  64. $data['groupcreditshigher'] = $data['creditshigher'];
  65. $data['groupcreditslower'] = $data['creditslower'];
  66. $data['maxspacesize'] = intval($data['maxspacesize']) * 1024 * 1024;
  67. $data['allowthreadplugin'] = !empty($allowthreadplugin[$data['groupid']]) ? $allowthreadplugin[$data['groupid']] : array();
  68. $data['plugin'] = $pluginvalue[$data['groupid']];
  69. unset($data['type'], $data['system'], $data['creditshigher'], $data['creditslower'], $data['groupavatar'], $data['admingid']);
  70. savecache('usergroup_'.$data['groupid'], $data);
  71. }
  72. }