User.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. namespace Passport\Src;
  3. use Dever;
  4. use Passport\Src\Lib\Base;
  5. class User extends Base
  6. {
  7. private $user;
  8. public function __construct()
  9. {
  10. parent::__construct();
  11. $this->init();
  12. }
  13. public function init()
  14. {
  15. if (!$this->user) {
  16. $this->user = $this->info();
  17. $url = Dever::url();
  18. if (!$this->user && (strpos($url, 'my/') !== false || strpos($url, 'forum/post') !== false)) {
  19. return Dever::load('passport/login.location');
  20. }
  21. if ($this->user) {
  22. $this->user['msgnum'] = 0;
  23. }
  24. }
  25. return $this->user;
  26. }
  27. public function data()
  28. {
  29. if ($this->user) {
  30. $this->user['link'] = Dever::url('user/info', 'main');
  31. $this->user['link'] = Dever::url('forum/list?uid=' . $this->user['id'], 'main');
  32. }
  33. return $this->user;
  34. }
  35. public function check()
  36. {
  37. if (!$this->user) {
  38. Dever::alert('请先登录', true);
  39. }
  40. }
  41. public function updateInfo()
  42. {
  43. $this->check();
  44. //$update['set_mobile'] = Dever::input('mobile');
  45. $update['set_username'] = Dever::input('username');
  46. $update['set_avatar'] = Dever::input('avatar') ? Dever::input('avatar') . '?v=' . time() : $this->user['avatar'];
  47. $update['where_id'] = $this->user['id'];
  48. $sex = Dever::input('sex');
  49. if ($sex == '男') {
  50. $update['set_sex'] = 1;
  51. } elseif ($sex == '女') {
  52. $update['set_sex'] = 2;
  53. } else {
  54. $update['set_sex'] = 0;
  55. }
  56. if ($update['set_avatar']) {
  57. $update['set_avatar'] = $this->saveAvatar($update['set_avatar']);
  58. }
  59. Dever::load('passport/user-update', $update);
  60. $this->user = $this->save($this->user['id']);
  61. return true;
  62. }
  63. public function updateAvatar()
  64. {
  65. $this->check();
  66. $update['set_avatar'] = Dever::input('avatar') ? Dever::input('avatar') . '?v=' . time() : false;
  67. $update['where_id'] = $this->user['id'];
  68. if ($update['set_avatar']) {
  69. $update['set_avatar'] = $this->saveAvatar($update['set_avatar']);
  70. Dever::load('passport/user-update', $update);
  71. $this->user = $this->save($this->user['id']);
  72. }
  73. return true;
  74. }
  75. public function updateWeixin()
  76. {
  77. $this->check();
  78. Dever::load('passport/user-update', array('where_id' => $this->user['id'], 'set_weixin' => 1));
  79. return true;
  80. }
  81. }