'', ]; $contentRoot = dirname(__DIR__) . '/content'; $method = $request->getMethod(); $path = $request->getPathInfo(); // GET if ($method == 'GET') { if (str_ends_with($path, '/fields')) { $content['data'] = Toml::parseFile($contentRoot . $path . '/_fields.toml'); } else { $content['data'] = Toml::parseFile($contentRoot . $path . '.toml'); } } // POST else if ($method == 'POST') { if (str_ends_with($path, 'submit')) { $formPath = $contentRoot . str_replace('/submit', '', $path); // build fields $fields = $this->buildFields($formPath); foreach ($fields as $field) { if ($field['required'] ?? false) { $content['error'] = 'REQUIRED!'; } } $content['data'] = $fields; $content['POST'] = $_POST; } } $response->headers->set('Content-Type', 'application/json'); $response->setContent(json_encode($content)); $response->send(); } /** * @param string $formPath */ public function buildFields($formPath) { $fields = Toml::parseFile($formPath . '/fields/_fields.toml')['field'] ?? []; foreach ($fields as $key => $field) { $field = array_merge($field, Toml::parseFile($formPath . '/fields/' . $field['file'])); $fields[$key] = $field; } return $fields; } }