本文整理汇总了PHP中Feedback::setAttributes方法的典型用法代码示例。如果您正苦于以下问题:PHP Feedback::setAttributes方法的具体用法?PHP Feedback::setAttributes怎么用?PHP Feedback::setAttributes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Feedback
的用法示例。
在下文中一共展示了Feedback::setAttributes方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: actionFeedback
public function actionFeedback()
{
$form = new FeedbackForm('insert');
$formName = get_class($form);
$this->performAjaxValidation($form);
// проверить не передан ли тип и присвоить его аттрибуту модели
$module = Yii::app()->getModule('feedback');
if (Yii::app()->getRequest()->getIsPostRequest() && !empty($_POST[$formName])) {
$form->setAttributes(Yii::app()->getRequest()->getPost($formName));
if ($form->validate()) {
// обработка запроса
$feedback = new Feedback();
$feedback->setAttributes($form->getAttributes());
if ($feedback->save()) {
Yii::app()->eventManager->fire(FeedbackEvents::SUCCESS_SEND_MESSAGE, new SendFeedbackMessageEvent($feedback));
if (Yii::app()->getRequest()->getIsAjaxRequest()) {
Yii::app()->ajax->success(Yii::t('FeedbackModule.feedback', 'Your message sent! Thanks!'));
}
Yii::app()->getUser()->setFlash(YFlashMessages::SUCCESS_MESSAGE, Yii::t('FeedbackModule.feedback', 'Your message sent! Thanks!'));
$this->redirect($module->successPage ? [$module->successPage] : ['/feedback/contact/index/']);
} else {
if (Yii::app()->getRequest()->getIsAjaxRequest()) {
Yii::app()->ajax->failure(Yii::t('FeedbackModule.feedback', 'It is not possible to send message!'));
}
Yii::app()->user->setFlash(YFlashMessages::ERROR_MESSAGE, Yii::t('FeedbackModule.feedback', 'It is not possible to send message!'));
}
} else {
if (Yii::app()->getRequest()->getIsAjaxRequest()) {
Yii::app()->ajax->rawText(CActiveForm::validate($form));
}
}
}
$this->render('index', ['model' => $form, 'module' => $module]);
}
示例2: addFeedback
public function addFeedback($attr)
{
if (is_array($attr)) {
$model = new Feedback();
$model->created_at = time();
$model->updated_at = time();
$model->setAttributes($attr);
if ($model->save(FALSE)) {
return $model;
}
}
return FALSE;
}
示例3: saveAnswer
/**
* Сохраняем данные в СУБД, при наявности 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);
}
示例4: actionFeedback
/**
* Обратный звонок
*/
public function actionFeedback()
{
$form = new FeedbackForm('insert');
$formName = get_class($form);
$this->performAjaxValidation($form);
if (Yii::app()->getRequest()->getIsPostRequest() && !empty($_POST[$formName])) {
$form->setAttributes($_POST[$formName]);
// Проверка
if ($form->validate()) {
$feedback = new Feedback();
$feedback->setAttributes($form->getAttributes());
//var_dump($feedback->getAttributes());
//exit();
// Сохранение
if ($feedback->save()) {
// Отправка уведомления
$this->_feedbackConfirmationEmail($feedback);
if (Yii::app()->getRequest()->getIsAjaxRequest()) {
Yii::app()->ajax->success(Yii::t('FeedbackModule.feedback', 'Ваше сообщение отправлено. Спасибо!'));
} else {
Yii::app()->getUser()->setFlash(yupe\widgets\YFlashMessages::SUCCESS_MESSAGE, Yii::t('FeedbackModule.feedback', 'Ваше сообщение отправлено. Спасибо!'));
}
// Обновляем страницу
$this->refresh();
} else {
// Ошибка сохранения
if (Yii::app()->getRequest()->getIsAjaxRequest()) {
Yii::app()->ajax->failure(Yii::t('FeedbackModule.feedback', 'There is an error when trying to send message! Please try later!'));
} else {
Yii::app()->user->setFlash(yupe\widgets\YFlashMessages::ERROR_MESSAGE, Yii::t('FeedbackModule.feedback', 'There is an error when trying to send message! Please try later!'));
}
}
} else {
if (Yii::app()->getRequest()->getIsAjaxRequest()) {
echo CActiveForm::validate($form);
Yii::app()->end();
}
}
}
$this->render('feedback', array('model' => $form));
}
示例5: saveAnswer
/**
* Сохраняем данные в СУБД, при наявности 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];
}
示例6: _processForm
/**
* Отправление подтверждения пользователю и уведомления админу
* @param DictionaryData $type
* @return FeedbackForm $feedbackForm
*/
protected function _processForm($type)
{
if ($type->id == Feedback::TYPE_CALLBACK) {
$feedbackForm = new CallbackForm('insert');
} elseif ($type->id == Feedback::TYPE_ORDER) {
$feedbackForm = new OrderForm('insert');
} elseif ($type->id == Feedback::TYPE_REVIEW) {
$feedbackForm = new ReviewForm('insert');
} else {
$feedbackForm = new FeedbackForm('insert');
}
$formName = get_class($feedbackForm);
$this->performAjaxValidation($feedbackForm);
if (Yii::app()->getRequest()->getIsPostRequest() && !empty($_POST[$formName])) {
$feedbackForm->setAttributes($_POST[$formName]);
// Проверка
if ($feedbackForm->validate()) {
$feedback = new Feedback();
$feedback->type_id = $type->id;
$feedback->type = $type;
$feedback->setAttributes($feedbackForm->getAttributes());
if ($type->id == Feedback::TYPE_ORDER && isset($_POST['productId']) && !empty($_POST['productId'])) {
Yii::import("application.modules.catalog.models.Product");
$product = Product::model()->findByPk((int) $_POST['productId']);
if (is_null($product)) {
throw new CHttpException('404');
}
$feedback->theme = 'Заявка на товар "' . $product->title . '"';
$feedback->text = '<p>Ссылка на товар: ' . CHtml::link($product->title, $product->getPermaLink()) . '</p>';
}
// Сохранение
if ($feedback->save()) {
// Отправка уведомлений
if (Yii::app()->getModule('feedback')->sendConfirmation) {
$this->_feedbackConfirmationEmail($feedback);
}
$successMessage = $type->id == Feedback::TYPE_ORDER ? 'Ваше сообщение отправлено! Спасибо! В ближайшее время наши менеджеры свяжутся с Вами!' : 'Ваше сообщение отправлено! Спасибо!';
if (Yii::app()->getRequest()->getIsAjaxRequest()) {
Yii::app()->ajax->success($successMessage);
} else {
Yii::app()->user->setFlash(yupe\widgets\YFlashMessages::SUCCESS_MESSAGE, $successMessage);
}
} else {
// Ошибка сохранения
if (Yii::app()->getRequest()->getIsAjaxRequest()) {
Yii::app()->ajax->failure(Yii::t('FeedbackModule.feedback', 'There is an error when trying to send message! Please try later!'));
} else {
Yii::app()->user->setFlash(yupe\widgets\YFlashMessages::ERROR_MESSAGE, Yii::t('FeedbackModule.feedback', 'There is an error when trying to send message! Please try later!'));
}
}
// Обновляем страницу
$this->refresh();
} else {
// Ошибка валидации
if (Yii::app()->getRequest()->getIsAjaxRequest()) {
Yii::app()->ajax->failure('Пожалуйста, проверьте правильность заполнения формы');
}
}
}
return $feedbackForm;
}
示例7: actionFaq
/**
* Manages FAQ.
*
* @return void
*/
public function actionFaq()
{
$model = new Feedback('search');
$model->unsetAttributes();
// clear any default values
$model->setAttributes(Yii::app()->getRequest()->getParam('Feedback', array()));
// Фильтрация по типу сообщения (отзывы)
$type = DictionaryData::model()->findByCode('feedback-faq');
if ($type === null) {
$this->redirect($this->createUrl('/backend'));
}
$model->type_id = $type->id;
Yii::app()->user->setState('prevUrl', Yii::app()->request->url);
$this->render('index', array('model' => $model));
}