diff --git a/frontend/config/main.php b/frontend/config/main.php index ecc3e60..9fbadf2 100755 --- a/frontend/config/main.php +++ b/frontend/config/main.php @@ -8,6 +8,7 @@ $params = array_merge( return [ 'id' => 'app-frontend', + 'name' => 'Guild', 'basePath' => dirname(__DIR__), 'bootstrap' => ['log'], 'controllerNamespace' => 'frontend\controllers', @@ -59,4 +60,4 @@ return [ ], 'params' => $params, -]; +]; \ No newline at end of file diff --git a/frontend/modules/access/views/access/index.php b/frontend/modules/access/views/access/index.php index 326a232..4340a7c 100644 --- a/frontend/modules/access/views/access/index.php +++ b/frontend/modules/access/views/access/index.php @@ -2,6 +2,8 @@ use yii\grid\GridView; +$this->title = 'Доступы'; + echo GridView::widget([ 'dataProvider' => $dataProvider, 'columns' => [ diff --git a/frontend/modules/card/controllers/UserCardController.php b/frontend/modules/card/controllers/UserCardController.php index 271ece2..86bf120 100644 --- a/frontend/modules/card/controllers/UserCardController.php +++ b/frontend/modules/card/controllers/UserCardController.php @@ -3,17 +3,38 @@ namespace frontend\modules\card\controllers; -use common\classes\Debug; use common\models\CardSkill; use common\models\FieldsValueNew; use Yii; -use common\models\UserCard; +use frontend\modules\card\models\UserCard; use yii\data\ActiveDataProvider; +use yii\filters\AccessControl; +use yii\filters\VerbFilter; use yii\web\Controller; use yii\web\NotFoundHttpException; class UserCardController extends Controller { + + /** + * {@inheritdoc} + */ + public function behaviors() + { + return [ + 'access' => [ + 'class' => AccessControl::className(), + 'only' => ['index', 'update'], + 'rules' => [ + [ + 'allow' => true, + 'roles' => ['@'], + ], + ], + ], + ]; + } + /** * Displays a single Product model. * @return mixed @@ -21,32 +42,48 @@ class UserCardController extends Controller */ public function actionIndex() { - if(Yii::$app->user->isGuest) return $this->render('index', ['info' => '

Пожалуйста, авторизируйтесь!

']); - else { - $id_user = Yii::$app->user->id; - $result = UserCard::find()->where(['id_user' => $id_user])->asArray()->all(); + $id_user = Yii::$app->user->id; + $result = UserCard::find()->where(['id_user' => $id_user])->asArray()->all(); - if($result){ - $id = $result[0]['id']; - $dataProvider = new ActiveDataProvider([ - 'query' => FieldsValueNew::find() - ->where(['item_id' => $id, 'item_type' => FieldsValueNew::TYPE_PROFILE]) - ->orderBy('order'), - 'pagination' => [ - 'pageSize' => 200, - ], - ]); + if($result) { + $id = $result[0]['id']; + $dataProvider = new ActiveDataProvider([ + 'query' => FieldsValueNew::find() + ->where(['item_id' => $id, 'item_type' => FieldsValueNew::TYPE_PROFILE]) + ->orderBy('order'), + 'pagination' => [ + 'pageSize' => 200, + ], + ]); - $skills = CardSkill::find()->where(['card_id' => $id])->with('skill')->all(); + $skills = CardSkill::find()->where(['card_id' => $id])->with('skill')->all(); - return $this->render('view', [ - 'model' => $this->findModel($id), - 'modelFildValue' => $dataProvider, - 'skills' => $skills, - ]); - } - else return $this->render('index', ['info' => '

Ваши личные данные не заненсены в базу.

']); + return $this->render('view', [ + 'model' => $this->findModel($id), + 'modelFildValue' => $dataProvider, + 'skills' => $skills, + ]); } + else return $this->render('index', ['info' => '

Ваши личные данные не заненсены в базу.

']); + } + + /** + * Updates an existing UserCard model. + * If update is successful, the browser will be redirected to the 'view' page. + * @param integer $id + * @return mixed + * @throws NotFoundHttpException if the model cannot be found + */ + public function actionUpdate($id) + { + $model = $this->findModel($id); + if ($model->load(Yii::$app->request->post()) && $model->save()) { + return $this->redirect(['index', 'id' => $model->id]); + } + + return $this->render('update', [ + 'model' => $model, + ]); } /** diff --git a/frontend/modules/card/models/UserCard.php b/frontend/modules/card/models/UserCard.php new file mode 100644 index 0000000..8f736f0 --- /dev/null +++ b/frontend/modules/card/models/UserCard.php @@ -0,0 +1,45 @@ +where(['card_id' => \Yii::$app->request->get('id')])->all(), + 'skill_id' + ); + + if (!empty($skill)) { + $this->skill = $skill; + } + } + + public function afterSave($insert, $changedAttributes) + { + $post = \Yii::$app->request->post('UserCard'); + + if ($post['skill']) { + CardSkill::deleteAll(['card_id' => $this->id]); + + foreach ($post['skill'] as $item) { + $skill = new CardSkill(); + $skill->skill_id = $item; + $skill->card_id = $this->id; + + $skill->save(); + } + } + + parent::afterSave($insert, $changedAttributes); // TODO: Change the autogenerated stub + } +} diff --git a/frontend/modules/card/views/user-card/_form.php b/frontend/modules/card/views/user-card/_form.php new file mode 100644 index 0000000..aaf3967 --- /dev/null +++ b/frontend/modules/card/views/user-card/_form.php @@ -0,0 +1,39 @@ + + +
+ + + +
+
+ field($model, 'skill')->widget( + Select2::class, + [ + 'data' => ArrayHelper::map(Skill::find()->all(), 'id', 'name'), + 'options' => ['placeholder' => '...', 'class' => 'form-control', 'multiple' => true], + 'pluginOptions' => [ + 'allowClear' => true + ], + ] + )->label('Навыки'); ?> +
+
+ +
+ 'btn btn-success']) ?> +
+ + + +
\ No newline at end of file diff --git a/frontend/modules/card/views/user-card/index.php b/frontend/modules/card/views/user-card/index.php index 9b3a781..75951e9 100644 --- a/frontend/modules/card/views/user-card/index.php +++ b/frontend/modules/card/views/user-card/index.php @@ -1 +1,7 @@ - \ No newline at end of file +title = 'Профиль'; + + echo $info; diff --git a/frontend/modules/card/views/user-card/update.php b/frontend/modules/card/views/user-card/update.php new file mode 100644 index 0000000..f674155 --- /dev/null +++ b/frontend/modules/card/views/user-card/update.php @@ -0,0 +1,14 @@ +title = "Редактировать профиль"; +?> +
+ + render('_form', [ + 'model' => $model, + ]) ?> + +
diff --git a/frontend/modules/card/views/user-card/view.php b/frontend/modules/card/views/user-card/view.php index dc45d67..4a7d7b8 100644 --- a/frontend/modules/card/views/user-card/view.php +++ b/frontend/modules/card/views/user-card/view.php @@ -9,7 +9,7 @@ use yii\widgets\DetailView; /* @var $skill \common\models\Skill */ /* @var $modelFildValue yii\data\ActiveDataProvider */ - +$this->title = 'Профиль'; ?>
@@ -19,7 +19,6 @@ use yii\widgets\DetailView; 'model' => $model, 'attributes' => [ ['label' => 'ФИО', 'attribute' => 'fio',], - ['label' => 'Пасспорт', 'attribute' => 'passport',], ['label' => 'Email', 'attribute' => 'email',], [ 'attribute' => 'gender', @@ -30,7 +29,6 @@ use yii\widgets\DetailView; 'attribute' => 'status', 'value' => $model->status0->name, ], - ['label' => 'Зарплата', 'attribute' => 'salary',], [ 'attribute' => 'position_id', 'value' => (isset($model->position->name)) ? $model->position->name : 'Без должности', @@ -43,14 +41,13 @@ use yii\widgets\DetailView; } ], [ - 'attribute' => 'Resume', + 'attribute' => 'Резюме', 'format' => 'raw', 'value' => function ($model) { return Html::a('Скачать', $model->resume, ['target' => '_blank']); } ], ['label' => 'Добвлен', 'attribute' => 'created_at',], - ['label' => 'Изменен', 'attribute' => 'updated_at',], ], ]); ?> @@ -60,6 +57,9 @@ use yii\widgets\DetailView; name; ?> + + $model->id], ['class' => 'btn btn-success']); ?> +

Дополнительные сведения

'Home', 'url' => ['/site/index']], - ['label' => 'About', 'url' => ['/site/about']], - ['label' => 'Contact', 'url' => ['/site/contact']], + ['label' => 'Главная', 'url' => ['/site/index']], ]; if (Yii::$app->user->isGuest) { $menuItems[] = ['label' => 'Signup', 'url' => ['/site/signup']]; @@ -84,4 +82,4 @@ AppAsset::register($this); -endPage() ?> \ No newline at end of file +endPage() ?>