| Server IP : 23.254.227.96 / Your IP : 216.73.216.21 Web Server : Apache/2.4.62 (Unix) OpenSSL/1.1.1k System : Linux hwsrv-1277026.hostwindsdns.com 4.18.0-477.13.1.el8_8.x86_64 #1 SMP Tue May 30 14:53:41 EDT 2023 x86_64 User : viralblo ( 1001) PHP Version : 8.1.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/viralblo/instantblog/app/Http/Controllers/ |
Upload File : |
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Validation\Rule;
use Illuminate\Support\Facades\Auth;
use Image;
use App\Models\User;
use App\Models\Post;
class ProfileController extends Controller
{
public function __construct()
{
$this->middleware('auth', ['except' => ['show', 'followers', 'following']]);
}
public function show($username)
{
$user = User::whereUsername($username)->firstOrFail();
$posts = Post::latest()
->wherePostLive(1)
->whereUserId($user->id)
->paginate(30);
$point = Post::wherePostLive(1)
->select('user_id')
->whereUserId($user->id)
->withCount('likes')
->get();
return view('public.profile', compact('user', 'posts', 'point'));
}
public function usernotifications()
{
$count = auth()->user()->notifications()->count();
$deleteNot = auth()->user()->notifications()->latest()->take($count)->skip(30)->get()->each(function($row){ $row->delete(); });
$notifications = auth()->user()->notifications()->limit(30)->get();
auth()->user()->unreadNotifications->markAsRead();
return view('member.notifications', compact('notifications'));
}
public function delnotifications()
{
auth()->user()->notifications()->delete();
session()->flash('message', __('messages.comments.notdeleted'));
return redirect('/notifications');
}
public function edit($username)
{
$user = User::findOrFail(auth()->id());
$point = Post::wherePostLive(1)
->select('user_id')
->whereUserId($user->id)
->withCount('likes')
->get();
return view('member.profileedit', compact('user', 'point'));
}
public function update(Request $request, $id)
{
$user = User::findOrFail($id);
$attributes = request(['name', 'username', 'avatar', 'cover', 'email', 'website' , 'facebook' ,
'twitter', 'instagram', 'linkedin']);
if($request->password) {
$this->validate(request(), [
'password' => 'required|min:6|confirmed',
]);
$user->password = bcrypt(request('password'));
$user->save();
} else {
$this->validate(request(), [
'name' => 'required|max:255',
'username' => [
'required',
Rule::unique('users')->ignore($user->id),
],
'email' => [
'required',
Rule::unique('users')->ignore($user->id),
],
]);
if ($request->hasFile('avatar')) {
$postimage = $request->file('avatar');
$filename = time() . '.' . $postimage->getClientOriginalExtension();
Image::make($postimage)->resize(100, 100)->save(public_path('/images/'. $filename));
$attributes['avatar'] = $filename;
} else {
$attributes['avatar'] = $user->avatar ;
}
if ($request->hasFile('cover')) {
$postimage = $request->file('cover');
$filename = time() . '.' . $postimage->getClientOriginalExtension();
Image::make($postimage)->resize(1440, 200)->save(public_path('/uploads/'. $filename));
$attributes['cover'] = $filename;
} else {
$attributes['cover'] = $user->cover ;
}
$user->update($attributes);
}
session()->flash('message', __('messages.new.profileupdated'));
return redirect('/home');
}
public function confirm()
{
$user = User::findOrFail(auth()->id());
return view('posts.deleteaccount', compact('user'));
}
public function destroy($id)
{
//Delete user account
$user = User::findOrFail($id);
$user->comments()->delete();
$user->posts()->delete();
$user->delete();
session()->flash('message', __('messages.new.userdeleted'));
return redirect('/login');
}
public function followers(User $user)
{
$point = Post::wherePostLive(1)
->select('user_id')
->whereUserId($user->id)
->withCount('likes')
->get();
$followers = $user->followers()->paginate(30);
return view('public.followers', compact('user', 'point', 'followers'));
}
public function following(User $user)
{
$point = Post::wherePostLive(1)
->select('user_id')
->whereUserId($user->id)
->withCount('likes')
->get();
$follows = $user->follows()->paginate(30);
return view('public.following', compact('user', 'point', 'follows'));
}
public function homepage(Request $request)
{
User::whereIn('id', [$request->id])->update(['homepage' => $request->homepage]);
session()->flash('message', __('messages.new.profileupdated'));
return redirect('/home');
}
}