yii2 template advanced rback usando extension dektrium/yyi2-user

composer require dektrium/yii2-user
yii migrate/up --migrationPath=@vendor/dektrium/yii2-user/migrations
en common/config/main.php
'modules' => [ 'user' => [ 'class' => 'dektrium\user\Module', 'enableUnconfirmedLogin' => true, 'confirmWithin' => 21600, 'cost' => 12, 'admins' => ['admin'] ], ],
en common/config/main-local.php

'mailer' => [
        'class' => 'yii\swiftmailer\Mailer',
        'viewPath' => '@app/mailer',
        'useFileTransport' => false,
        'transport' => [
          'class' => 'Swift_SmtpTransport',
          'host' => 'hosttttttt',
          'username' => 'XXXXXX@webazan.com.ar',
          'password' => 'XXXXXX',
          'port' => '465',
          'encryption' => 'ssl',
        ],
      ],
en backend/config/main.php
quitar de components, el bloque de user, o comentarlo
 /* 'user' => [
            'identityClass' => 'common\models\User',
            'enableAutoLogin' => true,
            'identityCookie' => ['name' => '_identity-backend', 'httpOnly' => true],
        ],*/
ahora si entramos a backend/web
nos redirige a la pagina de logueo. 
Para crear usuarios:
http://localhost/ecosocial2/backend/web/index.php?r=user%2Fregistration%2Fregister



yii2 upload file/imagen kartik extension

desde la consola ejecutar

composer require kartik-v/yii2-widget-fileinput "@dev"
en el modelo:

crear un atributo virtual que representará la imagen

var $tmp_image;

en el public function rules() {

...
[['tmp_image'], 'safe'],
        [['tmp_image'], 'file', 'extensions'=>'jpg, gif, png'],
...
}

tiene que ser safe para que pueda enviarse junto con el resto de los campos del formulario:

en el form:

importante, cambiar el tipo de dato que maneja el formulario

 <?php $form = ActiveForm::begin([
          'options'=>['enctype'=>'multipart/form-data']]);  ?>

<?php
echo $form->field($model, 'tmp_image')->widget(FileInput::classname(), [
'options' => ['accept' => 'image/*'],
'pluginOptions'=>[
'allowedFileExtensions'=>['jpg','gif','png'],
'showUpload' => false,
 
],
]);
?>
en el controller:
por ejemplo en el action de creacion 
$model = new Jugador();

        if ($model->load(Yii::$app->request->post())){
        $tmp_image = UploadedFile::getInstance ( $model, 'tmp_image' );
       
if (! is_null ( $tmp_image )) {
$model->picture = $tmp_image->name;
$ext = end ( (explode ( ".", $tmp_image->name )) );
// generate a unique file name to prevent duplicate filenames
$image_name = Yii::$app->security->generateRandomString () . ".{$ext}";
// the path to save file, you can set an uploadPath
$uploadPath = Yii::$app->basePath . DIRECTORY_SEPARATOR . Yii::$app->params ['dir_images_uploads'];
$path = $uploadPath . $image_name;
$tmp_image->saveAs ( $path );
$model->picture = Url::home ( true ) . DIRECTORY_SEPARATOR . Yii::$app->params ['dir_images_uploads'] . $image_name;
}
        if($model->save()) {
                    return $this->redirect(['view', 'id' => $model->id]);
        }
        }

YII2 ADVANCED instalar template

para el backend vamos a usar,
AdminLTE - Free Premium Admin control Panel Theme Based On Bootstrap 3.x
https://github.com/almasaeed2010/AdminLTE


a traves de

AdminLTE Asset Bundle

Backend UI for Yii2 Framework, based on AdminLTE
https://github.com/dmstr/yii2-adminlte-asset

entonces, en la consola ejecutar

composer require dmstr/yii2-adminlte-asset "2.*"
copiar la carpeta vendor\dmstr\yii2-adminlte-asset\example-views\yiisoft\yii2-app
dentro de backend/views

y editamos backend/config/main-local.php

'view' => [
    'theme' => [
    'pathMap' => [
                '@app/views' => '@app/views/yii2-app'
            ],
    ],
    ],

para el frontend:

descargar algun theme por ejemplo metro desde aqui
https://yii2.themefactory.net/theme/56/metro#.WIQ-JPnhDIU

en frontend/ creamos la carpeta themes

editamos frontend/config/main-local.php

y editamos backend/config/main-local.php

'view' => [
    'theme' => [
    'pathMap' => array('@app/views' => '@app/themes/metro'),
    'baseUrl'   => '@web/../themes/metro'
    ],
    ],



yii2 crear proyecto advanced template rbac

si estamos trabajando con xampp
en la consola, situarse httdocs

y ejecutar el siguiente comando:

composer create-project --prefer-dist yiisoft/yii2-app-advanced nombre-de-tu-aplicacion



estamos luego ingresar a la carpeta recien creada "nombre-de-tu-aplicacion"
y ejecutamos el siguiente comando:

php init

nos van a preguntar que entorno vamos a configurar de desarrollo[0] o de produccion[1]
seleccionar 0, confirmamos con yes.

Listo.

ahora creamos una base de datos. p.e una llamada "tubase" (para evitar confusiones yo suelo llamar a la base igual que el proyecto)

editar el archivo
en common/config/main-local.php

(si trabajas con eclipse, dale crear nuevo proyecto php, luego escribe el nombre del proyecto creado por consola y apuntalo a esa carpeta.)

seteamos los datos de la base de datos creada

 'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=tubase',
            'username' => 'root',
            'password' => '',
            'charset' => 'utf8',
        ],


listo.

ahora podremos acceder al frontend, ingresando la sgt url:

http://localhost/ecosocial/frontend/web/

y tambien al backend

http://localhost/ecosocial/backend/web/

claro que a este ultimo no podremos entrar porque nos pide que nos logueemos...asi que ya que estamos vamos a implementar rbac....

en la consola y dentro de la acrpeta del proyecto
ejecutamos:

composer require mdmsoft/yii2-admin "~2.0"

luego editamos el archivo common/config/main.php

le agregamos
'modules' => [
'admin' => [
'class' => 'mdm\admin\Module',

]

],
y en 'components'

agregamos
'authManager' => [
        'class' => 'yii\rbac\PhpManager', // or use 'yii\rbac\DbManager'
    ]

en la consola, ejecutar:
yii migrate --migrationPath=@mdm/admin/migrations
esto creara las tablas de users y menu.

volvemos a editar common/config/main.php
en components, agregar
'user' => [
        'identityClass' => 'mdm\admin\models\User',
        'loginUrl' => ['admin/user/login'],
    ]

ahora podremos agregar usuarios, ingresando a la sgt url

http://localhost/yii2-app/backend/web/index.php?r=admin/user/signup

linux ubuntu mint actualizar chrome

 desde una terminal: $ sudo apt update $ sudo apt install google-chrome-stable