From 79f52acaa3f7e32b564ad73acb422747c7d43d0f Mon Sep 17 00:00:00 2001 From: Mark Gregory Date: Tue, 15 Sep 2026 14:31:13 +0100 Subject: [PATCH] New M3 and OTM intergations --- Modules/M3/Config/.gitkeep | 0 Modules/M3/Config/config.php | 8 + Modules/M3/Console/.gitkeep | 0 Modules/M3/Database/Migrations/.gitkeep | 0 Modules/M3/Database/Seeders/.gitkeep | 0 .../M3/Database/Seeders/M3DatabaseSeeder.php | 21 +++ Modules/M3/Database/factories/.gitkeep | 0 Modules/M3/Helpers/.gitkeep | 0 Modules/M3/Helpers/Helper.php | 12 ++ Modules/M3/Http/Controllers/.gitkeep | 0 Modules/M3/Http/Controllers/M3Controller.php | 79 +++++++++ Modules/M3/Http/Middleware/.gitkeep | 0 Modules/M3/Http/Requests/.gitkeep | 0 Modules/M3/Models/.gitkeep | 0 Modules/M3/Providers/.gitkeep | 0 Modules/M3/Providers/M3ServiceProvider.php | 155 ++++++++++++++++++ Modules/M3/Providers/RouteServiceProvider.php | 69 ++++++++ Modules/M3/Resources/assets/.gitkeep | 0 Modules/M3/Resources/assets/js/app.js | 0 Modules/M3/Resources/assets/sass/app.scss | 0 Modules/M3/Resources/lang/.gitkeep | 0 Modules/M3/Resources/views/.gitkeep | 0 Modules/M3/Resources/views/index.blade.php | 9 + .../Resources/views/layouts/master.blade.php | 19 +++ Modules/M3/Routes/.gitkeep | 0 Modules/M3/Routes/api.php | 18 ++ Modules/M3/Routes/web.php | 16 ++ Modules/M3/Support/.gitkeep | 0 Modules/M3/Support/ModuleInfo.php | 26 +++ Modules/M3/Tests/Browser/.gitkeep | 0 Modules/M3/Tests/Feature/.gitkeep | 0 Modules/M3/Tests/Unit/.gitkeep | 0 Modules/M3/Traits/.gitkeep | 0 Modules/M3/View/.gitkeep | 0 Modules/M3/composer.json | 29 ++++ Modules/M3/module.json | 14 ++ Modules/M3/package.json | 17 ++ Modules/M3/webpack.mix.js | 11 ++ Modules/OTM/Config/.gitkeep | 0 Modules/OTM/Config/config.php | 8 + Modules/OTM/Console/.gitkeep | 0 Modules/OTM/Database/Migrations/.gitkeep | 0 Modules/OTM/Database/Seeders/.gitkeep | 0 .../Database/Seeders/OTMDatabaseSeeder.php | 21 +++ Modules/OTM/Database/factories/.gitkeep | 0 Modules/OTM/Helpers/.gitkeep | 0 Modules/OTM/Helpers/Helper.php | 12 ++ Modules/OTM/Http/Controllers/.gitkeep | 0 .../OTM/Http/Controllers/OTMController.php | 79 +++++++++ Modules/OTM/Http/Middleware/.gitkeep | 0 Modules/OTM/Http/Requests/.gitkeep | 0 Modules/OTM/Models/.gitkeep | 0 Modules/OTM/Providers/.gitkeep | 0 Modules/OTM/Providers/OTMServiceProvider.php | 155 ++++++++++++++++++ .../OTM/Providers/RouteServiceProvider.php | 69 ++++++++ Modules/OTM/Resources/assets/.gitkeep | 0 Modules/OTM/Resources/assets/js/app.js | 0 Modules/OTM/Resources/assets/sass/app.scss | 0 Modules/OTM/Resources/lang/.gitkeep | 0 Modules/OTM/Resources/views/.gitkeep | 0 Modules/OTM/Resources/views/index.blade.php | 9 + .../Resources/views/layouts/master.blade.php | 19 +++ Modules/OTM/Routes/.gitkeep | 0 Modules/OTM/Routes/api.php | 18 ++ Modules/OTM/Routes/web.php | 16 ++ Modules/OTM/Support/.gitkeep | 0 Modules/OTM/Support/ModuleInfo.php | 26 +++ Modules/OTM/Tests/Browser/.gitkeep | 0 Modules/OTM/Tests/Feature/.gitkeep | 0 Modules/OTM/Tests/Unit/.gitkeep | 0 Modules/OTM/Traits/.gitkeep | 0 Modules/OTM/View/.gitkeep | 0 Modules/OTM/composer.json | 29 ++++ Modules/OTM/module.json | 14 ++ Modules/OTM/package.json | 17 ++ Modules/OTM/webpack.mix.js | 11 ++ 76 files changed, 1006 insertions(+) create mode 100644 Modules/M3/Config/.gitkeep create mode 100644 Modules/M3/Config/config.php create mode 100644 Modules/M3/Console/.gitkeep create mode 100644 Modules/M3/Database/Migrations/.gitkeep create mode 100644 Modules/M3/Database/Seeders/.gitkeep create mode 100644 Modules/M3/Database/Seeders/M3DatabaseSeeder.php create mode 100644 Modules/M3/Database/factories/.gitkeep create mode 100644 Modules/M3/Helpers/.gitkeep create mode 100644 Modules/M3/Helpers/Helper.php create mode 100644 Modules/M3/Http/Controllers/.gitkeep create mode 100644 Modules/M3/Http/Controllers/M3Controller.php create mode 100644 Modules/M3/Http/Middleware/.gitkeep create mode 100644 Modules/M3/Http/Requests/.gitkeep create mode 100644 Modules/M3/Models/.gitkeep create mode 100644 Modules/M3/Providers/.gitkeep create mode 100644 Modules/M3/Providers/M3ServiceProvider.php create mode 100644 Modules/M3/Providers/RouteServiceProvider.php create mode 100644 Modules/M3/Resources/assets/.gitkeep create mode 100644 Modules/M3/Resources/assets/js/app.js create mode 100644 Modules/M3/Resources/assets/sass/app.scss create mode 100644 Modules/M3/Resources/lang/.gitkeep create mode 100644 Modules/M3/Resources/views/.gitkeep create mode 100644 Modules/M3/Resources/views/index.blade.php create mode 100644 Modules/M3/Resources/views/layouts/master.blade.php create mode 100644 Modules/M3/Routes/.gitkeep create mode 100644 Modules/M3/Routes/api.php create mode 100644 Modules/M3/Routes/web.php create mode 100644 Modules/M3/Support/.gitkeep create mode 100644 Modules/M3/Support/ModuleInfo.php create mode 100644 Modules/M3/Tests/Browser/.gitkeep create mode 100644 Modules/M3/Tests/Feature/.gitkeep create mode 100644 Modules/M3/Tests/Unit/.gitkeep create mode 100644 Modules/M3/Traits/.gitkeep create mode 100644 Modules/M3/View/.gitkeep create mode 100644 Modules/M3/composer.json create mode 100644 Modules/M3/module.json create mode 100644 Modules/M3/package.json create mode 100644 Modules/M3/webpack.mix.js create mode 100644 Modules/OTM/Config/.gitkeep create mode 100644 Modules/OTM/Config/config.php create mode 100644 Modules/OTM/Console/.gitkeep create mode 100644 Modules/OTM/Database/Migrations/.gitkeep create mode 100644 Modules/OTM/Database/Seeders/.gitkeep create mode 100644 Modules/OTM/Database/Seeders/OTMDatabaseSeeder.php create mode 100644 Modules/OTM/Database/factories/.gitkeep create mode 100644 Modules/OTM/Helpers/.gitkeep create mode 100644 Modules/OTM/Helpers/Helper.php create mode 100644 Modules/OTM/Http/Controllers/.gitkeep create mode 100644 Modules/OTM/Http/Controllers/OTMController.php create mode 100644 Modules/OTM/Http/Middleware/.gitkeep create mode 100644 Modules/OTM/Http/Requests/.gitkeep create mode 100644 Modules/OTM/Models/.gitkeep create mode 100644 Modules/OTM/Providers/.gitkeep create mode 100644 Modules/OTM/Providers/OTMServiceProvider.php create mode 100644 Modules/OTM/Providers/RouteServiceProvider.php create mode 100644 Modules/OTM/Resources/assets/.gitkeep create mode 100644 Modules/OTM/Resources/assets/js/app.js create mode 100644 Modules/OTM/Resources/assets/sass/app.scss create mode 100644 Modules/OTM/Resources/lang/.gitkeep create mode 100644 Modules/OTM/Resources/views/.gitkeep create mode 100644 Modules/OTM/Resources/views/index.blade.php create mode 100644 Modules/OTM/Resources/views/layouts/master.blade.php create mode 100644 Modules/OTM/Routes/.gitkeep create mode 100644 Modules/OTM/Routes/api.php create mode 100644 Modules/OTM/Routes/web.php create mode 100644 Modules/OTM/Support/.gitkeep create mode 100644 Modules/OTM/Support/ModuleInfo.php create mode 100644 Modules/OTM/Tests/Browser/.gitkeep create mode 100644 Modules/OTM/Tests/Feature/.gitkeep create mode 100644 Modules/OTM/Tests/Unit/.gitkeep create mode 100644 Modules/OTM/Traits/.gitkeep create mode 100644 Modules/OTM/View/.gitkeep create mode 100644 Modules/OTM/composer.json create mode 100644 Modules/OTM/module.json create mode 100644 Modules/OTM/package.json create mode 100644 Modules/OTM/webpack.mix.js diff --git a/Modules/M3/Config/.gitkeep b/Modules/M3/Config/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/M3/Config/config.php b/Modules/M3/Config/config.php new file mode 100644 index 00000000..ed8568b4 --- /dev/null +++ b/Modules/M3/Config/config.php @@ -0,0 +1,8 @@ + 'M3', + 'features' => + [ + ], +]; diff --git a/Modules/M3/Console/.gitkeep b/Modules/M3/Console/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/M3/Database/Migrations/.gitkeep b/Modules/M3/Database/Migrations/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/M3/Database/Seeders/.gitkeep b/Modules/M3/Database/Seeders/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/M3/Database/Seeders/M3DatabaseSeeder.php b/Modules/M3/Database/Seeders/M3DatabaseSeeder.php new file mode 100644 index 00000000..5d9bcb93 --- /dev/null +++ b/Modules/M3/Database/Seeders/M3DatabaseSeeder.php @@ -0,0 +1,21 @@ +call("OthersTableSeeder"); + } +} diff --git a/Modules/M3/Database/factories/.gitkeep b/Modules/M3/Database/factories/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/M3/Helpers/.gitkeep b/Modules/M3/Helpers/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/M3/Helpers/Helper.php b/Modules/M3/Helpers/Helper.php new file mode 100644 index 00000000..71681133 --- /dev/null +++ b/Modules/M3/Helpers/Helper.php @@ -0,0 +1,12 @@ +registerTranslations(); + $this->registerConfig(); + $this->registerViews(); + $this->registerHelpers(); + $this->registerCommands(); + $this->loadMigrationsFrom(module_path(ModuleInfo::name(), 'Database/Migrations')); + } + + /** + * Register the service provider. + * + * @return void + */ + public function register(): void + { + $this->app->register(RouteServiceProvider::class); + } + + /** + * Register the helpers. + * + * @return void + */ + protected function registerHelpers(): void + { + foreach (glob(__DIR__.'/../Helpers/*.php') as $filename) { + require_once $filename; + } + } + + /** + * Dynamically Register Commands. + * + * @return void + */ + public function registerCommands(): void + { + if (!$this->app->runningInConsole()) { + return; + } + $commandPath = __DIR__ . '/../Console'; + $commands = collect(File::allFiles($commandPath)) + ->map(function ($file) { + $class = 'Modules\\' . $this->moduleName . '\\Console\\' . $file->getFilenameWithoutExtension(); + return $class; + }) + ->filter(function ($class) { + return class_exists($class); + }) + ->values() + ->all(); + $this->commands($commands); + } + + /** + * Register config. + * + * @return void + */ + protected function registerConfig(): void + { + $this->publishes([ + module_path(ModuleInfo::name(), 'Config/config.php') => config_path( ModuleInfo::nameLower(). '.php'), + ], 'config'); + $this->mergeConfigFrom( + module_path(ModuleInfo::name(), 'Config/config.php'), ModuleInfo::nameLower() + ); + } + + /** + * Register views. + * + * @return void + */ + public function registerViews(): void + { + $viewPath = resource_path('views/modules/' . ModuleInfo::nameLower()); + $sourcePath = module_path(ModuleInfo::name(), 'Resources/views'); + $this->publishes([ + $sourcePath => $viewPath + ], ['views', ModuleInfo::nameLower() . '-module-views']); + $this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$sourcePath]), ModuleInfo::nameLower()); + } + + /** + * Register translations. + * + * @return void + */ + public function registerTranslations(): void + { + $langPath = resource_path('lang/modules/' . ModuleInfo::nameLower()); + + if (is_dir($langPath)) { + $this->loadTranslationsFrom($langPath, ModuleInfo::nameLower()); + } else { + $this->loadTranslationsFrom(module_path(ModuleInfo::name(), 'Resources/lang'), ModuleInfo::nameLower()); + } + } + + /** + * Regsiter View Paths + * @return array + */ + private function getPublishableViewPaths(): array + { + $paths = []; + foreach (Config::get('view.paths') as $path) { + if (is_dir($path . '/modules/' . ModuleInfo::nameLower())) { + $paths[] = $path . '/modules/' . ModuleInfo::nameLower(); + } + } + return $paths; + } +} diff --git a/Modules/M3/Providers/RouteServiceProvider.php b/Modules/M3/Providers/RouteServiceProvider.php new file mode 100644 index 00000000..07019db8 --- /dev/null +++ b/Modules/M3/Providers/RouteServiceProvider.php @@ -0,0 +1,69 @@ +mapApiRoutes(); + + $this->mapWebRoutes(); + } + + /** + * Define the "web" routes for the application. + * + * These routes all receive session state, CSRF protection, etc. + * + * @return void + */ + protected function mapWebRoutes() + { + Route::middleware('web') + ->namespace($this->moduleNamespace) + ->group(module_path('M3', '/Routes/web.php')); + } + + /** + * Define the "api" routes for the application. + * + * These routes are typically stateless. + * + * @return void + */ + protected function mapApiRoutes() + { + Route::prefix('api') + ->middleware('api') + ->namespace($this->moduleNamespace) + ->group(module_path('M3', '/Routes/api.php')); + } +} diff --git a/Modules/M3/Resources/assets/.gitkeep b/Modules/M3/Resources/assets/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/M3/Resources/assets/js/app.js b/Modules/M3/Resources/assets/js/app.js new file mode 100644 index 00000000..e69de29b diff --git a/Modules/M3/Resources/assets/sass/app.scss b/Modules/M3/Resources/assets/sass/app.scss new file mode 100644 index 00000000..e69de29b diff --git a/Modules/M3/Resources/lang/.gitkeep b/Modules/M3/Resources/lang/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/M3/Resources/views/.gitkeep b/Modules/M3/Resources/views/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/M3/Resources/views/index.blade.php b/Modules/M3/Resources/views/index.blade.php new file mode 100644 index 00000000..d24a66c3 --- /dev/null +++ b/Modules/M3/Resources/views/index.blade.php @@ -0,0 +1,9 @@ +@extends('m3::layouts.master') + +@section('content') +

