public function store(UserFormRequest_template $request)
 {
     $validator = Validator::make($request->all(), $request->rules());
     if ($validator->fails()) {
         return redirect('create')->withErrors($validator)->withInput();
     } else {
         if (\Input::has('template_id')) {
             $id = \Input::get('template_id');
             $template = TemplateModel::find($id);
             $alert['msg'] = 'Template has been updated successfully';
         } else {
             $template = new TemplateModel();
             $alert['msg'] = 'Language has been created successfully';
         }
         $template->title = \Input::get('title');
         $template->slug = \Input::get('slug');
         $template->save();
         $alert['type'] = 'success';
         return Redirect::route('template')->with('alert', $alert);
     }
 }
 /**
  * Create Template model
  * @return array
  */
 public function actionCreateTemplate()
 {
     if (Yii::$app->request->isAjax) {
         // Response fornat
         Yii::$app->response->format = Response::FORMAT_JSON;
         // Extract FormBuilder data from post request
         $post = Yii::$app->request->post();
         $data = ['FormBuilder' => Json::decode($post['FormBuilder'], true)];
         $formBuilder = new FormBuilder();
         // Flags variables
         $success = false;
         $id = false;
         $message = '';
         $code = 0;
         // Form Builder Validation
         if ($formBuilder->load($data) && $formBuilder->validate()) {
             // Save data in single transaction
             $transaction = Template::getDb()->beginTransaction();
             try {
                 // Parse html form fields to array
                 $formDOM = new FormDOM();
                 // If two elements has same id, throw a exception
                 $formDOM->loadHTML(ArrayHelper::getValue($data, 'FormBuilder.html'));
                 // Populate Template Model and Save
                 $postTemplate = ['Template' => ['name' => ArrayHelper::getValue($data, 'FormBuilder.data.settings.name'), 'builder' => Json::htmlEncode(ArrayHelper::getValue($data, 'FormBuilder.data')), 'html' => Html::encode(ArrayHelper::getValue($data, 'FormBuilder.html'))]];
                 // Save Template Model
                 $templateModel = new Template();
                 if ($templateModel->load($postTemplate) && $templateModel->save()) {
                     // Set form id
                     $id = $templateModel->primaryKey;
                 } else {
                     throw new Exception(Yii::t('app', 'Error saving data'), 1);
                 }
                 $transaction->commit();
                 // Change success flag and message
                 $success = true;
                 $message = Yii::t("app", "The template has been successfully created.");
             } catch (Exception $e) {
                 // Rolls back the transaction
                 $transaction->rollBack();
                 // Rethrow the exception
                 // throw $e;
                 $message = $e->getMessage();
                 $code = $e->getCode();
             }
         }
         // Response to Client
         $res = array('success' => $success, 'id' => $id, 'action' => 'create', 'message' => $message, 'code' => $code);
         return $res;
     }
     return '';
 }