[ [ 'first_name' => ['Име', 'c1'], 'last_name' => ['Фамилия', 'c1'], 'role_id' => ['Роля/група', 'c2', CmsRoles::roleList()], 'is_active' => ['Статус', 'c1', [1 => 'Активен', 'null' => 'Не активен']] ], ], 'top' => [ 'title' => 'Потребители партньор', 'data' => [ 'index/dashboard' => 'Начало', 'website/expositions' => 'Уебсайт' ] ], 'actions' => [ //'new' => 'Нов потребител', //'edit' => 'Редакция на потребител', //'delete' => 'Изтриване на потребител' ], 'th' => [ '№' => 'c1 text-right', 'Ел. поща' => '', 'Име' => '', 'Партньор' => '', 'Група / роля ' => '', 'Бр. права' => 'c1', 'История' => 'c0 ct', 'Активен' => 'c0 ct' ], 'ignoreIds' => [Auth::userPartner()->id], 'data' => UserPartner::find()->orderBy(['id' => SORT_DESC]) ->andWhere(['partner_id' => Auth::userPartner()->partner_id]) ->andWhere(Yii::$app->getFilterData())->loop([ 'id', 'email_login', 'fullName', function (UserPartner $model) { if ($model->partner) { return $model->partner->name; } }, function (UserPartner $model) { if ($model->cmsRole) return $model->cmsRole->name; }, function (UserPartner $model) { if ($model->getRightsIds()) return sizeof($model->getRightsIds()); }, function (UserPartner $model) { return ''; }, function (UserPartner $model) use ($u) { $disabled = $model->id == $u->id ? 'disabled' : null; return $model->statusSwitch('is_active', null, null, 'disabled'); } ], $_GET['p'] ?? 1, 30) ]); FormWidget::widget([ 'top' => [ 'title' => 'Нов потребител', 'title_edit' => 'Редакция на потребител', 'data' => [ 'index/dashboard' => 'Начало', 'website/expositions' => 'Уебсайт', 'website/users' => 'Потребители', ] ], 'writeView' => 'website/tabs/main/users_w', 'model' => UserPartner::class, 'validation' => function ($p, $f) { if (isset($p->profile_update)) { if (empty($p->{'email_login'})) return ['email_login' => 'Моля, въведете ел. поща']; if (!filter_var($p->{'email_login'}, FILTER_VALIDATE_EMAIL)) return ['email_login' => 'Моля, въведете валиден имейл адрес']; if (UserPartner::recordExists('email_login', $p->{'email_login'})) return ['email_login' => 'Този имейл адрес вече се ползва от друг потребител на партньор']; if (empty($_GET['id'])) { if (empty($p->{'password'})) return ['password' => 'Моля, въведете парола']; } if (!empty($p->{'password'})) { if (strlen($p->{'password'}) < 6) return ['password' => 'Моля, въведете парола от поне 6 символа']; if ($p->{'cPassword'} != $p->{'password'}) return ['cPassword' => 'Повторното въвеждане на паролата не съвпада с първата']; } if (empty($p->{'first_name'})) return ['first_name' => 'Моля, попълнете име']; if (empty($p->{'middle_name'})) return ['middle_name' => 'Моля, попълнете презиме']; if (empty($p->{'last_name'})) return ['last_name' => 'Моля, попълнете фамилия']; if (empty($p->{'role_id'})) return ['role_id' => 'Моля, изберете роля / група']; } if (isset($p->password_change) && !empty($_GET['id'])) { if (empty($p->{'password'})) return ['password' => 'Моля, въведете парола']; if (strlen($p->{'password'}) < 6) return ['password' => 'Моля, въведете парола от поне 6 символа']; if ($p->{'cPassword'} != $p->{'password'}) return ['cPassword' => 'Повторното въвеждане на паролата не съвпада с първата']; } return null; }, 'postService' => function ($p, UserPartner $model) { $model->setPostDataToModel(); $model->uploadSingleImage('upload_image', 'user/partner'); $model->partner_id = \app\services\Auth::userPartner()->partner_id; //$model $model->save(); if (!isset($p->{'rights'})) $p->{'rights'} = []; $model->updateRights($p->{'rights'}); History::addNew($model->id, 'user_partner', Auth::userPartner()->getFullName() . ' - Партньор', !empty($_GET['id'])); Yii::$app->flash('success', isset($_GET['id']) ? 'Записът е актуализиран успешно' : 'Записът е създадено успешно'); $model->smartRedirect(); } ]);