Inheritance: extends CFormModel
示例#1
0
 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));
 }
示例#2
0
 private function saveForm(sfWebRequest $request)
 {
     $form = new AnswerForm();
     $form->bind($request->getParameter('answer'));
     if ($form->isValid()) {
         $form->save();
     }
 }
 /**
  * Сохраняем данные в СУБД, при наявности 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);
 }