Beispiel #1
0
 public function index()
 {
     // auth
     Util\Auth::isAuthorized($this->signedUser, 'member', true, '/');
     $userForm = new \Rebond\Core\User\Form($this->signedUser, 'user');
     $playerForm = new \Own\Bus\Player\Form($this->player, 'player');
     // action
     $save = Util\Converter::toString('save', 'post');
     if (isset($save)) {
         if ($userForm->setFromPost()->validate()->isValid()) {
             if ($playerForm->setFromPost()->validate()->isValid()) {
                 $resultUpload = Util\Media::upload('avatarIduser', true);
                 if ($resultUpload['result'] == ResultType::ERROR) {
                     Util\Session::set('siteError', $resultUpload['message']);
                 } else {
                     if ($resultUpload['result'] == ResultType::SUCCESS) {
                         $this->signedUser->setAvatarId($resultUpload['mediaId']);
                     }
                     $this->signedUser->save();
                     $this->player->save();
                     Util\Session::siteSuccess('saved', '/profile');
                 }
             } else {
                 Util\Session::set('siteError', $playerForm->getValidation()->getMessage());
             }
         } else {
             Util\Session::set('siteError', $userForm->getValidation()->getMessage());
         }
     }
     // layout
     $tplPlayer = new Util\Template(Util\Template::MODULE, ['bus', 'player']);
     $tplPlayer->set('user', $userForm);
     $tplPlayer->set('player', $playerForm);
     return $this->response('tpl-default', ['title' => Util\Lang::lang('profile')], 'layout-home', ['column1' => $tplPlayer->render('editor')]);
 }
Beispiel #2
0
 public function index()
 {
     // auth
     Auth::isAdminAuthorized($this->signedUser, null, true, '/profile/sign-in');
     // prep
     $save = Converter::string('save', 'post');
     $form = new \Rebond\Core\User\Form($this->signedUser);
     // action
     if (isset($save)) {
         if ($form->setFromPost()->validate()->isValid()) {
             $obj = \Rebond\Util\Media::UploadForm('avatarId');
             if ($obj->result == ResultType::SUCCESS) {
                 $this->signedUser->setAvatarId($obj->id);
             }
             if ($obj->result != ResultType::ERROR) {
                 $this->signedUser->save();
                 Session::adminSuccess('saved', '/profile');
             } else {
                 Session::set('adminError', $obj->message);
             }
         } else {
             Session::set('adminError', $form->getValidation()->getMessage());
         }
     }
     // view
     $this->setTpl();
     $tplMain = new Template(Template::MODULE, ['core', 'user']);
     $tplMain->set('item', $form);
     // layout
     $this->tplLayout->set('column1', $tplMain->render('profile'));
     // master
     $this->tplMaster->set('layout', $this->tplLayout->render('layout-1-col'));
     $this->tplMaster->set('jsLauncher', 'profile');
     return $this->tplMaster->render('tpl-default');
 }
Beispiel #3
0
 public function form()
 {
     $simple = new \Rebond\Bus\Simple\Form();
     $post = Util\Converter::string('send', 'post');
     if (isset($post)) {
         if ($simple->setFromPost()->validate()->isValid()) {
             $result = Util\Media::UploadForm('photoId');
             if ($result->result == ResultType::SUCCESS) {
                 $simple->setPhotoId($result->id);
             }
             if ($result->result != ResultType::ERROR) {
                 $simple->save();
                 Util\Session::set('siteSuccess', 'submitted');
             } else {
                 Util\Session::set('siteError', $result->message);
             }
         } else {
             Util\Session::set('siteError', 'invalid');
         }
     }
     // view
     $this->setTpl();
     // main
     $tplMain = new Util\Template(Util\Template::MODULE, ['bus', 'simple']);
     $tplMain->set('item', $simple);
     // layout
     $this->tplLayout->set('column1', $tplMain->render('form'));
     // template
     $this->tplMaster->set('layout', $this->tplLayout->render('layout-2-col'));
     return $this->tplMaster->render('tpl-default');
 }