Hello World

+ +

+ This view is loaded from module: {!! config('m3.name') !!} +

+@endsection diff --git a/Modules/M3/Resources/views/layouts/master.blade.php b/Modules/M3/Resources/views/layouts/master.blade.php new file mode 100644 index 00000000..f89fd014 --- /dev/null +++ b/Modules/M3/Resources/views/layouts/master.blade.php @@ -0,0 +1,19 @@ + + + + + + + Module M3 + + {{-- Laravel Mix - CSS File --}} + {{-- --}} + + + + @yield('content') + + {{-- Laravel Mix - JS File --}} + {{-- --}} + + diff --git a/Modules/M3/Routes/.gitkeep b/Modules/M3/Routes/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/M3/Routes/api.php b/Modules/M3/Routes/api.php new file mode 100644 index 00000000..c421f8a5 --- /dev/null +++ b/Modules/M3/Routes/api.php @@ -0,0 +1,18 @@ +get('/m3', function (Request $request) { + return $request->user(); +}); \ No newline at end of file diff --git a/Modules/M3/Routes/web.php b/Modules/M3/Routes/web.php new file mode 100644 index 00000000..128ef230 --- /dev/null +++ b/Modules/M3/Routes/web.php @@ -0,0 +1,16 @@ +group(function() { + Route::get('/', 'M3Controller@index'); +}); diff --git a/Modules/M3/Support/.gitkeep b/Modules/M3/Support/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/M3/Support/ModuleInfo.php b/Modules/M3/Support/ModuleInfo.php new file mode 100644 index 00000000..b5f72af9 --- /dev/null +++ b/Modules/M3/Support/ModuleInfo.php @@ -0,0 +1,26 @@ + 'OTM', + 'features' => + [ + ], +]; diff --git a/Modules/OTM/Console/.gitkeep b/Modules/OTM/Console/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/OTM/Database/Migrations/.gitkeep b/Modules/OTM/Database/Migrations/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/OTM/Database/Seeders/.gitkeep b/Modules/OTM/Database/Seeders/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/OTM/Database/Seeders/OTMDatabaseSeeder.php b/Modules/OTM/Database/Seeders/OTMDatabaseSeeder.php new file mode 100644 index 00000000..350cc60c --- /dev/null +++ b/Modules/OTM/Database/Seeders/OTMDatabaseSeeder.php @@ -0,0 +1,21 @@ +call("OthersTableSeeder"); + } +} diff --git a/Modules/OTM/Database/factories/.gitkeep b/Modules/OTM/Database/factories/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/OTM/Helpers/.gitkeep b/Modules/OTM/Helpers/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/OTM/Helpers/Helper.php b/Modules/OTM/Helpers/Helper.php new file mode 100644 index 00000000..6c1fee50 --- /dev/null +++ b/Modules/OTM/Helpers/Helper.php @@ -0,0 +1,12 @@ +registerTranslations(); + $this->registerConfig(); + $this->registerViews(); + $this->registerHelpers(); + $this->registerCommands(); + $this->loadMigrationsFrom(module_path(ModuleInfo::name(), 'Database/Migrations')); + } + + /** + * Register the service provider. + * + * @return void + */ + public function register(): void + { + $this->app->register(RouteServiceProvider::class); + } + + /** + * Register the helpers. + * + * @return void + */ + protected function registerHelpers(): void + { + foreach (glob(__DIR__.'/../Helpers/*.php') as $filename) { + require_once $filename; + } + } + + /** + * Dynamically Register Commands. + * + * @return void + */ + public function registerCommands(): void + { + if (!$this->app->runningInConsole()) { + return; + } + $commandPath = __DIR__ . '/../Console'; + $commands = collect(File::allFiles($commandPath)) + ->map(function ($file) { + $class = 'Modules\\' . $this->moduleName . '\\Console\\' . $file->getFilenameWithoutExtension(); + return $class; + }) + ->filter(function ($class) { + return class_exists($class); + }) + ->values() + ->all(); + $this->commands($commands); + } + + /** + * Register config. + * + * @return void + */ + protected function registerConfig(): void + { + $this->publishes([ + module_path(ModuleInfo::name(), 'Config/config.php') => config_path( ModuleInfo::nameLower(). '.php'), + ], 'config'); + $this->mergeConfigFrom( + module_path(ModuleInfo::name(), 'Config/config.php'), ModuleInfo::nameLower() + ); + } + + /** + * Register views. + * + * @return void + */ + public function registerViews(): void + { + $viewPath = resource_path('views/modules/' . ModuleInfo::nameLower()); + $sourcePath = module_path(ModuleInfo::name(), 'Resources/views'); + $this->publishes([ + $sourcePath => $viewPath + ], ['views', ModuleInfo::nameLower() . '-module-views']); + $this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$sourcePath]), ModuleInfo::nameLower()); + } + + /** + * Register translations. + * + * @return void + */ + public function registerTranslations(): void + { + $langPath = resource_path('lang/modules/' . ModuleInfo::nameLower()); + + if (is_dir($langPath)) { + $this->loadTranslationsFrom($langPath, ModuleInfo::nameLower()); + } else { + $this->loadTranslationsFrom(module_path(ModuleInfo::name(), 'Resources/lang'), ModuleInfo::nameLower()); + } + } + + /** + * Regsiter View Paths + * @return array + */ + private function getPublishableViewPaths(): array + { + $paths = []; + foreach (Config::get('view.paths') as $path) { + if (is_dir($path . '/modules/' . ModuleInfo::nameLower())) { + $paths[] = $path . '/modules/' . ModuleInfo::nameLower(); + } + } + return $paths; + } +} diff --git a/Modules/OTM/Providers/RouteServiceProvider.php b/Modules/OTM/Providers/RouteServiceProvider.php new file mode 100644 index 00000000..90c1b80a --- /dev/null +++ b/Modules/OTM/Providers/RouteServiceProvider.php @@ -0,0 +1,69 @@ +mapApiRoutes(); + + $this->mapWebRoutes(); + } + + /** + * Define the "web" routes for the application. + * + * These routes all receive session state, CSRF protection, etc. + * + * @return void + */ + protected function mapWebRoutes() + { + Route::middleware('web') + ->namespace($this->moduleNamespace) + ->group(module_path('OTM', '/Routes/web.php')); + } + + /** + * Define the "api" routes for the application. + * + * These routes are typically stateless. + * + * @return void + */ + protected function mapApiRoutes() + { + Route::prefix('api') + ->middleware('api') + ->namespace($this->moduleNamespace) + ->group(module_path('OTM', '/Routes/api.php')); + } +} diff --git a/Modules/OTM/Resources/assets/.gitkeep b/Modules/OTM/Resources/assets/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/OTM/Resources/assets/js/app.js b/Modules/OTM/Resources/assets/js/app.js new file mode 100644 index 00000000..e69de29b diff --git a/Modules/OTM/Resources/assets/sass/app.scss b/Modules/OTM/Resources/assets/sass/app.scss new file mode 100644 index 00000000..e69de29b diff --git a/Modules/OTM/Resources/lang/.gitkeep b/Modules/OTM/Resources/lang/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/OTM/Resources/views/.gitkeep b/Modules/OTM/Resources/views/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/OTM/Resources/views/index.blade.php b/Modules/OTM/Resources/views/index.blade.php new file mode 100644 index 00000000..fe3d2a83 --- /dev/null +++ b/Modules/OTM/Resources/views/index.blade.php @@ -0,0 +1,9 @@ +@extends('otm::layouts.master') + +@section('content') +

