Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpmyadmin/phpmyadmin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaurĂ­cio Meneghini Fauth <mauricio@fauth.dev>2022-11-05 18:49:55 +0300
committerGitHub <noreply@github.com>2022-11-05 18:49:55 +0300
commit0bd93914764c815e77d23cd440e0cc8c957b4a11 (patch)
treebd92c8283b9698252c3bcd68de7713bb3913ad65 /libraries
parenta229f313ede31d1b081a65c8eccdb06b10c7be8a (diff)
parentb3d97a47ef8dadf2a470193dfdaee93a825615c6 (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.php26
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;