FormController.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. declare(strict_types=1);
  3. namespace PhpMyAdmin\Controllers\Setup;
  4. use PhpMyAdmin\Config\Forms\BaseForm;
  5. use PhpMyAdmin\Config\Forms\Setup\SetupFormList;
  6. use PhpMyAdmin\Core;
  7. use PhpMyAdmin\Setup\FormProcessing;
  8. use function ob_get_clean;
  9. use function ob_start;
  10. class FormController extends AbstractController
  11. {
  12. /**
  13. * @param array $params Request parameters
  14. *
  15. * @return string HTML
  16. */
  17. public function index(array $params): string
  18. {
  19. $pages = $this->getPages();
  20. $formset = Core::isValid($params['formset'], 'scalar') ? $params['formset'] : null;
  21. $formClass = SetupFormList::get($formset);
  22. if ($formClass === null) {
  23. Core::fatalError(__('Incorrect form specified!'));
  24. }
  25. ob_start();
  26. /** @var BaseForm $form */
  27. $form = new $formClass($this->config);
  28. FormProcessing::process($form);
  29. $page = ob_get_clean();
  30. return $this->template->render('setup/form/index', [
  31. 'formset' => $params['formset'] ?? '',
  32. 'pages' => $pages,
  33. 'name' => $form::getName(),
  34. 'page' => $page,
  35. ]);
  36. }
  37. }