FormController.php 1.3 KB

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