Uname: Linux peekpos.com 6.8.0-1060-aws #63~22.04.1-Ubuntu SMP Tue Jun 30 02:32:53 UTC 2026 x86_64
Software: Apache
PHP version: 8.3.25 [ PHP INFO ] PHP os: Linux
Server Ip: 47.130.192.226
Your Ip: 10.3.134.78
User: www (1001) | Group: www (1001)
Safe Mode: OFF
Disable Function:
passthru,putenv,chroot,chgrp,chown,shell_exec,popen,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv

name : LanguageController.php
<?php

namespace App\Http\Controllers\addons\included;

use App\Http\Controllers\Controller;
use App\Models\Languages;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\File;

class LanguageController extends Controller
{

    public function index(Request $request)
    {

        $getlanguages = Languages::where('is_available', '1')->get();

        if ($request->code == "") {
            foreach ($getlanguages as $firstlang) {
                $currantLang = Languages::where('code', $firstlang->code)->first();
                break;
            }
        } else {
            $currantLang = Languages::where('code', $request->code)->first();
        }
        $dir = base_path() . '/resources/lang/' . $currantLang->code;

        if (!is_dir($dir)) {
            $dir = base_path() . '/resources/lang/en';
        }
        $arrLabel   = json_decode(file_get_contents($dir . '/' . 'labels.json'));

        $arrMessage   = json_decode(file_get_contents($dir . '/' . 'messages.json'));


        return view('admin.included.language.index', compact('getlanguages', 'currantLang', 'arrLabel', 'arrMessage'));
    }

    public function language(Request $request)
    {
        $getlanguages = Languages::where('is_available', '1')->get();

        if ($request->code == "") {
            foreach ($getlanguages as $firstlang) {
                $currantLang = Languages::where('code', $firstlang->code)->first();
                break;
            }
        } else {
            $currantLang = Languages::where('code', $request->code)->first();
        }
        $dir = base_path() . '/resources/lang/' . $currantLang->code;

        if (!is_dir($dir)) {
            $dir = base_path() . '/resources/lang/en';
        }
        $arrLabel   = json_decode(file_get_contents($dir . '/' . 'labels.json'));

        $arrMessage   = json_decode(file_get_contents($dir . '/' . 'messages.json'));


        return view('admin.included.language.index', compact('getlanguages', 'currantLang', 'arrLabel', 'arrMessage'));
    }

    public function add()
    {
        return view('admin.included.language.add');
    }

    public function store(Request $request)
    {

        $path = base_path('resources/lang/' . $request->code);
        if (!File::isDirectory($path)) {
            File::makeDirectory($path, 0777, true, true);
        }
        File::copyDirectory(base_path() . '/resources/lang/en', base_path() . '/resources/lang/' . $request->code);

        if ($request->default == 1) {
            Languages::where('is_default', '1')->update(array('is_default' => 2));
            $default = 1;
        } else {
            $default = 2;
        }

        $language = new Languages();
        $language->code = $request->code;
        $language->name = $request->name;
        $language->layout = $request->layout;
        $language->is_default = $default;
        if ($request->has('image')) {
            $flagimage = 'flag-' . uniqid() . "." . $request->file('image')->getClientOriginalExtension();
            $request->file('image')->move(storage_path('app/public/admin-assets/images/language/'), $flagimage);
            $language->image = $flagimage;
        }
        $language->is_available = 1;
        $language->save();
        return redirect('admin/language-settings')->with('success', trans('messages.success'));
    }

    public function status(Request $request)
    {
        $language = Languages::find($request->id);
        $language->is_available = $request->status;
        $language->save();
        if ($language) {
            return redirect()->back()->with('success', trans('messages.success'));
        } else {
            return redirect()->back()->with('error', trans('messages.wrong'));
        }
    }

    public function storeLanguageData(Request $request)
    {

        $langFolder = base_path() . '/resources/lang/' . $request->currantLang;

        if (!is_dir($langFolder)) {
            mkdir($langFolder);
            chmod($langFolder, 0777);
        }

        if (isset($request->file) == "label") {
            if (isset($request->label) && !empty($request->label)) {

                $content = "<?php return [";
                $contentjson = "{";
                foreach ($request->label as $key => $data) {
                    $content .= '"' . $key . '" => "' . str_replace('\\', '', addslashes($data)) . '",';
                    $contentjson .= '"' . $key . '":"' . $data . '",';
                }
                $content .= "];";
                $contentjson .= "}";

                file_put_contents($langFolder . "/labels.php", $content);
                file_put_contents($langFolder . "/labels.json", str_replace(",}", "}", $contentjson));
            }
        }

        if (isset($request->file) == "message") {
            if (isset($request->message) && !empty($request->message)) {

                $content = "<?php return [";
                $contentjson = "{";
                foreach ($request->message as $key => $data) {
                    $content .= '"' . $key . '" => "' . str_replace('\\', '', addslashes($data)) . '",';
                    $contentjson .= '"' . $key . '":"' . $data . '",';
                }
                $content .= "];";
                $contentjson .= "}";

                file_put_contents($langFolder . "/messages.php", $content);
                file_put_contents($langFolder . "/messages.json", str_replace(",}", "}", $contentjson));
            }
        }



        return redirect()->back()->with('success', trans('messages.success'));
    }

    public function layout(Request $request)
    {
        $language = Languages::find($request->id);
        $language->layout = $request->status;
        $language->save();
        return redirect()->back()->with('success', trans('messages.success'));
    }

    public function edit($id)
    {
        $getlanguage = Languages::where('id', $id)->first();
        return view('admin.included.language.edit', compact('getlanguage'));
    }

    public function update(Request $request, $id)
    {
        try {
            $default = 2;
            if ($request->default == 1) {
                Languages::where('is_default', '1')->update(array('is_default' => 2));
                $default = $request->default;
            }
            $language = Languages::where('id', $id)->first();
            $language->layout = $request->layout;
            $language->is_default = @$default;
            if ($request->has('image')) {
                $flagimage = 'flag-' . uniqid() . "." . $request->file('image')->getClientOriginalExtension();
                $request->file('image')->move(env('ASSETSPATHURL') . 'admin-assets/images/language/', $flagimage);
                $language->image = $flagimage;
            }
            $language->update();
            return redirect('admin/language-settings')->with('success', trans('messages.success'));
        } catch (\Throwable $th) {
            return redirect('admin/language-settings')->with('error', trans('messages.wrong'));
        }
    }

    public function delete(Request $request)
    {

        $Languages = Languages::where('id', $request->id)->first();

        $updateLanguages = Languages::where('id', $request->id)->update(array('is_available' => $request->status));
        if ($updateLanguages) {
            if (file_exists(env('ASSETSPATHURL') . 'admin-assets/images/Languages/' . $Languages->image)) {
                unlink(env('ASSETSPATHURL') . 'admin-assets/images/Languages/' . $Languages->image);
            }
            return redirect()->back()->with('success', trans('messages.success'));
        } else {
            return redirect()->back()->with('error', trans('messages.wrong'));
        }
    }


    // Language change from header
    public function change(Request $request)
    {

        $layout = Languages::select('name', 'layout', 'image')->where('code', $request->lang)->first();
        App::setLocale($request->lang);
        session()->put('locale', $request->lang);
        session()->put('language', $layout->name);
        session()->put('flag', $layout->image);
        session()->put('direction', $layout->layout);
        return redirect()->back();
    }
}
© 2026 GrazzMean