findModel($id); /** * @var SeoComponent $seo */ $seo = Yii::$app->get('seo'); $seo->setModel($model->lang); $variant = $model->variants[ 0 ]; $groups = $variant->getSortedGroups(); $similar = $model->getSimilarProducts(8); $seoData = new SeoProduct( [ 'productTitle' => $model->lang->title, 'productPrice' => $variant->price, 'productAlias' => $seo->alias, 'languageId' => $model->lang->language_id, ] ); $seo->loaded = false; $seo->setAlias($seoData); return $this->render( 'view', [ 'model' => $model, 'variant' => $variant, 'groups' => $groups, 'similar' => $similar, ] ); } /** * Find product by ID * * @param $id * * @return Product * @throws \yii\web\NotFoundHttpException */ protected function findModel($id) { /** * @var SeoComponent $seo */ $seo = \Yii::$app->get('seo'); /** * @var Product $model */ $model = Product::findWithFilters() ->with('lang', 'image') ->with( [ 'category' => function ($query) { /** * @var ActiveQuery $query */ $query->with('lang') ->with('parent.lang'); }, ] ) ->where([ 'id' => $id ]) ->one(); if (!empty($model)) { if ($model->lang->alias_id !== $seo->aliasId) { throw new NotFoundHttpException('Wrong language'); } return $model; } else { throw new NotFoundHttpException('Model not found'); } } public function actionWishlistRm() { \Yii::$app->response->format = Response::FORMAT_JSON; if (\Yii::$app->request->isPost) { $model = Wishlist::find() ->where( [ 'user_id' => \Yii::$app->request->post('user'), ] ) ->andWhere( [ 'variant_id' => \Yii::$app->request->post('variant'), ] ) ->one(); if (!empty($model) && $model->delete()) { return [ 'button' => Html::button( Html::tag('i', '', [ 'class' => 'fa fa-heart-o' ]), [ 'title' => 'Добавить в избранное', 'data' => [ 'toggle' => 'tooltip', 'placement' => 'top', 'product' => \Yii::$app->request->post('product'), 'variant' => \Yii::$app->request->post('variant'), 'user' => \Yii::$app->request->post('user'), 'url' => Url::to([ 'product/wishlist-add' ]), ], 'class' => 'wishlist-add btn btn-success pull-right', ] ), 'message' => 'Товар убран из избранного', ]; } return [ 'button' => Html::button( Html::tag('i', '', [ 'class' => 'fa fa-heart' ]), [ 'title' => 'Убрать из избранного', 'data' => [ 'toggle' => 'tooltip', 'placement' => 'top', 'product' => \Yii::$app->request->post('product'), 'variant' => \Yii::$app->request->post('variant'), 'user' => \Yii::$app->request->post('user'), 'url' => Url::to([ 'product/wishlist-rm' ]), ], 'class' => 'wishlist-rm btn btn-success pull-right', ] ), 'message' => 'Товар не найден', ]; } } public function actionWishlistAdd() { \Yii::$app->response->format = Response::FORMAT_JSON; if (\Yii::$app->request->isPost) { $model = new Wishlist(); $model->user_id = \Yii::$app->request->post('user'); $model->variant_id = \Yii::$app->request->post('variant'); $model->product_id = \Yii::$app->request->post('product'); if ($model->save()) { return [ 'button' => Html::button( Html::tag('i', '', [ 'class' => 'fa fa-heart' ]), [ 'title' => 'Убрать из избранного', 'data' => [ 'toggle' => 'tooltip', 'placement' => 'top', 'product' => \Yii::$app->request->post('product'), 'variant' => \Yii::$app->request->post('variant'), 'user' => \Yii::$app->request->post('user'), 'url' => Url::to([ 'product/wishlist-rm' ]), ], 'class' => 'wishlist-rm btn btn-success pull-right', ] ), 'message' => 'Товар добавлен в избранное', ]; } return [ 'button' => Html::button( Html::tag('i', '', [ 'class' => 'fa fa-heart-o' ]), [ 'title' => 'Добавить в избранное', 'data' => [ 'toggle' => 'tooltip', 'placement' => 'top', 'product' => \Yii::$app->request->post('product'), 'variant' => \Yii::$app->request->post('variant'), 'user' => \Yii::$app->request->post('user'), 'url' => Url::to([ 'product/wishlist-add' ]), ], 'class' => 'wishlist-add btn btn-success pull-right', ] ), 'message' => 'Товар добавить не вышло', ]; } } }