/home/aloic1/public_html/core/app/Http/Controllers/Dashboard/AnalyticsController.php
<?php

namespace App\Http\Controllers\Dashboard;

use App\Http\Controllers\Controller;
use App\Models\AnalyticsPage;
use App\Models\AnalyticsVisitor;
use App\Http\Requests;
use App\Models\WebmasterSection;
use Auth;
use File;
use Helper;
use Illuminate\Http\Request;
use Redirect;

class AnalyticsController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');

        // Check Permissions
        if (!@Auth::user()->permissionsGroup->analytics_status) {
            return Redirect::to(route('NoPermission'))->send();
        }
    }

    /**
     * Display a listing of the resource.
     * string $stat
     * @return \Illuminate\Http\Response
     */

    public function index($stat = "date")
    {
        // check @stat var
        $analyticsVars = array("date", "country", "city", "os", "browser", "referrer", "hostname", "org");
        if (!in_array($stat, $analyticsVars)) {
            return redirect()->action('Dashboard\AnalyticsController@index');
        }
        //
        // General for all pages
        $GeneralWebmasterSections = WebmasterSection::where('status', '=', '1')->orderby('row_no', 'asc')->get();
        // General END

        //List Min & Max
        $AnalyticsMin = AnalyticsVisitor::min("date");
        $AnalyticsMax = AnalyticsVisitor::max("date");


        $daterangepicker_start = date('Y-m-d', strtotime('-29 day'));
        $daterangepicker_end = date('Y-m-d');
        $daterangepicker_start_text = date("F d , Y", strtotime($daterangepicker_start));
        $daterangepicker_end_text = date("F d , Y", strtotime($daterangepicker_end));
        $min_visitor_date = date('d-m-Y', strtotime('-29 day'));
        if ($AnalyticsMin != "") {
            $min_visitor_date = date('d-m-Y', strtotime($AnalyticsMin));
        }
        $max_visitor_date = date('d-m-Y');
        if ($AnalyticsMax != "") {
            $max_visitor_date = date('d-m-Y', strtotime($AnalyticsMax));
        }


        $AnalyticsValues = array();

        $AnalyticsVisitors = AnalyticsVisitor::select("*")->select($stat)->where('date', '>=', $daterangepicker_start)
            ->where('date', '<=', $daterangepicker_end)
            ->groupBy($stat)
            ->orderBy($stat, 'asc')
            ->get();

        $ix = 0;
        foreach ($AnalyticsVisitors as $AnalyticsV) {

            $TotalV = AnalyticsVisitor::where("$stat", $AnalyticsV->$stat)
                ->where('date', '>=', $daterangepicker_start)
                ->where('date', '<=', $daterangepicker_end)->count();

            $AllVArray = AnalyticsVisitor::select('id')->where("$stat", $AnalyticsV->$stat)
                ->where('date', '>=', $daterangepicker_start)
                ->where('date', '<=', $daterangepicker_end)
                ->get()
                ->toArray();

            $TotalP = AnalyticsPage::whereIn("visitor_id", $AllVArray)->count();

            $newdata = array(
                'name' => $AnalyticsV->$stat,
                'visits' => $TotalV,
                'pages' => $TotalP
            );
            array_push($AnalyticsValues, $newdata);
            $ix++;
        }
        if ($stat == "date") {

        } else {
            usort($AnalyticsValues, function ($a, $b) {
                return $b['visits'] - $a['visits'];
            });
        }

        $TotalVisitors = AnalyticsVisitor::where('date', '>=', $daterangepicker_start)
            ->where('date', '<=', $daterangepicker_end)
            ->count();

        $TotalPages = AnalyticsPage::where('date', '>=', $daterangepicker_start)
            ->where('date', '<=', $daterangepicker_end)
            ->count();

        if ($stat == "org") {
            $statText = "visitorsAnalyticsByOrganization";
        } elseif ($stat == "hostname") {
            $statText = "visitorsAnalyticsByHostName";
        } elseif ($stat == "referrer") {
            $statText = "visitorsAnalyticsByReachWay";
        } elseif ($stat == "resolution") {
            $statText = "visitorsAnalyticsByScreenResolution";
        } elseif ($stat == "browser") {
            $statText = "visitorsAnalyticsByBrowser";
        } elseif ($stat == "os") {
            $statText = "visitorsAnalyticsByOperatingSystem";
        } elseif ($stat == "country") {
            $statText = "visitorsAnalyticsByCountry";
        } elseif ($stat == "city") {
            $statText = "visitorsAnalyticsByCity";
        } else {
            $statText = "visitorsAnalyticsBydate";
        }


        return view("dashboard.analytics.list",
            compact("GeneralWebmasterSections", "daterangepicker_start", "daterangepicker_end",
                "daterangepicker_start_text", "daterangepicker_end_text", "min_visitor_date", "max_visitor_date",
                "stat", "AnalyticsVisitors", "TotalVisitors", "TotalPages", "statText", "AnalyticsValues"));

    }

    /**
     * Display a listing of the resource.
     * string $stat
     * @param \Illuminate\Http\Request $request
     * @return \Illuminate\Http\Response
     */

    public function filter(Request $request, $stat = "date")
    {
        //
        // General for all pages
        $GeneralWebmasterSections = WebmasterSection::where('status', '=', '1')->orderby('row_no', 'asc')->get();
        // General END

        //List Min & Max
        $AnalyticsMin = AnalyticsVisitor::min("date");
        $AnalyticsMax = AnalyticsVisitor::max("date");


        $daterangepicker_start = date('Y-m-d', strtotime('-29 day'));
        if ($request->this_daterangepicker_start != "") {
            $daterangepicker_start = $request->this_daterangepicker_start;
        }
        $daterangepicker_end = date('Y-m-d');
        if ($request->this_daterangepicker_end != "") {
            $daterangepicker_end = $request->this_daterangepicker_end;
        }
        $daterangepicker_start_text = date("F d , Y", strtotime($daterangepicker_start));
        $daterangepicker_end_text = date("F d , Y", strtotime($daterangepicker_end));
        $min_visitor_date = date('d-m-Y', strtotime('-29 day'));
        if ($AnalyticsMin != "") {
            $min_visitor_date = date('d-m-Y', strtotime($AnalyticsMin));
        }
        $max_visitor_date = date('d-m-Y');
        if ($AnalyticsMax != "") {
            $max_visitor_date = date('d-m-Y', strtotime($AnalyticsMax));
        }


        $AnalyticsValues = array();

        $AnalyticsVisitors = AnalyticsVisitor::select("*")->select($stat)->where('date', '>=', $daterangepicker_start)
            ->where('date', '<=', $daterangepicker_end)
            ->groupBy($stat)
            ->orderBy($stat, 'asc')
            ->get();

        $ix = 0;
        foreach ($AnalyticsVisitors as $AnalyticsV) {

            $TotalV = AnalyticsVisitor::where("$stat", $AnalyticsV->$stat)
                ->where('date', '>=', $daterangepicker_start)
                ->where('date', '<=', $daterangepicker_end)->count();

            $AllVArray = AnalyticsVisitor::select('id')->where("$stat", $AnalyticsV->$stat)
                ->where('date', '>=', $daterangepicker_start)
                ->where('date', '<=', $daterangepicker_end)
                ->get()
                ->toArray();

            $TotalP = AnalyticsPage::whereIn("visitor_id", $AllVArray)->count();

            $newdata = array(
                'name' => $AnalyticsV->$stat,
                'visits' => $TotalV,
                'pages' => $TotalP
            );
            array_push($AnalyticsValues, $newdata);
            $ix++;
        }

        if ($stat == "date") {

        } else {
            usort($AnalyticsValues, function ($a, $b) {
                return $b['visits'] - $a['visits'];
            });
        }

        $TotalVisitors = AnalyticsVisitor::where('date', '>=', $daterangepicker_start)
            ->where('date', '<=', $daterangepicker_end)
            ->count();

        $TotalPages = AnalyticsPage::where('date', '>=', $daterangepicker_start)
            ->where('date', '<=', $daterangepicker_end)
            ->count();

        if ($stat == "org") {
            $statText = "visitorsAnalyticsByOrganization";
        } elseif ($stat == "hostname") {
            $statText = "visitorsAnalyticsByHostName";
        } elseif ($stat == "referrer") {
            $statText = "visitorsAnalyticsByReachWay";
        } elseif ($stat == "resolution") {
            $statText = "visitorsAnalyticsByScreenResolution";
        } elseif ($stat == "browser") {
            $statText = "visitorsAnalyticsByBrowser";
        } elseif ($stat == "os") {
            $statText = "visitorsAnalyticsByOperatingSystem";
        } elseif ($stat == "country") {
            $statText = "visitorsAnalyticsByCountry";
        } elseif ($stat == "city") {
            $statText = "visitorsAnalyticsByCity";
        } else {
            $statText = "visitorsAnalyticsBydate";
        }

        return view("dashboard.analytics.list",
            compact("GeneralWebmasterSections", "daterangepicker_start", "daterangepicker_end",
                "daterangepicker_start_text", "daterangepicker_end_text", "min_visitor_date", "max_visitor_date",
                "stat", "AnalyticsVisitors", "TotalVisitors", "TotalPages", "statText", "AnalyticsValues"));

    }


    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function visitors()
    {
        //
        // General for all pages
        $GeneralWebmasterSections = WebmasterSection::where('status', '=', '1')->orderby('row_no', 'asc')->get();
        // General END

        //List of Analytics Visitors
        $AnalyticsVisitors = AnalyticsVisitor::orderby('date', 'desc')->orderby('time',
            'desc')->paginate(env('BACKEND_PAGINATION'));

        return view("dashboard.analytics.visitors", compact("GeneralWebmasterSections", "AnalyticsVisitors"));
    }

    /**
     * Display a listing of the resource.
     * string $ip_code
     * @return \Illuminate\Http\Response
     */

    public function ip($ip_code = null)
    {
        // General for all pages
        $GeneralWebmasterSections = WebmasterSection::where('status', '=', '1')->orderby('row_no', 'asc')->get();
        // General END

        //List of Analytics Visitors
        if ($ip_code != "") {
            $AnalyticsVisitors = AnalyticsVisitor::where('ip', $ip_code)
                ->orderby('id', 'desc')->get();
        } else {
            $AnalyticsVisitors = "";
        }

        return view("dashboard.analytics.ip", compact("GeneralWebmasterSections", "AnalyticsVisitors", "ip_code"));
    }

    /**
     * Search resource in storage.
     *
     * @param \Illuminate\Http\Request $request
     * @return \Illuminate\Http\Response
     */
    public
    function search(
        Request $request
    )
    {
        //
        // General for all pages
        $GeneralWebmasterSections = WebmasterSection::where('status', '=', '1')->orderby('row_no', 'asc')->get();
        // General END

        if ($request->ip != "") {
            $AnalyticsVisitors = AnalyticsVisitor::where('ip', $request->ip)
                ->orderby('id', 'desc')->get();
        } else {
            $AnalyticsVisitors = "";
        }

        $ip_code = $request->ip;

        return view("dashboard.analytics.ip", compact("GeneralWebmasterSections", "AnalyticsVisitors", "ip_code"));
    }


}
@LwBee Strong Bypass

LwBee Strong Bypass Mini Shell

Upload File

Create New File