Revert "Multi theme system now supported in admin"

This commit is contained in:
Jitendra Singh 2020-08-10 19:07:32 +05:30 committed by GitHub
parent 6276505fd3
commit c4abe9cad3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 206 additions and 44 deletions

188
config/modules.php Normal file
View File

@ -0,0 +1,188 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Module Namespace
|--------------------------------------------------------------------------
|
| Default module namespace.
|
*/
'namespace' => 'Modules',
/*
|--------------------------------------------------------------------------
| Module Stubs
|--------------------------------------------------------------------------
|
| Default module stubs.
|
*/
'stubs' => [
'enabled' => false,
'path' => base_path() . '/vendor/nwidart/laravel-modules/src/Commands/stubs',
'files' => [
'start' => 'start.php',
'routes' => 'Http/routes.php',
'views/index' => 'Resources/views/index.blade.php',
'views/master' => 'Resources/views/layouts/master.blade.php',
'scaffold/config' => 'Config/config.php',
'composer' => 'composer.json',
'assets/js/app' => 'Resources/assets/js/app.js',
'assets/sass/app' => 'Resources/assets/sass/app.scss',
'webpack' => 'webpack.mix.js',
'package' => 'package.json',
],
'replacements' => [
'start' => ['LOWER_NAME', 'ROUTES_LOCATION'],
'routes' => ['LOWER_NAME', 'STUDLY_NAME', 'MODULE_NAMESPACE'],
'webpack' => ['LOWER_NAME'],
'json' => ['LOWER_NAME', 'STUDLY_NAME', 'MODULE_NAMESPACE'],
'views/index' => ['LOWER_NAME'],
'views/master' => ['LOWER_NAME', 'STUDLY_NAME'],
'scaffold/config' => ['STUDLY_NAME'],
'composer' => [
'LOWER_NAME',
'STUDLY_NAME',
'VENDOR',
'AUTHOR_NAME',
'AUTHOR_EMAIL',
'MODULE_NAMESPACE',
],
],
'gitkeep' => true,
],
'paths' => [
/*
|--------------------------------------------------------------------------
| Modules path
|--------------------------------------------------------------------------
|
| This path used for save the generated module. This path also will be added
| automatically to list of scanned folders.
|
*/
'modules' => base_path('Modules'),
/*
|--------------------------------------------------------------------------
| Modules assets path
|--------------------------------------------------------------------------
|
| Here you may update the modules assets path.
|
*/
'assets' => public_path('modules'),
/*
|--------------------------------------------------------------------------
| The migrations path
|--------------------------------------------------------------------------
|
| Where you run 'module:publish-migration' command, where do you publish the
| the migration files?
|
*/
'migration' => base_path('database/migrations'),
/*
|--------------------------------------------------------------------------
| Generator path
|--------------------------------------------------------------------------
| Customise the paths where the folders will be generated.
| Set the generate key to false to not generate that folder
*/
'generator' => [
'config' => ['path' => 'Config', 'generate' => true],
'command' => ['path' => 'Console', 'generate' => true],
'migration' => ['path' => 'Database/Migrations', 'generate' => true],
'seeder' => ['path' => 'Database/Seeders', 'generate' => true],
'factory' => ['path' => 'Database/factories', 'generate' => true],
'model' => ['path' => 'Entities', 'generate' => true],
'controller' => ['path' => 'Http/Controllers', 'generate' => true],
'filter' => ['path' => 'Http/Middleware', 'generate' => true],
'request' => ['path' => 'Http/Requests', 'generate' => true],
'provider' => ['path' => 'Providers', 'generate' => true],
'assets' => ['path' => 'Resources/assets', 'generate' => true],
'lang' => ['path' => 'Resources/lang', 'generate' => true],
'views' => ['path' => 'Resources/views', 'generate' => true],
'test' => ['path' => 'Tests', 'generate' => true],
'repository' => ['path' => 'Repositories', 'generate' => false],
'event' => ['path' => 'Events', 'generate' => false],
'listener' => ['path' => 'Listeners', 'generate' => false],
'policies' => ['path' => 'Policies', 'generate' => false],
'rules' => ['path' => 'Rules', 'generate' => false],
'jobs' => ['path' => 'Jobs', 'generate' => false],
'emails' => ['path' => 'Emails', 'generate' => false],
'notifications' => ['path' => 'Notifications', 'generate' => false],
'resource' => ['path' => 'Transformers', 'generate' => false],
],
],
/*
|--------------------------------------------------------------------------
| Scan Path
|--------------------------------------------------------------------------
|
| Here you define which folder will be scanned. By default will scan vendor
| directory. This is useful if you host the package in packagist website.
|
*/
'scan' => [
'enabled' => false,
'paths' => [
base_path('vendor/*/*'),
],
],
/*
|--------------------------------------------------------------------------
| Composer File Template
|--------------------------------------------------------------------------
|
| Here is the config for composer.json file, generated by this package
|
*/
'composer' => [
'vendor' => 'nwidart',
'author' => [
'name' => 'Nicolas Widart',
'email' => 'n.widart@gmail.com',
],
],
/*
|--------------------------------------------------------------------------
| Caching
|--------------------------------------------------------------------------
|
| Here is the config for setting up caching feature.
|
*/
'cache' => [
'enabled' => false,
'key' => 'laravel-modules',
'lifetime' => 60,
],
/*
|--------------------------------------------------------------------------
| Choose what laravel-modules will register as custom namespaces.
| Setting one to false will require you to register that part
| in your own Service Provider class.
|--------------------------------------------------------------------------
*/
'register' => [
'translations' => true,
/**
* load files on boot or register method
*
* Note: boot not compatible with asgardcms
*
* @example boot|register
*/
'files' => 'register',
],
];

