goldenscarab/modulus

CMS maison pour développeur

v1.2.1 2023-09-27 08:56 UTC

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 &copy; ' .  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.