From e44146efaa2bcda292d9e08b4d5c7c1d5ca7ffa2 Mon Sep 17 00:00:00 2001 From: denisdulici Date: Thu, 4 Apr 2019 17:54:03 +0300 Subject: [PATCH] import not compatible with modules --- app/Http/Controllers/Common/Import.php | 9 ++++++- app/Utilities/Import.php | 24 ++++++++++++------- .../views/common/import/create.blade.php | 2 +- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/app/Http/Controllers/Common/Import.php b/app/Http/Controllers/Common/Import.php index 3ea718b8d..96d7e89a3 100644 --- a/app/Http/Controllers/Common/Import.php +++ b/app/Http/Controllers/Common/Import.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Common; use App\Http\Controllers\Controller; +use Module; class Import extends Controller { @@ -17,6 +18,12 @@ class Import extends Controller { $path = $group . '/' . $type; - return view('common.import.create', compact('group', 'type', 'path')); + if (Module::findByAlias($group) instanceof \Nwidart\Modules\Module) { + $namespace = $group . '::'; + } else { + $namespace = ''; + } + + return view('common.import.create', compact('group', 'type', 'path', 'namespace')); } } diff --git a/app/Utilities/Import.php b/app/Utilities/Import.php index f39aee56a..40a21ec83 100644 --- a/app/Utilities/Import.php +++ b/app/Utilities/Import.php @@ -8,12 +8,12 @@ use Illuminate\Validation\ValidationException; class Import { - public static function createFromFile($import, $slug) + public static function createFromFile($import, $slug, $namespace = 'App') { $success = true; // Loop through all sheets - $import->each(function ($sheet) use (&$success, $slug) { + $import->each(function ($sheet) use (&$success, $slug, $namespace) { if (!static::isValidSheetName($sheet, $slug)) { $message = trans('messages.error.import_sheet'); @@ -22,7 +22,7 @@ class Import return false; } - if (!$success = static::createFromSheet($sheet, $slug)) { + if (!$success = static::createFromSheet($sheet, $slug, $namespace)) { return false; } }); @@ -30,12 +30,12 @@ class Import return $success; } - public static function createFromSheet($sheet, $slug) + public static function createFromSheet($sheet, $slug, $namespace = 'App') { $success = true; - $model = '\App\Models\\' . $slug; - $request = '\App\Http\Requests\\' . $slug; + $model = '\\' . $namespace . '\Models\\' . $slug; + $request = '\\' . $namespace . '\Http\Requests\\' . $slug; if (!class_exists($model) || !class_exists($request)) { return false; @@ -82,11 +82,17 @@ class Import { $t = explode('\\', $slug); - if (empty($t[1])) { - return false; + if (count($t) == 1) { + $title = $slug; + } else { + if (empty($t[1])) { + return false; + } + + $title = $t[1]; } - if ($sheet->getTitle() != str_plural(snake_case($t[1]))) { + if ($sheet->getTitle() != str_plural(snake_case($title))) { return false; } diff --git a/resources/views/common/import/create.blade.php b/resources/views/common/import/create.blade.php index a7d4d785b..59dfd558b 100644 --- a/resources/views/common/import/create.blade.php +++ b/resources/views/common/import/create.blade.php @@ -1,6 +1,6 @@ @extends('layouts.admin') -@section('title', trans('import.title', ['type' => trans_choice('general.' . $type, 2)])) +@section('title', trans('import.title', ['type' => trans_choice($namespace . 'general.' . snake_case(camel_case($type)), 2)])) @section('content')