task_promotion.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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: task_promotion.php 24735 2011-10-10 02:45:39Z svn_project_zhangjie $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. class task_promotion {
  12. var $version = '1.0';
  13. var $name = 'promotion_name';
  14. var $description = 'promotion_desc';
  15. var $copyright = '<a href="http://www.comsenz.com" target="_blank">Comsenz Inc.</a>';
  16. var $icon = '';
  17. var $period = '';
  18. var $periodtype = 0;
  19. var $conditions = array(
  20. 'num' => array(
  21. 'title' => 'promotion_complete_var_iplimit',
  22. 'type' => 'text',
  23. 'value' => '',
  24. 'default' => 100,
  25. 'sort' => 'complete',
  26. ),
  27. );
  28. function preprocess($task) {
  29. global $_G;
  30. $promotions = C::t('forum_promotion')->count_by_uid($_G['uid']);
  31. C::t('forum_spacecache')->insert(array(
  32. 'uid' => $_G['uid'],
  33. 'variable' => 'promotion'.$task['taskid'],
  34. 'value' => $promotions,
  35. 'expiration' => $_G['timestamp'],
  36. ), false, true);
  37. }
  38. function csc($task = array()) {
  39. global $_G;
  40. $promotion = C::t('forum_spacecache')->fetch($_G['uid'], 'promotion'.$task['taskid']);
  41. $promotion = $promotion['value'];
  42. $num = C::t('forum_promotion')->count_by_uid($_G['uid']) - $promotion;
  43. $numlimit = C::t('common_taskvar')->get_value_by_taskid($task['taskid'], 'num');
  44. if($num && $num >= $numlimit) {
  45. return TRUE;
  46. } else {
  47. return array('csc' => $num > 0 && $numlimit ? sprintf("%01.2f", $num / $numlimit * 100) : 0, 'remaintime' => 0);
  48. }
  49. }
  50. function sufprocess($task) {
  51. global $_G;
  52. C::t('forum_spacecache')->delete($_G['uid'], 'promotion'.$task['taskid']);
  53. }
  54. }
  55. ?>