Пример #1
0
 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);
 }
Пример #2
0
 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;
 }
Пример #3
0
 /**
  * @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);
     }
 }