Add Sample module back
This commit is contained in:
parent
1a02196d3d
commit
d9a24e6f9d
76
modules/Sample/.gitignore
vendored
Normal file
76
modules/Sample/.gitignore
vendored
Normal file
@ -0,0 +1,76 @@
|
||||
_ide_helper.php
|
||||
.php_cs.cache
|
||||
.phpstorm.meta.php
|
||||
.phpunit.result.cache
|
||||
/vendor
|
||||
node_modules/
|
||||
npm-debug.log
|
||||
composer.phar
|
||||
yarn-error.log
|
||||
*.bak
|
||||
|
||||
# Laravel 4 specific
|
||||
bootstrap/compiled.php
|
||||
app/storage/
|
||||
|
||||
# Laravel 5 & Lumen specific
|
||||
public/storage
|
||||
public/hot
|
||||
storage/*.key
|
||||
storage/settings.json
|
||||
storage/*.sqlite
|
||||
.env.*.php
|
||||
.env.php
|
||||
.env
|
||||
.env.bak
|
||||
env.php
|
||||
.env.generated
|
||||
.vagrant
|
||||
#Homestead.yaml
|
||||
Homestead.json
|
||||
LocalValetDriver.php
|
||||
|
||||
# Rocketeer PHP task runner and deployment package. https://github.com/rocketeers/rocketeer
|
||||
.rocketeer/
|
||||
|
||||
tmp/
|
||||
|
||||
# intellij files
|
||||
.idea/composerJson.xml
|
||||
.idea/**/workspace.xml
|
||||
.idea/**/tasks.xml
|
||||
.idea/dictionaries
|
||||
.idea/**/dataSources/
|
||||
.idea/**/dataSources.ids
|
||||
.idea/**/dataSources.xml
|
||||
.idea/**/dataSources.local.xml
|
||||
.idea/**/sqlDataSources.xml
|
||||
.idea/**/dynamic.xml
|
||||
.idea/**/uiDesigner.xml
|
||||
.idea/**/gradle.xml
|
||||
.idea/**/libraries
|
||||
cmake-build-debug/
|
||||
.idea/**/mongoSettings.xml
|
||||
*.iws
|
||||
out/
|
||||
.idea_modules/
|
||||
atlassian-ide-plugin.xml
|
||||
.idea/replstate.xml
|
||||
com_crashlytics_export_strings.xml
|
||||
crashlytics.properties
|
||||
crashlytics-build.properties
|
||||
fabric.properties
|
||||
.idea
|
||||
phpvms.iml
|
||||
phpvms_next.iml
|
||||
|
||||
# Gradle:
|
||||
public/info.php
|
||||
|
||||
# Error Logs
|
||||
error_log
|
||||
|
||||
.sass-cache
|
||||
.DS_Store
|
||||
/config.php
|
||||
/VERSION
|
||||
27
modules/Sample/Awards/SampleAward.php
Normal file
27
modules/Sample/Awards/SampleAward.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Sample\Awards;
|
||||
|
||||
use App\Contracts\Award;
|
||||
|
||||
/**
|
||||
* Class SampleAward
|
||||
*/
|
||||
class SampleAward extends Award
|
||||
{
|
||||
public $name = 'Sample Award';
|
||||
|
||||
/**
|
||||
* This is the method that needs to be implemented.
|
||||
* You have access to $this->user, which holds the current
|
||||
* user the award is being checked against
|
||||
*
|
||||
* @param null $params Parameters passed in from the UI
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function check($params = null): bool
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
5
modules/Sample/Config/config.php
Normal file
5
modules/Sample/Config/config.php
Normal file
@ -0,0 +1,5 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'name' => 'Sample',
|
||||
];
|
||||
21
modules/Sample/Database/seeders/SampleDatabaseSeeder.php
Normal file
21
modules/Sample/Database/seeders/SampleDatabaseSeeder.php
Normal file
@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Sample\Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class SampleDatabaseSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
Model::unguard();
|
||||
|
||||
// $this->call("OthersTableSeeder");
|
||||
}
|
||||
}
|
||||
65
modules/Sample/Http/Controllers/Admin/AdminController.php
Normal file
65
modules/Sample/Http/Controllers/Admin/AdminController.php
Normal file
@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Sample\Http\Controllers\Admin;
|
||||
|
||||
use App\Contracts\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
/**
|
||||
* Class AdminController
|
||||
*/
|
||||
class AdminController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return view('sample::admin.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('sample::admin.create');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*/
|
||||
public function show()
|
||||
{
|
||||
return view('sample::admin.show');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
return view('sample::admin.edit');
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(Request $request)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy()
|
||||
{
|
||||
}
|
||||
}
|
||||
38
modules/Sample/Http/Controllers/Api/SampleController.php
Normal file
38
modules/Sample/Http/Controllers/Api/SampleController.php
Normal file
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Sample\Http\Controllers\Api;
|
||||
|
||||
use App\Contracts\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
/**
|
||||
* Class SampleController
|
||||
*/
|
||||
class SampleController extends Controller
|
||||
{
|
||||
/**
|
||||
* Just send out a message
|
||||
*
|
||||
* @param Request $request
|
||||
*
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
return $this->message('Hello, world!');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
*
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function hello(Request $request)
|
||||
{
|
||||
// Another way to return JSON, this for a custom response
|
||||
// It's recommended to use Resources for responses from the database
|
||||
return response()->json([
|
||||
'name' => Auth::user()->name,
|
||||
]);
|
||||
}
|
||||
}
|
||||
67
modules/Sample/Http/Controllers/SampleController.php
Normal file
67
modules/Sample/Http/Controllers/SampleController.php
Normal file
@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Sample\Http\Controllers;
|
||||
|
||||
use App\Contracts\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
/**
|
||||
* Class SampleController
|
||||
*/
|
||||
class SampleController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return view('sample::index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('sample::create');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param Request $request
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
*/
|
||||
public function show()
|
||||
{
|
||||
return view('sample::show');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
return view('sample::edit');
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(Request $request)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy()
|
||||
{
|
||||
}
|
||||
}
|
||||
8
modules/Sample/Http/Routes/admin.php
Normal file
8
modules/Sample/Http/Routes/admin.php
Normal file
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
// This is the admin path. Comment this out if you don't have
|
||||
// an admin panel component.
|
||||
Route::group([], function () {
|
||||
Route::get('/', 'AdminController@index');
|
||||
Route::get('/create', 'AdminController@create');
|
||||
});
|
||||
17
modules/Sample/Http/Routes/api.php
Normal file
17
modules/Sample/Http/Routes/api.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This is publicly accessible
|
||||
*/
|
||||
Route::group(['middleware' => []], function () {
|
||||
Route::get('/', 'SampleController@index');
|
||||
});
|
||||
|
||||
/*
|
||||
* This is required to have a valid API key
|
||||
*/
|
||||
Route::group(['middleware' => [
|
||||
'api.auth',
|
||||
]], function () {
|
||||
Route::get('/hello', 'SampleController@hello');
|
||||
});
|
||||
9
modules/Sample/Http/Routes/web.php
Normal file
9
modules/Sample/Http/Routes/web.php
Normal file
@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
Route::group(['middleware' => [
|
||||
'role:user', // leave blank to make this public
|
||||
]], function () {
|
||||
// all your routes are prefixed with the above prefix
|
||||
// e.g. yoursite.com/sample
|
||||
Route::get('/', 'SampleController@index');
|
||||
});
|
||||
17
modules/Sample/Listeners/TestEventListener.php
Normal file
17
modules/Sample/Listeners/TestEventListener.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Sample\Listeners;
|
||||
|
||||
use App\Events\TestEvent;
|
||||
use Log;
|
||||
|
||||
class TestEventListener
|
||||
{
|
||||
/**
|
||||
* Handle the event.
|
||||
*/
|
||||
public function handle(TestEvent $event)
|
||||
{
|
||||
Log::info('Received event', [$event]);
|
||||
}
|
||||
}
|
||||
15
modules/Sample/Models/SampleTable.php
Normal file
15
modules/Sample/Models/SampleTable.php
Normal file
@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Sample\Models;
|
||||
|
||||
use App\Contracts\Model;
|
||||
|
||||
/**
|
||||
* Class SampleTable
|
||||
*/
|
||||
class SampleTable extends Model
|
||||
{
|
||||
public $table = '';
|
||||
|
||||
protected $fillable = [];
|
||||
}
|
||||
25
modules/Sample/Providers/EventServiceProvider.php
Normal file
25
modules/Sample/Providers/EventServiceProvider.php
Normal file
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Sample\Providers;
|
||||
|
||||
use App\Events\TestEvent;
|
||||
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
|
||||
use Modules\Sample\Listeners\TestEventListener;
|
||||
|
||||
class EventServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
* The event listener mappings for the application.
|
||||
*/
|
||||
protected $listen = [
|
||||
TestEvent::class => [TestEventListener::class],
|
||||
];
|
||||
|
||||
/**
|
||||
* Register any events for your application.
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
parent::boot();
|
||||
}
|
||||
}
|
||||
153
modules/Sample/Providers/SampleServiceProvider.php
Normal file
153
modules/Sample/Providers/SampleServiceProvider.php
Normal file
@ -0,0 +1,153 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Sample\Providers;
|
||||
|
||||
use App\Services\ModuleService;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Route;
|
||||
|
||||
class SampleServiceProvider extends ServiceProvider
|
||||
{
|
||||
protected $moduleSvc;
|
||||
|
||||
/**
|
||||
* Boot the application events.
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
$this->moduleSvc = app(ModuleService::class);
|
||||
|
||||
$this->registerRoutes();
|
||||
$this->registerTranslations();
|
||||
$this->registerConfig();
|
||||
$this->registerViews();
|
||||
|
||||
$this->registerLinks();
|
||||
|
||||
$this->loadMigrationsFrom(__DIR__.'/../Database/migrations');
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the service provider.
|
||||
*/
|
||||
public function register()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Add module links here
|
||||
*/
|
||||
public function registerLinks()
|
||||
{
|
||||
// Show this link if logged in
|
||||
// $this->moduleSvc->addFrontendLink('Sample', '/sample', '', $logged_in=true);
|
||||
|
||||
// Admin links:
|
||||
$this->moduleSvc->addAdminLink('Sample', '/admin/sample');
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the routes
|
||||
*/
|
||||
protected function registerRoutes()
|
||||
{
|
||||
/*
|
||||
* Routes for the frontend
|
||||
*/
|
||||
Route::group([
|
||||
'as' => 'sample.',
|
||||
'prefix' => 'sample',
|
||||
// If you want a RESTful module, change this to 'api'
|
||||
'middleware' => ['web'],
|
||||
'namespace' => 'Modules\Sample\Http\Controllers',
|
||||
], function () {
|
||||
$this->loadRoutesFrom(__DIR__.'/../Http/Routes/web.php');
|
||||
});
|
||||
|
||||
/*
|
||||
* Routes for the admin
|
||||
*/
|
||||
Route::group([
|
||||
'as' => 'sample.',
|
||||
'prefix' => 'admin/sample',
|
||||
// If you want a RESTful module, change this to 'api'
|
||||
'middleware' => ['web', 'role:admin'],
|
||||
'namespace' => 'Modules\Sample\Http\Controllers\Admin',
|
||||
], function () {
|
||||
$this->loadRoutesFrom(__DIR__.'/../Http/Routes/admin.php');
|
||||
});
|
||||
|
||||
/*
|
||||
* Routes for an API
|
||||
*/
|
||||
Route::group([
|
||||
'as' => 'sample.',
|
||||
'prefix' => 'api/sample',
|
||||
// If you want a RESTful module, change this to 'api'
|
||||
'middleware' => ['api'],
|
||||
'namespace' => 'Modules\Sample\Http\Controllers\Api',
|
||||
], function () {
|
||||
$this->loadRoutesFrom(__DIR__.'/../Http/Routes/api.php');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Register config.
|
||||
*/
|
||||
protected function registerConfig()
|
||||
{
|
||||
$this->publishes([
|
||||
__DIR__.'/../Config/config.php' => config_path('sample.php'),
|
||||
], 'config');
|
||||
|
||||
$this->mergeConfigFrom(
|
||||
__DIR__.'/../Config/config.php', 'sample'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register views.
|
||||
*/
|
||||
public function registerViews()
|
||||
{
|
||||
$viewPath = resource_path('views/modules/sample');
|
||||
$sourcePath = __DIR__.'/../Resources/views';
|
||||
|
||||
$this->publishes([
|
||||
$sourcePath => $viewPath,
|
||||
], 'views');
|
||||
|
||||
$paths = array_map(
|
||||
function ($path) {
|
||||
return $path.'/modules/sample';
|
||||
},
|
||||
\Config::get('view.paths')
|
||||
);
|
||||
|
||||
$paths[] = $sourcePath;
|
||||
$this->loadViewsFrom($paths, 'sample');
|
||||
}
|
||||
|
||||
/**
|
||||
* Register translations.
|
||||
*/
|
||||
public function registerTranslations()
|
||||
{
|
||||
$langPath = resource_path('lang/modules/sample');
|
||||
|
||||
if (is_dir($langPath)) {
|
||||
$this->loadTranslationsFrom($langPath, 'sample');
|
||||
} else {
|
||||
$this->loadTranslationsFrom(__DIR__.'/../Resources/lang', 'sample');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the services provided by the provider.
|
||||
*/
|
||||
public function provides(): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
||||
36
modules/Sample/README.md
Normal file
36
modules/Sample/README.md
Normal file
@ -0,0 +1,36 @@
|
||||
# phpvms-module
|
||||
|
||||
Sample/template repository for a phpVMS plugin. See the full docs here: http://docs.phpvms.net/developers/add-ons-and-modules
|
||||
|
||||
## Generating a new module
|
||||
|
||||
The easiest way to generate a new module for phpVMS is to use the `artisan` command:
|
||||
|
||||
```
|
||||
php artisan module:make {ModuleName}
|
||||
```
|
||||
|
||||
That will create a module in the `modules` folder, which you can then copy out into its own repository and develop.
|
||||
|
||||
## Composer Configuration
|
||||
|
||||
### Type
|
||||
|
||||
The `type` field needs to be set to "phpvms-module", and
|
||||
|
||||
```json
|
||||
"type": "phpvms-module",
|
||||
"require": {}
|
||||
```
|
||||
|
||||
### Autoload
|
||||
|
||||
The path to your namespace must be set by the `autoload` section:
|
||||
|
||||
```json
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Modules\\Sample\\": "."
|
||||
}
|
||||
}
|
||||
```
|
||||
14
modules/Sample/Resources/views/admin/create.blade.php
Normal file
14
modules/Sample/Resources/views/admin/create.blade.php
Normal file
@ -0,0 +1,14 @@
|
||||
@extends('sample::layouts.admin')
|
||||
|
||||
@section('title', 'Sample Create')
|
||||
@section('actions')
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="card border-blue-bottom">
|
||||
<div class="content">
|
||||
<div class="header"><h4 class="title">Create something!</h4></div>
|
||||
<p>Add a form!</p>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
18
modules/Sample/Resources/views/admin/index.blade.php
Normal file
18
modules/Sample/Resources/views/admin/index.blade.php
Normal file
@ -0,0 +1,18 @@
|
||||
@extends('sample::layouts.admin')
|
||||
|
||||
@section('title', 'Sample')
|
||||
@section('actions')
|
||||
<li>
|
||||
<a href="{{ url('/admin/sample/create') }}">
|
||||
<i class="ti-plus"></i>
|
||||
Add New</a>
|
||||
</li>
|
||||
@endsection
|
||||
@section('content')
|
||||
<div class="card border-blue-bottom">
|
||||
<div class="content">
|
||||
<div class="header"><h4 class="title">Admin Scaffold!</h4></div>
|
||||
<p>This view is loaded from module: {{ config('sample.name') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
9
modules/Sample/Resources/views/index.blade.php
Normal file
9
modules/Sample/Resources/views/index.blade.php
Normal file
@ -0,0 +1,9 @@
|
||||
@extends('sample::layouts.frontend')
|
||||
|
||||
@section('content')
|
||||
<h1>Hello World</h1>
|
||||
|
||||
<p>
|
||||
This view is loaded from module: {{ config('sample.name') }}
|
||||
</p>
|
||||
@endsection
|
||||
5
modules/Sample/Resources/views/layouts/admin.blade.php
Normal file
5
modules/Sample/Resources/views/layouts/admin.blade.php
Normal file
@ -0,0 +1,5 @@
|
||||
{{--
|
||||
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('admin.app')
|
||||
@ -0,0 +1,5 @@
|
||||
{{--
|
||||
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('app')
|
||||
21
modules/Sample/composer.json
Normal file
21
modules/Sample/composer.json
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"name": "phpvms/sample-module",
|
||||
"type": "phpvms-module",
|
||||
"description": "A sample phpvms module",
|
||||
"require": {
|
||||
"composer/installers": "~1.0"
|
||||
},
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Modules\\Sample\\Providers\\SampleServiceProvider",
|
||||
"Modules\\Sample\\Providers\\EventServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Modules\\Sample\\": "."
|
||||
}
|
||||
}
|
||||
}
|
||||
15
modules/Sample/module.json
Normal file
15
modules/Sample/module.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"name": "Sample",
|
||||
"alias": "sample",
|
||||
"description": "",
|
||||
"keywords": [],
|
||||
"active": 1,
|
||||
"order": 0,
|
||||
"providers": [
|
||||
"Modules\\Sample\\Providers\\SampleServiceProvider",
|
||||
"Modules\\Sample\\Providers\\EventServiceProvider"
|
||||
],
|
||||
"aliases": {},
|
||||
"files": [],
|
||||
"requires": []
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user