JFIF  x x C         C     "        } !1AQa "q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz        w !1AQ aq"2B #3Rbr{ gilour

File "LanguageController.php"

Full Path: /var/www/laravel_filter/Modules/Language/Http/Controllers/LanguageController.php
File size: 13.05 KB
MIME-type: text/x-php
Charset: utf-8

<?php

namespace Modules\Language\Http\Controllers;

use DB, File;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use App\Models\UserTypeTranslation;

use Modules\Language\Entities\Language;
use Modules\Page\Entities\FaqTranslate;
use Modules\Page\Entities\PrivacyPolicy;
use Modules\Blog\Entities\BlogTranslation;
use Modules\Page\Entities\TermAndCondition;
use Illuminate\Contracts\Support\Renderable;

use Modules\Page\Entities\AboutUsTranslation;
use Modules\Page\Entities\HomePageTranslation;
use Modules\Page\Entities\CustomPageTranslation;
use Modules\Page\Http\Controllers\FaqController;
use Modules\Service\Entities\ServiceTranslation;
use Modules\Blog\Http\Controllers\BlogController;

use Modules\Service\Entities\CategoryTranslation;
use App\Http\Controllers\Admin\UserTypeController;
use Modules\Blog\Entities\BlogCategoryTranslation;
use Modules\Section\Entities\SliderOneTranslation;

use Modules\Section\Entities\OurFeatureTranslation;
use Modules\Page\Http\Controllers\AboutUsController;
use Modules\Section\Entities\TestimonialTranslation;
use Modules\Section\Entities\WhyChooseUsTranslation;
use Modules\Page\Http\Controllers\HomePageController;

use Modules\Section\Http\Controllers\SliderController;
use Modules\Page\Http\Controllers\CustomPageController;
use Modules\Service\Http\Controllers\ServiceController;
use Modules\Section\Entities\WorkingProccessTranslation;
use Modules\Service\Http\Controllers\CategoryController;

use Modules\Blog\Http\Controllers\BlogCategoryController;
use Modules\Page\Http\Controllers\PrivacyPolicyController;

use Modules\Section\Http\Controllers\OurFeatureController;
use Modules\Service\Entities\AdditionalServiceTranslation;
use Modules\Page\Http\Controllers\TermsConditionController;

use Modules\Section\Http\Controllers\TestimonialController;
use Modules\Section\Http\Controllers\WhyChooseUsController;
use Modules\Section\Http\Controllers\WorkingProcessController;

class LanguageController extends Controller
{

    public function __construct()
    {
        $this->middleware('auth:admin');
    }

    public function index()
    {
        $languages = Language::all();

        return view('language::lang_index', compact('languages'));
    }

    public function create()
    {
        return view('language::lang_create');
    }