View File

@ -23,15 +23,5 @@ return [
'name' => 'Velocity', 'name' => 'Velocity',
'parent' => 'default' 'parent' => 'default'
], ],
],
'admin-default' => 'default',
'admin-themes' => [
'default' => [
'views_path' => 'resources/admin-themes/default/views',
'assets_path' => 'public/admin-themes/default/assets',
'name' => 'Default'
]
] ]
]; ];

View File

@ -4,7 +4,6 @@ namespace Webkul\Theme;
use Webkul\Theme\Facades\Themes; use Webkul\Theme\Facades\Themes;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Illuminate\Support\Str;
use Illuminate\View\FileViewFinder; use Illuminate\View\FileViewFinder;
class ThemeViewFinder extends FileViewFinder class ThemeViewFinder extends FileViewFinder
@ -20,7 +19,7 @@ class ThemeViewFinder extends FileViewFinder
// Extract the $view and the $namespace parts // Extract the $view and the $namespace parts
list($namespace, $view) = $this->parseNamespaceSegments($name); list($namespace, $view) = $this->parseNamespaceSegments($name);
if (! Str::contains(request()->route()->uri, 'admin/')) { if ($namespace != 'admin') {
$paths = $this->addThemeNamespacePaths($namespace); $paths = $this->addThemeNamespacePaths($namespace);
try { try {
@ -35,23 +34,7 @@ class ThemeViewFinder extends FileViewFinder
return $this->findInPaths($view, $paths); return $this->findInPaths($view, $paths);
} }
} else { } else {
$themes = app('themes'); return $this->findInPaths($view, $this->hints[$namespace]);
$themes->set(config('themes.admin-default'));
$paths = $this->addThemeNamespacePaths($namespace);
try {
return $this->findInPaths($view, $paths);
} catch(\Exception $e) {
if ($namespace != 'admin') {
if (strpos($view, 'admin.') !== false) {
$view = str_replace('admin.', 'admin.' . Themes::current()->code . '.', $view);
}
}
return $this->findInPaths($view, $paths);
}
} }
} }
@ -101,6 +84,19 @@ class ThemeViewFinder extends FileViewFinder
} }
} }
/**
* Get the string contents of the view.
*
* @param callable|null $callback
* @return array|string
*
* @throws \Throwable
*/
public function render(callable $callback = null)
{
dd(111);
}
/** /**
* Set the array of paths where the views are being searched. * Set the array of paths where the views are being searched.
* *

View File

@ -3,7 +3,6 @@
namespace Webkul\Theme; namespace Webkul\Theme;
use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Config;
use Illuminate\Support\Str;
use Webkul\Theme\Theme; use Webkul\Theme\Theme;
class Themes class Themes
@ -43,16 +42,10 @@ class Themes
*/ */
public function __construct() public function __construct()
{ {
$routeURI = request()->route()->uri;
if (Str::contains(request()->route()->uri, 'admin/')) {
$this->defaultThemeCode = Config::get('themes.admin-default', null);
} else {
$this->defaultThemeCode = Config::get('themes.default', null);
}
$this->laravelViewsPath = Config::get('view.paths'); $this->laravelViewsPath = Config::get('view.paths');
$this->defaultThemeCode = Config::get('themes.default', null);
$this->loadThemes(); $this->loadThemes();
} }
@ -92,11 +85,7 @@ class Themes
{ {
$parentThemes = []; $parentThemes = [];
if (Str::contains(request()->route()->uri, 'admin/')) { $themes = config('themes.themes', []);
$themes = config('themes.admin-themes', []);
} else {
$themes = config('themes.themes', []);
}
foreach ($themes as $code => $data) { foreach ($themes as $code => $data) {
$this->themes[] = new Theme( $this->themes[] = new Theme(
@ -151,7 +140,6 @@ class Themes
Config::set('view.paths', $paths); Config::set('view.paths', $paths);
$themeViewFinder = app('view.finder'); $themeViewFinder = app('view.finder');
$themeViewFinder->setPaths($paths); $themeViewFinder->setPaths($paths);
return $theme; return $theme;