goldenscarab / modulus
CMS maison pour développeur
Requires
- php: >=7.2
- barryvdh/laravel-debugbar: >=3
- barryvdh/laravel-elfinder: >=0.4
- goldenscarab/modulus-helpers: >=1.0.4
- goldenscarab/modulus-service-field: >=1.1.4
- goldenscarab/modulus-service-template: >=0.1.6
- maatwebsite/excel: >=3
- nwidart/laravel-modules: >=8.2.0
- spatie/laravel-cookie-consent: >=2
- spatie/laravel-permission: >=5.1
README
CMS personnel
Required
- Composer
- PHP >= 7.3
- Laravel >= 7
Installation
Require this package with composer.
composer require goldenscarab/modulus
Laravel 5.8 uses autoload files, so doesn't require you to manually add the ServiceProvider.
Publishing
php artisan vendor:publish --provider="Goldenscarab\Modulus\App\Providers\PublishesServiceProvider" --force
Installing front dependencies
bash vendor/goldenscarab/modulus/assets_install.sh
Configuration assets
Replace require('./bootstrap')
in file resources/js/app.js by
require('./modulus.js')
Add in file resources/scss/app.scss (create file if necessary)
@import "./modulus.scss"
Update your webpack.mix.js
with
// Modulus
mix.alias({
'@modulus': 'vendor/goldenscarab/modulus'
});
mix.js('resources/js/app.js', 'public/js/app.js').vue()
.sass('resources/sass/app.scss', 'public/css/app.css');
// Copy librairies in public folder
mix.copyDirectory('node_modules/tinymce', 'public/packages/tinymce');
mix.copyDirectory('node_modules/ace-builds/src-min-noconflict', 'public/packages/ace');
if (mix.inProduction()) {
mix.version();
}
Compile assets
npm run dev
Configuration
Fichier modulus.php
Éditer le fichier config/modulus.php
comme dans l'exemple :
<?php
return [
/**
* Classe définissant la couleur de fond du bandeau logo
* default: bg-info
*/
'band_color_class' => 'bg-info',
/**
* Icone du nom de l'application
* default: <i class="fa fa-puzzle-piece align-middle ml-3" style="font-size: 26px;"></i>
*/
'label_icon' => '<i class="fa fa-puzzle-piece align-middle ml-3" style="font-size: 26px;"></i>',
/**
* Nom de l'application
* default: <b>M</b>odulus
*/
'label_name' => '<b>E</b>xtranet',
/**
* Préfixe des url de Modulus
* default: /backend
*/
'url_prefix' => '/',
/**
* Namespace des constroleurs à surcharger
* default: Goldenscarab\\Modulus\\App\\Http\\Controllers
* - DashboardController
*/
'dashboard_action' => 'App\\Http\\Controllers\\DashboardController@index',
/**
* Message du footer
*/
'msg_footer_right' => 'La simplicité dans le sur mesure',
'msg_footer_left' => '<strong>Copyright © ' . date('Y') . ' <a href="https://www.goldenscarab.fr" target="_blanc">Goldenscarab.</a></strong> All rights reserved.'
];
Routes
Vous pouvez personnaliser l'url de base d'accès à Modulus, depuis le fichier de config config/modulus.php
.
Si vous souhaitez personnaliser l'URL de Modulus à la racine du nom de domaine, penser à nettoyer la route par défaut du fichier routes/web.php
Vous pouvez aussi personnaliser le Tableau de Bord en changeant le paramètre namespace_custom
du fichier config/modulus.php
Ainsi vous redirigez la route DashboardController@index
vers le namespace de votre choix.
Exemple :
php artisan make:controller DashboardController
Dans le fichier config/modulus.php
'dashboard_action' => 'App\\Http\\Controllers\\DashboardController@index',
Il ne reste plus qu'à personnaliser la methode index
du controller fraichement créé pour afficher un nouveau Dashboard.
Pour la vue, vous pouvez utilisez le modèle suivant :
@extends('modulus::layouts.app.adminlte')
@section('content')
<h1>Dashboard</h1>
<!-- Ici le HTML -->
@endsection
@push('scripts')
<script>
// Ici le javascript
</script>
@endpush
@push('styles')
<style>
/* Ici le style */
</style>
@endpush
Middlewares
Ajouter au fichier app/Http/Kernel.php
, dans la variable $routeMiddleware
, les lignes suivantes :
/* Middlewares ajoutés */
'auth.active' => \Goldenscarab\Modulus\App\Http\Middleware\RedirectIfNotActive::class,
'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class,
'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class,
'role_or_permission' => \Spatie\Permission\Middlewares\RoleOrPermissionMiddleware::class,
App
Éditer le fichier .env
à la racine de l'application pour y configurer l'accès à la base de données
Migrations
Après avoir configuré l'accès à la base de données, il est temps de créer les tables et de peubler avec les premières données la base de données
php artisan migrate --seed
Modules
Vous pouvez créer votre application sous forme de modules. Un exemple de module se trouve dans le dossier /Modules
Pour permettre l'auto-chargement des classes des modules, il est néccessaire le modifier le fichier composer.json
comme ci-dessous :
{
"autoload": {
"psr-4": {
"App\\": "app/",
"Modules\\": "Modules/"
}
}
}
Pour dupliquer le module exemple :
cd Modules/
bash duplicate.sh Small [ModuleName]
Vous pouvez ensuite ajouter des resources dans le module à l'aide de la commande :
php artisan modulus:make-resource [MyResource] [ModuleName]
Security
If you discover any security related issues, please email contact@goldenscarab.fr instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.