    public function store(Request $request)
    {
        $rules = [
            'lang_name'=>'required|unique:languages',
            'lang_code'=>'required|unique:languages'
        ];
        $customMessages = [
            'lang_name.required' => trans('admin_validation.Name is required'),
            'lang_name.unique' => trans('admin_validation.Name already exist'),
            'lang_code.required' => trans('admin_validation.Code is required'),
            'lang_code.unique' => trans('admin_validation.Code already exist'),
        ];
        $request->validate($rules,$customMessages);

        $language = new Language();

        if($request->is_default == 'yes'){
            DB::table('languages')->update(['is_default' => 'No']);
        }

        $language->lang_name = $request->lang_name;
        $language->lang_code = $request->lang_code;
        $language->is_default = $request->is_default;
        $language->lang_direction = $request->lang_direction;
        $language->status = $request->status;
        $language->save();

        /** start blog category*/

        $blog_cat_translate = new BlogCategoryController();
        $blog_cat_translate->assign_language($request->lang_code);

        /** end blog category*/

        /** start blog */

        $blog_translate = new BlogController();
        $blog_translate->assign_language($request->lang_code);

        /** end blog */

        /** start about us */

        $about_us_translate = new AboutUsController();
        $about_us_translate->assign_language($request->lang_code);

        /** end about us */

        /** start custom page */

        $page_translate = new CustomPageController();
        $page_translate->assign_language($request->lang_code);

        /** end custom page */

        /** start t&c page */

        $terms_cond_translate = new TermsConditionController();
        $terms_cond_translate->assign_language($request->lang_code);

        /** end t&c page */

        /** start privacy page */

        $privacy_translate = new PrivacyPolicyController();
        $privacy_translate->assign_language($request->lang_code);

        /** end privacy page */

        /** start faq page */

        $faq_translate = new FaqController();
        $faq_translate->assign_language($request->lang_code);

        /** end faq page */

        /** start feature section */

        $feature_translate = new OurFeatureController();
        $feature_translate->assign_language($request->lang_code);

        /** end feature section */

        /** start testimonial section */

        $testimonial_translate = new TestimonialController();
        $testimonial_translate->assign_language($request->lang_code);

        /** end testimonial section */

        /** start slider section */

        $slider_translate = new SliderController();
        $slider_translate->assign_language($request->lang_code);

        /** end slider section */

        /** start working proccess section */

        $working_translate = new WorkingProcessController();
        $working_translate->assign_language($request->lang_code);

        /** end working proccess section */

        /** start why choose section */

        $why_translate = new WhyChooseUsController();
        $why_translate->assign_language($request->lang_code);

        /** end why choose section */

        /** start home page */

        $home_translate = new HomePageController();
        $home_translate->assign_language($request->lang_code);

        /** end home page */

        /** start home page */

        $user_type_translate = new UserTypeController();
        $user_type_translate->assign_language($request->lang_code);

        /** end home page */



        /** start service */

        $service_cat_translate = new CategoryController();
        $service_cat_translate->assign_language($request->lang_code);

        $service_translate = new ServiceController();
        $service_translate->assign_language($request->lang_code);

        $additional_translate = new ServiceController();
        $additional_translate->additional_assign_language($request->lang_code);

        /** end service */

        /** generate local language */

        $path = base_path().'/lang'.'/'.$request->lang_code;

        if (! File::exists($path)) {
            File::makeDirectory($path);

            $sourcePath = base_path().'/lang/en';
            $destinationPath = $path;

            // Get all files from the source folder
            $files = File::allFiles($sourcePath);

            foreach ($files as $file) {
                $destinationFile = $destinationPath . '/' . $file->getRelativePathname();

                // Copy the file to the destination folder
                File::copy($file->getRealPath(), $destinationFile);
            }
        }

        /** end generate local language */

        $notification=trans('admin_validation.Created Successfully');
        $notification=array('messege'=>$notification,'alert-type'=>'success');
        return redirect()->route('admin.language.index')->with($notification);
    }

    public function edit($id)
    {
        $language = Language::findOrFail($id);
        return view('language::lang_edit', compact('language'));
    }

    public function update(Request $request, $id)
    {
        $rules = [
            'lang_name'=>'required|unique:languages,id,'.$id,
            'lang_code'=>'required|unique:languages,id,'.$id,
        ];
        $customMessages = [
            'lang_name.required' => trans('admin_validation.Name is required'),
            'lang_name.unique' => trans('admin_validation.Name already exist'),
            'lang_code.required' => trans('admin_validation.Code is required'),
            'lang_code.unique' => trans('admin_validation.Code already exist'),
        ];

        $request->validate($rules,$customMessages);

        $language = Language::findOrFail($id);

        if($request->is_default == 'yes'){
            DB::table('languages')->update(['is_default' => 'no']);
        }

        if($language->is_default == 'yes' && $request->is_default == 'no'){
            DB::table('languages')->where('id', 1)->update(['is_default' => 'yes']);
        }

        $language->lang_name = $request->lang_name;
        $language->is_default = $request->is_default;
        $language->lang_direction = $request->lang_direction;
        $language->status = $request->status;
        $language->save();

        $notification=trans('admin_validation.Updated Successfully');
        $notification=array('messege'=>$notification,'alert-type'=>'success');
        return redirect()->route('admin.language.index')->with($notification);
    }

