Anons79 Mini Shell

Directory : /home/proudlyafrican/public_html/app/Http/Controllers/
Upload File :
Current File : /home/proudlyafrican/public_html/app/Http/Controllers/generalcontroller.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use Session;
use Mail;

class generalcontroller extends Controller
{
    //
    public function index(Request $request){
       $categories=DB::Table('categories')->get();
       $sliders=DB::Table('sliders')->get();
       $new_arrivals=DB::Table('products')
           ->select('products.*','product_images.image_name','product_images.product_image_id','categories.name as cat_name')
           ->leftjoin('product_images','product_images.product_id','products.product_id')
           ->leftjoin('categories','categories.id','products.category_id')
           ->where('products.new_arrival','Y')
           ->groupBy('product_images.product_id')
           ->OrderBy('products.product_id','DESC')
            ->take(9)
           ->get();

//        echo "<pre>";
//        print_r($sliders);
//        exit();

        $catid= $request->session()->get('catid');
        $expire= $request->session()->get('expire');


        $now = time(); // Checking the time now when home page starts.

        if ($now > $expire) {
            $request->session()->forget('catid');
        }


        if($catid==""){
            $catid=0;
        }



        $sqlQuery = "SELECT * FROM products WHERE category_id=$catid ORDER BY RAND()";
        $other_items = DB::select(DB::raw($sqlQuery));
//        echo "<pre>";
//        print_r($other_items);
//        exit();

//        echo "<pre>";
//        print_r($new_arrivals);
//        exit();
        $feedbacks=DB::Table('feedbacks')->where('active_flag','Y')->OrderBy('feedback_id','DESC')->take(9)->get();

       return view('general.mainpage',array('categories'=>$categories,'sliders'=>$sliders,'new_arrivals'=>$new_arrivals,'other_items'=>$other_items,'feedbacks'=>$feedbacks));
    }


  public function ajax_product_detail($id,$rate_id,Request $request){
        $products=DB::Table('products')
            ->select('products.*','product_images.image_name','product_images.product_image_id','product_rates.amount')
            ->leftjoin('product_images','product_images.product_id','products.product_id')
            ->leftjoin('product_rates','product_rates.product_id','products.product_id')
            ->where('products.product_id',$id)
            ->groupBy('product_images.product_id')
            ->OrderBy('products.product_id','DESC')
            ->get();
        $cat_id=$products[0]->category_id;
        $expire=time() + (24 * 60 * 60);
        $request->session()->put('catid',$cat_id);
        $request->session()->put('expire',$expire);

        $product_images=DB::Table('product_images')->where('product_id',$id)->get();

        $product_rates=DB::Table('product_rates')->where('product_id',$id)->get();
//        echo "<pre>";
//        print_r($product_images);
//        exit();


        $rate_detail=DB::Table('product_rates')->where('rate_id',$rate_id)->get();

        if(count($rate_detail)>0){
            $hidden_amount=$rate_detail[0]->amount;
            $hidden_unit=$rate_detail[0]->unit;
            $hidden_quantity=$rate_detail[0]->quantity;
        }
        else{
            $newrates=DB::Table('product_rates')->where('product_id',$id)->get();
            return redirect()->to('product_detail/'.$id.'/'.$newrates[0]->rate_id);
        }


        $returnHTML =view('general.product_detail_ajax',array('products'=>$products,'product_images'=>$product_images,'product_rates'=>$product_rates,'rate_id'=>$rate_id,'hidden_amount'=>$hidden_amount,'hidden_unit'=>$hidden_unit,'hidden_quantity'=>$hidden_quantity))->render();
        return response()->json( array('success' => true, 'html'=>$returnHTML) );

//        return view('general.product_detail',array('products'=>$products,'product_images'=>$product_images,'product_rates'=>$product_rates,'rate_id'=>$rate_id,'hidden_amount'=>$hidden_amount,'hidden_unit'=>$hidden_unit,'hidden_quantity'=>$hidden_quantity));
    }

