spacecp_magic.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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: spacecp_magic.php 26763 2011-12-22 09:28:20Z chenmengshu $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. $space['credit'] = $space['credits'];
  12. $op = empty($_GET['op']) ? "view" : $_GET['op'];
  13. $mid = empty($_GET['mid']) ? '' : trim($_GET['mid']);
  14. if(!checkperm('allowmagics')) {
  15. showmessage('magic_groupid_not_allowed');
  16. }
  17. if($op == 'cancelflicker') {
  18. $mid = 'flicker';
  19. $_GET['idtype'] = 'cid';
  20. $_GET['id'] = intval($_GET['id']);
  21. $value = C::t('home_comment')->fetch($_GET['id'], $_G['uid']);
  22. if(!$value || !$value['magicflicker']) {
  23. showmessage('no_flicker_yet');
  24. }
  25. if(submitcheck('cancelsubmit')) {
  26. C::t('home_comment')->update('', array('magicflicker'=>0), $_G['uid']);
  27. showmessage('do_success', dreferer(), array(), array('showdialog' => 1, 'closetime' => true));
  28. }
  29. } elseif($op == 'cancelcolor') {
  30. $mid = 'color';
  31. $_GET['id'] = intval($_GET['id']);
  32. $mapping = array('blogid'=>'blogfield', 'tid'=>'thread');
  33. $tablename = $mapping[$_GET['idtype']];
  34. if(empty($tablename)) {
  35. showmessage('no_color_yet');
  36. }
  37. $value = C::t($tablename)->fetch($_GET['id']);
  38. if(!$value || $value['uid'] != $_G['uid'] || !$value['magiccolor']) {
  39. showmessage('no_color_yet');
  40. }
  41. if(submitcheck('cancelsubmit')) {
  42. DB::update($tablename, array('magiccolor'=>0), array($_GET['idtype']=>$_GET[id]));
  43. $feed = C::t('home_feed')->fetch($_GET['id'], $_GET['idtype']);
  44. if($feed) {
  45. $feed['body_data'] = dunserialize($feed['body_data']);
  46. if($feed['body_data']['magic_color']) {
  47. unset($feed['body_data']['magic_color']);
  48. }
  49. $feed['body_data'] = serialize($feed['body_data']);
  50. C::t('home_feed')->update('', array('body_data'=>$feed['body_data']), '', '', $feed['feedid']);
  51. }
  52. showmessage('do_success', dreferer(), 0);
  53. }
  54. } elseif($op == 'receivegift') {
  55. $uid = intval($_GET['uid']);
  56. $mid = 'gift';
  57. $memberfieldhome = C::t('common_member_field_home')->fetch($uid);
  58. $info = $memberfieldhome['magicgift'] ? dunserialize($memberfieldhome['magicgift']) : array();
  59. unset($memberfieldhome);
  60. if(!empty($info['left'])) {
  61. $info['receiver'] = is_array($info['receiver']) ? $info['receiver'] : array();
  62. if(in_array($_G['uid'], $info['receiver'])) {
  63. showmessage('haved_red_bag');
  64. }
  65. $percredit = min($info['left'], $info['percredit']);
  66. $info['receiver'][] = $_G['uid'];
  67. $info['left'] = $info['left'] - $percredit;
  68. C::t('common_member_field_home')->update($uid, array('magicgift' => ($info['left'] > 0 ? serialize($info) : '')));
  69. $credittype = '';
  70. if(preg_match('/^extcredits[1-8]$/', $info['credittype'])) {
  71. $extcredits = str_replace('extcredits', '', $info['credittype']);
  72. updatemembercount($_G['uid'], array($extcredits => $percredit), 1, 'AGC', $info['magicid']);
  73. $credittype = $_G['setting']['extcredits'][$extcredits]['title'];
  74. }
  75. showmessage('haved_red_bag_gain', dreferer(), array('percredit' => $percredit, 'credittype' => $credittype), array('showdialog' => 1, 'locationtime' => true));
  76. }
  77. showmessage('space_no_red_bag', dreferer(), array(), array('showdialog' => 1, 'locationtime' => true));
  78. } elseif($op == 'retiregift') {
  79. $mid = 'gift';
  80. $memberfieldhome = C::t('common_member_field_home')->fetch($_G['uid']);
  81. $info = $memberfieldhome['magicgift'] ? dunserialize($memberfieldhome['magicgift']) : array();
  82. unset($memberfieldhome);
  83. $leftcredit = intval($info['left']);
  84. if($leftcredit<=0) {
  85. C::t('common_member_field_home')->update($_G['uid'], array('magicgift' => ''));
  86. showmessage('red_bag_no_credits');
  87. }
  88. $extcredits = str_replace('extcredits', '', $info['credittype']);
  89. $credittype = $_G['setting']['extcredits'][$extcredits]['title'];
  90. if(submitcheck('cancelsubmit')) {
  91. C::t('common_member_field_home')->update($_G['uid'], array('magicgift' => ''));
  92. if(preg_match('/^extcredits[1-8]$/', $info['credittype'])) {
  93. updatemembercount($_G['uid'], array($extcredits => $leftcredit), 1, 'RGC', $info['magicid']);
  94. }
  95. showmessage('return_red_bag', dreferer(), array('leftcredit' => $leftcredit, 'credittype' => $credittype), array('showdialog' => 1, 'locationtime' => true));
  96. }
  97. }
  98. include_once template('home/spacecp_magic');
  99. ?>