Replace `global` keyword with `$GLOBALS`
[phpmyadmin.git] / libraries / classes / Controllers / Sql / EnumValuesController.php
blob0a58f0691ebcb283f9c06e24af08faa29d3b0b21
1 <?php
3 declare(strict_types=1);
5 namespace PhpMyAdmin\Controllers\Sql;
7 use PhpMyAdmin\CheckUserPrivileges;
8 use PhpMyAdmin\Controllers\AbstractController;
9 use PhpMyAdmin\ResponseRenderer;
10 use PhpMyAdmin\Sql;
11 use PhpMyAdmin\Template;
13 use function __;
14 use function htmlentities;
16 use const ENT_COMPAT;
18 final class EnumValuesController extends AbstractController
20 /** @var Sql */
21 private $sql;
23 /** @var CheckUserPrivileges */
24 private $checkUserPrivileges;
26 public function __construct(
27 ResponseRenderer $response,
28 Template $template,
29 Sql $sql,
30 CheckUserPrivileges $checkUserPrivileges
31 ) {
32 parent::__construct($response, $template);
33 $this->sql = $sql;
34 $this->checkUserPrivileges = $checkUserPrivileges;
37 /**
38 * Get possible values for enum fields during grid edit.
40 public function __invoke(): void
42 $this->checkUserPrivileges->getPrivileges();
44 $column = $_POST['column'];
45 $curr_value = $_POST['curr_value'];
46 $values = $this->sql->getValuesForColumn($GLOBALS['db'], $GLOBALS['table'], $column);
48 if ($values === null) {
49 $this->response->addJSON('message', __('Error in processing request'));
50 $this->response->setRequestStatus(false);
52 return;
55 // Converts characters of $curr_value to HTML entities.
56 $convertedCurrentValue = htmlentities($curr_value, ENT_COMPAT, 'UTF-8');
58 $dropdown = $this->template->render('sql/enum_column_dropdown', [
59 'values' => $values,
60 'selected_values' => [$convertedCurrentValue],
61 ]);
63 $this->response->addJSON('dropdown', $dropdown);