You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.2 KiB
48 lines
1.2 KiB
<?php |
|
|
|
declare(strict_types=1); |
|
|
|
namespace PhpMyAdmin\Controllers\Setup; |
|
|
|
use PhpMyAdmin\Config\Forms\BaseForm; |
|
use PhpMyAdmin\Config\Forms\Setup\SetupFormList; |
|
use PhpMyAdmin\Core; |
|
use PhpMyAdmin\Setup\FormProcessing; |
|
|
|
use function __; |
|
use function is_string; |
|
use function ob_get_clean; |
|
use function ob_start; |
|
|
|
class FormController extends AbstractController |
|
{ |
|
/** |
|
* @param array $params Request parameters |
|
* |
|
* @return string HTML |
|
*/ |
|
public function __invoke(array $params): string |
|
{ |
|
$pages = $this->getPages(); |
|
|
|
$formset = isset($params['formset']) && is_string($params['formset']) ? $params['formset'] : ''; |
|
|
|
$formClass = SetupFormList::get($formset); |
|
if ($formClass === null) { |
|
Core::fatalError(__('Incorrect form specified!')); |
|
} |
|
|
|
ob_start(); |
|
/** @var BaseForm $form */ |
|
$form = new $formClass($this->config); |
|
FormProcessing::process($form); |
|
$page = ob_get_clean(); |
|
|
|
return $this->template->render('setup/form/index', [ |
|
'formset' => $formset, |
|
'pages' => $pages, |
|
'name' => $form::getName(), |
|
'page' => $page, |
|
]); |
|
} |
|
}
|
|
|