PageRenderTime 52ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/libraries/config.values.php

https://gitlab.com/trungthao379/phpmyadmin
PHP | 277 lines | 241 code | 6 blank | 30 comment | 1 complexity | 5043b482dfe3f8bfb1c4318647b630c9 MD5 | raw file
  1. <?php
  2. /* vim: set expandtab sw=4 ts=4 sts=4: */
  3. /**
  4. * Database with allowed values for configuration stored in the $cfg array,
  5. * used by setup script and user preferences to generate forms.
  6. *
  7. * @package PhpMyAdmin
  8. */
  9. if (!defined('PHPMYADMIN')) {
  10. exit;
  11. }
  12. /**
  13. * Value meaning:
  14. * o array - select field, array contains allowed values
  15. * o string - type override
  16. *
  17. * Use normal array, paths won't be expanded
  18. */
  19. $cfg_db = array();
  20. $cfg_db['Servers'] = array(
  21. 1 => array(
  22. 'port' => 'integer',
  23. 'connect_type' => array('tcp', 'socket'),
  24. 'auth_type' => array('config', 'http', 'signon', 'cookie'),
  25. 'AllowDeny' => array(
  26. 'order' => array('', 'deny,allow', 'allow,deny', 'explicit')
  27. ),
  28. 'only_db' => 'array'
  29. )
  30. );
  31. $cfg_db['RecodingEngine'] = array('auto', 'iconv', 'recode', 'mb', 'none');
  32. $cfg_db['OBGzip'] = array('auto', true, false);
  33. $cfg_db['MemoryLimit'] = 'short_string';
  34. $cfg_db['NavigationLogoLinkWindow'] = array('main', 'new');
  35. $cfg_db['NavigationTreeDefaultTabTable'] = array(
  36. 'structure' => __('Structure'), // fields list
  37. 'sql' => __('SQL'), // SQL form
  38. 'search' => __('Search'), // search page
  39. 'insert' => __('Insert'), // insert row page
  40. 'browse' => __('Browse') // browse page
  41. );
  42. $cfg_db['NavigationTreeDefaultTabTable2'] = array(
  43. '' => '', //don't display
  44. 'structure' => __('Structure'), // fields list
  45. 'sql' => __('SQL'), // SQL form
  46. 'search' => __('Search'), // search page
  47. 'insert' => __('Insert'), // insert row page
  48. 'browse' => __('Browse') // browse page
  49. );
  50. $cfg_db['NavigationTreeDbSeparator'] = 'short_string';
  51. $cfg_db['NavigationTreeTableSeparator'] = 'short_string';
  52. $cfg_db['TableNavigationLinksMode'] = array(
  53. 'icons' => __('Icons'),
  54. 'text' => __('Text'),
  55. 'both' => __('Both')
  56. );
  57. $cfg_db['MaxRows'] = array(25, 50, 100, 250, 500);
  58. $cfg_db['Order'] = array('ASC', 'DESC', 'SMART');
  59. $cfg_db['RowActionLinks'] = array(
  60. 'none' => __('Nowhere'),
  61. 'left' => __('Left'),
  62. 'right' => __('Right'),
  63. 'both' => __('Both')
  64. );
  65. $cfg_db['TablePrimaryKeyOrder'] = array(
  66. 'NONE' => __('None'),
  67. 'ASC' => __('Ascending'),
  68. 'DESC' => __('Descending')
  69. );
  70. $cfg_db['ProtectBinary'] = array(false, 'blob', 'noblob', 'all');
  71. $cfg_db['CharEditing'] = array('input', 'textarea');
  72. $cfg_db['TabsMode'] = array(
  73. 'icons' => __('Icons'),
  74. 'text' => __('Text'),
  75. 'both' => __('Both')
  76. );
  77. $cfg_db['PDFDefaultPageSize'] = array(
  78. 'A3' => 'A3',
  79. 'A4' => 'A4',
  80. 'A5' => 'A5',
  81. 'letter' => 'letter',
  82. 'legal' => 'legal'
  83. );
  84. $cfg_db['ActionLinksMode'] = array(
  85. 'icons' => __('Icons'),
  86. 'text' => __('Text'),
  87. 'both' => __('Both')
  88. );
  89. $cfg_db['GridEditing'] = array(
  90. 'click' => __('Click'),
  91. 'double-click' => __('Double click'),
  92. 'disabled' => __('Disabled'),
  93. );
  94. $cfg_db['RelationalDisplay'] = array(
  95. 'K' => __('key'),
  96. 'D' => __('display column')
  97. );
  98. $cfg_db['DefaultTabServer'] = array(
  99. // the welcome page (recommended for multiuser setups)
  100. 'welcome' => __('Welcome'),
  101. 'databases' => __('Databases'), // list of databases
  102. 'status' => __('Status'), // runtime information
  103. 'variables' => __('Variables'), // MySQL server variables
  104. 'privileges' => __('Privileges') // user management
  105. );
  106. $cfg_db['DefaultTabDatabase'] = array(
  107. 'structure' => __('Structure'), // tables list
  108. 'sql' => __('SQL'), // SQL form
  109. 'search' => __('Search'), // search query
  110. 'operations' => __('Operations') // operations on database
  111. );
  112. $cfg_db['DefaultTabTable'] = array(
  113. 'structure' => __('Structure'), // fields list
  114. 'sql' => __('SQL'), // SQL form
  115. 'search' => __('Search'), // search page
  116. 'insert' => __('Insert'), // insert row page
  117. 'browse' => __('Browse') // browse page
  118. );
  119. $cfg_db['InitialSlidersState'] = array(
  120. 'open' => __('Open'),
  121. 'closed' => __('Closed'),
  122. 'disabled' => __('Disabled')
  123. );
  124. $cfg_db['SendErrorReports'] = array(
  125. 'ask' => __('Ask before sending error reports'),
  126. 'always' => __('Always send error reports'),
  127. 'never' => __('Never send error reports')
  128. );
  129. $cfg_db['DefaultForeignKeyChecks'] = array(
  130. 'default' => __('Server default'),
  131. 'enable' => __('Enable'),
  132. 'disable' => __('Disable')
  133. );
  134. $cfg_db['Import']['format'] = array(
  135. 'csv', // CSV
  136. 'docsql', // DocSQL
  137. 'ldi', // CSV using LOAD DATA
  138. 'sql' // SQL
  139. );
  140. $cfg_db['Import']['charset'] = array_merge(
  141. array(''),
  142. $GLOBALS['cfg']['AvailableCharsets']
  143. );
  144. $cfg_db['Import']['sql_compatibility']
  145. = $cfg_db['Export']['sql_compatibility'] = array(
  146. 'NONE', 'ANSI', 'DB2', 'MAXDB', 'MYSQL323',
  147. 'MYSQL40', 'MSSQL', 'ORACLE',
  148. // removed; in MySQL 5.0.33, this produces exports that
  149. // can't be read by POSTGRESQL (see our bug #1596328)
  150. //'POSTGRESQL',
  151. 'TRADITIONAL'
  152. );
  153. $cfg_db['Import']['csv_terminated'] = 'short_string';
  154. $cfg_db['Import']['csv_enclosed'] = 'short_string';
  155. $cfg_db['Import']['csv_escaped'] = 'short_string';
  156. $cfg_db['Import']['ldi_terminated'] = 'short_string';
  157. $cfg_db['Import']['ldi_enclosed'] = 'short_string';
  158. $cfg_db['Import']['ldi_escaped'] = 'short_string';
  159. $cfg_db['Import']['ldi_local_option'] = array('auto', true, false);
  160. $cfg_db['Export']['_sod_select'] = array(
  161. 'structure' => __('structure'),
  162. 'data' => __('data'),
  163. 'structure_and_data' => __('structure and data')
  164. );
  165. $cfg_db['Export']['method'] = array(
  166. 'quick' => __('Quick - display only the minimal options to configure'),
  167. 'custom' => __('Custom - display all possible options to configure'),
  168. 'custom-no-form' => __(
  169. 'Custom - like above, but without the quick/custom choice'
  170. ),
  171. );
  172. $cfg_db['Export']['format'] = array(
  173. 'codegen', 'csv', 'excel', 'htmlexcel','htmlword', 'latex', 'ods',
  174. 'odt', 'pdf', 'sql', 'texytext', 'xls', 'xml', 'yaml'
  175. );
  176. $cfg_db['Export']['compression'] = array('none', 'zip', 'gzip');
  177. $cfg_db['Export']['charset'] = array_merge(
  178. array(''),
  179. $GLOBALS['cfg']['AvailableCharsets']
  180. );
  181. $cfg_db['Export']['codegen_format'] = array(
  182. '#', 'NHibernate C# DO', 'NHibernate XML'
  183. );
  184. $cfg_db['Export']['csv_separator'] = 'short_string';
  185. $cfg_db['Export']['csv_terminated'] = 'short_string';
  186. $cfg_db['Export']['csv_enclosed'] = 'short_string';
  187. $cfg_db['Export']['csv_escaped'] = 'short_string';
  188. $cfg_db['Export']['csv_null'] = 'short_string';
  189. $cfg_db['Export']['excel_null'] = 'short_string';
  190. $cfg_db['Export']['excel_edition'] = array(
  191. 'win' => 'Windows',
  192. 'mac_excel2003' => 'Excel 2003 / Macintosh',
  193. 'mac_excel2008' => 'Excel 2008 / Macintosh'
  194. );
  195. $cfg_db['Export']['sql_structure_or_data'] = $cfg_db['Export']['_sod_select'];
  196. $cfg_db['Export']['sql_type'] = array('INSERT', 'UPDATE', 'REPLACE');
  197. $cfg_db['Export']['sql_insert_syntax'] = array(
  198. 'complete' => __('complete inserts'),
  199. 'extended' => __('extended inserts'),
  200. 'both' => __('both of the above'),
  201. 'none' => __('neither of the above')
  202. );
  203. $cfg_db['Export']['xls_null'] = 'short_string';
  204. $cfg_db['Export']['xlsx_null'] = 'short_string';
  205. $cfg_db['Export']['htmlword_structure_or_data'] = $cfg_db['Export']['_sod_select'];
  206. $cfg_db['Export']['htmlword_null'] = 'short_string';
  207. $cfg_db['Export']['ods_null'] = 'short_string';
  208. $cfg_db['Export']['odt_null'] = 'short_string';
  209. $cfg_db['Export']['odt_structure_or_data'] = $cfg_db['Export']['_sod_select'];
  210. $cfg_db['Export']['texytext_structure_or_data'] = $cfg_db['Export']['_sod_select'];
  211. $cfg_db['Export']['texytext_null'] = 'short_string';
  212. /**
  213. * Default values overrides
  214. * Use only full paths
  215. */
  216. $cfg_db['_overrides'] = array();
  217. /**
  218. * Basic validator assignments (functions from libraries/config/Validator.php
  219. * and 'validators' object in js/config.js)
  220. * Use only full paths and form ids
  221. */
  222. $cfg_db['_validators'] = array(
  223. 'CharTextareaCols' => 'validatePositiveNumber',
  224. 'CharTextareaRows' => 'validatePositiveNumber',
  225. 'ExecTimeLimit' => 'validateNonNegativeNumber',
  226. 'Export/sql_max_query_size' => 'validatePositiveNumber',
  227. 'FirstLevelNavigationItems' => 'validatePositiveNumber',
  228. 'ForeignKeyMaxLimit' => 'validatePositiveNumber',
  229. 'Import/csv_enclosed' => array(array('validateByRegex', '/^.?$/')),
  230. 'Import/csv_escaped' => array(array('validateByRegex', '/^.$/')),
  231. 'Import/csv_terminated' => array(array('validateByRegex', '/^.$/')),
  232. 'Import/ldi_enclosed' => array(array('validateByRegex', '/^.?$/')),
  233. 'Import/ldi_escaped' => array(array('validateByRegex', '/^.$/')),
  234. 'Import/ldi_terminated' => array(array('validateByRegex', '/^.$/')),
  235. 'Import/skip_queries' => 'validateNonNegativeNumber',
  236. 'InsertRows' => 'validatePositiveNumber',
  237. 'NumRecentTables' => 'validateNonNegativeNumber',
  238. 'NumFavoriteTables' => 'validateNonNegativeNumber',
  239. 'LimitChars' => 'validatePositiveNumber',
  240. 'LoginCookieValidity' => 'validatePositiveNumber',
  241. 'LoginCookieStore' => 'validateNonNegativeNumber',
  242. 'MaxDbList' => 'validatePositiveNumber',
  243. 'MaxNavigationItems' => 'validatePositiveNumber',
  244. 'MaxCharactersInDisplayedSQL' => 'validatePositiveNumber',
  245. 'MaxRows' => 'validatePositiveNumber',
  246. 'MaxTableList' => 'validatePositiveNumber',
  247. 'MemoryLimit' => array(array('validateByRegex', '/^(-1|(\d+(?:[kmg])?))$/i')),
  248. 'NavigationTreeTableLevel' => 'validatePositiveNumber',
  249. 'QueryHistoryMax' => 'validatePositiveNumber',
  250. 'RepeatCells' => 'validateNonNegativeNumber',
  251. 'Server' => 'validateServer',
  252. 'Server_pmadb' => 'validatePMAStorage',
  253. 'Servers/1/port' => 'validatePortNumber',
  254. 'Servers/1/hide_db' => 'validateRegex',
  255. 'TextareaCols' => 'validatePositiveNumber',
  256. 'TextareaRows' => 'validatePositiveNumber',
  257. 'TrustedProxies' => 'validateTrustedProxies');
  258. /**
  259. * Additional validators used for user preferences
  260. */
  261. $cfg_db['_userValidators'] = array(
  262. 'MaxDbList' => array(
  263. array('validateUpperBound', 'value:MaxDbList')
  264. ),
  265. 'MaxTableList' => array(
  266. array('validateUpperBound', 'value:MaxTableList')
  267. ),
  268. 'QueryHistoryMax' => array(
  269. array('validateUpperBound', 'value:QueryHistoryMax')
  270. )
  271. );