[289] | 1 | <?php |
---|
| 2 | |
---|
| 3 | class userBase { |
---|
| 4 | |
---|
| 5 | const MAX_PLUS_POINT = 30; |
---|
| 6 | |
---|
| 7 | protected $user; |
---|
| 8 | |
---|
| 9 | public function userBase($user) { |
---|
| 10 | $this->user = $user; |
---|
| 11 | } |
---|
| 12 | |
---|
| 13 | public function getTitle() { |
---|
| 14 | return ''; |
---|
| 15 | } |
---|
| 16 | |
---|
| 17 | public function getAvatar($type = 'avatar', $options = array()) { |
---|
| 18 | $avatar = $this->user->getUsAvatar(); |
---|
| 19 | if (strpos($avatar, ':') !== false) { |
---|
| 20 | $avatars = unserialize($avatar); |
---|
| 21 | $avatar = $avatars[($type=='avatar'? 0: 1)][0]; |
---|
| 22 | } |
---|
| 23 | if ($avatar == null) { |
---|
| 24 | $mf = ($this->user->getUsSex()==2? 'f': ''); |
---|
| 25 | $avatar = "no_$type$mf.jpg"; |
---|
| 26 | } |
---|
| 27 | return image_tag(sfConfig::get('app_thumbnail_root').$this->getAvatarPath($type, false).$avatar, $options); |
---|
| 28 | } |
---|
| 29 | |
---|
| 30 | public function getHtmlName($avatar = false, $homepage = false) { |
---|
| 31 | if ($this->user->getUsId() == null) return "KhÎng rõ"; |
---|
| 32 | $html = ''; |
---|
| 33 | $link = '/user/show?id='.$this->user->getUsId(); |
---|
| 34 | if ($avatar) { |
---|
| 35 | $avalink = link_to($this->getAvatar('avatar', array('style'=>'float:left', 'width'=>'30px', 'height'=>30)), $link); |
---|
| 36 | $html .= content_tag('div', $avalink, array('class'=>'ava')); |
---|
| 37 | } |
---|
| 38 | $html .= link_to($this->user->getUsFullname(), $link); |
---|
| 39 | if ($homepage) { |
---|
| 40 | $url = $this->user->getUsHomepage(); |
---|
| 41 | if ($url) $html .= ' ('.link_to('trang riêng', $url).')'; |
---|
| 42 | } |
---|
| 43 | return $html; |
---|
| 44 | } |
---|
| 45 | |
---|
| 46 | public function getAvatarPath($type = 'avatar', $absolute = true) { |
---|
| 47 | return sfConfig::get($absolute? 'sf_upload_dir': 'sf_upload_dir_name')."/thumbnails/$type/"; |
---|
| 48 | } |
---|
| 49 | |
---|
| 50 | public function SaveAvatar($action) { |
---|
| 51 | $us_id = $this->user->getUsId(); |
---|
| 52 | $avatar = $us_id.'.jpg'; |
---|
| 53 | $this->user->setUsAvatar($avatar); |
---|
| 54 | $fileName1 = $this->getAvatarPath('avatar').$avatar; |
---|
| 55 | $fileName2 = $this->getAvatarPath('photo').$avatar; |
---|
| 56 | |
---|
| 57 | $tempFile = $action->getRequest()->CopyTempFile($action->uploaded, "user_{$us_id}_picture.jpg"); |
---|
| 58 | list($width, $height) = @getimagesize($tempFile); |
---|
| 59 | if ($width/$height < 163/187) myUtility::SizeImage(150, 200, $tempFile, $fileName2); |
---|
| 60 | else if ($width/$height > 187/163) myUtility::SizeImage(200, 150, $tempFile, $fileName2); |
---|
| 61 | else myUtility::SizeImage(175, 175, $tempFile, $fileName2); |
---|
| 62 | myUtility::SizeImage(60, 60, $tempFile, $fileName1); |
---|
| 63 | myUtility::track_upload($fileName1, 'thumbnails'); |
---|
| 64 | myUtility::track_upload($fileName2, 'thumbnails'); |
---|
| 65 | unlink($tempFile); |
---|
| 66 | } |
---|
| 67 | |
---|
| 68 | public function checkUserLock() { |
---|
| 69 | /* |
---|
| 70 | if (sfContext::getInstance()->getRequest()->getCookie('vol_lock')==1) { |
---|
| 71 | throw new Exception('Máy tÃnh nà y Äã bá» khóa truy cáºp'); |
---|
| 72 | } |
---|
| 73 | */ |
---|
| 74 | |
---|
| 75 | // Check whether user can signIn or not |
---|
| 76 | switch ($this->user->getUsStatus()) { |
---|
| 77 | case 4: |
---|
| 78 | case 5: |
---|
| 79 | case 6: |
---|
| 80 | case 7: |
---|
| 81 | if (strtotime($this->user->getUsLastvisited()) > time()) { |
---|
| 82 | throw new Exception('Tà i khoản nà y bá» khóa Äến '.$this->user->getUsLastvisited('H:i d-m-Y')); |
---|
| 83 | } |
---|
| 84 | else $this->user->setUsStatus($this->user->getUsStatus() - 4); |
---|
| 85 | break; |
---|
| 86 | case 8: |
---|
| 87 | sfContext::getInstance()->getResponse()->setCookie('vol_lock', 1, time() + 86400*5); |
---|
| 88 | throw new Exception('Tà i khoản nà y Äã bá» khóa vÄ©nh viá»
n'); |
---|
| 89 | break; |
---|
| 90 | } |
---|
| 91 | |
---|
| 92 | sfDatabaseSessionStorage::kickUserByName($this->user->getUsUsername()); |
---|
| 93 | } |
---|
| 94 | |
---|
| 95 | public function onLogin() { |
---|
| 96 | // cá»ng Äiá»m trong lần ÄÄng nháºp Äầu tiên cá»§a tuần |
---|
| 97 | $lastvisited = $this->user->getUsLastvisited(); |
---|
| 98 | if ($lastvisited != null && date("W", strtotime($lastvisited)) != date("W")) { |
---|
| 99 | $maxPlus = self::MAX_PLUS_POINT; |
---|
| 100 | $download = explode(',', $this->user->getUsDownload()); |
---|
| 101 | $plus = min(intval($download[0]), $maxPlus); |
---|
| 102 | $plus = max($plus, $maxPlus - $this->user->getUsScore()); |
---|
| 103 | $this->user->setUsPointPlus($this->user->getUsPointPlus() + $plus); |
---|
| 104 | $this->user->setUsScore($this->user->getUsScore() + $plus); |
---|
| 105 | $download[0] = 0; |
---|
| 106 | $this->user->setUsDownload(implode(',', $download)); |
---|
| 107 | } |
---|
| 108 | |
---|
| 109 | $this->user->setUsLastvisited(date('Y-m-d H:i:s')); |
---|
| 110 | $this->user->save(); |
---|
| 111 | myUtility::log('['.$this->user->getUsId().']: '.myUtility::getRealIpAddr(), 'login.log'); |
---|
| 112 | } |
---|
| 113 | |
---|
| 114 | public static function getUserObject($user) { |
---|
| 115 | $tblcheckinfo = $user->getTblblogcheckinfo(); |
---|
| 116 | if (!$tblcheckinfo) return new userBase($user); |
---|
| 117 | |
---|
| 118 | $position = $tblcheckinfo->getCiPosition(); |
---|
| 119 | if ($position < 40) return new userTeacher($user); |
---|
| 120 | else return new userBase($user); |
---|
| 121 | } |
---|
| 122 | } |
---|