    public function product_detail($id,$rate_id,Request $request){

        $products=DB::Table('products')
            ->select('products.*','product_images.image_name','product_images.product_image_id','product_rates.amount')
            ->leftjoin('product_images','product_images.product_id','products.product_id')
            ->leftjoin('product_rates','product_rates.product_id','products.product_id')
            ->where('products.product_id',$id)
            ->groupBy('product_images.product_id')
            ->OrderBy('products.product_id','DESC')
            ->get();


        $cat_id=$products[0]->category_id;
        $expire=time() + (24 * 60 * 60);

        $request->session()->put('catid',$cat_id);
        $request->session()->put('expire',$expire);

         $product_images=DB::Table('product_images')->where('product_id',$id)->get();

        $product_rates=DB::Table('product_rates')->where('product_id',$id)->get();
//        echo "<pre>";
//        print_r($product_images);
//        exit();


         $rate_detail=DB::Table('product_rates')->where('rate_id',$rate_id)->get();

          if(count($rate_detail)>0){
              $hidden_amount=$rate_detail[0]->amount;
              $hidden_unit=$rate_detail[0]->unit;
              $hidden_quantity=$rate_detail[0]->quantity;

          }
        else{

            $newrates=DB::Table('product_rates')->where('product_id',$id)->get();
            return redirect()->to('product_detail/'.$id.'/'.$newrates[0]->rate_id);

        }



        return view('general.product_detail',array('products'=>$products,'product_images'=>$product_images,'product_rates'=>$product_rates,'rate_id'=>$rate_id,'hidden_amount'=>$hidden_amount,'hidden_unit'=>$hidden_unit,'hidden_quantity'=>$hidden_quantity));
    }

    public function adminlogin(){
        return view('admin.login');
    }

    public function adminlogout(){
        return view('admin.login');
    }
    public function admin_login(Request $request){
        $admin= DB::Table('admins')->where('email',$request['email'])->where(DB::raw('BINARY `password`'),$request['password'])->get();

        if(count($admin)>0){
            $request->session()->put('admin_id', $admin[0]->admin_id);
            $request->session()->put('admin_name', $admin[0]->name);
            $request->session()->put('admin_email', $admin[0]->email);

            return redirect('dashboard');

        }
        else{
            Session::flash('msg','Email or Password is Wrong');
            return back();
        }
    }


    public function subscribe(Request $request){
        $check=DB::table('subscribers')->where('email',$request['email'])->get();
        if(count($check)>0){
            return "N";
        }
        $data=array(
            'email'=>$request['email']
        );


        $id=  DB::Table('subscribers')->insertGetId($data);

        // $baseurl=url('/');
        // $data = [
        //     'email'   => $request['email'],
        //     'baseurl'=>$baseurl,
        //     'user_id'=>$id,
        // ];


        // Mail::send('general.subscription_confirmation', $data, function($message) use ($data)
        // {
        //     $message->from('khan@gmail.com');
        //     $message->to($data['email']);
        //     $message->subject('Proudly African');
        // });

        return "Y";

    }

    public function unsubscriber_subscriber($id){

        $data=array(
            'active_flag'=>'N'
        );
        DB::Table('subscribers')->where('id',$id)->update($data);
        return view('general.unsubscribe_page');
    }

