diff --git a/app/Http/Controllers/Auth/ForgotPasswordController.php b/app/Http/Controllers/Auth/ForgotPasswordController.php index 8df86d0d..2182c418 100755 --- a/app/Http/Controllers/Auth/ForgotPasswordController.php +++ b/app/Http/Controllers/Auth/ForgotPasswordController.php @@ -22,6 +22,6 @@ class ForgotPasswordController extends Controller */ public function showLinkRequestForm() { - return $this->view('auth.passwords.email'); + return view('auth.passwords.email'); } } diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index dd54f842..c6812f8f 100755 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -28,7 +28,7 @@ class LoginController extends Controller */ public function showLoginForm() { - return $this->view('auth/login'); + return view('auth/login'); } /** @@ -54,11 +54,11 @@ class LoginController extends Controller // Redirect to one of the error pages if($user->state === UserState::PENDING) { - return $this->view('auth.pending'); + return view('auth.pending'); } elseif ($user->state === UserState::REJECTED) { - return $this->view('auth.rejected'); + return view('auth.rejected'); } elseif ($user->state === UserState::SUSPENDED) { - return $this->view('auth.suspended'); + return view('auth.suspended'); } } diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index b6bd853f..e27b02b2 100755 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -55,7 +55,7 @@ class RegisterController extends Controller $airports = $this->airportRepo->selectBoxList(false, true); $airlines = $this->airlineRepo->selectBoxList(); - return $this->view('auth.register', [ + return view('auth.register', [ 'airports' => $airports, 'airlines' => $airlines, 'timezones' => Timezonelist::toArray(), @@ -121,7 +121,7 @@ class RegisterController extends Controller $user = $this->create($request->all()); if($user->state === UserState::PENDING) { - return $this->view('auth.pending'); + return view('auth.pending'); } $this->guard()->login($user); diff --git a/app/Http/Controllers/Auth/ResetPasswordController.php b/app/Http/Controllers/Auth/ResetPasswordController.php index 2fc2837f..91a6a3c7 100755 --- a/app/Http/Controllers/Auth/ResetPasswordController.php +++ b/app/Http/Controllers/Auth/ResetPasswordController.php @@ -19,7 +19,7 @@ class ResetPasswordController extends Controller */ public function showResetForm(Request $request, $token = null) { - return $this->view('auth.passwords.reset', + return view('auth.passwords.reset', ['token' => $token, 'email' => $request->email] ); } diff --git a/app/Http/Controllers/Frontend/AcarsController.php b/app/Http/Controllers/Frontend/AcarsController.php index e6370c7d..3769a610 100644 --- a/app/Http/Controllers/Frontend/AcarsController.php +++ b/app/Http/Controllers/Frontend/AcarsController.php @@ -33,7 +33,7 @@ class AcarsController extends Controller $pireps = $this->acarsRepo->getPositions(); $positions = $this->geoSvc->getFeatureForLiveFlights($pireps); - return $this->view('acars.index',[ + return view('acars.index',[ 'pireps' => $pireps, 'positions' => $positions, ]); diff --git a/app/Http/Controllers/Frontend/DashboardController.php b/app/Http/Controllers/Frontend/DashboardController.php index f2b5636d..62b88900 100644 --- a/app/Http/Controllers/Frontend/DashboardController.php +++ b/app/Http/Controllers/Frontend/DashboardController.php @@ -36,7 +36,7 @@ class DashboardController extends Controller $last_pirep = $this->pirepRepo->find($user->last_pirep_id); } catch(\Exception $e) { } - return $this->view('dashboard.index', [ + return view('dashboard.index', [ 'user' => $user, 'last_pirep' => $last_pirep, ]); diff --git a/app/Http/Controllers/Frontend/FlightController.php b/app/Http/Controllers/Frontend/FlightController.php index 9a16f8f1..94f6c2cb 100644 --- a/app/Http/Controllers/Frontend/FlightController.php +++ b/app/Http/Controllers/Frontend/FlightController.php @@ -68,7 +68,7 @@ class FlightController extends Controller $saved_flights = Bid::where('user_id', Auth::id()) ->pluck('flight_id')->toArray(); - return $this->view('flights.index', [ + return view('flights.index', [ 'airlines' => $this->airlineRepo->selectBoxList(true), 'airports' => $this->airportRepo->selectBoxList(true), 'flights' => $flights, @@ -89,7 +89,7 @@ class FlightController extends Controller $saved_flights = Bid::where('user_id', Auth::id()) ->pluck('flight_id')->toArray(); - return $this->view('flights.index', [ + return view('flights.index', [ 'airlines' => $this->airlineRepo->selectBoxList(true), 'airports' => $this->airportRepo->selectBoxList(true), 'flights' => $flights, @@ -112,7 +112,7 @@ class FlightController extends Controller $map_features = $this->geoSvc->flightGeoJson($flight); - return $this->view('flights.show', [ + return view('flights.show', [ 'flight' => $flight, 'map_features' => $map_features, ]); diff --git a/app/Http/Controllers/Frontend/HomeController.php b/app/Http/Controllers/Frontend/HomeController.php index 2061bbb4..6c36a4d4 100644 --- a/app/Http/Controllers/Frontend/HomeController.php +++ b/app/Http/Controllers/Frontend/HomeController.php @@ -19,7 +19,7 @@ class HomeController extends Controller return view('system/errors/not_installed'); } - return $this->view('home', [ + return view('home', [ 'users' => $users, ]); } diff --git a/app/Http/Controllers/Frontend/PirepController.php b/app/Http/Controllers/Frontend/PirepController.php index 538ea03d..65f769f2 100644 --- a/app/Http/Controllers/Frontend/PirepController.php +++ b/app/Http/Controllers/Frontend/PirepController.php @@ -166,7 +166,7 @@ class PirepController extends Controller $this->pirepRepo->pushCriteria(new WhereCriteria($request, $where)); $pireps = $this->pirepRepo->orderBy('created_at', 'desc')->paginate(); - return $this->view('pireps.index', [ + return view('pireps.index', [ 'user' => $user, 'pireps' => $pireps, ]); @@ -186,7 +186,7 @@ class PirepController extends Controller $map_features = $this->geoSvc->pirepGeoJson($pirep); - return $this->view('pireps.show', [ + return view('pireps.show', [ 'pirep' => $pirep, 'map_features' => $map_features, ]); @@ -202,7 +202,7 @@ class PirepController extends Controller $aircraft_id = $request->input('aircraft_id'); $aircraft = $this->aircraftRepo->find($aircraft_id); - return $this->view('pireps.fares', [ + return view('pireps.fares', [ 'aircraft' => $aircraft, 'read_only' => false, ]); @@ -216,7 +216,7 @@ class PirepController extends Controller { $user = Auth::user(); - return $this->view('pireps.create', [ + return view('pireps.create', [ 'aircraft' => null, 'read_only' => false, 'airline_list' => $this->airlineRepo->selectBoxList(true), @@ -289,7 +289,7 @@ class PirepController extends Controller $pirep->{$field_name} = $fare->count; } - return $this->view('pireps.edit', [ + return view('pireps.edit', [ 'pirep' => $pirep, 'read_only' => $read_only, 'aircraft' => $pirep->aircraft, diff --git a/app/Http/Controllers/Frontend/ProfileController.php b/app/Http/Controllers/Frontend/ProfileController.php index 3935cbe4..beaeabf3 100644 --- a/app/Http/Controllers/Frontend/ProfileController.php +++ b/app/Http/Controllers/Frontend/ProfileController.php @@ -50,7 +50,7 @@ class ProfileController extends Controller $airports = $this->airportRepo->all(); } - return $this->view('profile.index', [ + return view('profile.index', [ 'user' => Auth::user(), 'airports' => $airports, ]); @@ -70,7 +70,7 @@ class ProfileController extends Controller $airports = $this->airportRepo->all(); - return $this->view('profile.index', [ + return view('profile.index', [ 'user' => $user, 'airports' => $airports, ]); @@ -92,7 +92,7 @@ class ProfileController extends Controller $airlines = $this->airlineRepo->selectBoxList(); $airports = $this->airportRepo->selectBoxList(false, setting('pilots.home_hubs_only')); - return $this->view('profile.edit', [ + return view('profile.edit', [ 'user' => $user, 'airlines' => $airlines, 'airports' => $airports, diff --git a/app/Http/Controllers/Frontend/UserController.php b/app/Http/Controllers/Frontend/UserController.php index 2245df51..e513857b 100644 --- a/app/Http/Controllers/Frontend/UserController.php +++ b/app/Http/Controllers/Frontend/UserController.php @@ -26,7 +26,7 @@ class UserController extends Controller */ public function index(Request $request) { - return $this->view('users.index',[ + return view('users.index',[ 'country' => new \League\ISO3166\ISO3166(), 'users' => $this->userRepo->orderBy('name', 'desc')->paginate(), ]); diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 0e0c3247..c4835ad6 100755 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -2,6 +2,7 @@ namespace App\Providers; use App\Repositories\SettingRepository; +use App\Services\ModuleService; use Illuminate\Support\Facades\Schema; use Illuminate\Support\ServiceProvider; use View; @@ -13,7 +14,7 @@ class AppServiceProvider extends ServiceProvider Schema::defaultStringLength(191); $this->app->bind('setting', SettingRepository::class); - View::share('SKIN_NAME', config('phpvms.skin')); + View::share('moduleSvc', app(ModuleService::class)); } /** diff --git a/app/Widgets/LatestNews.php b/app/Widgets/LatestNews.php index 2164b045..fa17ca06 100644 --- a/app/Widgets/LatestNews.php +++ b/app/Widgets/LatestNews.php @@ -21,7 +21,7 @@ class LatestNews extends BaseWidget { $newsRepo = app(NewsRepository::class); - return $this->view('widgets.latest_news', [ + return view('widgets.latest_news', [ 'config' => $this->config, 'news' => $newsRepo->recent($this->config['count']), ]); diff --git a/app/Widgets/LatestPilots.php b/app/Widgets/LatestPilots.php index f471a9c6..ecbc49c1 100644 --- a/app/Widgets/LatestPilots.php +++ b/app/Widgets/LatestPilots.php @@ -21,7 +21,7 @@ class LatestPilots extends BaseWidget { $userRepo = app(UserRepository::class); - return $this->view('widgets.latest_pilots', [ + return view('widgets.latest_pilots', [ 'config' => $this->config, 'users' => $userRepo->recent($this->config['count']), ]); diff --git a/app/Widgets/LatestPireps.php b/app/Widgets/LatestPireps.php index 180f3587..72b230be 100644 --- a/app/Widgets/LatestPireps.php +++ b/app/Widgets/LatestPireps.php @@ -21,7 +21,7 @@ class LatestPireps extends BaseWidget { $pirepRepo = app(PirepRepository::class); - return $this->view('widgets.latest_pireps', [ + return view('widgets.latest_pireps', [ 'config' => $this->config, 'pireps' => $pirepRepo->recent($this->config['count']), ]); diff --git a/app/Widgets/LiveMap.php b/app/Widgets/LiveMap.php index fe3dce0d..50e29099 100644 --- a/app/Widgets/LiveMap.php +++ b/app/Widgets/LiveMap.php @@ -27,7 +27,7 @@ class LiveMap extends BaseWidget $pireps = $acarsRepo->getPositions(); $positions = $geoSvc->getFeatureForLiveFlights($pireps); - return $this->view('widgets.live_map', [ + return view('widgets.live_map', [ 'config' => $this->config, 'pireps' => $pireps, 'positions' => $positions, diff --git a/composer.json b/composer.json index 850cb759..d1ca5069 100755 --- a/composer.json +++ b/composer.json @@ -36,7 +36,8 @@ "vierbergenlars/php-semver": "3.0.x", "php-units-of-measure/php-units-of-measure": "2.1.x", "markrogoyski/math-php": "^0.38.0", - "akaunting/money": "^1.0" + "akaunting/money": "^1.0", + "igaster/laravel-theme": "^2.0" }, "require-dev": { "phpunit/phpunit": "~7.0", diff --git a/composer.lock b/composer.lock index a213c90e..8447c6ae 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "fbfbc4dcf0b6ac78e6aa35c15736fd34", + "content-hash": "e7e949a827f8cef058e1ea7e3db83c5f", "packages": [ { "name": "akaunting/money", @@ -1146,6 +1146,69 @@ ], "time": "2017-10-28T11:24:20+00:00" }, + { + "name": "igaster/laravel-theme", + "version": "v2.0.6", + "source": { + "type": "git", + "url": "https://github.com/igaster/laravel-theme.git", + "reference": "d3835fd99418848ba130e3f7a73d3f78ab636471" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/igaster/laravel-theme/zipball/d3835fd99418848ba130e3f7a73d3f78ab636471", + "reference": "d3835fd99418848ba130e3f7a73d3f78ab636471", + "shasum": "" + }, + "require": { + "illuminate/contracts": "5.4.*|5.5.*|5.6.*" + }, + "require-dev": { + "orchestra/testbench": "~3.4", + "phpunit/phpunit": "^6.0" + }, + "suggest": { + "orchestra/asset": "Use '@css' and '@js' in Blade files" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Igaster\\LaravelTheme\\themeServiceProvider" + ], + "aliases": { + "Theme": "Igaster\\LaravelTheme\\Facades\\Theme" + } + } + }, + "autoload": { + "psr-4": { + "Igaster\\LaravelTheme\\": "src/", + "Igaster\\LaravelTheme\\Tests\\": "tests/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Giannis Gasteratos", + "email": "igasteratos@gmail.com" + } + ], + "description": "Laravel 5 Themes: Asset & Views folder per theme. Theme inheritance. Blade integration and more...", + "homepage": "https://github.com/Igaster/laravel-theme.git", + "keywords": [ + "assets", + "blade", + "laravel-5", + "package", + "themes", + "views" + ], + "time": "2018-02-12T11:19:00+00:00" + }, { "name": "irazasyed/laravel-gamp", "version": "v1.3.0", diff --git a/config/app.php b/config/app.php index 429ac6fc..bee18032 100755 --- a/config/app.php +++ b/config/app.php @@ -73,6 +73,8 @@ return [ Toin0u\Geotools\GeotoolsServiceProvider::class, Jackiedo\Timezonelist\TimezonelistServiceProvider::class, Irazasyed\LaravelGAMP\LaravelGAMPServiceProvider::class, + Igaster\LaravelTheme\themeServiceProvider::class, + Nwidart\Modules\LaravelModulesServiceProvider::class, /* * Application Service Providers... @@ -82,7 +84,6 @@ return [ App\Providers\AuthServiceProvider::class, App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class, - Nwidart\Modules\LaravelModulesServiceProvider::class, ], 'aliases' => [ diff --git a/config/themes.php b/config/themes.php new file mode 100644 index 00000000..a14372ba --- /dev/null +++ b/config/themes.php @@ -0,0 +1,68 @@ + resource_path('views/layouts'), // eg: base_path('resources/themes') + 'asset_not_found' => 'LOG_ERROR', + 'default' => 'default', + 'cache' => true, + + /* + |-------------------------------------------------------------------------- + | Define available themes. Format: + | + | 'theme-name' => [ + | 'extends' => 'theme-to-extend', // optional + | 'views-path' => 'path-to-views', // defaults to: resources/views/theme-name + | 'asset-path' => 'path-to-assets', // defaults to: public/theme-name + | + | // You can add your own custom keys + | // Use Theme::getSetting('key') & Theme::setSetting('key', 'value') to access them + | 'key' => 'value', + | ], + | + |-------------------------------------------------------------------------- + */ + + 'themes' => [ + + 'default' => [ + 'extends' => 'false' + ], + + // Add your themes here. These settings will override theme.json settings defined for each theme + + /* + |---------------------------[ Example Structure ]-------------------------- + | + | // Full theme Syntax: + | + | 'example1' => [ + | 'extends' => null, // doesn't extend any theme + | 'views-path' => example, // = resources/views/example_theme + | 'asset-path' => example, // = public/example_theme + | ], + | + | // Use all Defaults: + | + | 'example2', // Assets =\public\example2, Views =\resources\views\example2 + | // Note that if you use all default values, you can omit declaration completely. + | // i.e. defaults will be used when you call Theme::set('undefined-theme') + | + | + | // This theme shares the views with example2 but defines its own assets in \public\example3 + | + | 'example3' => [ + | 'views-path' => 'example', + | ], + | + | // This theme extends example1 and may override SOME views\assets in its own paths + | + | 'example4' => [ + | 'extends' => 'example1', + | ], + | + |-------------------------------------------------------------------------- + */ + ], + +]; diff --git a/modules/Sample/Resources/views/layouts/frontend.blade.php b/modules/Sample/Resources/views/layouts/frontend.blade.php index 9340e4f9..86f3a27a 100644 --- a/modules/Sample/Resources/views/layouts/frontend.blade.php +++ b/modules/Sample/Resources/views/layouts/frontend.blade.php @@ -2,4 +2,4 @@ You probably don't want to edit anything here. Just make sure to extend this in your views. It will pass the content section through --}} -@extends('layouts.' . config('phpvms.skin') . '.app') +@extends('app') diff --git a/resources/stubs/modules/mail.stub b/resources/stubs/modules/mail.stub index 7e9a47b8..66369e46 100644 --- a/resources/stubs/modules/mail.stub +++ b/resources/stubs/modules/mail.stub @@ -28,6 +28,6 @@ class $CLASS$ extends Mailable */ public function build() { - return $this->view('view.name'); + return view('view.name'); } } diff --git a/resources/stubs/modules/views/frontend.stub b/resources/stubs/modules/views/frontend.stub index 9340e4f9..86f3a27a 100644 --- a/resources/stubs/modules/views/frontend.stub +++ b/resources/stubs/modules/views/frontend.stub @@ -2,4 +2,4 @@ You probably don't want to edit anything here. Just make sure to extend this in your views. It will pass the content section through --}} -@extends('layouts.' . config('phpvms.skin') . '.app') +@extends('app') diff --git a/resources/views/admin/menu.blade.php b/resources/views/admin/menu.blade.php index e2124be2..ae2832e0 100644 --- a/resources/views/admin/menu.blade.php +++ b/resources/views/admin/menu.blade.php @@ -49,7 +49,6 @@
@@ -50,7 +49,7 @@{{ $errors->first('password_confirmation') }}
@endif - @include("layouts.${SKIN_NAME}.auth.toc") + @include("auth.toc")