/** * 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; }