    public function destroy($id)
    {
        $language = Language::findOrFail($id);

        BlogCategoryTranslation::where('lang_code', $language->lang_code)->delete();
        BlogTranslation::where('lang_code', $language->lang_code)->delete();
        AboutUsTranslation::where('lang_code', $language->lang_code)->delete();
        CustomPageTranslation::where('lang_code', $language->lang_code)->delete();
        TermAndCondition::where('lang_code', $language->lang_code)->delete();
        PrivacyPolicy::where('lang_code', $language->lang_code)->delete();
        FaqTranslate::where('lang_code', $language->lang_code)->delete();
        OurFeatureTranslation::where('lang_code', $language->lang_code)->delete();
        TestimonialTranslation::where('lang_code', $language->lang_code)->delete();
        SliderOneTranslation::where('lang_code', $language->lang_code)->delete();
        WorkingProccessTranslation::where('lang_code', $language->lang_code)->delete();
        WhyChooseUsTranslation::where('lang_code', $language->lang_code)->delete();
        HomePageTranslation::where('lang_code', $language->lang_code)->delete();
        CategoryTranslation::where('lang_code', $language->lang_code)->delete();
        ServiceTranslation::where('lang_code', $language->lang_code)->delete();
        AdditionalServiceTranslation::where('lang_code', $language->lang_code)->delete();
        UserTypeTranslation::where('lang_code', $language->lang_code)->delete();

        $path = base_path().'/lang'.'/'.$language->lang_code;

        if (File::exists($path)) {
            File::deleteDirectory($path);
        }

        $language->delete();

        $notification=trans('admin_validation.Deleted Successfully');
        $notification=array('messege'=>$notification,'alert-type'=>'success');
        return redirect()->route('admin.language.index')->with($notification);

    }

    public function theme_language(Request $request){
        if(File::exists('lang/'.$request->lang_code.'/admin.php')) {
            $data = include('lang/'.$request->lang_code.'/admin.php');

            return view('language::theme_language', ['data' => $data]);
        }else{
            $notification=trans('admin_validation.Your requested language does not exist');
            $notification=array('messege'=>$notification,'alert-type'=>'error');
            return redirect()->route('admin.language.index')->with($notification);
        }
    }

    public function update_theme_language(Request $request){

        $dataArray = [];
        foreach($request->values as $index => $value){
            $dataArray[$index] = $value;
        }

        file_put_contents('lang/'.$request->lang_code.'/admin.php', "");
        $dataArray = var_export($dataArray, true);
        file_put_contents('lang/'.$request->lang_code.'/admin.php', "<?php\n return {$dataArray};\n ?>");

        $notification= trans('admin_validation.Update Successfully');
        $notification=array('messege'=>$notification,'alert-type'=>'success');
        return redirect()->back()->with($notification);

    }

    public function validation_language(Request $request){

        if(File::exists('lang/'.$request->lang_code.'/admin_validation.php')) {
            $data = include('lang/'.$request->lang_code.'/admin_validation.php');

            return view('language::validation_language', ['data' => $data]);
        }else{
            $notification=trans('admin_validation.Your requested language does not exist');
            $notification=array('messege'=>$notification,'alert-type'=>'error');
            return redirect()->route('admin.language.index')->with($notification);
        }
    }

    public function update_validation_language(Request $request){

        $dataArray = [];
        foreach($request->values as $index => $value){
            $dataArray[$index] = $value;
        }

        file_put_contents('lang/'.$request->lang_code.'/admin_validation.php', "");
        $dataArray = var_export($dataArray, true);
        file_put_contents('lang/'.$request->lang_code.'/admin_validation.php', "<?php\n return {$dataArray};\n ?>");

        $notification= trans('admin_validation.Update Successfully');
        $notification=array('messege'=>$notification,'alert-type'=>'success');
        return redirect()->back()->with($notification);

    }

}