Hello World

+ +

+ This view is loaded from module: {!! config('otm.name') !!} +

+@endsection diff --git a/Modules/OTM/Resources/views/layouts/master.blade.php b/Modules/OTM/Resources/views/layouts/master.blade.php new file mode 100644 index 00000000..531f82c7 --- /dev/null +++ b/Modules/OTM/Resources/views/layouts/master.blade.php @@ -0,0 +1,19 @@ + + + + + + + Module OTM + + {{-- Laravel Mix - CSS File --}} + {{-- --}} + + + + @yield('content') + + {{-- Laravel Mix - JS File --}} + {{-- --}} + + diff --git a/Modules/OTM/Routes/.gitkeep b/Modules/OTM/Routes/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/OTM/Routes/api.php b/Modules/OTM/Routes/api.php new file mode 100644 index 00000000..11cc6ffd --- /dev/null +++ b/Modules/OTM/Routes/api.php @@ -0,0 +1,18 @@ +get('/otm', function (Request $request) { + return $request->user(); +}); \ No newline at end of file diff --git a/Modules/OTM/Routes/web.php b/Modules/OTM/Routes/web.php new file mode 100644 index 00000000..671307a1 --- /dev/null +++ b/Modules/OTM/Routes/web.php @@ -0,0 +1,16 @@ +group(function() { + Route::get('/', 'OTMController@index'); +}); diff --git a/Modules/OTM/Support/.gitkeep b/Modules/OTM/Support/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Modules/OTM/Support/ModuleInfo.php b/Modules/OTM/Support/ModuleInfo.php new file mode 100644 index 00000000..2a7ade2d --- /dev/null +++ b/Modules/OTM/Support/ModuleInfo.php @@ -0,0 +1,26 @@ +