Beispiel #4
0
 public function register()
 {
     $signedUser = $this->app->user();
     // auth
     if (Util\Auth::isAuth($signedUser)) {
         header('Location: /profile');
         exit;
     }
     // check
     $user = new \Rebond\Core\User\Model();
     $form = new \Rebond\Core\User\Form($user);
     $tpl = new Util\Template(Util\Template::MODULE, ['app', 'User']);
     // register
     $register = Util\Converter::toString('register', 'post');
     if (isset($register)) {
         if ($form->setFromPost()->validate(['username', 'email', 'password'])->isValid()) {
             $user->setStatus(0);
             $user->setPassword(Util\Security::encryptPassword($user->getPassword()));
             $resultUpload = Util\Media::upload($user->getUsername());
             if ($resultUpload['result'] == ResultType::ERROR) {
                 Util\Session::set('siteError', $resultUpload['message']);
             } else {
                 if ($resultUpload['result'] == ResultType::SUCCESS) {
                     $user->setAvatarId($resultUpload['mediaId']);
                 }
                 $user->save();
             }
             // send email
             if (Mail::register($this->app->site()->getTitle(), $user)) {
                 return $tpl->render('register-success');
             }
             // mail could not be sent
             $user->setStatus(1);
             $userRole = new \Rebond\Core\UserRole\Model();
             $userRole->setUserId($user->getId());
             $userRole->setRoleId(\Rebond\Core\Role\Model::MEMBER);
             $userRole->save();
             return $tpl->render('register-success-nomail');
         } else {
             Util\Session::set('siteError', $form->getValidation()->getMessage());
         }
     }
     // confirm email
     $confirm = Util\Converter::toString('confirm');
     if (isset($confirm)) {
         $signedUser = \Rebond\Core\UserSecurity\Service::getUserBySecure($confirm, \Rebond\Core\UserSecurity\Model::CONFIRM);
         if (isset($signedUser) && $signedUser->getId() != 0) {
             $userRole = new \Rebond\Core\UserRole\Model();
             $userRole->setUserId($signedUser->getId());
             $userRole->setRoleId(\Rebond\Core\Role\Model::MEMBER);
             $userRole->save();
             Util\Session::set('allSuccess', Util\Lang::lang('hi', [$signedUser->getUsername()]));
             Util\Session::set('signedUser', $signedUser->getId());
             $this->app->setUser($signedUser);
             return $tpl->render('register-confirm');
         }
     }
     $tpl->set('item', $form);
     return $tpl->render('register');
 }
Beispiel #5
0
 public function register()
 {
     $signedUser = $this->app->user();
     // auth
     if (Util\Auth::isAuth($signedUser)) {
         header('Location: /profile');
         exit;
     }
     // check
     $user = new \Rebond\Core\User\Model();
     $form = new \Rebond\Core\User\Form($user);
     $tpl = new Util\Template(Util\Template::MODULE, ['app', 'User']);
     // register
     $register = Util\Converter::string('register', 'post');
     if (isset($register)) {
         if ($form->setFromPost()->validate()->isValid()) {
             $user->setStatus(0);
             $user->setPassword(Util\Security::encryptPassword($user->getPassword()));
             $avatarId = Util\Media::generateAvatar($user->getUsername());
             $user->setAvatarId($avatarId);
             $user->save();
             // send email
             if (Mail::register($this->app->site()->getTitle(), $user)) {
                 return $tpl->render('register-success');
             } else {
                 $user->setStatus(1);
                 $user->save();
                 $userRole = new \Rebond\Core\UserRole\Model();
                 $userRole->setUserId($user->getId());
                 $userRole->setRoleId(5);
                 // member
                 $userRole->save();
                 return $tpl->render('register-success-nomail');
             }
         } else {
             Session::set('siteError', $form->getValidation()->getMessage());
         }
     }
     // confirm email
     $confirm = Util\Converter::string('confirm');
     if (isset($confirm)) {
         $signedUser = \Rebond\Core\UserSecurity\Data::loadBySecure($confirm, \Rebond\Core\UserSecurity\Model::CONFIRM);
         if (isset($signedUser) && $signedUser->getId() != 0) {
             $userRole = new \Rebond\Core\UserRole\Model();
             $userRole->setUserId($signedUser->getId());
             $userRole->setRoleId(5);
             // member
             $userRole->save();
             Util\Session::set('allSuccess', Util\Lang::lang('hi', [$signedUser->getUsername()]));
             Util\Session::set('signedUser', $signedUser->getId());
             $this->app->setUser($signedUser);
             return $tpl->render('register-confirm');
         }
     }
     $tpl->set('item', $form);
     return $tpl->render('register');
 }