    public function visitors(Request $request){
        $jsonobj = $request['data'];
        $obj = json_decode($jsonobj);



        $data=array(
            'visited_page'=>$request['currentURL'],
            'ip'=>$obj->ip,
            'continent'=>$obj->continent,
            'continent_code'=>$obj->continent_code,
            'country'=>$obj->country,
            'country_code'=>$obj->country_code,
            'country_flag'=>$obj->country_flag,
            'country_capital'=>$obj->country_capital,
            'country_phone'=>$obj->country_phone,
            'country_neighbours'=>$obj->country_neighbours,
            'region'=>$obj->region,
            'city'=>$obj->city,
            'latitude'=>$obj->latitude,
            'longitude'=>$obj->longitude,
            'asn'=>$obj->asn,
            'org'=>$obj->org,
            'isp'=>$obj->isp,
            'timezone'=>$obj->timezone,
            'timezone_name'=>$obj->timezone_name,
            'timezone_dstOffset'=>$obj->timezone_dstOffset,
            'timezone_gmtOffset'=>$obj->timezone_gmtOffset,
            'timezone_gmt'=>$obj->timezone_gmt,
            'currency'=>$obj->currency,
            'currency_code'=>$obj->currency_code,
            'completed_requests'=>$obj->completed_requests,
            'visit_date'=>date("Y/m/d")
        );

        DB::Table('visitors')->where('ip',$obj->ip)->delete();
        DB::Table('visitors')->insert($data);
        return "Y";

    }

    public function add_to_cart(Request $request){
        session_start();
        $id = $request['product_id'];
        $qta = $request['quantity'];
        $size = $request['secondquantity'].$request['unit'];

        if ( !isset($_SESSION['cart']) ) {
            $_SESSION['cart'] = array();
        }

        if (isset($_SESSION['cart'][$id][$size]) ) {
            $_SESSION['cart'][$id][$size]['quantity'] = $_SESSION['cart'][$id][$size]['quantity']+$qta;
        } else {
            $data=array(
                "product_id" => $id,
                "quantity" => $request['quantity'],
                "secondquantity" => $request['secondquantity'],
                "unit" => $request['unit'],
                "amount" => $request['amount'],
            );
            $_SESSION['cart'][$id][$size] = $data;
        }

        return "Y";

        exit();

        $id=$request['product_id'];
        $cart = session()->get('cart');
        // if cart is empty then this the first product
        if(!$cart) {
            $cart = [
                $id => [
                    "product_id" => $id,
                    "quantity" => $request['quantity'],
                    "secondquantity" => $request['secondquantity'],
                    "unit" => $request['unit'],
                    "amount" => $request['amount'],
                ]
            ];
            session()->put('cart', $cart);
//             return redirect("cart")->with('success', 'Product added to cart successfully!');
            return "Y";
        }
        // if cart not empty then check if this product exist then increment quantity
        if(isset($cart[$id])) {

            if(($cart[$id]['secondquantity']==$request['secondquantity'] && $cart[$id]['unit']==$request['unit'])){
                $cart[$id]['quantity']=$cart[$id]['quantity']+1;
                session()->put('cart', $cart);
            }
            else{
                $cart[$id] = [
                    "product_id" => $id,
                    "quantity" => $request['quantity'],
                    "secondquantity" => $request['secondquantity'],
                    "unit" => $request['unit'],
                    "amount" => $request['amount'],
                ];
                session()->put('cart', $cart);
            }

//            return redirect("cart")->with('success', 'Product added to cart successfully!');
            return "Y";
        }
        // if item not exist in cart then add to cart with quantity = 1
        $cart[$id] = [
            "product_id" => $id,
            "quantity" => $request['quantity'],
            "secondquantity" => $request['secondquantity'],
            "unit" => $request['unit'],
            "amount" => $request['amount'],
        ];
        session()->put('cart', $cart);

        return 'Y';
    }

    public function cart_count(){
        $count=0;
        session_start();
        if(isset($_SESSION['cart'])){
            foreach($_SESSION['cart'] as $cart){
                if(count($cart)>0){
                    foreach($cart as $subcart){
                        $count=$count+$subcart['quantity'];

                    }
                }
            }
//            echo $count;
//            echo "<pre>";
//            print_r($_SESSION);
//            exit();

        }
        else{
            $count=0;
        }
        return $count;
    }

