コード例 #1
0
 public function actionUpdate($type)
 {
     $settings = SiteService::getAttributeMapBySlugType(Yii::$app->cmgCore->getSiteSlug(), $type);
     $fieldsMap = FormUtil::fillFromModelAttribute("config-{$type}", $settings);
     $model = new GenericForm(['fields' => $fieldsMap]);
     if ($model->load(Yii::$app->request->post(), 'GenericForm') && $model->validate()) {
         $settings = FormUtil::getModelAttributes($model, $settings);
         ModelAttributeService::updateAll($settings);
         return $this->redirect("index?type={$type}");
     }
     return $this->render('update', ['model' => $model, 'type' => $type]);
 }
コード例 #2
0
ファイル: GenericForm.php プロジェクト: cmsgears/module-forms
 /**
  * The method process the submitted form and save all the form fields except captcha field.
  */
 public function processFormSubmit($form)
 {
     $date = DateUtil::getDateTime();
     $attributes = parent::getFormAttributes();
     $fields = $attributes['fields'];
     $attribs = [];
     $user = Yii::$app->user->getIdentity();
     $formSubmit = new FormSubmit();
     $formSubmit->formId = $form->id;
     $formSubmit->submittedAt = $date;
     if (isset($user)) {
         $formSubmit->submittedBy = $user->id;
     }
     // Collect fields to save in json format
     foreach ($fields as $field) {
         $fieldName = $field->name;
         // Convert CheckBox array to csv
         if ($field->isCheckboxGroup()) {
             $this->{$fieldName} = join(",", $this->{$fieldName});
         }
         if ($field->compress) {
             $attribs[$field->name] = $this->{$fieldName};
         }
     }
     $formSubmit->data = json_encode($attribs);
     // save form submit
     $formSubmit->save();
     // Get Form Submit Id
     $formSubmitId = $formSubmit->id;
     // Save Form Fields
     foreach ($fields as $field) {
         if (!$field->compress) {
             $formSubmitField = new FormSubmitField();
             $formSubmitField->formSubmitId = $formSubmitId;
             $formSubmitField->name = $field->name;
             $fieldName = $field->name;
             $formSubmitField->value = $this->{$fieldName};
             $formSubmitField->save();
         }
     }
     return $formSubmit;
 }