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');
}