[ [ 'first_name' => ['Име', 'c1'], 'last_name' => ['Фамилия', 'c1'], 'partner_id' => ['Организация', 'c3', Partner::partnerList()], 'role_id' => ['Роля/група', 'c2', CmsRoles::roleList()], 'is_active' => ['Статус', 'c1', [1 => 'Активен', 'null' => 'Не активен']] ], ], 'top' => [ 'title' => 'Потребители на партньор', 'data' => [ 'index/dashboard' => 'Начало', 'user/admin-global' => 'Потребители' ] ], 'actions' => [ //'new' => 'Нов потребител', 'edit' => 'Редакция на потребител', //'delete' => 'Изтриване на потребител', 'export' => 'Експорт (csv)' ], 'th' => [ '№' => 'c1 text-right', 'Ел. поща' => '', 'Име' => '', 'Организация' => '', 'Група / роля ' => '', 'Бр. права' => 'c1', 'История' => 'c0 ct', 'Активен' => 'c0 ct' ], 'data' => UserPartner::find()->where(Yii::$app->getFilterData())->orderBy(['id' => SORT_DESC])->loop([ 'id', function (UserPartner $model) { return '' . $model->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) { return $model->statusSwitch('is_active'); } ], $_GET['p'] ?? 1, 30), 'exportData' => function () { return [ 'header' => [ 'ID' => ['integer', 10], 'E-mail' => ['string', 50], 'Име' => ['string', 20], 'Фамилия' => ['string', 20], 'Организация' => ['string', 50], 'Група / роля' => ['string', 30] ], 'data' => UserPartner::find()->where(Yii::$app->getFilterData())->orderBy(['first_name' => SORT_ASC])->loop([ 'id', 'email_login', 'first_name', 'last_name', function (UserPartner $userPartner) { return $userPartner->partner->name; }, function (UserPartner $userPartner) { if ($userPartner->cmsRole) return $userPartner->cmsRole->name; } ]), 'file_name' => 'Партньори_' . date('Y_m_d_H_i') ]; } ]); FormWidget::widget([ 'top' => [ 'title' => 'Нов партньор', 'title_edit' => 'Редакция на партньор', 'data' => [ 'index/dashboard' => 'Начало', 'user/admin-global' => 'Потребители', 'user/partner' => 'Партньори', ] ], 'writeView' => 'user/write/partner_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->{'first_name'})) return ['first_name' => 'Моля, попълнете име']; if (empty($p->{'last_name'})) return ['last_name' => 'Моля, попълнете фамилия']; if (empty($p->{'partner_id'})) return ['partner_id' => 'Моля, изберете организация']; 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->save(); if (!isset($p->{'rights'})) $p->{'rights'} = []; $model->updateRights($p->{'rights'}); History::addNew($model->id, 'user_partner', Auth::userAdminGlobal()->getFullName() . ' - Глобален администратор', !empty($_GET['id'])); Yii::$app->flash('success', isset($_GET['id']) ? 'Записът е актуализиран успешно' : 'Записът е създадено успешно'); Yii::$app->setRefresh(); $model->smartRedirect(); } ]);