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'); }
private function generateFields() { $this->htmlFields = []; foreach ($this->commandData->inputFields as $field) { 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': $fieldTemplate = TemplateUtil::getTemplate('scaffold.fields.checkbox_group', $this->templateType); $radioTemplate = TemplateUtil::getTemplate('scaffold.fields.checkbox', $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; default: $fieldTemplate = ''; break; } if (!empty($fieldTemplate)) { $fieldTemplate = TemplateUtil::fillFieldTemplate($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'); }