Translated using Weblate (Portuguese)
[phpmyadmin.git] / src / Config / SpecialSchemaLinks.php
blob03d9fca3517048a588e331915cffccb0fedfe606
1 <?php
2 /**
3 * Links configuration for MySQL system tables
4 */
6 declare(strict_types=1);
8 namespace PhpMyAdmin\Config;
10 use PhpMyAdmin\Config;
11 use PhpMyAdmin\Url;
12 use PhpMyAdmin\Util;
14 class SpecialSchemaLinks
16 /**
17 * This array represent the details for generating links inside
18 * special schemas like mysql, information_schema etc.
19 * Major element represent a schema.
20 * All the strings in this array represented in lower case
22 * Array structure ex:
23 * array(
24 * // Database name is the major element
25 * 'mysql' => array(
26 * // Table name
27 * 'db' => array(
28 * // Column name
29 * 'user' => array(
30 * // Main url param (can be an array where represent sql)
31 * 'link_param' => 'username',
32 * // Other url params
33 * 'link_dependancy_params' => array(
34 * 0 => array(
35 * // URL parameter name
36 * // (can be array where url param has static value)
37 * 'param_info' => 'hostname',
38 * // Column name related to url param
39 * 'column_name' => 'host'
40 * )
41 * ),
42 * // Page to link
43 * 'default_page' => './' . Url::getFromRoute('/server/privileges')
44 * )
45 * )
46 * )
47 * );
49 * @return array<string,array<string,array<string,array<string,array<int,array<string,string>>|string>>>>
50 * @phpstan-return array<
51 * string, array<
52 * string, array<
53 * string,
54 * array{
55 * 'link_param': string,
56 * 'link_dependancy_params'?: array<
57 * int,
58 * array{'param_info': string, 'column_name': string}
59 * >,
60 * 'default_page': string
61 * }>
62 * >
63 * >
64 * }
66 public static function get(): array
68 $config = Config::getInstance();
69 $defaultPageDatabase = './' . Util::getScriptNameForOption($config->settings['DefaultTabDatabase'], 'database');
70 $defaultPageTable = './' . Util::getScriptNameForOption($config->settings['DefaultTabTable'], 'table');
72 return [
73 'mysql' => [
74 'columns_priv' => [
75 'user' => [
76 'link_param' => 'username',
77 'link_dependancy_params' => [['param_info' => 'hostname', 'column_name' => 'host']],
78 'default_page' => './' . Url::getFromRoute('/server/privileges'),
80 'table_name' => [
81 'link_param' => 'table',
82 'link_dependancy_params' => [['param_info' => 'db', 'column_name' => 'Db']],
83 'default_page' => $defaultPageTable,
85 'column_name' => [
86 'link_param' => 'field',
87 'link_dependancy_params' => [
88 ['param_info' => 'db', 'column_name' => 'Db'],
89 ['param_info' => 'table', 'column_name' => 'Table_name'],
91 'default_page' => './' . Url::getFromRoute('/table/structure/change', ['change_column' => 1]),
94 'db' => [
95 'user' => [
96 'link_param' => 'username',
97 'link_dependancy_params' => [['param_info' => 'hostname', 'column_name' => 'host']],
98 'default_page' => './' . Url::getFromRoute('/server/privileges'),
101 'event' => [
102 'name' => [
103 'link_param' => 'item_name',
104 'link_dependancy_params' => [['param_info' => 'db', 'column_name' => 'db']],
105 'default_page' => './' . Url::getFromRoute('/database/events', ['edit_item' => 1]),
109 'innodb_index_stats' => [
110 'table_name' => [
111 'link_param' => 'table',
112 'link_dependancy_params' => [['param_info' => 'db', 'column_name' => 'database_name']],
113 'default_page' => $defaultPageTable,
115 'index_name' => [
116 'link_param' => 'index',
117 'link_dependancy_params' => [
118 ['param_info' => 'db', 'column_name' => 'database_name'],
119 ['param_info' => 'table', 'column_name' => 'table_name'],
121 'default_page' => './' . Url::getFromRoute('/table/structure'),
124 'innodb_table_stats' => [
125 'table_name' => [
126 'link_param' => 'table',
127 'link_dependancy_params' => [['param_info' => 'db', 'column_name' => 'database_name']],
128 'default_page' => $defaultPageTable,
131 'proc' => [
132 'name' => [
133 'link_param' => 'item_name',
134 'link_dependancy_params' => [
135 ['param_info' => 'db', 'column_name' => 'db'],
136 ['param_info' => 'item_type', 'column_name' => 'type'],
138 'default_page' => './' . Url::getFromRoute('/database/routines', ['edit_item' => 1]),
140 'specific_name' => [
141 'link_param' => 'item_name',
142 'link_dependancy_params' => [
143 ['param_info' => 'db', 'column_name' => 'db'],
144 ['param_info' => 'item_type', 'column_name' => 'type'],
146 'default_page' => './' . Url::getFromRoute('/database/routines', ['edit_item' => 1]),
149 'proc_priv' => [
150 'user' => [
151 'link_param' => 'username',
152 'link_dependancy_params' => [['param_info' => 'hostname', 'column_name' => 'Host']],
153 'default_page' => './' . Url::getFromRoute('/server/privileges'),
155 'routine_name' => [
156 'link_param' => 'item_name',
157 'link_dependancy_params' => [
158 ['param_info' => 'db', 'column_name' => 'Db'],
159 ['param_info' => 'item_type', 'column_name' => 'Routine_type'],
161 'default_page' => './' . Url::getFromRoute('/database/routines', ['edit_item' => 1]),
164 'proxies_priv' => [
165 'user' => [
166 'link_param' => 'username',
167 'link_dependancy_params' => [['param_info' => 'hostname', 'column_name' => 'Host']],
168 'default_page' => './' . Url::getFromRoute('/server/privileges'),
171 'tables_priv' => [
172 'user' => [
173 'link_param' => 'username',
174 'link_dependancy_params' => [['param_info' => 'hostname', 'column_name' => 'Host']],
175 'default_page' => './' . Url::getFromRoute('/server/privileges'),
177 'table_name' => [
178 'link_param' => 'table',
179 'link_dependancy_params' => [['param_info' => 'db', 'column_name' => 'Db']],
180 'default_page' => $defaultPageTable,
183 'user' => [
184 'user' => [
185 'link_param' => 'username',
186 'link_dependancy_params' => [['param_info' => 'hostname', 'column_name' => 'host']],
187 'default_page' => './' . Url::getFromRoute('/server/privileges'),
191 'information_schema' => [
192 'columns' => [
193 'table_name' => [
194 'link_param' => 'table',
195 'link_dependancy_params' => [['param_info' => 'db', 'column_name' => 'table_schema']],
196 'default_page' => $defaultPageTable,
198 'column_name' => [
199 'link_param' => 'field',
200 'link_dependancy_params' => [
201 ['param_info' => 'db', 'column_name' => 'table_schema'],
202 ['param_info' => 'table', 'column_name' => 'table_name'],
204 'default_page' => './' . Url::getFromRoute('/table/structure/change', ['change_column' => 1]),
207 'key_column_usage' => [
208 'table_name' => [
209 'link_param' => 'table',
210 'link_dependancy_params' => [['param_info' => 'db', 'column_name' => 'constraint_schema']],
211 'default_page' => $defaultPageTable,
213 'column_name' => [
214 'link_param' => 'field',
215 'link_dependancy_params' => [
216 ['param_info' => 'db', 'column_name' => 'table_schema'],
217 ['param_info' => 'table', 'column_name' => 'table_name'],
219 'default_page' => './' . Url::getFromRoute('/table/structure/change', ['change_column' => 1]),
221 'referenced_table_name' => [
222 'link_param' => 'table',
223 'link_dependancy_params' => [
224 ['param_info' => 'db', 'column_name' => 'referenced_table_schema'],
226 'default_page' => $defaultPageTable,
228 'referenced_column_name' => [
229 'link_param' => 'field',
230 'link_dependancy_params' => [
231 ['param_info' => 'db', 'column_name' => 'referenced_table_schema'],
232 ['param_info' => 'table', 'column_name' => 'referenced_table_name'],
234 'default_page' => './' . Url::getFromRoute('/table/structure/change', ['change_column' => 1]),
237 'partitions' => [
238 'table_name' => [
239 'link_param' => 'table',
240 'link_dependancy_params' => [['param_info' => 'db', 'column_name' => 'table_schema']],
241 'default_page' => $defaultPageTable,
244 'processlist' => [
245 'user' => [
246 'link_param' => 'username',
247 'link_dependancy_params' => [['param_info' => 'hostname', 'column_name' => 'host']],
248 'default_page' => './' . Url::getFromRoute('/server/privileges'),
251 'referential_constraints' => [
252 'table_name' => [
253 'link_param' => 'table',
254 'link_dependancy_params' => [['param_info' => 'db', 'column_name' => 'constraint_schema']],
255 'default_page' => $defaultPageTable,
257 'referenced_table_name' => [
258 'link_param' => 'table',
259 'link_dependancy_params' => [['param_info' => 'db', 'column_name' => 'constraint_schema']],
260 'default_page' => $defaultPageTable,
263 'routines' => [
264 'routine_name' => [
265 'link_param' => 'item_name',
266 'link_dependancy_params' => [
267 ['param_info' => 'db', 'column_name' => 'routine_schema'],
268 ['param_info' => 'item_type', 'column_name' => 'routine_type'],
270 'default_page' => './' . Url::getFromRoute('/database/routines'),
273 'schemata' => ['schema_name' => ['link_param' => 'db', 'default_page' => $defaultPageDatabase]],
274 'statistics' => [
275 'table_name' => [
276 'link_param' => 'table',
277 'link_dependancy_params' => [['param_info' => 'db', 'column_name' => 'table_schema']],
278 'default_page' => $defaultPageTable,
280 'column_name' => [
281 'link_param' => 'field',
282 'link_dependancy_params' => [
283 ['param_info' => 'db', 'column_name' => 'table_schema'],
284 ['param_info' => 'table', 'column_name' => 'table_name'],
286 'default_page' => './' . Url::getFromRoute('/table/structure/change', ['change_column' => 1]),
289 'tables' => [
290 'table_name' => [
291 'link_param' => 'table',
292 'link_dependancy_params' => [['param_info' => 'db', 'column_name' => 'table_schema']],
293 'default_page' => $defaultPageTable,
296 'table_constraints' => [
297 'table_name' => [
298 'link_param' => 'table',
299 'link_dependancy_params' => [['param_info' => 'db', 'column_name' => 'table_schema']],
300 'default_page' => $defaultPageTable,
303 'views' => [
304 'table_name' => [
305 'link_param' => 'table',
306 'link_dependancy_params' => [['param_info' => 'db', 'column_name' => 'table_schema']],
307 'default_page' => $defaultPageTable,