Beispiel #6
0
 public function edit()
 {
     // auth
     Util\Auth::isAuthorized($this->signedUser, 'member', false, '/profile/sign-in');
     $playerForm = new \Own\Bus\Player\Form($this->player);
     $save = Util\Converter::toString('save', 'post');
     if ($save != '') {
         $properties = ['country', 'hand', 'toss', 'acceptChallenge', 'sendNotificationEmail'];
         $playerForm->setFromPost($properties)->validate($properties);
         $fieldAvatar = Util\Validate::validate('avatar', $playerForm->getModel()->getUser()->getAvatarId(), ['media' => false, 'image' => true]);
         $playerForm->getValidation()->addField($fieldAvatar);
         if (!$playerForm->getValidation()->isValid()) {
             Util\Session::set('siteError', $playerForm->getValidation()->getMessage());
         } else {
             $this->player->save();
             $obj = Util\Media::uploadForm('avatarId');
             if ($obj->result == ResultType::SUCCESS) {
                 $this->signedUser->setAvatarId($obj->id);
             }
             if ($obj->result != ResultType::ERROR) {
                 $this->signedUser->save();
             } else {
                 Util\Session::set('siteError', $obj->message);
             }
             Util\Session::setAndRedirect('siteSuccess', 'Profile saved', '/profile');
         }
     }
     // view
     $this->setTpl();
     // main
     $tplMain = new Util\Template(Util\Template::MODULE, ['bus', 'player']);
     $tplMain->set('item', $playerForm);
     // layout
     $this->tplLayout->set('column1', $tplMain->render('editor-site'));
     // template
     $this->tplMaster->set('layout', $this->tplLayout->render('layout-center'));
     return $this->tplMaster->render('tpl-default');
 }
Beispiel #7
0
 public function renderUsername($withAvatar = false, $withLevel = true, $withLink = true, $withCountry = true)
 {
     $html = '';
     if ($withAvatar) {
         $src = Util\Media::showFromModel($this->getAvatar(), 32, 32);
         $html .= '<img
             src="' . $src . '"
             alt="' . $this->username . '"
             title="' . $this->username . '" /> ';
     }
     if ($withCountry) {
         $html .= '<img
             src="' . \Own\Bus\Country::toArray(false)[$this->getCountry()] . '"
             alt="' . $this->getCountryValue() . '"
             title="' . $this->getCountryValue() . '" /> ';
     }
     if ($withLink) {
         $html .= '<a href="#" class="modal-player" data-id="' . $this->id . '">';
     }
     if ($this->userId != 0) {
         $html .= '<b>' . $this->username . '</b>';
     } else {
         $html .= $this->username;
     }
     if ($withLink) {
         $html .= '</a>';
     }
     if (is_int($withLevel) && $withLevel != 0) {
         $html .= ' <span class="enum level">' . $withLevel . '</span>';
     } else {
         if ($withLevel !== false) {
             $html .= ' <span class="enum level">' . $this->calculateLevel() . '</span>';
         }
     }
     return $html;
 }
Beispiel #8
0
 public static function buildMedia($field, \Rebond\Core\Media\Model $media)
 {
     $html = '<div class="input-media" data-field="' . $field . '">';
     $html .= '<img src="' . \Rebond\Util\Media::showFromModel($media) . '" alt="media" />';
     $html .= '<input type="text" class="input" id="media-' . $field . '" disabled value="' . $media->getTitle() . '">';
     $html .= '<a href="#" class="button media-select" id="media-select-' . $field . '" data-field="' . $field . '">' . Lang::lang('select') . '</a>';
     $html .= '<a href="#" class="button media-clear" id="media-clear-' . $field . '" data-field="' . $field . '">' . Lang::lang('clear') . '</a>';
     $html .= '<input type="hidden" id="' . $field . '" name="' . $field . '" value="' . $media->getId() . '">';
     $html .= '</div>';
     return $html;
 }
