/** * Register User * * @param String , $email * @param String , $username * @param String , $password * @param String , $img , image url * @return Boolean */ public function register($email, $username, $password, $imgUrl = false, $is_session = true) { if (empty($email) or empty($password)) { return false; } $email = addslashes($email); $username = addslashes($username); $password = addslashes($password); $arr = array('email' => $email, 'username' => $this->members->escapeString($username), 'password' => md5($this->members->escapeString($password)), 'published' => UPDATE_TIME, 'role_id' => self::ROLE_NORMAL); if ($this->isRegistered($email)) { return false; } if ($userId = $this->members->insert($arr)) { $roles = new RolesControl(); $role = $roles->getRolePermissionForId(self::ROLE_NORMAL); $permission = $role ? $role['permission'] : false; $avatarId = 0; if ($imgUrl) { $coverpath = $this->images->saveWebImageToLocal($imgUrl, $userId, 'head'); if ($coverpath) { $avatarId = $this->images->saveImageMemberFromPath($coverpath, $userId); } } $infoArr = array('id' => $userId, 'avatar_id' => $avatarId, 'ip' => Registry::get('common')->ip()); $this->memberInfo->insert($infoArr); $app = array(); if ($imgUrl and $avatarId) { $images = new ImagesManage(); $cover = $images->getImagesMemberForID($avatarId); if ($cover) { $app['cover_small'] = ImagesManage::getRealCoverSize($cover['path']); $app['cover_medium'] = ImagesManage::getRealCoverSize($cover['path'], "medium"); $app['cover'] = ImagesManage::getRelativeImage($cover['path']); } } if ($is_session) { $app['uid'] = $userId; $app['email'] = $email; $app['username'] = $username; $app['cover'] = false; $app['role_id'] = self::ROLE_NORMAL; $app['permission'] = $permission; $_SESSION['app'] = $app; } return true; } return false; }
public function userAvatarAction($id = false) { $views = $this->getView(); $data = $this->getRequest(); $members = MembersManage::instance(); $app = $members->getCurrentSession(); if (!$app) { exit; } $image = new ImagesManage(); $userControl = new AdminUserManage(); if ($id and $tmp = explode("?", $id)) { $id = $tmp[0]; } $member = new AdminUserManage(); $user = $member->getUserForId($id); $views->assign('user', $user); $views->assign('app', $app); if ($data->isPost()) { switch ($data->getQuery('action')) { case 'upload': if ($file = $data->getQuery('file')) { $avatar_id = $image->saveImagesMemberFromCut($file, $data->getPost('x'), $data->getPost('y'), $data->getPost('width'), $data->getPost('height'), $user['id'], 1, true); if ($avatar_id) { $userControl->updateUser($id, array('avatar_id' => $avatar_id)); ImagesManage::unlink(ImagesManage::getRealPath($file)); } } break; case 'crop': $file = $data->getFiles('picture'); $path = $image->save($file, $user['id'], 'tmp'); $scaled = getimagesize(ImagesManage::getRealPath($path)); if ($scaled[0] >= 800 or $scaled[1] >= 800) { MessageManage::createResponse($views, '上传格式错误', '上传图片格式错误,图片长宽小于 800px。'); ImagesManage::unlink($path); } else { if (!ImagesManage::hasImageType($scaled[2], true)) { MessageManage::createResponse($views, '上传格式错误', '上传图片格式错误,请上传jpg, gif, png格式的文件。'); } } if ($path) { header('Location: /admin/user/avatar/' . $id . '?action=upload&file=' . $path); exit; } break; default: # code... break; } } else { if ($data->getQuery('action') == 'upload') { if ($file = $data->getQuery('file')) { $views->assign('scaled', ImagesManage::getImageSizeForPath($file, 480)); $views->assign('file', ImagesManage::getRelativeImage($file)); $views->assign('tmp', $data->getQuery('file')); $views->display('admin/user/user-avatar-crop-modal.html.twig'); } } else { $memberImage = $image->getImagesMemberForID($id, 1); $coverPath = isset($memberImage['path']) ? ImagesManage::getRelativeImage($memberImage['path']) : false; $views->assign('image', $coverPath); } } $views->assign('title', '编辑用户头像'); $views->display('admin/user/user-avatar-modal.html.twig'); }