cogroup / cms
CMS for all laravel projects
Installs: 182
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 10
pkg:composer/cogroup/cms
Requires
- php: >=7.2
- intervention/image: >=2.5.1
- laravel/socialite: >=5.0
- laravel/ui: >=3.0
- thedoctor0/laravel-mailjet-driver: >=1.0
Requires (Dev)
- laravel/framework: 8.x
- 3.1.x-dev
- 3.0.x-dev
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- dev-master / 2.x-dev
- 2.0.x-dev
- v2.0.5
- 1.8.x-dev
- v1.8.13
- 1.7.x-dev
- v1.7.2
- 1.6.x-dev
- v1.6.0
- dev-dependabot/npm_and_yarn/minimist-1.2.8
- dev-dependabot/npm_and_yarn/jszip-3.8.0
- dev-dependabot/npm_and_yarn/json5-1.0.2
- dev-dependabot/npm_and_yarn/express-4.18.2
- dev-dependabot/npm_and_yarn/qs-and-express-6.11.0
- dev-dependabot/npm_and_yarn/decode-uri-component-0.2.2
- dev-dependabot/npm_and_yarn/terser-4.8.1
- dev-dependabot/npm_and_yarn/moment-2.29.4
- dev-dependabot/npm_and_yarn/async-2.6.4
- dev-dependabot/npm_and_yarn/follow-redirects-1.14.8
This package is auto-updated.
Last update: 2025-10-03 01:34:20 UTC
README
Important:
To avoid incompatibilities, it is necessary to remove popper, jquery and bootstrap from webpack; our library already includes the most recent ones.
Comment all require files in:
resources/js/bootstrap.js
Cms
For Laravel < 5.7, please use the 1.6 branch!
For Laravel <= 6, please use the 1.8 branch!
For Laravel 7, please use the 2.0 branch!
For Laravel 8, please use the 3.0 branch!
COgroup - CMS package is a flexible way to add basic CMS system with Role-based Permissions to Laravel.
Contents
Installation
- Run the command to install laravel/ui and generate scaffolding
composer require laravel/ui php artisan ui bootstrap --auth
- In order to install COgroup - CMS, just add the following to your composer.json. Then run
composer update:
"cogroup/cms": "^3.0"
or run the next command:
composer require cogroup/cms "3.*"
- fixed Auth::routes, to avoid Clouser error
Remove Auth::routes from web.php file
- Run the command below to publish the package config file
config/cogroupcms.php:
php artisan vendor:publish --provider="Cogroup\Cms\CmsServiceProvider"
- Run the command below to execute migrations
php artisan migrate
- Run the command below to seed
php artisan db:seed --class=CogroupCmsSeeder
- Run the command below to re-publish assets, config, custom error views, font, migrations and translations
php artisan cogroupcms:assets php artisan cogroupcms:config php artisan cogroupcms:errorviews php artisan cogroupcms:fonts php artisan cogroupcms:migrations php artisan cogroupcms:seeders php artisan cogroupcms:translations
- Change default User model in
config/auth.php file
'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => Cogroup\Cms\Models\User::class, ], // 'users' => [ // 'driver' => 'database', // 'table' => 'users', // ], ],
InterventionImage
After you have installed Intervention Image, open your Laravel config file config/app.php and add the following lines.
In the $providers array add the service providers for this package.
Intervention\Image\ImageServiceProvider::class
Add the facade of this package to the $aliases array.
'ImageManager' => Intervention\Image\Facades\Image::class
Now the Image Class will be auto-loaded by Laravel.
Publish configuration in Laravel 5
$ php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravelRecent"
Configuration
Set the property values in the config/cogroupcms.php.
These values will be used by cogroup-cms to refer to the correct prefix, color theme and URI to CMS access.
User relation to roles
You may now run it with the artisan migrate command:
php artisan migrate
After the migration, seven new tables will be present:
files— manage files into CMSmodules— modules for CMSnoworkingdays— dates for special days, and to be able to discount in a range of datesroles— roles for CMSroles_access— relations between roles and modules accesssettings— CMS basic settings (sitename, emailname, etc.)user— Table for users and specific rol user
Models
Files
The Files model has eight main attributes:
originalname— Original name of the file.diskname— name of the file into system after upload.extension— extension of the file.size— size of the file.mimetype— Mime type of the file.alt— Texto for label alt in HTML.width— when is image, a width attribute.height— when is image, a height attribute.ispublic— determines whether a file is public or not.created_at— determines the creation date.updated_at— determine the update date.
Modules
The Modules model has ten main attributes:
moduleslug— Slug name for the module, to verify permissions.modulename— Module name to show.description— A more detailed explanation of what the Module does.active— module is active or not.url— url to acces the module. The url should not have the domain.icon— font icon of the module.parent— When is a submodule, id of the parent module. When is a father module is 0.order— order to show module in the menu.inmenu— determines if the module is show in the main menu.permissions— Determine what permissions the module needs. They must be separated by commas. Example: "view, create".
NoWorkingDays
The NoWorkingDays model has two main attributes:
date— special day date.active— determines whether a date is active or not.created_at— determines the creation date.updated_at— determine the update date.
Roles
The Role model has two main attributes:
rolname— Unique name for the Role, used for looking up role information in the application layer. For example: "admin", "owner", "employee".description— A more detailed explanation of what the Role does.created_at— determines the creation date.updated_at— determine the update date.
RolesAccess
The RolesAccess model has six main attributes:
roles_id— Unique key for the Role, used for relation to table roles.modules_id— Unique key for the modules, used for relation to table modules.view— Set the permission to see a module or submodule.create— Set the permission to create content in a module or submodule.update— Set the permission to update content in a module or submodule.delete— Set the permission to delete content in a module or submodule.created_at— determines the creation date.updated_at— determine the update date.
Settings
The Settings model has two main attributes:
setting— Unique name for the setting.defaultvalue— A value for the setting attribute.
User
This will enable the relation with Role.
And you are ready to go.
Usage
Middleware
You can use a middleware to filter routes and route groups by permission or role
Route::group(['prefix' => 'settings', 'middleware' => ['admin:settings|view']], function() { Route::get('/', 'AdminController@welcome'); Route::post('/', ['middleware' => ['admin:settings|create,update'], 'uses' => 'AdminController@manageAdmins']); });
It is possible to use comma symbol to verify until two actions:
'middleware' => ['role:admin|create,update']
Helper Permission
You can use a helper to verify a permission
cms_roles_check($check, $moduleslug, $type);
checkis a Auth::user info or module id.moduleslugis a slug of the module to check permission.typeis optional permission, by default it isview.
Helpers
Cogroup - CMS includes a two "helper" PHP functions. These functions are used by the package itself; however, you are free to use them in your own applications if you find them convenient.
cms_get_modules
This function return a modules of the system, register into table modules.
cms_get_modules($modulename, $inmenu, $idrol);
modulenameis optional parameter. If is NULL return all modules.inmenuBy default it isY. The other option isN.idrolis optional parameter, by default it isNULL. When present, it returns the modules associated with the role that have permissionview
cms_settings
This function return a object with settings values
cms_settings();
Example: cms_settings()->sitename
cms_format_date
This function return a Carbon format date with the dateformat setting format
cms_format_date($date);
dateis required parameter. The date format must be Y-m-d.
cms_format_time
This function return a Carbon format date with the timeformat setting format
cms_format_time($time);
timeis required parameter. The time format must be H:i:s.
cms_format_datetime
This function return a Carbon format date with the dateformat and timeformat setting format
cms_format_datetime($datetime);
datetimeis required parameter. The date format must be Y-m-d H:i:s.
cms_get_file_attribute
This function return a attribute FileModel
cms_get_file_attribute($id, $attribute);
idis required parameter. Id into tableFilesattributeis required parameter. Column of the tableFiles
cms_get_total_unread_notifications
This function return a number of total unread notifications system
cms_get_file_attribute();
Dashboard
For change dashboard, change option dashboard into config/cogroupcms.php file.
Add all namespace example: \App\Http\Controllers\MyDashboardController
Notifications Messages
config channels into config/cogroupcms.php via option
'via' => ['mail', 'database'],
If use a mail channel add use Cogroup\Cms\Notifications\NewMessage; to your Controller.
For send message use Notification::send( $user, new NewMessage( $from, $message ) );
$useris the user to send email. Object User$fromis the user from send email. Object User$messageis a data message
Notifications Javascript
This configuration to set a float message from Controller
Set 0 to error, 1 to success, 2 to info, 3 to warning
$request->session()->flash('status', '1');
Set a position (top, bottom)
$request->session()->flash('msgfrom', {position});
Set a align (left, center, right)
$request->session()->flash('msgfrom', {align});
Set delay time (default: 4000)
$request->session()->flash('msgtime', {time});
Set a message
$request->session()->flash('msg', {message});
License
COgroup CMS is free software distributed under the terms of the MIT license.
Contribution guidelines
Support follows PSR-4 PHP coding standards, and semantic versioning.
Please report any issue you find in the issues page. Pull requests are welcome.