    public function removecartproduct($product_id,$size){
        $count=0;
        session_start();
        if(isset($_SESSION['cart'])){
            unset($_SESSION['cart'][$product_id][$size]);
        }
        return back();
    }
    public function view_cart(){

        $count=0;
        $cart2="";
        session_start();

        if(isset($_SESSION['cart'])){
            $cart2=$_SESSION['cart'];

            foreach($_SESSION['cart'] as $cart){
                if(count($cart)>0){
                    foreach($cart as $subcart){
                        $count=$count+$subcart['quantity'];
                    }
                }
            }
//            echo $count;
//            echo "<pre>";
//            print_r($_SESSION);
//            exit();

        }
        else{
            $count=0;
        }

        return view('general.view_cart',array('count'=>$count,'cart_products'=>$cart2));



    }

    public function empty_cart(Request  $request){
        session_start();
        $request->session()->forget('cart');
        unset($_SESSION['cart']);

        Session::put('success','Cart is Empty Now');
        return redirect('view_cart');
    }
    public function categorywise_products($id){

        $categories=DB::Table('categories')->where('id',$id)->get();
        $products=DB::Table('products')
            ->select('products.*','product_images.image_name','product_images.product_image_id','categories.name as cat_name')
            ->leftjoin('product_images','product_images.product_id','products.product_id')
            ->leftjoin('categories','categories.id','products.category_id')
            ->where('products.category_id',$id)
            ->groupBy('product_images.product_id')
            ->OrderBy('products.product_id','DESC')
            ->get();
        $product_counts=count($products);
        return view('general.categorywise_products',array('categories'=>$categories,'products'=>$products,'product_counts'=>$product_counts));
    }

    public function update_cart(Request $request){

        $flag= $request['update'];


        if($flag=='checkout'){
            $count=0;
            $cart2="";
            session_start();

            if(isset($_SESSION['cart'])){
                $cart2=$_SESSION['cart'];

                foreach($_SESSION['cart'] as $cart){
                    if(count($cart)>0){
                        foreach($cart as $subcart){
                            $count=$count+$subcart['quantity'];
                        }
                    }
                }
            }
            else{
                $count=0;
            }

//            echo "<pre>";
//            print_r($cart2);
//            exit();
            $addresses="";
            if($request->session()->get('user_id')==""){

            }
            else{
                $addresses=DB::Table('addresses')->where('user_id',$request->session()->get('user_id'))->get();
            }

            $countries=DB::Table('country')->get();


            $subtotal=$request['subtotal'];
            $shipping_charges=DB::Select("SELECT * FROM shipping_charges WHERE range_from<= $subtotal and range_to >= $subtotal");
            $shipping_charge=0;
            if(count($shipping_charges)>0){
                $shipping_charge=$shipping_charges[0]->amount;
            }

            $shipping_charge=  number_format((float)$shipping_charge, 2, '.', '');

            $tax_percentage=0;
            $taxes=DB::Table('taxes')->where('status_flag','active')->get();
            if(count($taxes)>0){
                $tax_percentage=$taxes[0]->percentage;
            }

            $tax_amount=($tax_percentage/100)*$subtotal;


            $tax_amount=  number_format((float)$tax_amount, 2, '.', '');
            $subtotal=  number_format((float)$request['subtotal'], 2, '.', '');





            return view('general.shipping',array('subtotal'=>$subtotal,'count'=>$count,'cart_products'=>$cart2,'addresses'=>$addresses,'countries'=>$countries,'shipping_charge'=>$shipping_charge,'shipping_charge'=>$shipping_charge,'tax_percentage'=>$tax_percentage,'tax_amount'=>$tax_amount));

        }


        $count=0;
        $cart2="";
        session_start();

        if(isset($_SESSION['cart'])){
            $cart2=$_SESSION['cart'];

            foreach($_SESSION['cart'] as $cart){
                if(count($cart)>0){
                    foreach($cart as $subcart){
                        $count=$count+$subcart['quantity'];
                    }
                }
            }
        }
        else{
            $count=0;
        }

//            echo "<pre>";
//            print_r($cart2);
//            exit();
        $addresses="";
        if($request->session()->get('user_id')==""){

        }
        else{
            $addresses=DB::Table('addresses')->where('user_id',$request->session()->get('user_id'))->get();
        }

        $countries=DB::Table('country')->get();


        $subtotal=$request['subtotal'];
        $shipping_charges=DB::Select("SELECT * FROM shipping_charges WHERE range_from<= $subtotal and range_to >= $subtotal");
        $shipping_charge=0;
        if(count($shipping_charges)>0){
            $shipping_charge=$shipping_charges[0]->amount;
        }

        $shipping_charge=  number_format((float)$shipping_charge, 2, '.', '');

        $tax_percentage=0;
        $taxes=DB::Table('taxes')->where('status_flag','active')->get();
        if(count($taxes)>0){
            $tax_percentage=$taxes[0]->percentage;
        }

        $tax_amount=($tax_percentage/100)*$subtotal;


        $tax_amount=  number_format((float)$tax_amount, 2, '.', '');
        $subtotal=  number_format((float)$request['subtotal'], 2, '.', '');


        $count=0;


        $quantity = $request->input('quantity');
        $size = $request->input('size');
        $product_id = $request->input('product_id');

        for($i=0;$i<count($quantity);$i++){

            if(isset($_SESSION['cart'])){
                $_SESSION['cart'][$product_id[$i]][$size[$i]]['quantity']=$quantity[$i];
            }
        }

//echo "sdafsd";
        return redirect('view_cart');

//        return view('general.shipping2',array('subtotal'=>$subtotal,'count'=>$count,'cart_products'=>$cart2,'addresses'=>$addresses,'countries'=>$countries,'shipping_charge'=>$shipping_charge,'shipping_charge'=>$shipping_charge,'tax_percentage'=>$tax_percentage,'tax_amount'=>$tax_amount));

    }


