public function field($field, $value = null, $overwrite = array()) { if (!isset($this->fields[$field])) { return ''; } $field_params = $this->fields[$field]; $fieldname = isset($overwrite['name']) ? $overwrite['name'] : $field; $field_params = array_merge($field_params, $overwrite); $scaffold_root = isset($this->runner->router->scaffold_root) ? $this->runner->router->scaffold_root : \Routerunner\Helper::$scaffold_root; $path = $scaffold_root . $this->path . DIRECTORY_SEPARATOR; $input_root = $scaffold_root . DIRECTORY_SEPARATOR . 'input' . DIRECTORY_SEPARATOR; $input_path = false; if (isset($field_params['view']) && file_exists($path . $field_params['view'])) { $input_path = $path . $field_params['view']; } elseif (isset($field_params['view']) && file_exists($scaffold_root . DIRECTORY_SEPARATOR . $field_params['view'])) { $input_path = $scaffold_root . DIRECTORY_SEPARATOR . $field_params['view']; } elseif (file_exists($path . 'input.' . $this->formname . '.' . $field . '.php')) { $input_path = $path . 'input.' . $this->formname . '.' . $field . '.php'; } elseif (file_exists($path . 'input.' . $field . '.php')) { $input_path = $path . 'input.' . $field . '.php'; } elseif (isset($field_params['type']) && file_exists($path . 'input.' . $this->formname . '.' . $field_params['type'] . '.php')) { $input_path = $path . 'input.' . $this->formname . '.' . $field_params['type'] . '.php'; } elseif (isset($field_params['type']) && file_exists($path . 'input.' . $field_params['type'] . '.php')) { $input_path = $path . 'input.' . $field_params['type'] . '.php'; } elseif (file_exists($input_root . $this->formname . '.' . $field . '.php')) { $input_path = $input_root . $this->formname . '.' . $field . '.php'; } elseif (isset($field_params['type']) && file_exists($input_root . $this->formname . '.' . $field_params['type'] . '.php')) { $input_path = $input_root . $this->formname . '.' . $field_params['type'] . '.php'; } elseif (file_exists($input_root . $field . '.php')) { $input_path = $input_root . $field . '.php'; } elseif (isset($field_params['type']) && file_exists($input_root . $field_params['type'] . '.php')) { $input_path = $input_root . $field_params['type'] . '.php'; } $return = ''; if ($input_path) { $field_params["id"] = $this->fid . '_' . $field; $field_params["name"] = isset($field_params['type']) && $field_params['type'] == 'submit' ? $this->formname . '[' . $fieldname . ']' : $fieldname; if (isset($field_params['disabled']) && $field_params['disabled'] === true) { $field_params['disabled'] = ' disabled="disabled" '; } $field_params['data'] = json_encode($field_params); \input::set($field_params); ob_start(); include $input_path; $return = ob_get_clean(); } else { $field_id = isset($field_params['input-id']) ? $field_params['input-id'] : $fieldname; $val = !is_null($value) ? $value : (isset($field_params['value']) ? $field_params['value'] : ''); $return = '<input type="hidden" name="' . $fieldname . '" id="' . $field_id . '" value="' . $val . '" />'; } return $return . PHP_EOL; }