10 Yii::import(
'fg.widgets.form.helpers.FGFormWidgetHelper');
11 $isAjaxRequest = Yii::app()->getRequest()->isAjaxRequest;
18 $form_id = (int)$_POST[
'form_id'];
20 $action = $_POST[
'submitAction'];
22 if(!isset($_SESSION[
'formdatas'])):
23 $_SESSION[
'formdatas'] = array();
25 if(!isset($_SESSION[
'formdatalists'])):
26 $_SESSION[
'formdatalists'] = array();
30 if($action ==
"prev" || ($action !=
"prev" && $model->validateInput()))
33 $formObject = $model->JSONToArray();
34 $formdataForJSON = array();
35 $formdataList = array();
37 if($action !=
"prev"):
38 foreach($formObject[
'elements'] as $element) {
39 if(isset($element[
'name'])) {
40 $elementObject = FGElement::getInstance($element[
'type']);
41 $val = @$_POST[$element[
'name']];
42 $val = $elementObject->serializeFormData($val, $element);
43 $formdataForJSON[$element[
'name']] = $val;
44 $formdataList[] = array(
45 'label'=>isset($element[
'label'])? $element[
'label'] : $element[
'name'],
51 $_SESSION[
'formdatas'][$form_id] = $formdataForJSON;
52 $_SESSION[
'formdatalists'][$form_id] = $formdataList;
56 if($action ==
"submit"):
59 $finalFormData = array();
62 foreach($_SESSION[
'formdatas'] as $formdatas):
63 $keys = array_keys($formdatas);
64 foreach($keys as $key):
65 $finalFormData[$key] = $formdatas[$key];
70 $formdata->form_id = $model->id;
71 $formdata->referer = $_POST[
'referer'];
72 $formdata->ip = Yii::app()->request->userHostAddress;
74 $formdata->user_id = Yii::app()->session->sessionID;
75 $formdata->json = CJSON::encode($finalFormData);
77 unset($_SESSION[
'formdatas']);
83 $subject =
'Form submitted on '.Yii::app()->name;
85 Yii::app()->controller->renderMail(
'fg.views.form.email_form',
89 'formdata'=>$formdata,
90 'formdataList'=>$_SESSION[
'formdatalists'])
92 $notification->recipients[] =
new EmailRecipient($formObject[
'email'],Yii::app()->params[
'adminEmail']);
93 Yii::app()->notificationManager->notifyAbout($notification);
112 catch(Exception $e) {}
116 FGFormWidgetHelper::clearErrors($model->id);
119 $redirectUrl = $model->thankyoupage;
122 if($action ==
"next"):
123 $redirectUrl = $model->nextpage;
125 if($action ==
"prev"):
126 $redirectUrl = $model->prevpage;
133 $response[
'redirectUrl'] = $redirectUrl;
139 $this->redirect($redirectUrl);
147 $response[
'status'] =
false;
148 $response[
'errors'] = array();
149 foreach($model->getErrors() as $attribute=>$errors) {
150 $response[
'errors'][$attribute]=$errors;
156 FGFormWidgetHelper::setErrors($form_id, $model->getErrors());
158 $this->redirect($_POST[
'return_url']);
162 FGHelper::sendJSON($response);
185 $this->render(
'thankyou');
199 throw new CHttpException(404,
'The requested form does not exist');
211 'class' =>
'CCaptchaAction',
212 'backColor' => 0xFFFFFF,
213 'fixedVerifyCode' => YII_DEBUG ?
'polomo' : null