public function actionAnswer() { $id = (int) Yii::app()->request->getQuery('id'); $model = FeedBack::model()->findbyPk($id); if (!$model) { throw new CHttpException(404, Yii::t('feedback', 'Страница не найдена!')); } $form = new AnswerForm(); $form->setAttributes(array('answer' => $model->answer, 'is_faq' => $model->is_faq)); if ($model->status == FeedBack::STATUS_ANSWER_SENDED) { Yii::app()->user->setFlash(YFlashMessages::NOTICE_MESSAGE, Yii::t('feedback', 'Внимание! Ответ на это сообщение уже был отправлен!')); } if (Yii::app()->request->isPostRequest && isset($_POST['AnswerForm'])) { $form->setAttributes($_POST['AnswerForm']); if ($form->validate()) { $model->setAttributes(array('answer' => $form->answer, 'is_faq' => $form->is_faq, 'answer_user' => Yii::app()->user->getId(), 'answer_date' => new CDbExpression('NOW()'), 'status' => FeedBack::STATUS_ANSWER_SENDED)); if ($model->save()) { //отправка ответа $body = $this->renderPartial('answerEmail', array('model' => $model)); Yii::app()->mail->send(Yii::app()->getModule('feedback')->notifyEmailFrom, $model->email, 'RE: ' . $model->theme, $body); Yii::app()->user->setFlash(YFlashMessages::NOTICE_MESSAGE, Yii::t('feedback', 'Ответ на сообщение отправлен!')); $this->redirect(array('/feedback/default/view/', 'id' => $model->id)); } } } $this->render('answer', array('model' => $model, 'answerForm' => $form)); }
/** * Сохраняем данные в СУБД, при наявности POST-запросаЖ * * @param AnswerForm $form - форма ответа * @param Feedback $model - модель * * @return mixed */ public function saveAnswer(AnswerForm $form, Feedback $model) { if (Yii::app()->getRequest()->getIsPostRequest() && ($data = Yii::app()->getRequest()->getPost('AnswerForm')) !== null) { $form->setAttributes($data); if ($form->validate()) { $model->setAttributes(array('answer' => $form->answer, 'status' => Feedback::STATUS_FINISHED)); if ($model->save(true, array('answer', 'status'))) { //отправка ответа $mail = Yii::createComponent('yupe\\components\\Mail'); $body = $this->renderPartial('answerEmail', array('model' => $model), true); $mail->send(Yii::app()->getModule('feedback')->notifyEmailFrom, $model->email, 'RE: ' . $model->theme, $body, Yii::app()->getModule('yupe')->siteName); Yii::app()->user->setFlash(yupe\widgets\YFlashMessages::SUCCESS_MESSAGE, Yii::t('FeedbackModule.feedback', 'Reply on message was sent!')); $this->redirect($this->createUrl('view', array('id' => $model->id))); } else { return array($form, $model); } } } return array($form, $model); }
/** * Сохраняем данные в СУБД, при наявности POST-запроса * * @param AnswerForm $form - форма ответа * @param Feedback $model - модель * * @return mixed */ public function saveAnswer(AnswerForm $form, Feedback $model) { if (Yii::app()->getRequest()->getIsPostRequest() && ($data = Yii::app()->getRequest()->getPost('AnswerForm')) !== null) { $form->setAttributes($data); if ($form->validate()) { $model->setAttributes(['answer' => $form->answer, 'answer_user' => Yii::app()->user->getId(), 'answer_time' => new CDbExpression('NOW()'), 'status' => Feedback::STATUS_ANSWER_SENDED]); if ($model->save()) { //отправка ответа $body = $this->renderPartial('answerEmail', ['model' => $model], true); Yii::app()->mail->send(Yii::app()->getModule('feedback')->notifyEmailFrom, $model->email, 'RE: ' . $model->theme, $body); if (Yii::app()->getRequest()->getIsAjaxRequest() == false) { Yii::app()->user->setFlash(yupe\widgets\YFlashMessages::SUCCESS_MESSAGE, Yii::t('FeedbackModule.feedback', 'Reply on message was sent!')); $this->redirect(['/feedback/feedbackBackend/view/', 'id' => $model->id]); } else { Yii::app()->ajax->success(['message' => Yii::t('FeedbackModule.feedback', 'Reply on message was sent!')]); return true; } } else { return [$form, $model]; } } } return [$form, $model]; }
/** * Сохраняем данные в СУБД, при наявности POST-запросаЖ * * @param AnswerForm $form - форма ответа * @param Feedback $model - модель * * @return mixed */ public function saveAnswer(AnswerForm $form, Feedback $model) { if (Yii::app()->getRequest()->getIsPostRequest() && ($data = Yii::app()->getRequest()->getPost('AnswerForm')) !== null) { $form->setAttributes($data); if ($form->validate()) { $model->setAttributes(array('answer' => $form->answer, 'answer_user' => Yii::app()->user->getId(), 'answer_date' => new CDbExpression('NOW()'), 'status' => Feedback::STATUS_ANSWER_SENDED)); if ($model->save()) { //отправка ответа $mail = Yii::createComponent('yupe\\components\\Mail'); $body = $this->renderPartial('answerEmail', array('model' => $model), true); $mail->send($model->type->value != '' ? $model->type->value : Yii::app()->getModule('feedback')->notifyEmailFrom, $model->email, 'RE: ' . $model->theme, $body, Yii::app()->getModule('yupe')->siteName); if (Yii::app()->getRequest()->getIsAjaxRequest() == false) { Yii::app()->user->setFlash(yupe\widgets\YFlashMessages::SUCCESS_MESSAGE, Yii::t('FeedbackModule.feedback', 'Reply on message was sent!')); $this->redirect($this->createUrl('view', array('id' => $model->id))); } else { Yii::app()->ajax->success(array('message' => Yii::t('FeedbackModule.feedback', 'Reply on message was sent!'))); return true; } } else { return array($form, $model); } } } return array($form, $model); }