Beispiel #9
0
 public function crop()
 {
     // auth
     Auth::isAdminAuthorized($this->signedUser, 'admin.media.crop', true, '/media');
     // action
     $id = Converter::int('id');
     $x = Converter::int('x', 'post');
     $y = Converter::int('y', 'post');
     $w = Converter::int('w', 'post');
     $h = Converter::int('h', 'post');
     $media = \Rebond\Core\Media\Data::loadById($id);
     if (!isset($media)) {
         Session::adminError('itemNotFound', [$id], '/media');
     }
     // action
     if (isset($_POST['save'])) {
         $file = \Rebond\Util\Media::showFromModel($media, 920, 900, \Rebond\Core\RatioType::KEEP_MIN);
         $filename = \Rebond\Util\File::getFilename($file);
         $upload = \Rebond\Util\Media::crop(\Rebond\Config::getPath('media'), $media->getPath(), $filename, $x, $y, $w, $h);
         // add Media
         // copy media by setting MediaId to 0
         $fullPathFile = \Rebond\Config::getPath('media') . $media->getPath() . $upload;
         $media->setId(0);
         $media->setOriginalFilename($upload);
         $media->setWidth($_POST['w']);
         $media->setHeight($_POST['h']);
         $media->setFilesize(filesize($fullPathFile));
         $media->setUpload($upload);
         $media->setCreatedDate('now');
         $media->save();
         Session::adminSuccess('saved', '/media');
     }
     // view
     $this->setTpl();
     // media
     $tplMain = new Template(Template::SITE, ['admin', 'media']);
     $tplMain->set('model', $media);
     // layout
     $this->tplLayout->add('column1', $tplMain->render('crop'));
     //master
     $this->tplMaster->set('layout', $this->tplLayout->render('layout-1-col'));
     $this->tplMaster->set('jsLauncher', 'mediaCrop');
     return $this->tplMaster->render('tpl-default');
 }
Beispiel #10
0
 public function uploadify()
 {
     $json = [];
     $json['result'] = ResultType::ERROR;
     // check
     $id = Converter::int('userId', 'post', 0);
     $this->signedUser = \Rebond\Core\User\Data::loadById($id);
     if (!isset($this->signedUser)) {
         $json['message'] = Lang::lang('accessNonAuthorized');
         return json_encode($json);
     }
     if (!$this->hasPrivilege('admin.media.upload')) {
         return $this->noPrivilege('admin.media.upload');
     }
     $folderId = Converter::int('folderId', 'post');
     $isSelectable = Converter::int('isSelectable', 'post', 1);
     if (!isset($folderId)) {
         $json['message'] = Lang::lang('errorInvalidParameters');
         return json_encode($json);
     }
     $upload = \Rebond\Util\Media::upload('', $_FILES['Filedata']);
     $originalName = $_FILES['Filedata']['name'];
     if ($upload == ResultType::ERROR) {
         $json['message'] = Lang::lang('errorFileUpload', [$originalName]);
         Log::log(Error::MEDIA_NOT_SAVED, $json['message'], __FILE__, __LINE__);
         return json_encode($json);
     }
     list($w, $h) = getimagesize(\Rebond\Config::getPath('media') . $upload);
     $ext = \Rebond\Util\File::getExtension(\Rebond\Config::getPath('media') . $upload);
     $noExt = \Rebond\Util\File::getNoExtension($originalName);
     $media = new \Rebond\Core\Media\Model();
     $media->setFolderId($folderId);
     $media->setTitle($noExt);
     $media->setAlt($noExt);
     $media->setOriginalFilename($originalName);
     $media->setExtension($ext);
     $media->setWidth($w);
     $media->setHeight($h);
     $media->setFilesize(filesize(\Rebond\Config::getPath('media') . $upload));
     $mimeType = new \finfo(FILEINFO_MIME_TYPE);
     $media->setMimetype($mimeType->file(\Rebond\Config::getPath('media') . $upload));
     $media->setUpload($upload);
     $media->setIsSelectable($isSelectable);
     $media->save();
     $json['result'] = ResultType::SUCCESS;
     $json['id'] = $media->getId();
     $json['message'] = Lang::lang('mediaUploaded', [$originalName]);
     return json_encode($json);
 }