rocket-php-lab / yii2-bridge-core
Simple admin panel for enthusiasts
This package's canonical repository appears to be gone and the package has been frozen as a result.
Requires
- 2amigos/yii2-ckeditor-widget: ^2.1
- 2amigos/yii2-grid-view-library: ^1.0
- 2amigos/yii2-usuario: ~1.0
- codemix/yii2-localeurls: ^1.7
- kartik-v/yii2-widgets: ^3.4
- kolyunya/yii2-map-input-widget: ^1.2
- mihaildev/yii2-elfinder: ^1.2
- mohorev/yii2-upload-behavior: ^0.2.0
- rocket-php-lab/yii2-bridge-slug: v0.*
- symfony/var-dumper: ^4.3
- vlucas/phpdotenv: ^2.4
- yii2tech/admin: ^1.0
- yii2tech/ar-position: ^1.0
- yii2tech/ar-softdelete: ^1.0
- yiisoft/yii2: ^2.0
- yiisoft/yii2-bootstrap: ^2.0
- yiisoft/yii2-imagine: ^2.1
- zelenin/yii2-i18n-module: ^0.1.9
Requires (Dev)
- phpunit/phpunit: ^5.7
- yiisoft/yii2-gii: ^2.0
README
Краткое введение и туториал на русском
Bridge delivers you simple content management system that utilizes best production-tested components and plugins for Yii2.
Installation
Add it as Composer dependency by running
$ composer require yii2-bridge/core
Be sure to configure module (instructions below), before running migrations.
Configuration
Add module declaration to your config file for web config:
<?php
return [
// ... your config
'modules' => [
'admin' => [
'class' => '\Bridge\Core\BridgeModule',
// Add your projects modules here to keep right routing.
'modules' => [
'customModule' => ['class' => '\app\modules\your\CustomModule']
],
// Add menu item of your content management module to menu
'menu' => [
[
'title' => 'Content',
'url' => ['/admin/content/default/index'],
'active' => ['module' => 'content'],
'icon' => 'list'
]
],
// Alternatively you can define different menu items for different
// roles. In that case it will override default menu items, such as
// settings, users and dashboard
'composeMenu' => function ($user, $roles, $authManager) {
/**
* @var \yii\web\User $user
* @var \Da\User\Model\Role[] $roles
* @var \Da\User\Component\AuthDbManagerComponent $authManager
*/
if (isset($roles['admin'])) {
return require __DIR__ . '/menu-admin.php';
}
if ($user->can('editor')) {
return require __DIR__ . '/menu-editor.php';
}
if (in_array($user->id, $authManager->getUserIdsByRole('manager'))) {
return require __DIR__ . '/menu-manager.php';
}
// Or any other available method
return __DIR__ . '/menu-default.php';
}
]
],
'bootstrap' => [
'admin' // add module id to bootstrap for proper aliases and url routes binding
]
];
And for console config, in order to run migrations:
<?php
return [
// ... your config
'modules' => [
'admin' => ['class' => '\Bridge\Core\BridgeModule']
],
'bootstrap' => [
'admin' // add module id to bootstrap for proper aliases and url routes binding
]
];
Setup
After installing and config setup (including database), you should have installation executable in your vendor folder. You can run all the migrations required with single command:
$ ./vendor/bin/bridge-install
Warning! This command is running with
--interactive=0
flag, which means it will not ask confirmation for it.
Usage
After running every step above you should have your admin panel running on /admin
route.
The only thing left is to run command to create users.
Creating first user
Run following command to generate users:
$ php yii user/create EMAIL USERNAME PASSWORD ROLE
So the correct command to create user with admin role for admin panel would be:
$ php yii user/create admin@sitename.kz admin PASSWORD admin
Gii
Gii that is provided with bridge is packed with some improvements to basic gii.
When generating model with db fields ending by image
or file
, it would
automatically add corresponding upload behavior.
You can turn this behaviors off by clicking on checkbox in generator interface.
And also it has Bridge CRUD generator
, which will generate necessary fields
inputs and display it nicely to the index table.
Development and testing
Configure your .env
(refer to .env.example
). Run migrations with:
$ ./bin/bridge-install-dev
Bridge comes with console app for development and testing purposes, located in bin
folder.
You can simply execute it with
$ php bin/yii.php CONTROLLER/ACTION [params]
Test package with
$ ./vendor/bin/phpunit
Theme
Цветовая палитра админки находится в Bridge\Core\Assets\BridgeTheme. Необходимо создать новый класс и наследоваться от Bridge\Core\Assets\BridgeTheme и изменить публичные (нужные) переменные.
Так же нужно переопределить класс в конфигурации (main.php):
'web' => [
'modules' => [
'admin' => [
'themeClass' => MyBridgeTheme::class,
...
],
...
],
...
]