    public function user_signup(Request $request){
        // $check=DB::Table('users')->where('email',$request['email'])->get();
        // if(count($check)>0){
        //     Session::flash('msg', 'Email Already Taken. Use Another Email');
        //     return "N";
        // }

        // $data=array(
        //     'fname'=>$request['fname'],
        //     'lname'=>$request['lname'],
        //     'email'=>$request['email'],
        //     'phoneno'=>$request['phoneno'],
        //     'password'=>$request['userpassword'],
        // );
        // DB::Table('users')->insert($data);


        // $baseurl=url('/');


        // $data = [
        //     'email'   => $request['email'],
        //     'username'=>$request['fname'],
        //     'baseurl'=>$baseurl
        // ];

        // Mail::send('general.registration_confirmation_email', $data, function($message) use ($data)
        // {
        //     $message->from('khan@gmail.com');
        //     $message->to($data['email']);
        //     $message->subject('Registration Confirmation');
        // });



        // Session::flash('msg', 'Registration Completed');
        // return "Y";
    }


    public function about_us(){
        $about_us=DB::Table('about_us')->get();
        return view('general.about_us',array('about_us'=>$about_us));
    }

    public function privacy_policy(){
        $privacy_policy=DB::Table('privacy_policy')->get();
        return view('general.privacy_policy',array('privacy_policy'=>$privacy_policy));
    }
    public function terms_and_conditions(){
        $term_and_condition=DB::Table('term_and_condition')->get();
        return view('general.term_and_condition',array('term_and_conditions'=>$term_and_condition));
    }

    public function shop(){
        $categories=DB::Table('categories')->get();
        return view('general.shop',array('categories'=>$categories));
    }

