private function renderFormFieldContent($renderApi, $unit) { $this->formSubmit = new \FormSubmit(); $fieldId = 'field' . $unit->getId(); $properties = $unit->getFormValues(); $labelText = $properties["fieldLabel"]; $fieldType = $properties["textType"]; //input,list,textarea $postRequest = $this->getPostValue($unit); if ($properties['type'] === \InputType::STRING && $fieldType !== FieldType::TEXTAREA || $properties['type'] === \InputType::EMAIL || $properties['type'] === \InputType::NUMERIC) { $formField = new \TextField(); $elementProperties = $formField->getElementProperties(); $elementProperties->setId($fieldId); $elementProperties->addAttribute("name", $fieldId); $elementProperties->addAttribute('value', $postRequest); if (isset($properties['type'])) { if ($properties['type'] === \InputType::EMAIL) { $elementProperties->addAttribute("type", \InputType::EMAIL); } if ($properties['type'] === \InputType::NUMERIC) { $elementProperties->addAttribute("type", \InputType::NUMERIC); } } } elseif ($fieldType === FieldType::TEXTAREA) { $formField = new \TextareaField(); $elementProperties = $formField->getElementProperties(); $elementProperties->setId($fieldId); $elementProperties->addAttribute("name", $fieldId); $formField->setContent($postRequest); } $label = new \Label(); $labelProperties = $label->getElementProperties(); $labelProperties->addAttribute("for", $fieldId); $label->add(new \Span($labelText)); if ($formField) { $wrapper = new \Container(); $wrapper->add($label); $wrapper->add($formField); $elementProperties = $formField->getElementProperties(); if ($this->formSubmit->isValid($renderApi, $unit) && !$this->isValidValue($unit, $postRequest)) { $elementProperties->addClass('vf__error'); $wrapper->add($this->getErrorMessage($unit, $postRequest)); } $this->setRequiredField($renderApi, $unit, $elementProperties); $this->setPlaceholderText($renderApi, $unit, $elementProperties); echo $wrapper->renderElement(); } $renderApi->renderChildren($unit); }
public function getSelectField($renderApi, $unit, $fieldId, $postRequestValue = null) { $inputName = strlen($renderApi->getFormValue($unit, 'inputName')) > 0 ? $renderApi->getFormValue($unit, 'inputName') : $fieldId; $formField = new \SelectField(); $formField->getElementProperties()->addAttribute("name", $inputName); $formField->getElementProperties()->addAttribute("id", $fieldId); $listOptions = $this->listOptions->getListOptions($renderApi, $unit); if ($listOptions->hasOptions()) { foreach ($listOptions->getOptions() as $option) { /* @var $option \Option */ $optionField = new \OptionField(); $optionField->setContent($option->getName()); $elementProperties = $optionField->getElementProperties(); $elementProperties->addAttribute("value", $option->getValue()); if (is_null($postRequestValue) && $option->isChecked() || $postRequestValue === $option->getValue()) { $elementProperties->addAttribute("selected", null); } $formField->add($optionField); } } if ($this->formSubmit->isValid($renderApi, $unit) && !$this->isValidValue($unit, $postRequestValue)) { $formField->getElementProperties()->addClass('vf__error'); } return $formField; }
/** * @param RenderAPI $renderApi * @param Unit $unit * @param ModuleInfo $moduleInfo */ public function renderContent($renderApi, $unit, $moduleInfo) { $formSend = false; $this->http = new \Request(); $form = new \Form(); $honeyPotComponent = new \HoneyPotComponent(); $this->formSubmit = new \FormSubmit(); $postRequest = $this->formSubmit->getPostValues(); $elementProperties = $form->getElementProperties(); $elementProperties->setId("form" . str_replace("-", "", $unit->getId())); $elementProperties->addAttribute('action', $_SERVER['REQUEST_URI'] . '#' . $unit->getId()); $elementProperties->addAttribute('method', 'post'); $elementProperties->addAttribute('enctype', 'multipart/form-data'); $form->add($honeyPotComponent->getHoneyPot()); $form->add($honeyPotComponent->getFormUnitIdentifier($unit->getId())); if ($this->formSubmit->isValid($renderApi, $unit) && count($postRequest) > 0 && $honeyPotComponent->isValidHoneyPot($postRequest) && $this->hasValidFormData($renderApi, $unit)) { $this->formSubmit->setFieldLabelsToFormValueSet($renderApi); try { $this->sentEmail($renderApi, $unit, $postRequest); $formSend = true; } catch (\Exception $e) { $errorText = new \Span(); $errorText->setContent("Unable to send email:<br />" . $e->getMessage()); $errorContainer = new \Container(); $errorContainer->add($errorText); $errorContainer->getElementProperties()->addClass('vf__main_error'); $form->add($errorContainer); } } if ($formSend) { $confirmationText = new \Span(); $confirmationText->setContent(preg_replace('/\\n/', '<br>', $renderApi->getFormValue($unit, 'confirmationText'))); $confirmationContainer = new \Container(); $confirmationContainer->add($confirmationText); $confirmationContainer->getElementProperties()->addClass('confirmationText'); $form->add($confirmationContainer); echo $form->renderElement(); } else { echo $form->renderElementProgressive($renderApi, $unit); } }