aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/libraries/classes/Config/Forms
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-09 10:55:03 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-09 13:09:38 +0100
commit04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch)
tree5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/libraries/classes/Config/Forms
parent7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff)
downloadft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/libraries/classes/Config/Forms')
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/BaseForm.php89
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/BaseFormList.php150
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/Page/BrowseForm.php30
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/Page/DbStructureForm.php30
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/Page/EditForm.php32
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/Page/ExportForm.php18
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/Page/ImportForm.php18
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/Page/NaviForm.php18
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/Page/PageFormList.php37
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/Page/SqlForm.php18
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/Page/TableStructureForm.php30
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ConfigForm.php32
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ExportForm.php18
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/FeaturesForm.php77
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ImportForm.php18
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/MainForm.php29
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/NaviForm.php18
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ServersForm.php116
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/SetupFormList.php37
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/SqlForm.php28
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/User/ExportForm.php160
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/User/FeaturesForm.php95
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/User/ImportForm.php73
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/User/MainForm.php98
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/User/NaviForm.php74
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/User/SqlForm.php54
-rw-r--r--srcs/phpmyadmin/libraries/classes/Config/Forms/User/UserFormList.php35
27 files changed, 1432 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/BaseForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/BaseForm.php
new file mode 100644
index 0000000..2049070
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/BaseForm.php
@@ -0,0 +1,89 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Base class for preferences.
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms;
+
+use PhpMyAdmin\Config\ConfigFile;
+use PhpMyAdmin\Config\FormDisplay;
+
+/**
+ * Base form for user preferences
+ *
+ * @package PhpMyAdmin
+ */
+abstract class BaseForm extends FormDisplay
+{
+ /**
+ * Constructor
+ *
+ * @param ConfigFile $cf Config file instance
+ * @param int|null $serverId 0 if new server, validation; >= 1 if editing a server
+ */
+ public function __construct(ConfigFile $cf, $serverId = null)
+ {
+ parent::__construct($cf);
+ foreach (static::getForms() as $formName => $form) {
+ $this->registerForm($formName, $form, $serverId);
+ }
+ }
+
+ /**
+ * List of available forms, each form is described as an array of fields to display.
+ * Fields MUST have their counterparts in the $cfg array.
+ *
+ * To define form field, use the notation below:
+ * $forms['Form group']['Form name'] = array('Option/path');
+ *
+ * You can assign default values set by special button ("set value: ..."), eg.:
+ * 'Servers/1/pmadb' => 'phpmyadmin'
+ *
+ * To group options, use:
+ * ':group:' . __('group name') // just define a group
+ * or
+ * 'option' => ':group' // group starting from this option
+ * End group blocks with:
+ * ':group:end'
+ *
+ * @todo This should be abstract, but that does not work in PHP 5
+ *
+ * @return array
+ */
+ public static function getForms()
+ {
+ return [];
+ }
+
+ /**
+ * Returns list of fields used in the form.
+ *
+ * @return string[]
+ */
+ public static function getFields()
+ {
+ $names = [];
+ foreach (static::getForms() as $form) {
+ foreach ($form as $k => $v) {
+ $names[] = is_int($k) ? $v : $k;
+ }
+ }
+ return $names;
+ }
+
+ /**
+ * Returns name of the form
+ *
+ * @todo This should be abstract, but that does not work in PHP 5
+ *
+ * @return string
+ */
+ public static function getName()
+ {
+ return '';
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/BaseFormList.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/BaseFormList.php
new file mode 100644
index 0000000..f4a5d32
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/BaseFormList.php
@@ -0,0 +1,150 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms;
+
+use PhpMyAdmin\Config\ConfigFile;
+
+/**
+ * Class BaseFormList
+ * @package PhpMyAdmin\Config\Forms
+ */
+class BaseFormList
+{
+ /**
+ * List of all forms
+ */
+ protected static $all = [];
+
+ /**
+ * @var string
+ */
+ protected static $ns = 'PhpMyAdmin\\Config\\Forms\\';
+
+ /**
+ * @var array
+ */
+ private $_forms;
+
+ /**
+ * @return array
+ */
+ public static function getAll()
+ {
+ return static::$all;
+ }
+
+ /**
+ * @param string $name Name
+ * @return bool
+ */
+ public static function isValid($name)
+ {
+ return in_array($name, static::$all);
+ }
+
+ /**
+ * @param string $name Name
+ * @return null|string
+ */
+ public static function get($name)
+ {
+ if (static::isValid($name)) {
+ return static::$ns . $name . 'Form';
+ }
+ return null;
+ }
+
+ /**
+ * Constructor
+ *
+ * @param ConfigFile $cf Config file instance
+ */
+ public function __construct(ConfigFile $cf)
+ {
+ $this->_forms = [];
+ foreach (static::$all as $form) {
+ $class = static::get($form);
+ $this->_forms[] = new $class($cf);
+ }
+ }
+
+ /**
+ * Processes forms, returns true on successful save
+ *
+ * @param bool $allowPartialSave allows for partial form saving
+ * on failed validation
+ * @param bool $checkFormSubmit whether check for $_POST['submit_save']
+ *
+ * @return boolean whether processing was successful
+ */
+ public function process($allowPartialSave = true, $checkFormSubmit = true)
+ {
+ $ret = true;
+ foreach ($this->_forms as $form) {
+ $ret = $ret && $form->process($allowPartialSave, $checkFormSubmit);
+ }
+ return $ret;
+ }
+
+ /**
+ * Displays errors
+ *
+ * @return string HTML for errors
+ */
+ public function displayErrors()
+ {
+ $ret = '';
+ foreach ($this->_forms as $form) {
+ $ret .= $form->displayErrors();
+ }
+ return $ret;
+ }
+
+ /**
+ * Reverts erroneous fields to their default values
+ *
+ * @return void
+ */
+ public function fixErrors()
+ {
+ foreach ($this->_forms as $form) {
+ $form->fixErrors();
+ }
+ }
+
+ /**
+ * Tells whether form validation failed
+ *
+ * @return boolean
+ */
+ public function hasErrors()
+ {
+ $ret = false;
+ foreach ($this->_forms as $form) {
+ $ret = $ret || $form->hasErrors();
+ }
+ return $ret;
+ }
+
+ /**
+ * Returns list of fields used in the form.
+ *
+ * @return string[]
+ */
+ public static function getFields()
+ {
+ $names = [];
+ foreach (static::$all as $form) {
+ $class = static::get($form);
+ $names = array_merge($names, $class::getFields());
+ }
+ return $names;
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/BrowseForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/BrowseForm.php
new file mode 100644
index 0000000..eee578a
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/BrowseForm.php
@@ -0,0 +1,30 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\Page;
+
+use PhpMyAdmin\Config\Forms\BaseForm;
+use PhpMyAdmin\Config\Forms\User\MainForm;
+
+/**
+ * Class BrowseForm
+ * @package PhpMyAdmin\Config\Forms\Page
+ */
+class BrowseForm extends BaseForm
+{
+ /**
+ * @return array
+ */
+ public static function getForms()
+ {
+ return [
+ 'Browse' => MainForm::getForms()['Browse'],
+ ];
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/DbStructureForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/DbStructureForm.php
new file mode 100644
index 0000000..4f9a8e4
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/DbStructureForm.php
@@ -0,0 +1,30 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\Page;
+
+use PhpMyAdmin\Config\Forms\BaseForm;
+use PhpMyAdmin\Config\Forms\User\MainForm;
+
+/**
+ * Class DbStructureForm
+ * @package PhpMyAdmin\Config\Forms\Page
+ */
+class DbStructureForm extends BaseForm
+{
+ /**
+ * @return array
+ */
+ public static function getForms()
+ {
+ return [
+ 'DbStructure' => MainForm::getForms()['DbStructure'],
+ ];
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/EditForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/EditForm.php
new file mode 100644
index 0000000..ad2fd46
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/EditForm.php
@@ -0,0 +1,32 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\Page;
+
+use PhpMyAdmin\Config\Forms\BaseForm;
+use PhpMyAdmin\Config\Forms\User\FeaturesForm;
+use PhpMyAdmin\Config\Forms\User\MainForm;
+
+/**
+ * Class EditForm
+ * @package PhpMyAdmin\Config\Forms\Page
+ */
+class EditForm extends BaseForm
+{
+ /**
+ * @return array
+ */
+ public static function getForms()
+ {
+ return [
+ 'Edit' => MainForm::getForms()['Edit'],
+ 'Text_fields' => FeaturesForm::getForms()['Text_fields'],
+ ];
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/ExportForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/ExportForm.php
new file mode 100644
index 0000000..584b2fd
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/ExportForm.php
@@ -0,0 +1,18 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\Page;
+
+/**
+ * Class ExportForm
+ * @package PhpMyAdmin\Config\Forms\Page
+ */
+class ExportForm extends \PhpMyAdmin\Config\Forms\User\ExportForm
+{
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/ImportForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/ImportForm.php
new file mode 100644
index 0000000..78e429a
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/ImportForm.php
@@ -0,0 +1,18 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\Page;
+
+/**
+ * Class ImportForm
+ * @package PhpMyAdmin\Config\Forms\Page
+ */
+class ImportForm extends \PhpMyAdmin\Config\Forms\User\ImportForm
+{
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/NaviForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/NaviForm.php
new file mode 100644
index 0000000..02350eb
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/NaviForm.php
@@ -0,0 +1,18 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\Page;
+
+/**
+ * Class NaviForm
+ * @package PhpMyAdmin\Config\Forms\Page
+ */
+class NaviForm extends \PhpMyAdmin\Config\Forms\User\NaviForm
+{
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/PageFormList.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/PageFormList.php
new file mode 100644
index 0000000..f4cae3d
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/PageFormList.php
@@ -0,0 +1,37 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Page preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\Page;
+
+use PhpMyAdmin\Config\Forms\BaseFormList;
+
+/**
+ * Class PageFormList
+ * @package PhpMyAdmin\Config\Forms\Page
+ */
+class PageFormList extends BaseFormList
+{
+ /**
+ * @var array
+ */
+ protected static $all = [
+ 'Browse',
+ 'DbStructure',
+ 'Edit',
+ 'Export',
+ 'Import',
+ 'Navi',
+ 'Sql',
+ 'TableStructure',
+ ];
+ /**
+ * @var string
+ */
+ protected static $ns = '\\PhpMyAdmin\\Config\\Forms\\Page\\';
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/SqlForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/SqlForm.php
new file mode 100644
index 0000000..4ed85ff
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/SqlForm.php
@@ -0,0 +1,18 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\Page;
+
+/**
+ * Class SqlForm
+ * @package PhpMyAdmin\Config\Forms\Page
+ */
+class SqlForm extends \PhpMyAdmin\Config\Forms\User\SqlForm
+{
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/TableStructureForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/TableStructureForm.php
new file mode 100644
index 0000000..05af064
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/TableStructureForm.php
@@ -0,0 +1,30 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\Page;
+
+use PhpMyAdmin\Config\Forms\BaseForm;
+use PhpMyAdmin\Config\Forms\User\MainForm;
+
+/**
+ * Class TableStructureForm
+ * @package PhpMyAdmin\Config\Forms\Page
+ */
+class TableStructureForm extends BaseForm
+{
+ /**
+ * @return array
+ */
+ public static function getForms()
+ {
+ return [
+ 'TableStructure' => MainForm::getForms()['TableStructure'],
+ ];
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ConfigForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ConfigForm.php
new file mode 100644
index 0000000..6fd4515
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ConfigForm.php
@@ -0,0 +1,32 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\Setup;
+
+use PhpMyAdmin\Config\Forms\BaseForm;
+
+/**
+ * Class ConfigForm
+ * @package PhpMyAdmin\Config\Forms\Setup
+ */
+class ConfigForm extends BaseForm
+{
+ /**
+ * @return array
+ */
+ public static function getForms()
+ {
+ return [
+ 'Config' => [
+ 'DefaultLang',
+ 'ServerDefault',
+ ],
+ ];
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ExportForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ExportForm.php
new file mode 100644
index 0000000..adf7ce4
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ExportForm.php
@@ -0,0 +1,18 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\Setup;
+
+/**
+ * Class ExportForm
+ * @package PhpMyAdmin\Config\Forms\Setup
+ */
+class ExportForm extends \PhpMyAdmin\Config\Forms\User\ExportForm
+{
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/FeaturesForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/FeaturesForm.php
new file mode 100644
index 0000000..54f6cf2
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/FeaturesForm.php
@@ -0,0 +1,77 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\Setup;
+
+/**
+ * Class FeaturesForm
+ * @package PhpMyAdmin\Config\Forms\Setup
+ */
+class FeaturesForm extends \PhpMyAdmin\Config\Forms\User\FeaturesForm
+{
+ /**
+ * @return array
+ */
+ public static function getForms()
+ {
+ // phpcs:disable Squiz.Arrays.ArrayDeclaration.KeySpecified,Squiz.Arrays.ArrayDeclaration.NoKeySpecified
+ $result = parent::getForms();
+ /* Remove only_db/hide_db, we have proper Server form in setup */
+ $result['Databases'] = array_diff(
+ $result['Databases'],
+ [
+ 'Servers/1/only_db',
+ 'Servers/1/hide_db',
+ ]
+ );
+ /* Following are not available to user */
+ $result['Import_export'] = [
+ 'UploadDir',
+ 'SaveDir',
+ 'RecodingEngine' => ':group',
+ 'IconvExtraParams',
+ ':group:end',
+ 'ZipDump',
+ 'GZipDump',
+ 'BZipDump',
+ 'CompressOnFly',
+ ];
+ $result['Security'] = [
+ 'blowfish_secret',
+ 'CheckConfigurationPermissions',
+ 'TrustedProxies',
+ 'AllowUserDropDatabase',
+ 'AllowArbitraryServer',
+ 'ArbitraryServerRegexp',
+ 'LoginCookieRecall',
+ 'LoginCookieStore',
+ 'LoginCookieDeleteAll',
+ 'CaptchaLoginPublicKey',
+ 'CaptchaLoginPrivateKey',
+ ];
+ $result['Developer'] = [
+ 'UserprefsDeveloperTab',
+ 'DBG/sql',
+ ];
+ $result['Other_core_settings'] = [
+ 'OBGzip',
+ 'PersistentConnections',
+ 'ExecTimeLimit',
+ 'MemoryLimit',
+ 'UseDbSearch',
+ 'ProxyUrl',
+ 'ProxyUser',
+ 'ProxyPass',
+ 'AllowThirdPartyFraming',
+ 'ZeroConf',
+ ];
+ return $result;
+ // phpcs:enable
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ImportForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ImportForm.php
new file mode 100644
index 0000000..06adf35
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ImportForm.php
@@ -0,0 +1,18 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\Setup;
+
+/**
+ * Class ImportForm
+ * @package PhpMyAdmin\Config\Forms\Setup
+ */
+class ImportForm extends \PhpMyAdmin\Config\Forms\User\ImportForm
+{
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/MainForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/MainForm.php
new file mode 100644
index 0000000..ebdc1cd
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/MainForm.php
@@ -0,0 +1,29 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\Setup;
+
+/**
+ * Class MainForm
+ * @package PhpMyAdmin\Config\Forms\Setup
+ */
+class MainForm extends \PhpMyAdmin\Config\Forms\User\MainForm
+{
+ /**
+ * @return array
+ */
+ public static function getForms()
+ {
+ $result = parent::getForms();
+ /* Following are not available to user */
+ $result['Startup'][] = 'ShowPhpInfo';
+ $result['Startup'][] = 'ShowChgPassword';
+ return $result;
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/NaviForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/NaviForm.php
new file mode 100644
index 0000000..da1e9ed
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/NaviForm.php
@@ -0,0 +1,18 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\Setup;
+
+/**
+ * Class NaviForm
+ * @package PhpMyAdmin\Config\Forms\Setup
+ */
+class NaviForm extends \PhpMyAdmin\Config\Forms\User\NaviForm
+{
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ServersForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ServersForm.php
new file mode 100644
index 0000000..553447f
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ServersForm.php
@@ -0,0 +1,116 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\Setup;
+
+use PhpMyAdmin\Config\Forms\BaseForm;
+
+/**
+ * Class ServersForm
+ * @package PhpMyAdmin\Config\Forms\Setup
+ */
+class ServersForm extends BaseForm
+{
+ /**
+ * @return array
+ */
+ public static function getForms()
+ {
+ // phpcs:disable Squiz.Arrays.ArrayDeclaration.KeySpecified,Squiz.Arrays.ArrayDeclaration.NoKeySpecified
+ return [
+ 'Server' => [
+ 'Servers' => [
+ 1 => [
+ 'verbose',
+ 'host',
+ 'port',
+ 'socket',
+ 'ssl',
+ 'compress',
+ ],
+ ],
+ ],
+ 'Server_auth' => [
+ 'Servers' => [
+ 1 => [
+ 'auth_type',
+ ':group:' . __('Config authentication'),
+ 'user',
+ 'password',
+ ':group:end',
+ ':group:' . __('HTTP authentication'),
+ 'auth_http_realm',
+ ':group:end',
+ ':group:' . __('Signon authentication'),
+ 'SignonSession',
+ 'SignonURL',
+ 'LogoutURL',
+ ],
+ ],
+ ],
+ 'Server_config' => [
+ 'Servers' => [
+ 1 => [
+ 'only_db',
+ 'hide_db',
+ 'AllowRoot',
+ 'AllowNoPassword',
+ 'DisableIS',
+ 'AllowDeny/order',
+ 'AllowDeny/rules',
+ 'SessionTimeZone',
+ ],
+ ],
+ ],
+ 'Server_pmadb' => [
+ 'Servers' => [
+ 1 => [
+ 'pmadb' => 'phpmyadmin',
+ 'controlhost',
+ 'controlport',
+ 'controluser',
+ 'controlpass',
+ 'bookmarktable' => 'pma__bookmark',
+ 'relation' => 'pma__relation',
+ 'userconfig' => 'pma__userconfig',
+ 'users' => 'pma__users',
+ 'usergroups' => 'pma__usergroups',
+ 'navigationhiding' => 'pma__navigationhiding',
+ 'table_info' => 'pma__table_info',
+ 'column_info' => 'pma__column_info',
+ 'history' => 'pma__history',
+ 'recent' => 'pma__recent',
+ 'favorite' => 'pma__favorite',
+ 'table_uiprefs' => 'pma__table_uiprefs',
+ 'tracking' => 'pma__tracking',
+ 'table_coords' => 'pma__table_coords',
+ 'pdf_pages' => 'pma__pdf_pages',
+ 'savedsearches' => 'pma__savedsearches',
+ 'central_columns' => 'pma__central_columns',
+ 'designer_settings' => 'pma__designer_settings',
+ 'export_templates' => 'pma__export_templates',
+ 'MaxTableUiprefs' => 100,
+ ],
+ ],
+ ],
+ 'Server_tracking' => [
+ 'Servers' => [
+ 1 => [
+ 'tracking_version_auto_create',
+ 'tracking_default_statements',
+ 'tracking_add_drop_view',
+ 'tracking_add_drop_table',
+ 'tracking_add_drop_database',
+ ],
+ ],
+ ],
+ ];
+ // phpcs:enable
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/SetupFormList.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/SetupFormList.php
new file mode 100644
index 0000000..91edb27
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/SetupFormList.php
@@ -0,0 +1,37 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Setup preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\Setup;
+
+use PhpMyAdmin\Config\Forms\BaseFormList;
+
+/**
+ * Class SetupFormList
+ * @package PhpMyAdmin\Config\Forms\Setup
+ */
+class SetupFormList extends BaseFormList
+{
+ /**
+ * @var array
+ */
+ protected static $all = [
+ 'Config',
+ 'Export',
+ 'Features',
+ 'Import',
+ 'Main',
+ 'Navi',
+ 'Servers',
+ 'Sql',
+ ];
+ /**
+ * @var string
+ */
+ protected static $ns = '\\PhpMyAdmin\\Config\\Forms\\Setup\\';
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/SqlForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/SqlForm.php
new file mode 100644
index 0000000..0cc3a1c
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/SqlForm.php
@@ -0,0 +1,28 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\Setup;
+
+/**
+ * Class SqlForm
+ * @package PhpMyAdmin\Config\Forms\Setup
+ */
+class SqlForm extends \PhpMyAdmin\Config\Forms\User\SqlForm
+{
+ /**
+ * @return array
+ */
+ public static function getForms()
+ {
+ $result = parent::getForms();
+ /* Following are not available to user */
+ $result['Sql_queries'][] = 'QueryHistoryDB';
+ return $result;
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/User/ExportForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/ExportForm.php
new file mode 100644
index 0000000..f2f853c
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/ExportForm.php
@@ -0,0 +1,160 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\User;
+
+use PhpMyAdmin\Config\Forms\BaseForm;
+
+/**
+ * Class ExportForm
+ * @package PhpMyAdmin\Config\Forms\User
+ */
+class ExportForm extends BaseForm
+{
+ /**
+ * @return array
+ */
+ public static function getForms()
+ {
+ // phpcs:disable Squiz.Arrays.ArrayDeclaration.KeySpecified,Squiz.Arrays.ArrayDeclaration.NoKeySpecified
+ return [
+ 'Export_defaults' => [
+ 'Export/method',
+ ':group:' . __('Quick'),
+ 'Export/quick_export_onserver',
+ 'Export/quick_export_onserver_overwrite',
+ ':group:end',
+ ':group:' . __('Custom'),
+ 'Export/format',
+ 'Export/compression',
+ 'Export/charset',
+ 'Export/lock_tables',
+ 'Export/as_separate_files',
+ 'Export/asfile' => ':group',
+ 'Export/onserver',
+ 'Export/onserver_overwrite',
+ ':group:end',
+ 'Export/file_template_table',
+ 'Export/file_template_database',
+ 'Export/file_template_server',
+ ],
+ 'Sql' => [
+ 'Export/sql_include_comments' => ':group',
+ 'Export/sql_dates',
+ 'Export/sql_relation',
+ 'Export/sql_mime',
+ ':group:end',
+ 'Export/sql_use_transaction',
+ 'Export/sql_disable_fk',
+ 'Export/sql_views_as_tables',
+ 'Export/sql_metadata',
+ 'Export/sql_compatibility',
+ 'Export/sql_structure_or_data',
+ ':group:' . __('Structure'),
+ 'Export/sql_drop_database',
+ 'Export/sql_create_database',
+ 'Export/sql_drop_table',
+ 'Export/sql_create_table' => ':group',
+ 'Export/sql_if_not_exists',
+ 'Export/sql_auto_increment',
+ ':group:end',
+ 'Export/sql_create_view' => ':group',
+ 'Export/sql_view_current_user',
+ 'Export/sql_or_replace_view',
+ ':group:end',
+ 'Export/sql_procedure_function',
+ 'Export/sql_create_trigger',
+ 'Export/sql_backquotes',
+ ':group:end',
+ ':group:' . __('Data'),
+ 'Export/sql_delayed',
+ 'Export/sql_ignore',
+ 'Export/sql_type',
+ 'Export/sql_insert_syntax',
+ 'Export/sql_max_query_size',
+ 'Export/sql_hex_for_binary',
+ 'Export/sql_utc_time',
+ ],
+ 'CodeGen' => [
+ 'Export/codegen_format',
+ ],
+ 'Csv' => [
+ ':group:' . __('CSV'),
+ 'Export/csv_separator',
+ 'Export/csv_enclosed',
+ 'Export/csv_escaped',
+ 'Export/csv_terminated',
+ 'Export/csv_null',
+ 'Export/csv_removeCRLF',
+ 'Export/csv_columns',
+ ':group:end',
+ ':group:' . __('CSV for MS Excel'),
+ 'Export/excel_null',
+ 'Export/excel_removeCRLF',
+ 'Export/excel_columns',
+ 'Export/excel_edition',
+ ],
+ 'Latex' => [
+ 'Export/latex_caption',
+ 'Export/latex_structure_or_data',
+ ':group:' . __('Structure'),
+ 'Export/latex_structure_caption',
+ 'Export/latex_structure_continued_caption',
+ 'Export/latex_structure_label',
+ 'Export/latex_relation',
+ 'Export/latex_comments',
+ 'Export/latex_mime',
+ ':group:end',
+ ':group:' . __('Data'),
+ 'Export/latex_columns',
+ 'Export/latex_data_caption',
+ 'Export/latex_data_continued_caption',
+ 'Export/latex_data_label',
+ 'Export/latex_null',
+ ],
+ 'Microsoft_Office' => [
+ ':group:' . __('Microsoft Word 2000'),
+ 'Export/htmlword_structure_or_data',
+ 'Export/htmlword_null',
+ 'Export/htmlword_columns',
+ ],
+ 'Open_Document' => [
+ ':group:' . __('OpenDocument Spreadsheet'),
+ 'Export/ods_columns',
+ 'Export/ods_null',
+ ':group:end',
+ ':group:' . __('OpenDocument Text'),
+ 'Export/odt_structure_or_data',
+ ':group:' . __('Structure'),
+ 'Export/odt_relation',
+ 'Export/odt_comments',
+ 'Export/odt_mime',
+ ':group:end',
+ ':group:' . __('Data'),
+ 'Export/odt_columns',
+ 'Export/odt_null',
+ ],
+ 'Texy' => [
+ 'Export/texytext_structure_or_data',
+ ':group:' . __('Data'),
+ 'Export/texytext_null',
+ 'Export/texytext_columns',
+ ],
+ ];
+ // phpcs:enable
+ }
+
+ /**
+ * @return string
+ */
+ public static function getName()
+ {
+ return __('Export');
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/User/FeaturesForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/FeaturesForm.php
new file mode 100644
index 0000000..58d3c24
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/FeaturesForm.php
@@ -0,0 +1,95 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\User;
+
+use PhpMyAdmin\Config\Forms\BaseForm;
+
+/**
+ * Class FeaturesForm
+ * @package PhpMyAdmin\Config\Forms\User
+ */
+class FeaturesForm extends BaseForm
+{
+ /**
+ * @return array
+ */
+ public static function getForms()
+ {
+ $result = [
+ 'General' => [
+ 'VersionCheck',
+ 'NaturalOrder',
+ 'InitialSlidersState',
+ 'SkipLockedTables',
+ 'DisableMultiTableMaintenance',
+ 'ShowHint',
+ 'SendErrorReports',
+ 'ConsoleEnterExecutes',
+ 'DisableShortcutKeys',
+ ],
+ 'Databases' => [
+ 'Servers/1/only_db', // saves to Server/only_db
+ 'Servers/1/hide_db', // saves to Server/hide_db
+ 'MaxDbList',
+ 'MaxTableList',
+ 'DefaultConnectionCollation',
+ ],
+ 'Text_fields' => [
+ 'CharEditing',
+ 'MinSizeForInputField',
+ 'MaxSizeForInputField',
+ 'CharTextareaCols',
+ 'CharTextareaRows',
+ 'TextareaCols',
+ 'TextareaRows',
+ 'LongtextDoubleTextarea',
+ ],
+ 'Page_titles' => [
+ 'TitleDefault',
+ 'TitleTable',
+ 'TitleDatabase',
+ 'TitleServer',
+ ],
+ 'Warnings' => [
+ 'PmaNoRelation_DisableWarning',
+ 'SuhosinDisableWarning',
+ 'LoginCookieValidityDisableWarning',
+ 'ReservedWordDisableWarning',
+ ],
+ 'Console' => [
+ 'Console/Mode',
+ 'Console/StartHistory',
+ 'Console/AlwaysExpand',
+ 'Console/CurrentQuery',
+ 'Console/EnterExecutes',
+ 'Console/DarkTheme',
+ 'Console/Height',
+ 'Console/GroupQueries',
+ 'Console/OrderBy',
+ 'Console/Order',
+ ],
+ ];
+ // skip Developer form if no setting is available
+ if ($GLOBALS['cfg']['UserprefsDeveloperTab']) {
+ $result['Developer'] = [
+ 'DBG/sql',
+ ];
+ }
+ return $result;
+ }
+
+ /**
+ * @return string
+ */
+ public static function getName()
+ {
+ return __('Features');
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/User/ImportForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/ImportForm.php
new file mode 100644
index 0000000..c447567
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/ImportForm.php
@@ -0,0 +1,73 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\User;
+
+use PhpMyAdmin\Config\Forms\BaseForm;
+
+/**
+ * Class ImportForm
+ * @package PhpMyAdmin\Config\Forms\User
+ */
+class ImportForm extends BaseForm
+{
+ /**
+ * @return array
+ */
+ public static function getForms()
+ {
+ return [
+ 'Import_defaults' => [
+ 'Import/format',
+ 'Import/charset',
+ 'Import/allow_interrupt',
+ 'Import/skip_queries',
+ 'enable_drag_drop_import',
+ ],
+ 'Sql' => [
+ 'Import/sql_compatibility',
+ 'Import/sql_no_auto_value_on_zero',
+ 'Import/sql_read_as_multibytes',
+ ],
+ 'Csv' => [
+ ':group:' . __('CSV'),
+ 'Import/csv_replace',
+ 'Import/csv_ignore',
+ 'Import/csv_terminated',
+ 'Import/csv_enclosed',
+ 'Import/csv_escaped',
+ 'Import/csv_col_names',
+ ':group:end',
+ ':group:' . __('CSV using LOAD DATA'),
+ 'Import/ldi_replace',
+ 'Import/ldi_ignore',
+ 'Import/ldi_terminated',
+ 'Import/ldi_enclosed',
+ 'Import/ldi_escaped',
+ 'Import/ldi_local_option',
+ ],
+ 'Open_Document' => [
+ ':group:' . __('OpenDocument Spreadsheet'),
+ 'Import/ods_col_names',
+ 'Import/ods_empty_rows',
+ 'Import/ods_recognize_percentages',
+ 'Import/ods_recognize_currency',
+ ],
+
+ ];
+ }
+
+ /**
+ * @return string
+ */
+ public static function getName()
+ {
+ return __('Import');
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/User/MainForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/MainForm.php
new file mode 100644
index 0000000..907bbaa
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/MainForm.php
@@ -0,0 +1,98 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\User;
+
+use PhpMyAdmin\Config\Forms\BaseForm;
+
+/**
+ * Class MainForm
+ * @package PhpMyAdmin\Config\Forms\User
+ */
+class MainForm extends BaseForm
+{
+ /**
+ * @return array
+ */
+ public static function getForms()
+ {
+ return [
+ 'Startup' => [
+ 'ShowCreateDb',
+ 'ShowStats',
+ 'ShowServerInfo',
+ ],
+ 'DbStructure' => [
+ 'ShowDbStructureCharset',
+ 'ShowDbStructureComment',
+ 'ShowDbStructureCreation',
+ 'ShowDbStructureLastUpdate',
+ 'ShowDbStructureLastCheck',
+ ],
+ 'TableStructure' => [
+ 'HideStructureActions',
+ 'ShowColumnComments',
+ ':group:' . __('Default transformations'),
+ 'DefaultTransformations/Hex',
+ 'DefaultTransformations/Substring',
+ 'DefaultTransformations/Bool2Text',
+ 'DefaultTransformations/External',
+ 'DefaultTransformations/PreApPend',
+ 'DefaultTransformations/DateFormat',
+ 'DefaultTransformations/Inline',
+ 'DefaultTransformations/TextImageLink',
+ 'DefaultTransformations/TextLink',
+ ':group:end',
+ ],
+ 'Browse' => [
+ 'TableNavigationLinksMode',
+ 'ActionLinksMode',
+ 'ShowAll',
+ 'MaxRows',
+ 'Order',
+ 'BrowsePointerEnable',
+ 'BrowseMarkerEnable',
+ 'GridEditing',
+ 'SaveCellsAtOnce',
+ 'RepeatCells',
+ 'LimitChars',
+ 'RowActionLinks',
+ 'RowActionLinksWithoutUnique',
+ 'TablePrimaryKeyOrder',
+ 'RememberSorting',
+ 'RelationalDisplay',
+ ],
+ 'Edit' => [
+ 'ProtectBinary',
+ 'ShowFunctionFields',
+ 'ShowFieldTypesInDataEditView',
+ 'InsertRows',
+ 'ForeignKeyDropdownOrder',
+ 'ForeignKeyMaxLimit',
+ ],
+ 'Tabs' => [
+ 'TabsMode',
+ 'DefaultTabServer',
+ 'DefaultTabDatabase',
+ 'DefaultTabTable',
+ ],
+ 'DisplayRelationalSchema' => [
+ 'PDFDefaultPageSize',
+ ],
+ ];
+ }
+
+ /**
+ * @return string
+ */
+ public static function getName()
+ {
+ return __('Main panel');
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/User/NaviForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/NaviForm.php
new file mode 100644
index 0000000..e2d373c
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/NaviForm.php
@@ -0,0 +1,74 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\User;
+
+use PhpMyAdmin\Config\Forms\BaseForm;
+
+/**
+ * Class NaviForm
+ * @package PhpMyAdmin\Config\Forms\User
+ */
+class NaviForm extends BaseForm
+{
+ /**
+ * @return array
+ */
+ public static function getForms()
+ {
+ return [
+ 'Navi_panel' => [
+ 'ShowDatabasesNavigationAsTree',
+ 'NavigationLinkWithMainPanel',
+ 'NavigationDisplayLogo',
+ 'NavigationLogoLink',
+ 'NavigationLogoLinkWindow',
+ 'NavigationTreePointerEnable',
+ 'FirstLevelNavigationItems',
+ 'NavigationTreeDisplayItemFilterMinimum',
+ 'NumRecentTables',
+ 'NumFavoriteTables',
+ 'NavigationWidth',
+ ],
+ 'Navi_tree' => [
+ 'MaxNavigationItems',
+ 'NavigationTreeEnableGrouping',
+ 'NavigationTreeEnableExpansion',
+ 'NavigationTreeShowTables',
+ 'NavigationTreeShowViews',
+ 'NavigationTreeShowFunctions',
+ 'NavigationTreeShowProcedures',
+ 'NavigationTreeShowEvents',
+ 'NavigationTreeAutoexpandSingleDb',
+ ],
+ 'Navi_servers' => [
+ 'NavigationDisplayServers',
+ 'DisplayServersList',
+ ],
+ 'Navi_databases' => [
+ 'NavigationTreeDisplayDbFilterMinimum',
+ 'NavigationTreeDbSeparator',
+ ],
+ 'Navi_tables' => [
+ 'NavigationTreeDefaultTabTable',
+ 'NavigationTreeDefaultTabTable2',
+ 'NavigationTreeTableSeparator',
+ 'NavigationTreeTableLevel',
+ ],
+ ];
+ }
+
+ /**
+ * @return string
+ */
+ public static function getName()
+ {
+ return __('Navigation panel');
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/User/SqlForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/SqlForm.php
new file mode 100644
index 0000000..3d8ac7a
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/SqlForm.php
@@ -0,0 +1,54 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\User;
+
+use PhpMyAdmin\Config\Forms\BaseForm;
+
+/**
+ * Class SqlForm
+ * @package PhpMyAdmin\Config\Forms\User
+ */
+class SqlForm extends BaseForm
+{
+ /**
+ * @return array
+ */
+ public static function getForms()
+ {
+ return [
+ 'Sql_queries' => [
+ 'ShowSQL',
+ 'Confirm',
+ 'QueryHistoryMax',
+ 'IgnoreMultiSubmitErrors',
+ 'MaxCharactersInDisplayedSQL',
+ 'RetainQueryBox',
+ 'CodemirrorEnable',
+ 'LintEnable',
+ 'EnableAutocompleteForTablesAndColumns',
+ 'DefaultForeignKeyChecks',
+ ],
+ 'Sql_box' => [
+ 'SQLQuery/Edit',
+ 'SQLQuery/Explain',
+ 'SQLQuery/ShowAsPHP',
+ 'SQLQuery/Refresh',
+ ],
+ ];
+ }
+
+ /**
+ * @return string
+ */
+ public static function getName()
+ {
+ return __('SQL queries');
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/User/UserFormList.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/UserFormList.php
new file mode 100644
index 0000000..92294ed
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/UserFormList.php
@@ -0,0 +1,35 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences form
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Config\Forms\User;
+
+use PhpMyAdmin\Config\Forms\BaseFormList;
+
+/**
+ * Class UserFormList
+ * @package PhpMyAdmin\Config\Forms\User
+ */
+class UserFormList extends BaseFormList
+{
+ /**
+ * @var array
+ */
+ protected static $all = [
+ 'Features',
+ 'Sql',
+ 'Navi',
+ 'Main',
+ 'Export',
+ 'Import',
+ ];
+ /**
+ * @var string
+ */
+ protected static $ns = '\\PhpMyAdmin\\Config\\Forms\\User\\';
+}