InfyOm\Generator\Generators\Scaffold\ViewGenerator::generateFields PHP Method

generateFields() private method

private generateFields ( )
    private function generateFields()
    {
        $this->htmlFields = [];
        foreach ($this->commandData->inputFields as $field) {
            if (!$field['inForm']) {
                continue;
            }
            switch ($field['htmlType']) {
                case 'text':
                case 'textarea':
                case 'date':
                case 'file':
                case 'email':
                case 'password':
                case 'number':
                    $fieldTemplate = TemplateUtil::getTemplate('scaffold.fields.' . $field['htmlType'], $this->templateType);
                    break;
                case 'select':
                case 'enum':
                    $fieldTemplate = TemplateUtil::getTemplate('scaffold.fields.select', $this->templateType);
                    $inputsArr = explode(',', $field['htmlTypeInputs']);
                    $fieldTemplate = str_replace('$INPUT_ARR$', GeneratorFieldsInputUtil::prepareKeyValueArrayStr($inputsArr), $fieldTemplate);
                    break;
                case 'radio':
                    $fieldTemplate = TemplateUtil::getTemplate('scaffold.fields.radio_group', $this->templateType);
                    $radioTemplate = TemplateUtil::getTemplate('scaffold.fields.radio', $this->templateType);
                    $inputsArr = explode(',', $field['htmlTypeInputs']);
                    $radioButtons = [];
                    foreach ($inputsArr as $item) {
                        $radioButtonsTemplate = TemplateUtil::fillFieldTemplate($this->commandData->fieldNamesMapping, $radioTemplate, $field);
                        $radioButtonsTemplate = str_replace('$VALUE$', $item, $radioButtonsTemplate);
                        $radioButtons[] = $radioButtonsTemplate;
                    }
                    $fieldTemplate = str_replace('$RADIO_BUTTONS$', implode("\n", $radioButtons), $fieldTemplate);
                    break;
                    //                case 'checkbox-group':
                    //                    $fieldTemplate = TemplateUtil::getTemplate('scaffold.fields.checkbox_group', $this->templateType);
                    //                      $radioTemplate = TemplateUtil::getTemplate('scaffold.fields.checks', $this->templateType);
                    //                      $inputsArr = explode(',', $field['htmlTypeInputs']);
                    //                      $radioButtons = [];
                    //                      foreach ($inputsArr as $item) {
                    //                          $radioButtonsTemplate = TemplateUtil::fillFieldTemplate(
                    //                              $this->commandData->fieldNamesMapping,
                    //                              $radioTemplate,
                    //                              $field
                    //                          );
                    //                          $radioButtonsTemplate = str_replace('$VALUE$', $item, $radioButtonsTemplate);
                    //                          $radioButtons[] = $radioButtonsTemplate;
                    //                      }
                    //                    $fieldTemplate = str_replace('$CHECKBOXES$', implode("\n", $radioButtons), $fieldTemplate);
                    //                    break;
                //                case 'checkbox-group':
                //                    $fieldTemplate = TemplateUtil::getTemplate('scaffold.fields.checkbox_group', $this->templateType);
                //                      $radioTemplate = TemplateUtil::getTemplate('scaffold.fields.checks', $this->templateType);
                //                      $inputsArr = explode(',', $field['htmlTypeInputs']);
                //                      $radioButtons = [];
                //                      foreach ($inputsArr as $item) {
                //                          $radioButtonsTemplate = TemplateUtil::fillFieldTemplate(
                //                              $this->commandData->fieldNamesMapping,
                //                              $radioTemplate,
                //                              $field
                //                          );
                //                          $radioButtonsTemplate = str_replace('$VALUE$', $item, $radioButtonsTemplate);
                //                          $radioButtons[] = $radioButtonsTemplate;
                //                      }
                //                    $fieldTemplate = str_replace('$CHECKBOXES$', implode("\n", $radioButtons), $fieldTemplate);
                //                    break;
                case 'bool-checkbox':
                    $fieldTemplate = TemplateUtil::getTemplate('scaffold.fields.bool-checkbox', $this->templateType);
                    $checkboxValue = $value = $field['htmlTypeInputs'];
                    if ($field['fieldType'] === 'boolean') {
                        if ($checkboxValue === 'checked') {
                            $checkboxValue = '1, true';
                        } elseif ($checkboxValue === 'unchecked') {
                            $checkboxValue = '0';
                        }
                    }
                    $fieldTemplate = str_replace('$CHECKBOX_VALUE$', $checkboxValue, $fieldTemplate);
                    $fieldTemplate = str_replace('$VALUE$', $value, $fieldTemplate);
                    break;
                case 'toggle-switch':
                    $fieldTemplate = TemplateUtil::getTemplate('scaffold.fields.toggle-switch', $this->templateType);
                    $checkboxValue = $value = $field['htmlTypeInputs'];
                    if ($field['fieldType'] === 'boolean') {
                        $checkboxValue = "[ 'On' => '1' , 'Off' => '0']";
                    }
                    $fieldTemplate = str_replace('$CHECKBOX_VALUE$', $checkboxValue, $fieldTemplate);
                    //$fieldTemplate = str_replace('$VALUE$', $value, $fieldTemplate);
                    break;
                case 'checkbox':
                    $fieldTemplate = TemplateUtil::getTemplate('scaffold.fields.checkbox', $this->templateType);
                    $checkboxValue = $value = $field['htmlTypeInputs'];
                    if ($field['fieldType'] != 'boolean') {
                        $checkboxValue = "'" . $value . "'";
                    }
                    $fieldTemplate = str_replace('$CHECKBOX_VALUE$', $checkboxValue, $fieldTemplate);
                    $fieldTemplate = str_replace('$VALUE$', $value, $fieldTemplate);
                    break;
                case 'boolean':
                    $fieldTemplate = TemplateUtil::getTemplate('scaffold.fields.boolean', $this->templateType);
                    $checkboxValue = $value = $field['htmlTypeInputs'];
                    if ($field['fieldType'] == 'boolean') {
                        $checkboxValue = true;
                    }
                    $fieldTemplate = str_replace('$CHECKBOX_VALUE$', $checkboxValue, $fieldTemplate);
                    // $fieldTemplate = str_replace('$VALUE$', $value, $fieldTemplate);
                    break;
                default:
                    $fieldTemplate = '';
                    break;
            }
            if (!empty($fieldTemplate)) {
                $fieldTemplate = TemplateUtil::fillTemplateWithFieldData($this->commandData->dynamicVars, $this->commandData->fieldNamesMapping, $fieldTemplate, $field);
                $this->htmlFields[] = $fieldTemplate;
            }
        }
        $templateData = TemplateUtil::getTemplate('scaffold.views.fields', $this->templateType);
        $templateData = TemplateUtil::fillTemplate($this->commandData->dynamicVars, $templateData);
        $templateData = str_replace('$FIELDS$', implode("\n\n", $this->htmlFields), $templateData);
        FileUtil::createFile($this->path, 'fields.blade.php', $templateData);
        $this->commandData->commandInfo('field.blade.php created');
    }