PHPackages                             andrewdanilov/yii2-admin-panel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. andrewdanilov/yii2-admin-panel

ActiveYii2-extension[Admin Panels](/categories/admin)

andrewdanilov/yii2-admin-panel
==============================

Simple Admin Panel

2.0.18(1y ago)31.7kMITPHPPHP &gt;=7.4.0

Since Nov 29Pushed 1y ago1 watchersCompare

[ Source](https://github.com/AndrewDanilov/yii2-admin-panel)[ Packagist](https://packagist.org/packages/andrewdanilov/yii2-admin-panel)[ RSS](/packages/andrewdanilov-yii2-admin-panel/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (3)Versions (23)Used By (0)

Admin Panel
===========

[](#admin-panel)

Simple Admin Panel template and user accounts manager

Installation
------------

[](#installation)

The preferred way to install this extension is through [composer](http://getcomposer.org/download/).

Either run

```
composer require andrewdanilov/yii2-admin-panel "~2.0.0"

```

or add

```
"andrewdanilov/yii2-admin-panel": "~2.0.0"

```

to the `require` section of your `composer.json` file.

Then run db migrations, to modify needed tables:

```
php yii migrate --migrationPath=@andrewdanilov/adminpanel/migrations

```

Do not forget to run migrations after extension updates too.

Usage
-----

[](#usage)

Copy `src/views` directory to your backend views location, then modify these templates to your needs. You do not need to copy the `src/views/user` directory if you want to use the default `@andrewdanilov/adminpanel/views/user`.

In backend main config place (or replace) `user` section inside `components`:

```
$config = [
	// ...
	'components' => [
		// ...
		'user' => [
			'class' => 'yii\web\User',
			'identityClass' => 'andrewdanilov\adminpanel\models\User',
			'accessChecker' => 'andrewdanilov\adminpanel\AccessChecker',
			'enableAutoLogin' => true,
			'identityCookie' => ['name' => '_identity-backend', 'httpOnly' => true],
			'loginUrl' => ['user/login'],
		],
	],
];
```

Instead of default you can use your own access checker or user identity class, therefore replace correspondent *accessChecker* or *identityClass* properties of *user* component within backend main config. Then copy **src/AccessChecker.php** if you are replacing access checker and **src/models/User.php** if you are replacing identity class, and place them to your own location. Modify it, as you need. Do not forget to replace namespace definition of duplicated classes.

To use default extension's controllers add 'controllerMap' section to your backend main config:

```
$config = [
	// ...
	'controllerMap' => [
		'user' => [
			'class' => 'andrewdanilov\adminpanel\controllers\UserController',
			'viewPath' => '@backend/someotherlocation/views/user', // optional, custom UserController views location
			'loginFormClass' => 'backend\models\LoginForm', // optional, default is 'andrewdanilov\adminpanel\models\LoginForm'
		],
	],
];
```

If you use custom views location (and it is not default '@backend/views' or other location defined in backend main config) with default extension's `UserController`, you need to set `viewPath` property in `controllerMap` section. If `viewPath` is defined but does not exist, the default `@andrewdanilov/adminpanel/views/user` will be used.

Default `UserController` already have CRUD methods for managing user accounts. Use this link to get access to them:

```
use yii\helpers\Url;

$userManagerUrl = Url::to(['/user']);
```

To make access control on all your admin pages working properly, you need to extend all your backend controllers from andrewdanilov\\adminpanel\\controllers\\BackendController

```
use andrewdanilov\adminpanel\controllers\BackendController;

class AnyController extends BackendController
{
	// ...
}
```

To make work it properly you must remove methods `behaviors` and `actions` from `AnyController` or extends that methods from parent class, just like so:

```
use andrewdanilov\adminpanel\controllers\BackendController;

class AnyController extends BackendController
{
	// ...
	public function actions()
	{
		$actions = parent::actions();
		$actions['error']['layout'] = 'error';
		return $actions;
	}
	// ...
}
```

Additionaly you can use FontawesomeActionColumn class in your GridViews instead of default ActionColumn, to replace default Bootstrap action icons with corresponding Fontawesome icons:

```
/* @var $dataProvider \yii\data\ActiveDataProvider */
/* @var $searchModel \yii\db\ActiveRecord */
use yii\grid\GridView;
?>
