magic_checkonline.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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_checkonline.php 29373 2012-04-09 07:55:30Z chenmengshu $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. class magic_checkonline {
  12. var $version = '1.0';
  13. var $name = 'checkonline_name';
  14. var $description = 'checkonline_desc';
  15. var $price = '10';
  16. var $weight = '10';
  17. var $useevent = 1;
  18. var $targetgroupperm = true;
  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. }
  24. function setsetting(&$magicnew, &$parameters) {
  25. }
  26. function usesubmit() {
  27. global $_G;
  28. if(empty($_GET['username'])) {
  29. showmessage(lang('magic/checkonline', 'checkonline_info_nonexistence'));
  30. }
  31. $member = getuserinfo($_GET['username']);
  32. $this->_check($member['groupid']);
  33. $online = C::app()->session->fetch_by_uid($member['uid']);
  34. usemagic($this->magic['magicid'], $this->magic['num']);
  35. updatemagiclog($this->magic['magicid'], '2', '1', '0', 0, 'uid', $member['uid']);
  36. if($member['uid'] != $_G['uid']) {
  37. notification_add($member['uid'], 'magic', lang('magic/checkonline', 'checkonline_notification'), array('magicname' => $this->magic['name']), 1);
  38. }
  39. if($online) {
  40. $time = dgmdate($online['lastactivity'], 'u');
  41. if($online['invisible']) {
  42. showmessage(lang('magic/checkonline', 'checkonline_hidden_message'), '', array('username' => $_GET['username'], 'time' => $time), array('alert' => 'info', 'showdialog' => 1));
  43. } else {
  44. showmessage(lang('magic/checkonline', 'checkonline_online_message'), '', array('username' => $_GET['username'], 'time' => $time), array('alert' => 'info', 'showdialog' => 1));
  45. }
  46. } else {
  47. showmessage(lang('magic/checkonline', 'checkonline_offline_message'), '', array('username' => $_GET['username']), array('alert' => 'info', 'showdialog' => 1));
  48. }
  49. }
  50. function show() {
  51. global $_G;
  52. $user = !empty($_GET['id']) ? dhtmlspecialchars($_GET['id']) : '';
  53. if($user) {
  54. $member = getuserinfo($user);
  55. $this->_check($member['groupid']);
  56. }
  57. magicshowtype('top');
  58. magicshowsetting(lang('magic/checkonline', 'checkonline_targetuser'), 'username', $user, 'text');
  59. magicshowtype('bottom');
  60. }
  61. function buy() {
  62. global $_G;
  63. if(!empty($_GET['id'])) {
  64. $member = getuserinfo($_GET['id']);
  65. $this->_check($member['groupid']);
  66. }
  67. }
  68. function _check($groupid) {
  69. if(!checkmagicperm($this->parameters['targetgroups'], $groupid)) {
  70. showmessage(lang('magic/checkonline', 'checkonline_info_noperm'));
  71. }
  72. }
  73. }
  74. ?>