magic_gift.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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: magic_gift.php 26749 2011-12-22 07:38:37Z chenmengshu $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. class magic_gift {
  12. var $version = '1.0';
  13. var $name = 'gift_name';
  14. var $description = 'gift_desc';
  15. var $price = '20';
  16. var $weight = '20';
  17. var $useevent = 0;
  18. var $targetgroupperm = false;
  19. var $copyright = '<a href="http://www.comsenz.com" target="_blank">Comsenz Inc.</a>';
  20. var $magic = array();
  21. var $parameters = array();
  22. function getsetting(&$magic) {
  23. $settings = array();
  24. return $settings;
  25. }
  26. function setsetting(&$magicnew, &$parameters) {
  27. }
  28. function usesubmit() {
  29. global $_G;
  30. $info = array(
  31. 'credits' => intval($_POST['credits']),
  32. 'percredit' => intval($_POST['percredit']),
  33. 'credittype' => $_GET['credittype'],
  34. 'left' => intval($_POST['credits']),
  35. 'magicid' => intval($this->magic['magicid']),
  36. 'receiver' => array()
  37. );
  38. if($info['credits'] < 1) {
  39. showmessage(lang('magic/gift', 'gift_bad_credits_input'));
  40. }
  41. if($info['percredit'] < 1 || $info['percredit'] > $info['credits']) {
  42. showmessage(lang('magic/gift', 'gift_bad_percredit_input'));
  43. }
  44. $member = array();
  45. if(preg_match('/^extcredits[1-8]$/', $info['credittype'])) {
  46. $member = C::t('common_member_count')->fetch($_G['uid']);
  47. if($member[$info['credittype']] < $info['credits']) {
  48. showmessage(lang('magic/gift', 'gift_credits_out_of_own'));
  49. }
  50. $extcredits = str_replace('extcredits', '', $info['credittype']);
  51. updatemembercount($_G['uid'], array($extcredits => -$info['credits']), 1, 'BGC', $this->magic['magicid']);
  52. } else {
  53. showmessage(lang('magic/gift', 'gift_bad_credittype_input'));
  54. }
  55. C::t('common_member_field_home')->update($_G['uid'], array('magicgift' => serialize($info)));
  56. usemagic($this->magic['magicid'], $this->magic['num']);
  57. updatemagiclog($this->magic['magicid'], '2', '1', '0', '0', 'uid', $_G['uid']);
  58. showmessage(lang('magic/gift', 'gift_succeed'), dreferer(), array(), array('alert' => 'right', 'showdialog' => 1, 'locationtime' => true));
  59. }
  60. function show() {
  61. global $_G;
  62. $num = !empty($this->parameters['num']) ? intval($this->parameters['num']) : 10;
  63. magicshowtips(lang('magic/gift', 'gift_info', array('num'=>$num)));
  64. $extcredits = array();
  65. foreach($_G['setting']['extcredits'] as $id => $credit) {
  66. $extcredits['extcredits'.$id] = $credit['title'];
  67. }
  68. $op = 'show';
  69. include template('home/magic_gift');
  70. }
  71. }
  72. ?>