    public function user_login(Request $request){
        $check= DB::Table('users')->where('email',$request['email'])->where(DB::raw('BINARY `password`'),$request['password'])->get();
        if(count($check)>0){

            $request->session()->put('user_id', $check[0]->user_id);
            $request->session()->put('user_first_name', $check[0]->fname);
            $request->session()->put('user_last_name', $check[0]->lname);
            $request->session()->put('user_email', $check[0]->email);
            $request->session()->put('user_phoneno', $check[0]->phoneno);
            return "Y";
        }
        else{
           return "N";
        }
    }


    public function check_user_coupen(Request $request,$coupen){
        $user_id=$request->session()->get('user_id');
        if($user_id==""){
            return "NO_USER";
        }
        else{

            $date=date("Y/m/d");
            $check=DB::Table('coupen_users')->where('user_id',$user_id)->where('coupen',$coupen)->where('used_status','N')->where('end_date','>',$date)->get();
            if(count($check)>0){
                return $check;
            }
            else{
                return "NO_COUPEN";
            }
        }

    }

    public function gallery(){
        $albums=DB::Table('galleries')->get();
        $all=DB::Table('galleries_attachments')
            ->select('galleries_attachments.*','galleries.title')
            ->leftjoin('galleries','galleries.gallery_id','=','galleries_attachments.gallery_id')
            ->get();
//        echo "<pre>";
//        print_r($all);
//        exit();

        return view('general.gallery',array('all'=>$all,'albums'=>$albums));
    }



    public function view_invoice($order_id){
        $products=DB::Table('order_details')
            ->select('order_details.*','products.name as product_name')
            ->leftjoin('products','products.product_id','order_details.product_id')
            ->where('order_details.order_id',$order_id)
            ->get();

        $orders=DB::Table('orders')->where('order_id',$order_id)
            ->select('orders.*','country.name as country_name')
            ->leftjoin('country','country.id','orders.country_id')
            ->get();
//        echo "<pre>";
//        print_r($orders);
//        exit();
        return view('general.view_invoice',array('products'=>$products,'orders'=>$orders));

    }

    public function print_order($order_id,$type){
        $products=DB::Table('order_details')
            ->select('order_details.*','products.name as product_name')
            ->leftjoin('products','products.product_id','order_details.product_id')
            ->where('order_details.order_id',$order_id)
            ->get();

        $orders=DB::Table('orders')->where('order_id',$order_id)
            ->select('orders.*','country.name as country_name')
            ->leftjoin('country','country.id','orders.country_id')
            ->get();
//        echo "<pre>";
//        print_r($orders);
//        exit();
        return view('general.print_invoice',array('products'=>$products,'orders'=>$orders,'type'=>$type));
    }
    public function contact_us(){
        return view('general.contact_us');
    }


