/** * Metodo para trocar a entidadeAtiva atual * @param $id Id da entidade a ser acessada * @param $tipo Tipo da entidade (ong|empresa|perfil) */ public function getAcessarcomo($id, $tipo) { $entidadeAtiva_id = $id; $entidadeAtiva_tipo = $tipo; if ($entidadeAtiva_tipo && $entidadeAtiva_id) { $entidadeExiste = false; switch ($entidadeAtiva_tipo) { case 'ong': # Retorna a ong na lista de ongs do usuario, ou o perfil $ong = Ong::find($entidadeAtiva_id); $entidadeExiste = $ong && Auth::user()->ongs->find($id) ? true : false; break; case 'empresa': # Retorna a empresa na lista de empresas do usuario, ou o perfil $empresa = Empresa::find($entidadeAtiva_id); $entidadeExiste = $empresa && Auth::user()->empresas->find($id) ? true : false; break; case 'perfil': # Retorna a empresa na lista de empresas do usuario, ou o perfil $perfil = Perfil::find($entidadeAtiva_id); $entidadeExiste = $perfil && Auth::user()->perfil->id == $id ? true : false; break; default: break; } if ($entidadeExiste) { Session::put('entidadeAtiva_id', $entidadeAtiva_id); Session::put('entidadeAtiva_tipo', $entidadeAtiva_tipo); } return redirect('conectar'); } }
/** * Create a new user instance after a valid registration. * * @param array $data * @return User */ public function create(array $data) { $nome = ucwords(strtolower($data['username'])); $sobrenome = ucwords(strtolower($data['username_last'])); //Criando perfil, usando dos atributos dentro de fillable[] $user = User::create(['username' => $nome, 'email' => $data['email'], 'genero' => $data['genero'], 'password' => bcrypt($data['password'])]); //Criando perfil usando as informações da tela de registro. $perfil = new Perfil(); $perfil->user_id = $user->id; $perfil->nome_completo = $nome . ' ' . $sobrenome; $perfil->apelido = $nome; $perfil->aniversario = Carbon::createFromFormat('d/m/Y', $data['aniversario']); $perfil->save(); //Criando uma prettyUrl para o novo usuario (username_currentTimestamp) $prettyUrl = new PrettyUrl(); $prettyUrl->url = str_replace(" ", "", $user->username) . '_' . Carbon::now()->getTimestamp(); $prettyUrl->tipo = 'usuario'; $perfil->prettyUrl()->save($prettyUrl); // Envia um email de boas vindas Mail::send('emails.bemvindo', ['user' => $user], function ($message) use($user) { $message->to($user->email, $user->username)->subject('Bem vindo à Vivalá'); $message->from('*****@*****.**', 'Vivalá'); }); // Faz um post de criação de perfil numerado caso seja < 300 // e não numerado (só com o welcome) caso seja > 300 if ($user->genero == 'fb.female' || $user->genero == 'feminino') { $welcome = "Bem vinda!"; } else { $welcome = "Bem vindo!"; } $novoPost = new Post(); if ($perfil->id <= 300) { $novoPost->descricao = "<h1><i class='fa fa-star'></i></h1>" . $perfil->apelido . " é a " . $perfil->id . "ª pessoa a se juntar à Vivalá. " . $welcome; } else { $novoPost->descricao = "<h1><i class='fa fa-star'></i></h1>" . $perfil->apelido . " se juntou à Vivalá. " . $welcome; } $novoPost->tipo_post = 'acontecimento'; $novoPost->relevancia = 999; $novoPost->relevancia_rate = 10; //Salvando novoPost para entidadeAtiva $perfil->posts()->save($novoPost); return $user; }
/** * Estabele a relação de seguir um perfil * @param String $id Id do perfil a ser seguido * @return JSON Resultado da requisicao */ public function getFollowperfil($id) { //$entidadeAtiva do usuario logado. $entidadeAtiva = Auth::user()->entidadeAtiva; $perfil = Perfil::findOrFail($id); //se ja nao seguir esse perfil if (!$entidadeAtiva->followPerfil->find($perfil->id)) { $entidadeAtiva->followPerfil()->attach($perfil->id); $entidadeAtiva->push(); //Criando nova notificacao $novaNotificacao = Notificacao::create(['titulo' => 'Voce tem um novo seguidor', 'mensagem' => $entidadeAtiva->apelido . ' agora está te seguindo e vai receber seus posts', 'tipo_notificacao' => 'seguidor', 'url' => $entidadeAtiva->getUrl()]); //associando a entidadeAtiva com o from e o $perfil seguido como target $entidadeAtiva->fromNotificacoes()->save($novaNotificacao); $perfil->notificacoes()->save($novaNotificacao); $novaNotificacao->push(); } $return['success'] = true; return json_encode($return); }
/** * Retorna a sugestão de seguidores * * @param [integer] id do post * @return */ public function getViajantes($filtro = "amigo") { $user = Auth::user(); $entidadeAtiva = $user->entidadeAtiva; $entidadeAtiva = $user->entidadeAtiva; $perfil = $entidadeAtiva; $follow = $perfil->followPerfil; $followedBy = $perfil->followedByPerfil; if ($filtro == "amigo") { $sugestoes = $entidadeAtiva->sugestaoByAmigosEmComum; } else { if ($filtro == "seguindo") { $sugestoes = $entidadeAtiva->sugestaoBySeguindoEmComum; } else { if ($filtro == "numseguidores") { $sugestoes = Perfil::getMaisSeguidos($entidadeAtiva); } } } return view('conectar.sugestoes.index', compact('sugestoes', 'perfil', 'follow', 'followedBy', 'filtro', 'user', 'entidadeAtiva')); }
/** * Metodo para se recuperar a entidade que tem o $id passado por parametro * OBS: necessita do input hidden tipoEntidade; */ public function getEntidade($id) { $tipoEntidade = Input::get('tipoEntidade', ''); switch ($tipoEntidade) { case 'App\\Perfil': $entidade = Perfil::findOrFail($id); break; case 'App\\Ong': $entidade = Ong::findOrFail($id); break; case 'App\\Empresa': $entidade = Empresa::findOrFail($id); break; case 'App\\Post': $entidade = Post::findOrFail($id); break; default: $entidade = ''; // Se nao encontrar nenhuma entidade, quebrar? // App::abort(500, 'Entidade nao identificada'); break; } return $entidade ? $entidade : false; }
/** * Acessor para pegar uma Collection de Perfil ordenados pela quantidade de seguindo em comum * @return Collection */ public function getSugestaoBySeguindoEmComumAttribute() { //Collection com todos os perfils que eu nao sigo $colNaoSeguindo = Perfil::all()->diff($this->followPerfil)->diff([$this]); $seguindo = $this->followPerfil; foreach ($colNaoSeguindo as $key => $perfil) { //Se esse perfil seguir outras pessoas, checo so seguindo desse perfil $seguindoDessePerfil = $perfil->followPerfil; if ($seguindoDessePerfil) { $seguindoEmComum = $seguindoDessePerfil->intersect($seguindo); } //Adicionando o parametro quantidadeSeguidores em comum em cada perfil da collection $perfilRetorno = $colNaoSeguindo->find($perfil->id); if ($perfilRetorno) { $perfilRetorno->quantidadeSeguindoEmComum = count($seguindoEmComum); } } //Ordenando a collection $colNaoSeguindo = $colNaoSeguindo->sortBy(function ($item) { return $item->quantidadeSeguindoEmComum; })->reverse(); return $colNaoSeguindo; }
public function getSugestoesViajantes($view) { $sugestoesViajantes = Perfil::getMaisSeguidos(Auth::user()->entidadeAtiva); $view->with('sugestoesViajantes', $sugestoesViajantes); }
public function run() { DB::table('fotos')->delete(); $zordPerfil = Perfil::find(2); $fotoZord = new Foto(); $fotoZord->tipo = 'avatar'; $fotoZord->path = 'https://avatars1.githubusercontent.com/u/9811888?v=3&s=400'; $zordPerfil->fotos()->save($fotoZord); }
/** * Se nao encontrar, cria um novo usuario e redireciona-o para o quiz * @return User | Redirect */ private function findByEmailOrCreate($userData) { //Procura/Cria o usuário com base no email cadastrado no Fb $user = User::where('email', '=', $userData->email)->first(); $this->criouNovoUsuario = $user == null; //Se for um novo usuario if ($this->criouNovoUsuario) { $user = User::firstOrCreate(['email' => $userData->email]); //Atualiza o usuário com os dados do Fb $user->username = $userData->name; //Usando do translate do Laravel. $user->genero = trans("fb." . $userData->{'user'}['gender']); $user->fb_token = $userData->token; $user->save(); //criando perfil para usuario $perfil = new Perfil(); $perfil->nome_completo = $userData->name; $perfil->genero = trans("fb." . $userData->{'user'}['gender']); $perfil->apelido = $userData->{'user'}['first_name']; $perfil->user_id = $user->id; $perfil->save(); // Faz um post de criação de perfil numerado caso seja < 300 // e não numerado (só com o welcome) caso seja > 300 if ($user->genero == 'fb.female' || $user->genero == 'feminino') { $welcome = "Bem vinda!"; } else { $welcome = "Bem vindo!"; } $novoPost = new Post(); if ($perfil->id <= 300) { $novoPost->descricao = "<h1><i class='fa fa-star'></i></h1>" . $perfil->apelido . " é a " . $perfil->id . "ª pessoa a se juntar à Vivalá. " . $welcome; } else { $novoPost->descricao = "<h1><i class='fa fa-star'></i></h1>" . $perfil->apelido . " se juntou à Vivalá. " . $welcome; } $novoPost->tipo_post = 'acontecimento'; $novoPost->relevancia = 999; $novoPost->relevancia_rate = 10; //Salvando novoPost para entidadeAtiva $perfil->posts()->save($novoPost); /** * * Criando uma prettyUrl para o novo usuario (username_currentTimestamp) */ $prettyUrl = new PrettyUrl(); $prettyUrl->url = $user->username . '_' . Carbon::now()->getTimestamp(); $prettyUrl->tipo = 'usuario'; $perfil->prettyUrl()->save($prettyUrl); // Envia um email de boas vindas Mail::send('emails.bemvindo', ['user' => $user], function ($message) use($user) { $message->to($user->email, $user->username)->subject('Bem vindo à Vivalá'); $message->from('*****@*****.**', 'Vivalá'); }); $fotoPerfil = new Foto(['path' => $userData->avatar_original, 'tipo' => 'avatar']); $perfil->fotos()->save($fotoPerfil); //Caso o usuario ja exista, só ainda nao tinha feito login com o facebook } else { $perfil = $user->perfil; } //Atualiza a tabela de dados do Fb $facebookData = $user->facebookData ? $user->facebookData : new FacebookData(); if (isset($userData->user_birthday)) { $facebookData->user_birthday = $userData->user_birthday; } if (isset($userData->user_hometown)) { $facebookData->user_hometown = $userData->user_hometown; } if (isset($userData->user_likes)) { $facebookData->user_likes = $userData->user_likes; } if (isset($userData->user_location)) { $facebookData->user_location = $userData->user_location; } $user->facebookData()->save($facebookData); return $user; }
/** * Retorna sugestoes de ongs que o usuario nao esteja seguindo. * @param Perfil|Ong|Empresa $entidadeAtiva * @return Collection Collection de ongs para sugestao */ public static function getSugestoes($entidadeAtiva) { //ongs que nao sejam minhas $result = Ong::whereNotIn('user_id', [$entidadeAtiva->user->id])->whereNotIn('id', $entidadeAtiva->followOng()->lists('id'))->limit(3)->get(); return $result; }
public function perfilDelete() { $perfil = Perfil::find(Input::get('Id')); $txtUsuario = $perfil->perfil; //cambio el campo status = 0 $perfil->status = 0; if ($perfil->save()) { echo "Perfil " . $txtUsuario . " borrado."; } else { echo "Perfil " . $txtUsuario . " NO ha sido borrado."; } }
/** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function perfilView() { $perfiles = Perfil::all(); return view('asignarPerfil')->with('perfiles', $perfiles); }
/** * Recebe por POST o $id do Perfil e faz update das informações do perfil */ public function postContemais($id, QuizConteMaisRequest $request) { $perfil = Perfil::findOrFail($id); $perfil->update($request->all()); $perfil->push(); }
public function usuariosMain() { //control de sesion $admin = new adminController(); if (!$admin->getControl()) { return redirect('admin')->with('login_errors', '<font color="#ff0000">La sesión a expirado. Vuelva a logearse..</font>'); } $OK = $admin->opcion_perfiles('menuUsuario', Session::get('idPerfil')); if ($OK === true) { //listado de los usuarios actuales $arResult = Usuario::where('status', '=', '1')->get(); //listado de empresas $listEmpresas = Empresa::all(); //listado de los perfiles actuales $listPerfiles = Perfil::where('status', '=', '1')->get(); return view('admin.usuariosMain')->with('arResult', $arResult)->with('listEmpresas', $listEmpresas)->with('listPerfiles', $listPerfiles); } else { return view('admin.main')->with('errores', 'Usted no tiene suficientes permisos para esta opción'); } }
/** * Seta o like da entidadeAtiva atual para um post específico * * @param [integer] id do post * @return */ public function getSetapoiador($id) { $perfil = Perfil::findOrFail($id); if (Auth::user()->isAdmin()) { if ($perfil->apoiador == 'B') { $perfil->apoiador = null; } else { $perfil->apoiador = 'B'; } $perfil->push(); } return 'success'; }
public function asigperfilesActualizar(Request $request) { //echo $request->op_1_2;die; //control de sesion $admin = new adminController(); if (!$admin->getControl()) { return redirect('admin')->with('login_errors', '<font color="#ff0000">La sesión a expirado. Vuelva a logearse..</font>'); } //listamos los perfiles $listPerfiles = Perfil::where('status', '=', '1')->get(); //listamos las opciones de los perfiles $listOpciones = OpcionPerfiles::all(); //recojo los datos del request // hago dos bucles, el externo recorre las opciones y el interno los perfiles //asi genero la tabla (array) de todas las opciones foreach ($listOpciones as $opcion) { $listPerfilesNuevos = ""; foreach ($listPerfiles as $perfil) { $posicion = 'op_' . $opcion->id . '_' . $perfil->idPerfil; $valor = $request->{$posicion}; //si viene "on" es = 1, si viene vacio es = 0 if ($valor === 'on') { $listPerfilesNuevos[] = $perfil->idPerfil; } } $listPerfilesNuevos = implode(',', $listPerfilesNuevos); //por utlimo actualizo esa linea de la tabla opciones_perfiles $datosOpcion = OpcionPerfiles::find($opcion->id); $datosOpcion->perfiles = $listPerfilesNuevos; $datosOpcion->save(); } $ok = 'Se ha actualizado las asignaciones de las opciones.'; return redirect('admin/asig_perfiles')->with('errors', $ok); }