public function actionPhoto() { $id = Yii::$app->request->get('id'); $photos = Photo::findAll(['section' => $id]); if (Yii::$app->request->isAjax) { return json_encode(['title' => Yii::t('app', 'Photo') . " - " . Yii::t('app', 'Video operator for a wedding Kiev') . " ZEFIRMA " . Yii::t('app', 'Wedding videography and wedding video'), 'html' => $this->renderPartial('photo', ['title' => Yii::t('app', 'Photo') . " - " . Yii::t('app', 'Video operator for a wedding Kiev') . " ZEFIRMA " . Yii::t('app', 'Wedding videography and wedding video'), 'photos' => $photos])]); } return $this->render('photo', ['title' => Yii::t('app', 'Photo') . " - " . Yii::t('app', 'Video operator for a wedding Kiev') . " ZEFIRMA " . Yii::t('app', 'Wedding videography and wedding video'), 'photos' => $photos]); }
public function actionConfirm() { if (!Yii::$app->request->post() or !Yii::$app->request->isAjax) { throw new BadRequestHttpException('Only POST Ajax requests'); } $checkedPhotosId = Yii::$app->request->post('checkedPhotos'); if (!$checkedPhotosId or $checkedPhotosId == []) { throw new \HttpInvalidParamException('No photos'); } /** @var Users $user */ $user = Yii::$app->session->get('user'); if (!$user) { throw new UnauthorizedHttpException('Need login'); } $checkedPhotosNames = []; // Mark selected photos foreach ($checkedPhotosId as $checkedPhotoId) { /** @var Photo $photoModel */ $photoModel = Photo::findOne($checkedPhotoId); if (!$photoModel) { throw new NotFoundHttpException('Photo ' . $checkedPhotoId . ' not found'); } if ($photoModel->project_id !== $user->project_id) { throw new HttpException(403); } if ($photoModel->selected === true) { continue; } $photoModel->selected = true; $photoModel->save(); $checkedPhotosNames[] = '#' . $photoModel->id . ' - ' . $photoModel->filename; } // Deselect not checked photos $checkedPhotos = Photo::findAll(['user_id' => $user->id, 'selected' => true]); foreach ($checkedPhotos as $checkedPhoto) { if (!in_array($checkedPhoto->id, $checkedPhotosId)) { $checkedPhoto->selected = false; $checkedPhoto->save(); } } // Notify by email try { Yii::$app->mailer->compose('checked', ['checkedPhotosNames' => $checkedPhotosNames, 'user' => $user])->setFrom([Yii::$app->params['siteEmail'] => 'Fotoboom.net'])->setTo(Yii::$app->params['adminEmail'])->setSubject('Пользователь ' . $user->name . ' выбрал фото')->send(); } catch (\Exception $e) { } return json_encode(['success' => true, 'message' => 'Выбранные фото успешно отправлены фотографу. Теперь вы можете просто закрыть страницу.']); }