Craft\FormBuilder2Variable::getInputHtml PHP Method

getInputHtml() public method

Get Input HTML for FieldTypes
public getInputHtml ( $field, $value = [] )
    public function getInputHtml($field, $value = [])
    {
        $theField = $field->getField();
        $fieldType = $theField->getFieldType();
        $template = craft()->formBuilder2_field->getFieldTemplate($field->fieldId);
        $originaPath = craft()->templates->getTemplatesPath();
        $theField->required = $field->required;
        $attributes = $theField->attributes;
        $fieldSettings = '';
        if ($fieldType) {
            $fieldSettings = $fieldType->getSettings();
        }
        if (isset($attributes['settings']['placeholder'])) {
            $varPlaceholder = $attributes['settings']['placeholder'];
        } else {
            $varPlaceholder = null;
        }
        if (isset($attributes['settings']['options'])) {
            $varOptions = $attributes['settings']['options'];
        } else {
            $varOptions = null;
        }
        if (isset($attributes['settings']['values'])) {
            $varValues = $attributes['settings']['values'];
        } else {
            $varValues = null;
        }
        if (isset($attributes['settings']['default'])) {
            $varOn = $attributes['settings']['default'];
        } else {
            $varOn = null;
        }
        if (isset($attributes['settings']['checked'])) {
            $varChecked = $attributes['settings']['checked'];
        } else {
            $varChecked = null;
        }
        if (isset($attributes['settings']['minuteIncrement'])) {
            $varMinuteIncrement = $attributes['settings']['minuteIncrement'];
        } else {
            $varMinuteIncrement = null;
        }
        if (isset($attributes['settings']['showTime'])) {
            $varShowTime = $attributes['settings']['showTime'];
        } else {
            $varShowTime = null;
        }
        if (isset($attributes['settings']['showDate'])) {
            $varShowDate = $attributes['settings']['showDate'];
        } else {
            $varShowDate = null;
        }
        if (isset($attributes['settings']['min'])) {
            $varMin = $attributes['settings']['min'];
        } else {
            $varMin = null;
        }
        if (isset($attributes['settings']['max'])) {
            $varMax = $attributes['settings']['max'];
        } else {
            $varMax = null;
        }
        if (isset($attributes['settings']['limit'])) {
            $varLimit = $attributes['settings']['limit'];
        } else {
            $varLimit = null;
        }
        if (isset($attributes['settings']['selectionLabel'])) {
            $varSelectionLabel = $attributes['settings']['selectionLabel'];
        } else {
            $varSelectionLabel = null;
        }
        // Unless "All" sections has been chosen loop through the array and
        // remove the 'section:' string from all source ID's and. Then convert all
        // the strings to intigers so we are left with an array of section ids
        if (isset($attributes['settings']['sources'])) {
            $varSources = $attributes['settings']['sources'];
            if ($varSources != '*') {
                $varSources = array_map(function ($var) {
                    return is_numeric($var) ? (int) $var : $var;
                }, str_replace("section:", "", $varSources));
            }
        } else {
            $varSources = null;
        }
        // Check if there was a value
        $value = array_key_exists($theField->handle, $value) ? $value[$theField->handle] : null;
        $variables = ['field' => $attributes, 'type' => $attributes['type'], 'name' => $attributes['handle'], 'label' => $attributes['name'], 'handle' => $attributes['handle'], 'instructions' => $attributes['instructions'], 'placeholder' => $varPlaceholder, 'options' => $varOptions, 'value' => $value, 'values' => $varValues, 'on' => $varOn, 'checked' => $varChecked, 'minuteIncrement' => $varMinuteIncrement, 'showTime' => $varShowTime, 'showDate' => $varShowDate, 'min' => $varMin, 'max' => $varMax, 'requiredJs' => null, 'required' => $theField->required, 'settings' => $fieldSettings, 'sources' => $varSources];
        $html = '';
        // Check for Sprout Fields Plugin
        $sproutFieldsPlugin = craft()->plugins->getPlugin('sproutfields', false);
        $sproutFields = false;
        if ($sproutFieldsPlugin && $sproutFieldsPlugin->isInstalled && $sproutFieldsPlugin->isEnabled) {
            $sproutFields = true;
        }
        switch ($theField->type) {
            // Sprout Fields
            case "SproutFields_Email":
                if ($sproutFields) {
                    $this->_setTemplate(null, 'plugin');
                    $html = craft()->templates->render('formbuilder2/templates/inputs/email', $variables);
                    $this->_setTemplate($originaPath, 'site');
                }
                break;
            case "SproutFields_Phone":
                if ($sproutFields) {
                    $this->_setTemplate(null, 'plugin');
                    $html = craft()->templates->render('formbuilder2/templates/inputs/phone', $variables);
                    $this->_setTemplate($originaPath, 'site');
                }
                break;
            case "SproutFields_Link":
                if ($sproutFields) {
                    $this->_setTemplate(null, 'plugin');
                    $html = craft()->templates->render('formbuilder2/templates/inputs/link', $variables);
                    $this->_setTemplate($originaPath, 'site');
                }
                break;
            case "SproutFields_Hidden":
                if ($sproutFields) {
                    $this->_setTemplate(null, 'plugin');
                    $html = craft()->templates->render('sproutfields/templates/_integrations/sproutforms/fields/hidden/input', $variables);
                    $this->_setTemplate($originaPath, 'site');
                }
                break;
            case "PlainText":
                if ($attributes['settings']['multiline']) {
                    if ($template) {
                        $html = craft()->templates->render($template->template, $variables);
                    } else {
                        $this->_setTemplate(null, 'plugin');
                        $html = craft()->templates->render('formbuilder2/templates/inputs/textarea', $variables);
                        $this->_setTemplate($originaPath, 'site');
                    }
                } else {
                    if ($template) {
                        $html = craft()->templates->render($template->template, $variables);
                    } else {
                        $this->_setTemplate(null, 'plugin');
                        $html = craft()->templates->render('formbuilder2/templates/inputs/text', $variables);
                        $this->_setTemplate($originaPath, 'site');
                    }
                }
                break;
            case "Checkboxes":
                if ($template) {
                    $html = craft()->templates->render($template->template, $variables);
                } else {
                    $this->_setTemplate(null, 'plugin');
                    $html = craft()->templates->render('formbuilder2/templates/inputs/checkbox', $variables);
                    $this->_setTemplate($originaPath, 'site');
                }
                break;
            case "RadioButtons":
                if ($template) {
                    $html = craft()->templates->render($template->template, $variables);
                } else {
                    $this->_setTemplate(null, 'plugin');
                    $html = craft()->templates->render('formbuilder2/templates/inputs/radio', $variables);
                    $this->_setTemplate($originaPath, 'site');
                }
                break;
            case "Entries":
                if ($template) {
                    $html = craft()->templates->render($template->template, $variables);
                } else {
                    $this->_setTemplate(null, 'plugin');
                    $html = craft()->templates->render('formbuilder2/templates/inputs/entries', $variables);
                    $this->_setTemplate($originaPath, 'site');
                }
                break;
            case "Dropdown":
                if ($template) {
                    $html = craft()->templates->render($template->template, $variables);
                } else {
                    $this->_setTemplate(null, 'plugin');
                    $html = craft()->templates->render('formbuilder2/templates/inputs/select', $variables);
                    $this->_setTemplate($originaPath, 'site');
                }
                break;
            case "MultiSelect":
                if ($template) {
                    $html = craft()->templates->render($template->template, $variables);
                } else {
                    $this->_setTemplate(null, 'plugin');
                    $html = craft()->templates->render('formbuilder2/templates/inputs/multiselect', $variables);
                    $this->_setTemplate($originaPath, 'site');
                }
                break;
            case "RichText":
                $variables['requiredJs'] = 'redactor';
                if ($template) {
                    $html = craft()->templates->render($template->template, $variables);
                } else {
                    $this->_setTemplate(null, 'plugin');
                    $html = craft()->templates->render('formbuilder2/templates/inputs/richtext', $variables);
                    $this->_setTemplate($originaPath, 'site');
                }
                break;
            case "Lightswitch":
                if ($template) {
                    $html = craft()->templates->render($template->template, $variables);
                } else {
                    $this->_setTemplate(null, 'plugin');
                    $html = craft()->templates->render('formbuilder2/templates/inputs/lightswitch', $variables);
                    $this->_setTemplate($originaPath, 'site');
                }
                break;
            case "Color":
                $variables['value'] = '#000000';
                $variables['requiredJs'] = 'colorpicker';
                if ($template) {
                    $html = craft()->templates->render($template->template, $variables);
                } else {
                    $this->_setTemplate(null, 'plugin');
                    $html = craft()->templates->render('formbuilder2/templates/inputs/color', $variables);
                    $this->_setTemplate($originaPath, 'site');
                }
                break;
            case "Date":
                $variables['requiredJs'] = 'dateandtime';
                if ($template) {
                    $html = craft()->templates->render($template->template, $variables);
                } else {
                    $this->_setTemplate(null, 'plugin');
                    $html = craft()->templates->render('formbuilder2/templates/inputs/datetime', $variables);
                    $this->_setTemplate($originaPath, 'site');
                }
                break;
            case "Number":
                $variables['value'] = craft()->numberFormatter->formatDecimal($attributes['settings']['decimals'], false);
                if ($template) {
                    $html = craft()->templates->render($template->template, $variables);
                } else {
                    $this->_setTemplate(null, 'plugin');
                    $html = craft()->templates->render('formbuilder2/templates/inputs/number', $variables);
                    $this->_setTemplate($originaPath, 'site');
                }
                break;
            case "Assets":
                if ($template) {
                    $html = craft()->templates->render($template->template, $variables);
                } else {
                    $this->_setTemplate(null, 'plugin');
                    $html = craft()->templates->render('formbuilder2/templates/inputs/file', $variables);
                    $this->_setTemplate($originaPath, 'site');
                }
                break;
        }
        return $html;
    }