Current File : /home/tradevaly/new.tradevaly.com.bd/app/Http/Controllers/AdminController.php |
<?php
namespace App\Http\Controllers;
use App\Models\AdvertiserOrder;
use App\Models\Income;
use App\Models\Page;
use App\Models\Admin;
use App\Models\User;
use App\Models\Contact;
use App\Models\Logo;
use Brian2694\Toastr\Facades\Toastr;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Storage;
use Intervention\Image\Facades\Image;
class AdminController extends Controller
{
public function index(){
$msgs=Contact::all();
$logo=Logo::first();
$ads = AdvertiserOrder::all()->count();
$pending_ads = AdvertiserOrder::where('payment_status','!=','paid')->count();
$complete_ads = AdvertiserOrder::where('payment_status','paid')->count();
$subscribers = Income::all()->count();
$pending_subscribers = Income::where('payment_status','!=','paid')->count();
$paid_subscribers = Income::where('payment_status','paid')->count();
return view("backend.pages.dashboard")->with(compact(
'msgs','logo','ads','pending_ads','complete_ads',
'subscribers','pending_subscribers','paid_subscribers'
));
}
public function pages(){
$pages= Page::all();
return view('backend.pages.pages')->with(compact('pages'));
}
public function secretlogin($id){
$user = User::findorFail($id);
Auth::guard('web')->login($user);
return redirect()->route('user.dashboard');
}
public function editpages(Request $request, $slug){
$pages= Page::where('slug', $slug)->firstOrFail();
if($request->isMethod('post')){
$pages->title = $request->title;
$pages->subtitle = $request->subtitle;
if($request->hasFile('image'))
{
$image=$request->file('image');
$thefile = \File::get($image);
$currentDate=Carbon::now()->toDateString();
$imageName=$currentDate.'-'.uniqid().'.'.$image->getClientOriginalExtension();
if(!Storage::disk('public')->exists('pages'))
{
Storage::disk('public')->makeDirectory('pages');
}
Storage::disk('public')->put('pages/'.$imageName, $thefile);
$pages->image=$imageName;
}
if($pages->save()){
Toastr::success('Success!','Pages Setting Updated');
return redirect()->back();
}
}
return view('backend.pages.editpages')->with(compact('pages'));
}
public function login(Request $request){
if($request->isMethod('post')){
$data= $request->all();
if(Auth::guard('admin')->attempt(['email' => $data['email'], 'password' => $data['password'], 'status'=>1])){
Toastr::success("You are logged in!");
return redirect("b2b/dashboard");
}else{
Toastr::error("Credentials do not match!");
return back();
}
}
return view('backend.pages.login');
}
public function logout(){
Auth::guard('admin')->logout();
Toastr::success('Signed out!');
return redirect('/b2b/admin_login');
}
public function reset(Request $request){
$user= Admin::find(Auth::guard('admin')->user()->id);
if($request->isMethod("post")){
$id= Auth::guard('admin')->user()->id;
$data= $request->all();
if($data['old']==""){
Toastr::error('Please enter current password!');
return redirect()->back();die;
}
elseif(!Hash::check($data['old'],$user['password'])){
Toastr::error('Current password is incorrect!');
return redirect()->back();die;
} elseif($data['new'] !=$data['confirm']){
Toastr::error('Password do not matcht!');
return redirect()->back();die;
}
else{
$user->update(['password'=>Hash::make($data['confirm'])]);
Toastr::success('Password updated!');
return redirect()->back();die;
}
}
return view('backend.pages.reset')->with(compact('user'));
}
public function profile(Request $request){
if($request->isMethod('post')){
$request->validate([
'name' => 'required',
'phone' => 'required',
]);
// dd($request->all());
$id= Auth::guard('admin')->user('id');
$user= Admin::find($id);
if($request->hasFile('image'))
{
$image=$request->file('image');
$currentDate=Carbon::now()->toDateString();
$imageName=$currentDate.'-'.uniqid().$image->getClientOriginalExtension();
if(!Storage::disk('public')->exists('images/admin/avatar'))
{
Storage::disk('public')->makeDirectory('images/admin/avatar');
}
$profileImage = Image::make($image)->resize(400,400)->stream();
Storage::disk('public')->put('images/admin/avatar/'.$imageName,$profileImage);
}else{
$imageName=$user->image;
}
Admin::select(['id',$id])->update(['name'=>$request->name,'phone'=>$request->phone, 'image'=>$imageName]);
Toastr::success('Info updated!');
return redirect()->back();die;
}
return view('backend.pages.profile');
}
public function add(Request $request){
if($request->isMethod('post')){
$request->validate([
'email' => 'required|email|unique:admins',
'name' => 'required',
'phone' => 'required',
'password' => 'required',
]);
if($request->password!==$request->confirm){
Toastr::error('Insert password carefully!');
return redirect()->back();die;
}
$data= $request->all();
$admin = New Admin;
$admin->name=$data['name'];
$admin->email=$data['email'];
$admin->phone=$data['phone'];
$admin->password=bcrypt($data['confirm']);
$admin->status=1;
$admin->save();
Toastr::success('New user added!');
return redirect()->back();die;
}
$users= Admin::all()->toArray();
return view('backend.pages.add')->with(compact('users'));
}
}