    public function insert_contact_us(Request $request){
        $captcha=$request['hidden_captcha'];
        $response = json_decode(file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=6LffkuEjAAAAAM1Q8hPgWEbiEOo_-IbHFcjtcU39&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']), true);
        if($response['success'] == false)
        {
            echo "<h1>Wrong Try</h1>";
        }
        else
        {

            $bucket=DB::Table('bucket')->get();
            if(count($bucket)>0){
                $quantitycheck=$bucket[0]->qty;
                if($quantitycheck==0){
                }
                else{
                    $number="";
                    $numbers=DB::Table('notification_numbers')->get();
                    if(count($numbers)>0){
                        $number=$numbers[0]->number;
                    }


                    $name=$request['name'];
                    $contact_number= $request['country'].$request['contact_number'];

                    $message='Your website visitor ' . $name . ' with tel no: ' . $contact_number . ' have sent you a message. Please check your email and or your Proudly African dashboard.';

                    $curl = curl_init();
                    curl_setopt_array($curl, array(
                        CURLOPT_URL => "https://api.sms.to/sms/send",
                        CURLOPT_RETURNTRANSFER => true,
                        CURLOPT_ENCODING => "",
                        CURLOPT_MAXREDIRS => 10,
                        CURLOPT_TIMEOUT => 0,
                        CURLOPT_FOLLOWLOCATION => true,
                        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                        CURLOPT_CUSTOMREQUEST => "POST",
                        CURLOPT_POSTFIELDS =>"{\n    \"message\": \"$message\",\n    \"to\": [\n        \"$number\"   ],\n    \"sender_id\": \"CKGROCERIES\",\n    \"callback_url\": \"https://example.com/callback/handler\"\n}",
                        CURLOPT_HTTPHEADER => array(
                            "Content-Type: application/json",
                            "Accept: application/json",
                            "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2F1dGg6ODA4MC9hcGkvdjEvdXNlcnMvYXBpL2tleS9nZW5lcmF0ZSIsImlhdCI6MTY2MzI2MTE3MSwibmJmIjoxNjYzMjYxMTcxLCJqdGkiOiJ0UnBpTlNlelR5bmVMcUh6Iiwic3ViIjozODcxNywicHJ2IjoiMjNiZDVjODk0OWY2MDBhZGIzOWU3MDFjNDAwODcyZGI3YTU5NzZmNyJ9.AH29BZJGRP-KOjmspW_hqEqysMbc1fMyltrG_oa5MSU"
                        ),
                    ));

                    $response = curl_exec($curl);

                    curl_close($curl);


                    $bucket_data=array(
                        'qty'=>$quantitycheck-2,
                        'sent'=>$bucket[0]->sent+1
                    );
                    DB::Table('bucket')->where('id',2)->update($bucket_data);

                    $bucket_history_data=array(
                        'sms'=>$message,
                        'smsto'=>$number
                    );
                    DB::Table('bucket_history')->insert($bucket_history_data);
                }
            }

            $data=array(
                'name'=>$request['name'],
                'email'=>$request['email'],
                'contact_number'=>$request['contact_number'],
                'message'=>$request['message'],
            );
            DB::Table('contact_us')->insert($data);
            Session::flash('msg', 'We will contact you soon.');
            return back();
        }


    }



    public function usersendrecoveryemail(Request $request){
        $baseurl=url('/');
        $check=DB::Table('users')->where('email',$request['email'])->get();
        if(count($check)>0){
            $id=$check[0]->user_id;
            $key = '';
            $keys = array_merge(range(0, 9), range('a', 'z'));

            for ($i = 0; $i < 20; $i++) {
                $key .= $keys[array_rand($keys)];
            }

            $token=$key.$id;

            $tokendata=array(
                'password_token'=>$token
            );
            DB::Table('users')->where('user_id',$id)->update($tokendata);

            $email=$request['email'];

            // $data = [
            //     'email'   => $email,
            //     'token'=>$token,
            //     'baseurl'=>$baseurl
            // ];

            // Mail::send('general.userpasswordrecovery', $data, function($message) use ($data)
            // {
            //     $message->from('khan@gmail.com');
            //     $message->to($data['email']);
            //     $message->subject('Password Recovery');
            // });
            return "Y";
        }
        else{
            return "N";

        }
    }

    public function userchecktoken($token){

        $check=DB::Table('users')->where('password_token',$token)->get();
        if(count($check)>0){
            $id=$check[0]->user_id;
            return view('general.userresetpassword',array('user_id'=>$id));
        }
        else{
            return "<h1>Sorry Token Does Not Match</h1>";
        }
    }

    public function userresetpassword(Request $request){
        $data=array(
            'password'=>$request['password']
        );
        DB::Table('users')->where('user_id',$request['user_id'])->update($data);
        Session::flash('msg','Password Changed Successfully');
        return  back();
    }

    public function search(Request $request){
        $search=$request['q'];
        $products=DB::Table('products')
            ->select('products.*','product_images.image_name','product_images.product_image_id','product_rates.amount')
            ->leftjoin('product_images','product_images.product_id','products.product_id')
            ->leftjoin('product_rates','product_rates.product_id','products.product_id')
            ->whereRaw('name like "%' . $search . '%"')
            ->groupBy('product_images.product_id')
            ->OrderBy('products.product_id','ASC')
            ->get();

//        echo "<pre>";
//        print_r($products);
//        exit();

        $product_counts=count($products);
        return view('general.categorywise_products',array('products'=>$products,'product_counts'=>$product_counts));
    }


    public function adminsendrecoveryemail(Request $request){
        $check=DB::Table('admins')->where('email',$request['email'])->get();
        if(count($check)>0){
            $id=$check[0]->admin_id;
            $key = '';
            $keys = array_merge(range(0, 9), range('a', 'z'));

            for ($i = 0; $i < 20; $i++) {
                $key .= $keys[array_rand($keys)];
            }

            $token=$key.$id;

            $tokendata=array(
                'token'=>$token
            );
            DB::Table('admins')->where('admin_id',$id)->update($tokendata);

            $email=$request['email'];
            // $baseurl=url('/');

            // $data = [
            //     'email'   => $email,
            //     'token'=>$token,
            //     'baseurl'=>$baseurl,
            // ];

            // Mail::send('admin.passwordrecovery', $data, function($message) use ($data)
            // {
            //     $message->from('khan@gmail.com');
            //     $message->to($data['email']);
            //     $message->subject('Password Recovery');
            // });


            Session::flash('msg2','Check Your Email To Reset Password');
            return back();

        }
        else{
            Session::flash('msg','Email Does Not Exist');
            return back();
        }
    }

    public function adminchecktoken($token){
        $check=DB::Table('admins')->where('token',$token)->get();
        if(count($check)>0){
            $id=$check[0]->admin_id;
            return view('admin.restpassword',array('id'=>$id));
        }
        else{
            return "<h1>Sorry Token Does Not Match</h1>";
        }
    }

    public function adminresetpassword(Request $request){
        $data=array(
            'password'=>$request['password']
        );
        DB::Table('admins')->where('admin_id',$request['id'])->update($data);
        Session::flash('msg2','Password Changed Successfully');
        return redirect('adminlogin');
    }

    public function order_place_page($order_id){
        $products=DB::Table('order_details')
            ->select('order_details.*','products.name as product_name')
            ->leftjoin('products','products.product_id','order_details.product_id')
            ->where('order_details.order_id',$order_id)
            ->get();

        $orders=DB::Table('orders')->where('order_id',$order_id)
            ->select('orders.*','country.name as country_name')
            ->leftjoin('country','country.id','orders.country_id')
            ->get();

        Session::flash('order_msg','Y');

        return view('general.order_place_page',array('products'=>$products,'orders'=>$orders));
    }

    public function testimonials(){
        $feedbacks=DB::Table('feedbacks')->where('active_flag','Y')->OrderBy('feedback_id','DESC')->take(4)->get();
        return view('general.testimonials',array('feedbacks'=>$feedbacks));
    }

    public function get_feedbacks($last_feedback_id){
        $feedbacks=DB::Table('feedbacks')->where('feedback_id','<',$last_feedback_id)->OrderBy('feedback_id','DESC')->take(4)->get();
        return $feedbacks;
    }

    public function insert_testimonial(Request $request){


        $data=array(
            'name'=>$request['name'],
            'feedback'=>$request['feedback'],
            'stars'=>$request['rating'],

        );
        DB::Table('feedbacks')->insert($data);
        Session::flash('msg', 'Thanks For Your Feedback');
        return back();
    }


    public function checkcaptcha(Request $request){
        $captcha=$request['captcha'];
        $response = json_decode(file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=6LffkuEjAAAAAM1Q8hPgWEbiEOo_-IbHFcjtcU39&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']), true);
        if($response['success'] == false)
        {
           return "N";
        }
        else
        {
           return "Y";
        }
    }


 }

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]