diff options
author | MaurĂcio Meneghini Fauth <mauricio@fauth.dev> | 2022-11-05 18:49:55 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-05 18:49:55 +0300 |
commit | 0bd93914764c815e77d23cd440e0cc8c957b4a11 (patch) | |
tree | bd92c8283b9698252c3bcd68de7713bb3913ad65 /libraries | |
parent | a229f313ede31d1b081a65c8eccdb06b10c7be8a (diff) | |
parent | b3d97a47ef8dadf2a470193dfdaee93a825615c6 (diff) |
Merge pull request #17862 from kamil-tekiela/Refactor-displayHtmlForColumnChange
Refactor ChangeController and use ServerRequest
Diffstat (limited to 'libraries')
-rw-r--r-- | libraries/classes/Controllers/Table/Structure/ChangeController.php | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/libraries/classes/Controllers/Table/Structure/ChangeController.php b/libraries/classes/Controllers/Table/Structure/ChangeController.php index d43515535a..938134ab11 100644 --- a/libraries/classes/Controllers/Table/Structure/ChangeController.php +++ b/libraries/classes/Controllers/Table/Structure/ChangeController.php @@ -15,6 +15,7 @@ use PhpMyAdmin\Template; use function __; use function count; +use function is_array; final class ChangeController extends AbstractController { @@ -37,15 +38,15 @@ final class ChangeController extends AbstractController public function __invoke(ServerRequest $request): void { - if (isset($_GET['change_column'])) { - $this->displayHtmlForColumnChange(null); + if ($request->getParsedBodyParam('change_column') !== null) { + $this->displayHtmlForColumnChange([$request->getParam('field')]); return; } $selected = $request->getParsedBodyParam('selected_fld', []); - if (empty($selected)) { + if (! is_array($selected) || $selected === []) { $this->response->setRequestStatus(false); $this->response->addJSON('message', __('No column selected.')); @@ -58,30 +59,23 @@ final class ChangeController extends AbstractController /** * Displays HTML for changing one or more columns * - * @param array|null $selected the selected columns + * @param string[] $selected the selected columns */ - private function displayHtmlForColumnChange(?array $selected): void + private function displayHtmlForColumnChange(array $selected): void { $GLOBALS['num_fields'] = $GLOBALS['num_fields'] ?? null; - if (empty($selected)) { - $selected[] = $_REQUEST['field']; - $selected_cnt = 1; - } else { // from a multiple submit - $selected_cnt = count($selected); - } - /** * @todo optimize in case of multiple fields to modify */ $fields_meta = []; - for ($i = 0; $i < $selected_cnt; $i++) { - $value = $this->dbi->getColumn($GLOBALS['db'], $GLOBALS['table'], $selected[$i], true); - if (count($value) === 0) { + foreach ($selected as $column) { + $value = $this->dbi->getColumn($GLOBALS['db'], $GLOBALS['table'], $column, true); + if ($value === []) { $message = Message::error( __('Failed to get description of column %s!') ); - $message->addParam($selected[$i]); + $message->addParam($column); $this->response->addHTML($message->getDisplay()); } else { $fields_meta[] = $value; |