/**
  * Construct a form based on data received from the API
  * @param object $objFormData
  * @return \FrontCore\Forms\FrontCoreSystemFormBase
  */
 protected function constructForm($objFormData)
 {
     //convert data to array
     $arr_form_data = \Zend\Json\Json::decode(\Zend\Json\Json::encode($objFormData), TRUE);
     //create form object
     $objForm = new FrontCoreSystemFormBase();
     $objForm->setAttribute("id", "form");
     $objForm->setAttributes($arr_form_data["attributes"]);
     $objForm->setOptions($arr_form_data["options"]);
     //add form elements
     foreach ($arr_form_data["arr_fields"] as $arr_element) {
         if ($arr_element["attributes"]["type"] == "") {
             $arr_element["attributes"]["type"] = "text";
         }
         //end if
         $arr_element["type"] = $arr_element["attributes"]["type"];
         $arr_element["name"] = $arr_element["attributes"]["name"];
         if ($arr_element["attributes"]["required"] === TRUE || strtolower($arr_element["attributes"]["required"]) == "true" || strtolower($arr_element["attributes"]["required"]) == "required") {
             $arr_element["required"] = TRUE;
         } else {
             $arr_element["required"] = FALSE;
             $arr_element["allow_empty"] = TRUE;
         }
         //end if
         $arr_element["validators"] = array();
         $arr_element["filters"] = array();
         $objForm->add($arr_element);
     }
     //end foreach
     $objForm->get("submit")->setValue("Submit");
     return $objForm;
 }
 /**
  * Build a Zend form object from data received
  * @param object $objFormData
  * @param array $arr_form_attributes
  * @return \Zend\Form\Form
  */
 private function constructForm($objFormData, $arr_form_attributes)
 {
     //set some default values
     if (!isset($arr_form_attributes["name"])) {
         $arr_form_attributes["name"] = "form";
     }
     //end if
     //create the form object
     $objForm = new FrontCoreSystemFormBase($arr_form_attributes["name"]);
     //check if field groups has been set
     if (isset($objFormData->arr_field_groups)) {
         $objForm->setAttribute("arr_field_groups", $objFormData->arr_field_groups);
         //remove field groups
         unset($objFormData->arr_field_groups);
     }
     //end if
     foreach ($objFormData as $key => $objElement) {
         //create the element
         $element_type = strtolower($objElement->attributes->type);
         $arr_element = json_decode(json_encode($objElement), true);
         //refine some information
         $arr_element["name"] = $arr_element["attributes"]["name"];
         unset($arr_element["attributes"]["name"]);
         $arr_element["type"] = $arr_element["attributes"]["type"];
         unset($arr_element["attributes"]["type"]);
         //set value from default value
         if (isset($arr_element["attributes"]["default_value"])) {
             $arr_element["attributes"]["value"] = $arr_element["attributes"]["default_value"];
             unset($arr_element["attributes"]["default_value"]);
         }
         //end if
         //apply conditions where required
         switch (strtolower($arr_element["type"])) {
             case "submit":
                 $arr_element["attributes"]["value"] = "Submit";
                 break;
             case "date":
                 $arr_element["type"] = "text";
                 break;
         }
         //end swtich
         $objForm->add($arr_element);
     }
     //end foreach
     return $objForm;
 }