diff options
Diffstat (limited to 'srcs/phpmyadmin/libraries/classes/Config/SpecialSchemaLinks.php')
| -rw-r--r-- | srcs/phpmyadmin/libraries/classes/Config/SpecialSchemaLinks.php | 478 |
1 files changed, 478 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/libraries/classes/Config/SpecialSchemaLinks.php b/srcs/phpmyadmin/libraries/classes/Config/SpecialSchemaLinks.php new file mode 100644 index 0000000..e0af136 --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/SpecialSchemaLinks.php @@ -0,0 +1,478 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * Links configuration for MySQL system tables + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config; + +use PhpMyAdmin\Util; + +/** + * Class SpecialSchemaLinks + * @package PhpMyAdmin\Config + */ +class SpecialSchemaLinks +{ + /** + * This array represent the details for generating links inside + * special schemas like mysql, information_schema etc. + * Major element represent a schema. + * All the strings in this array represented in lower case + * + * Array structure ex: + * array( + * // Database name is the major element + * 'mysql' => array( + * // Table name + * 'db' => array( + * // Column name + * 'user' => array( + * // Main url param (can be an array where represent sql) + * 'link_param' => 'username', + * // Other url params + * 'link_dependancy_params' => array( + * 0 => array( + * // URL parameter name + * // (can be array where url param has static value) + * 'param_info' => 'hostname', + * // Column name related to url param + * 'column_name' => 'host' + * ) + * ), + * // Page to link + * 'default_page' => './server_privileges.php' + * ) + * ) + * ) + * ); + * + * @return array + */ + public static function get(): array + { + global $cfg; + + $defaultPage = './' . Util::getScriptNameForOption( + $cfg['DefaultTabTable'], + 'table' + ); + + return [ + 'mysql' => [ + 'columns_priv' => [ + 'user' => [ + 'link_param' => 'username', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'hostname', + 'column_name' => 'host', + ], + ], + 'default_page' => './server_privileges.php', + ], + 'table_name' => [ + 'link_param' => 'table', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'Db', + ], + ], + 'default_page' => $defaultPage, + ], + 'column_name' => [ + 'link_param' => 'field', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'Db', + ], + 1 => [ + 'param_info' => 'table', + 'column_name' => 'Table_name', + ], + ], + 'default_page' => './tbl_structure.php?change_column=1', + ], + ], + 'db' => [ + 'user' => [ + 'link_param' => 'username', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'hostname', + 'column_name' => 'host', + ], + ], + 'default_page' => './server_privileges.php', + ], + ], + 'event' => [ + 'name' => [ + 'link_param' => 'item_name', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'db', + ], + ], + 'default_page' => './db_events.php?edit_item=1', + ], + + ], + 'innodb_index_stats' => [ + 'table_name' => [ + 'link_param' => 'table', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'database_name', + ], + ], + 'default_page' => $defaultPage, + ], + 'index_name' => [ + 'link_param' => 'index', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'database_name', + ], + 1 => [ + 'param_info' => 'table', + 'column_name' => 'table_name', + ], + ], + 'default_page' => './tbl_structure.php', + ], + ], + 'innodb_table_stats' => [ + 'table_name' => [ + 'link_param' => 'table', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'database_name', + ], + ], + 'default_page' => $defaultPage, + ], + ], + 'proc' => [ + 'name' => [ + 'link_param' => 'item_name', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'db', + ], + 1 => [ + 'param_info' => 'item_type', + 'column_name' => 'type', + ], + ], + 'default_page' => './db_routines.php?edit_item=1', + ], + 'specific_name' => [ + 'link_param' => 'item_name', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'db', + ], + 1 => [ + 'param_info' => 'item_type', + 'column_name' => 'type', + ], + ], + 'default_page' => './db_routines.php?edit_item=1', + ], + ], + 'proc_priv' => [ + 'user' => [ + 'link_param' => 'username', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'hostname', + 'column_name' => 'Host', + ], + ], + 'default_page' => './server_privileges.php', + ], + 'routine_name' => [ + 'link_param' => 'item_name', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'Db', + ], + 1 => [ + 'param_info' => 'item_type', + 'column_name' => 'Routine_type', + ], + ], + 'default_page' => './db_routines.php?edit_item=1', + ], + ], + 'proxies_priv' => [ + 'user' => [ + 'link_param' => 'username', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'hostname', + 'column_name' => 'Host', + ], + ], + 'default_page' => './server_privileges.php', + ], + ], + 'tables_priv' => [ + 'user' => [ + 'link_param' => 'username', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'hostname', + 'column_name' => 'Host', + ], + ], + 'default_page' => './server_privileges.php', + ], + 'table_name' => [ + 'link_param' => 'table', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'Db', + ], + ], + 'default_page' => $defaultPage, + ], + ], + 'user' => [ + 'user' => [ + 'link_param' => 'username', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'hostname', + 'column_name' => 'host', + ], + ], + 'default_page' => './server_privileges.php', + ], + ], + ], + 'information_schema' => [ + 'columns' => [ + 'table_name' => [ + 'link_param' => 'table', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'table_schema', + ], + ], + 'default_page' => $defaultPage, + ], + 'column_name' => [ + 'link_param' => 'field', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'table_schema', + ], + 1 => [ + 'param_info' => 'table', + 'column_name' => 'table_name', + ], + ], + 'default_page' => './tbl_structure.php?change_column=1', + ], + ], + 'key_column_usage' => [ + 'table_name' => [ + 'link_param' => 'table', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'constraint_schema', + ], + ], + 'default_page' => $defaultPage, + ], + 'column_name' => [ + 'link_param' => 'field', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'table_schema', + ], + 1 => [ + 'param_info' => 'table', + 'column_name' => 'table_name', + ], + ], + 'default_page' => './tbl_structure.php?change_column=1', + ], + 'referenced_table_name' => [ + 'link_param' => 'table', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'referenced_table_schema', + ], + ], + 'default_page' => $defaultPage, + ], + 'referenced_column_name' => [ + 'link_param' => 'field', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'referenced_table_schema', + ], + 1 => [ + 'param_info' => 'table', + 'column_name' => 'referenced_table_name', + ], + ], + 'default_page' => './tbl_structure.php?change_column=1', + ], + ], + 'partitions' => [ + 'table_name' => [ + 'link_param' => 'table', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'table_schema', + ], + ], + 'default_page' => $defaultPage, + ], + ], + 'processlist' => [ + 'user' => [ + 'link_param' => 'username', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'hostname', + 'column_name' => 'host', + ], + ], + 'default_page' => './server_privileges.php', + ], + ], + 'referential_constraints' => [ + 'table_name' => [ + 'link_param' => 'table', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'constraint_schema', + ], + ], + 'default_page' => $defaultPage, + ], + 'referenced_table_name' => [ + 'link_param' => 'table', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'constraint_schema', + ], + ], + 'default_page' => $defaultPage, + ], + ], + 'routines' => [ + 'routine_name' => [ + 'link_param' => 'item_name', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'routine_schema', + ], + 1 => [ + 'param_info' => 'item_type', + 'column_name' => 'routine_type', + ], + ], + 'default_page' => './db_routines.php', + ], + ], + 'schemata' => [ + 'schema_name' => [ + 'link_param' => 'db', + 'default_page' => $defaultPage, + ], + ], + 'statistics' => [ + 'table_name' => [ + 'link_param' => 'table', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'table_schema', + ], + ], + 'default_page' => $defaultPage, + ], + 'column_name' => [ + 'link_param' => 'field', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'table_schema', + ], + 1 => [ + 'param_info' => 'table', + 'column_name' => 'table_name', + ], + ], + 'default_page' => './tbl_structure.php?change_column=1', + ], + ], + 'tables' => [ + 'table_name' => [ + 'link_param' => 'table', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'table_schema', + ], + ], + 'default_page' => $defaultPage, + ], + ], + 'table_constraints' => [ + 'table_name' => [ + 'link_param' => 'table', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'table_schema', + ], + ], + 'default_page' => $defaultPage, + ], + ], + 'views' => [ + 'table_name' => [ + 'link_param' => 'table', + 'link_dependancy_params' => [ + 0 => [ + 'param_info' => 'db', + 'column_name' => 'table_schema', + ], + ], + 'default_page' => $defaultPage, + ], + ], + ], + ]; + } +} |
