From a2335316edadf993e3ffc9c3c50338c4daed8042 Mon Sep 17 00:00:00 2001
From: Sean Burke
Date: Sun, 16 Feb 2014 23:08:30 -0800
Subject: [PATCH] updating phpMyAdmin
---
phpMyAdmin/CONTRIBUTING.md | 21 +
phpMyAdmin/ChangeLog | 604 +-
phpMyAdmin/README | 34 +-
phpMyAdmin/RELEASE-DATE-4.1.7 | 1 +
phpMyAdmin/browse_foreigners.php | 318 +-
phpMyAdmin/changelog.php | 66 +-
phpMyAdmin/chk_rel.php | 22 +-
phpMyAdmin/composer.json | 27 +
phpMyAdmin/config.sample.inc.php | 56 +-
phpMyAdmin/db_create.php | 101 +-
phpMyAdmin/db_datadict.php | 180 +-
phpMyAdmin/db_events.php | 18 +-
phpMyAdmin/db_export.php | 58 +-
phpMyAdmin/db_import.php | 22 +-
phpMyAdmin/db_operations.php | 590 +-
phpMyAdmin/db_printview.php | 258 +-
phpMyAdmin/db_qbe.php | 962 +-
phpMyAdmin/db_routines.php | 25 +-
phpMyAdmin/db_search.php | 356 +-
phpMyAdmin/db_sql.php | 43 +-
phpMyAdmin/db_structure.php | 706 +-
phpMyAdmin/db_tracking.php | 150 +-
phpMyAdmin/db_triggers.php | 16 +-
phpMyAdmin/doc/Makefile | 153 +
phpMyAdmin/doc/_ext/configext.py | 189 +
phpMyAdmin/doc/_ext/configext.pyc | Bin 0 -> 7773 bytes
phpMyAdmin/doc/conf.py | 292 +
phpMyAdmin/doc/config.rst | 2813 ++++
phpMyAdmin/doc/copyright.rst | 30 +
phpMyAdmin/doc/credits.rst | 626 +
phpMyAdmin/doc/developers.rst | 12 +
phpMyAdmin/doc/doctrees/config.doctree | Bin 0 -> 802067 bytes
phpMyAdmin/doc/doctrees/copyright.doctree | Bin 0 -> 6619 bytes
phpMyAdmin/doc/doctrees/credits.doctree | Bin 0 -> 119697 bytes
phpMyAdmin/doc/doctrees/developers.doctree | Bin 0 -> 4687 bytes
phpMyAdmin/doc/doctrees/environment.pickle | Bin 0 -> 224370 bytes
phpMyAdmin/doc/doctrees/faq.doctree | Bin 0 -> 556274 bytes
phpMyAdmin/doc/doctrees/glossary.doctree | Bin 0 -> 99314 bytes
phpMyAdmin/doc/doctrees/index.doctree | Bin 0 -> 5709 bytes
phpMyAdmin/doc/doctrees/intro.doctree | Bin 0 -> 24029 bytes
phpMyAdmin/doc/doctrees/other.doctree | Bin 0 -> 5042 bytes
phpMyAdmin/doc/doctrees/privileges.doctree | Bin 0 -> 11187 bytes
phpMyAdmin/doc/doctrees/require.doctree | Bin 0 -> 14973 bytes
phpMyAdmin/doc/doctrees/setup.doctree | Bin 0 -> 134547 bytes
.../doc/doctrees/transformations.doctree | Bin 0 -> 31635 bytes
phpMyAdmin/doc/doctrees/user.doctree | Bin 0 -> 2834 bytes
phpMyAdmin/doc/doctrees/vendors.doctree | Bin 0 -> 7769 bytes
phpMyAdmin/doc/faq.rst | 2015 +++
phpMyAdmin/doc/glossary.rst | 406 +
phpMyAdmin/doc/html/.buildinfo | 4 +
phpMyAdmin/doc/html/_sources/config.txt | 2813 ++++
phpMyAdmin/doc/html/_sources/copyright.txt | 30 +
phpMyAdmin/doc/html/_sources/credits.txt | 626 +
phpMyAdmin/doc/html/_sources/developers.txt | 12 +
phpMyAdmin/doc/html/_sources/faq.txt | 2015 +++
phpMyAdmin/doc/html/_sources/glossary.txt | 406 +
phpMyAdmin/doc/html/_sources/index.txt | 32 +
phpMyAdmin/doc/html/_sources/intro.txt | 68 +
phpMyAdmin/doc/html/_sources/other.txt | 18 +
phpMyAdmin/doc/html/_sources/privileges.txt | 50 +
phpMyAdmin/doc/html/_sources/require.txt | 53 +
phpMyAdmin/doc/html/_sources/setup.txt | 493 +
.../doc/html/_sources/transformations.txt | 138 +
phpMyAdmin/doc/html/_sources/user.txt | 9 +
phpMyAdmin/doc/html/_sources/vendors.txt | 34 +
phpMyAdmin/doc/html/_static/ajax-loader.gif | Bin 0 -> 673 bytes
phpMyAdmin/doc/html/_static/basic.css | 540 +
.../doc/html/_static/comment-bright.png | Bin 0 -> 3500 bytes
phpMyAdmin/doc/html/_static/comment-close.png | Bin 0 -> 3578 bytes
phpMyAdmin/doc/html/_static/comment.png | Bin 0 -> 3445 bytes
phpMyAdmin/doc/html/_static/default.css | 256 +
phpMyAdmin/doc/html/_static/doctools.js | 247 +
phpMyAdmin/doc/html/_static/down-pressed.png | Bin 0 -> 368 bytes
phpMyAdmin/doc/html/_static/down.png | Bin 0 -> 363 bytes
phpMyAdmin/doc/html/_static/file.png | Bin 0 -> 392 bytes
phpMyAdmin/doc/html/_static/jquery.js | 9404 +++++++++++++
phpMyAdmin/doc/html/_static/minus.png | Bin 0 -> 199 bytes
phpMyAdmin/doc/html/_static/plus.png | Bin 0 -> 199 bytes
phpMyAdmin/doc/html/_static/pygments.css | 62 +
phpMyAdmin/doc/html/_static/searchtools.js | 560 +
phpMyAdmin/doc/html/_static/sidebar.js | 151 +
phpMyAdmin/doc/html/_static/underscore.js | 807 ++
phpMyAdmin/doc/html/_static/up-pressed.png | Bin 0 -> 372 bytes
phpMyAdmin/doc/html/_static/up.png | Bin 0 -> 363 bytes
phpMyAdmin/doc/html/_static/websupport.js | 808 ++
phpMyAdmin/doc/html/config.html | 5015 +++++++
phpMyAdmin/doc/html/copyright.html | 134 +
phpMyAdmin/doc/html/credits.html | 684 +
phpMyAdmin/doc/html/developers.html | 118 +
phpMyAdmin/doc/html/faq.html | 1791 +++
phpMyAdmin/doc/html/genindex.html | 3847 +++++
phpMyAdmin/doc/html/glossary.html | 627 +
phpMyAdmin/doc/html/index.html | 207 +
phpMyAdmin/doc/html/intro.html | 182 +
phpMyAdmin/doc/html/objects.inv | Bin 0 -> 9663 bytes
phpMyAdmin/doc/html/other.html | 135 +
phpMyAdmin/doc/html/privileges.html | 169 +
phpMyAdmin/doc/html/require.html | 168 +
phpMyAdmin/doc/html/search.html | 100 +
phpMyAdmin/doc/html/searchindex.js | 1 +
phpMyAdmin/doc/html/setup.html | 549 +
phpMyAdmin/doc/html/transformations.html | 240 +
phpMyAdmin/doc/html/user.html | 135 +
phpMyAdmin/doc/html/vendors.html | 147 +
phpMyAdmin/doc/index.rst | 32 +
phpMyAdmin/doc/intro.rst | 68 +
phpMyAdmin/doc/make.bat | 190 +
phpMyAdmin/doc/other.rst | 18 +
phpMyAdmin/doc/privileges.rst | 50 +
phpMyAdmin/doc/require.rst | 53 +
phpMyAdmin/doc/setup.rst | 493 +
phpMyAdmin/doc/transformations.rst | 138 +
phpMyAdmin/doc/user.rst | 9 +
phpMyAdmin/doc/vendors.rst | 34 +
phpMyAdmin/error_report.php | 95 +
phpMyAdmin/examples/config.manyhosts.inc.php | 94 +-
phpMyAdmin/examples/create_tables.sql | 120 +-
phpMyAdmin/examples/create_tables_drizzle.sql | 119 +-
phpMyAdmin/examples/openid.php | 48 +-
phpMyAdmin/examples/signon-script.php | 5 +-
phpMyAdmin/examples/signon.php | 48 +-
.../examples/upgrade_tables_mysql_4_1_2+.sql | 84 +-
phpMyAdmin/export.php | 1386 +-
phpMyAdmin/file_echo.php | 17 +-
phpMyAdmin/gis_data_editor.php | 607 +-
phpMyAdmin/import.php | 520 +-
phpMyAdmin/import_status.php | 74 +-
phpMyAdmin/index.php | 753 +-
phpMyAdmin/js/OpenStreetMap.js | 130 +-
phpMyAdmin/js/ajax.js | 860 ++
phpMyAdmin/js/canvg/canvg.js | 2605 +++-
phpMyAdmin/js/canvg/flashcanvas.js | 25 -
phpMyAdmin/js/canvg/flashcanvas.swf | Bin 21235 -> 0 bytes
phpMyAdmin/js/chart.js | 546 +
phpMyAdmin/js/codemirror/LICENSE | 6 +-
.../js/codemirror/addon/runmode/runmode.js | 56 +
phpMyAdmin/js/codemirror/lib/codemirror.js | 5893 +++++++-
phpMyAdmin/js/codemirror/mode/mysql/mysql.js | 7 -
phpMyAdmin/js/codemirror/mode/sql/sql.js | 349 +
phpMyAdmin/js/common.js | 312 +-
phpMyAdmin/js/config.js | 822 +-
phpMyAdmin/js/cross_framing_protection.js | 10 +-
phpMyAdmin/js/date.js | 9 -
phpMyAdmin/js/db_operations.js | 118 +-
phpMyAdmin/js/db_search.js | 235 +-
phpMyAdmin/js/db_structure.js | 398 +-
phpMyAdmin/js/doclinks.js | 365 +
phpMyAdmin/js/dom-drag.js | 6 -
phpMyAdmin/js/error_report.js | 310 +
phpMyAdmin/js/export.js | 295 +-
phpMyAdmin/js/functions.js | 4200 +++++-
phpMyAdmin/js/get_image.js.php | 13 +-
phpMyAdmin/js/get_scripts.js.php | 45 +
phpMyAdmin/js/gis_data_editor.js | 409 +-
phpMyAdmin/js/import.js | 106 +-
phpMyAdmin/js/indexes.js | 211 +-
phpMyAdmin/js/jqplot/excanvas.js | 1474 +-
phpMyAdmin/js/jqplot/jquery.jqplot.js | 11683 +++++++++++++++-
.../js/jqplot/plugins/jqplot.barRenderer.js | 820 +-
.../js/jqplot/plugins/jqplot.byteFormatter.js | 46 +
.../plugins/jqplot.canvasAxisLabelRenderer.js | 208 +-
.../plugins/jqplot.canvasTextRenderer.js | 480 +-
.../plugins/jqplot.categoryAxisRenderer.js | 690 +-
phpMyAdmin/js/jqplot/plugins/jqplot.cursor.js | 1143 +-
.../jqplot/plugins/jqplot.dateAxisRenderer.js | 755 +-
.../js/jqplot/plugins/jqplot.highlighter.js | 479 +-
.../js/jqplot/plugins/jqplot.pieRenderer.js | 929 +-
.../js/jqplot/plugins/jqplot.pointLabels.js | 388 +-
phpMyAdmin/js/jquery/MIT-LICENSE.txt | 21 +
phpMyAdmin/js/jquery/jquery-1.6.2.js | 180 -
phpMyAdmin/js/jquery/jquery-1.8.3.min.js | 2 +
.../js/jquery/jquery-ui-1.8.16.custom.js | 405 -
.../js/jquery/jquery-ui-1.9.2.custom.min.js | 6 +
.../js/jquery/jquery-ui-timepicker-addon.js | 2128 +++
.../js/jquery/jquery.ba-hashchange-1.3.js | 390 +
phpMyAdmin/js/jquery/jquery.cookie.js | 93 +-
phpMyAdmin/js/jquery/jquery.debounce-1.0.5.js | 71 +
phpMyAdmin/js/jquery/jquery.event.drag-2.0.js | 10 -
phpMyAdmin/js/jquery/jquery.event.drag-2.2.js | 402 +
phpMyAdmin/js/jquery/jquery.fullscreen.js | 60 +
phpMyAdmin/js/jquery/jquery.json-2.2.js | 4 -
phpMyAdmin/js/jquery/jquery.json-2.4.js | 199 +
.../js/jquery/jquery.menuResizer-1.0.js | 181 +
phpMyAdmin/js/jquery/jquery.mousewheel.js | 86 +-
phpMyAdmin/js/jquery/jquery.qtip-1.0.0-rc3.js | 73 -
phpMyAdmin/js/jquery/jquery.sortableTable.js | 279 +-
phpMyAdmin/js/jquery/jquery.sprintf.js | 74 +-
phpMyAdmin/js/jquery/jquery.svg.js | 1430 +-
phpMyAdmin/js/jquery/jquery.tablesorter.js | 1056 +-
phpMyAdmin/js/jquery/src/README | 9 +
.../src/jquery-ui/jquery.ui.accordion.js | 731 +
.../src/jquery-ui/jquery.ui.autocomplete.js | 602 +
.../jquery/src/jquery-ui/jquery.ui.button.js | 418 +
.../js/jquery/src/jquery-ui/jquery.ui.core.js | 356 +
.../src/jquery-ui/jquery.ui.datepicker.js | 1846 +++
.../jquery/src/jquery-ui/jquery.ui.dialog.js | 858 ++
.../src/jquery-ui/jquery.ui.draggable.js | 836 ++
.../src/jquery-ui/jquery.ui.droppable.js | 294 +
.../src/jquery-ui/jquery.ui.effect-blind.js | 82 +
.../src/jquery-ui/jquery.ui.effect-bounce.js | 113 +
.../src/jquery-ui/jquery.ui.effect-clip.js | 67 +
.../src/jquery-ui/jquery.ui.effect-drop.js | 65 +
.../src/jquery-ui/jquery.ui.effect-explode.js | 97 +
.../src/jquery-ui/jquery.ui.effect-fade.js | 30 +
.../src/jquery-ui/jquery.ui.effect-fold.js | 76 +
.../jquery-ui/jquery.ui.effect-highlight.js | 50 +
.../src/jquery-ui/jquery.ui.effect-pulsate.js | 63 +
.../src/jquery-ui/jquery.ui.effect-scale.js | 318 +
.../src/jquery-ui/jquery.ui.effect-shake.js | 74 +
.../src/jquery-ui/jquery.ui.effect-slide.js | 64 +
.../jquery-ui/jquery.ui.effect-transfer.js | 47 +
.../jquery/src/jquery-ui/jquery.ui.effect.js | 1276 ++
.../js/jquery/src/jquery-ui/jquery.ui.menu.js | 610 +
.../jquery/src/jquery-ui/jquery.ui.mouse.js | 169 +
.../src/jquery-ui/jquery.ui.position.js | 517 +
.../src/jquery-ui/jquery.ui.progressbar.js | 105 +
.../src/jquery-ui/jquery.ui.resizable.js | 801 ++
.../src/jquery-ui/jquery.ui.selectable.js | 261 +
.../jquery/src/jquery-ui/jquery.ui.slider.js | 644 +
.../src/jquery-ui/jquery.ui.sortable.js | 1096 ++
.../jquery/src/jquery-ui/jquery.ui.spinner.js | 478 +
.../js/jquery/src/jquery-ui/jquery.ui.tabs.js | 1366 ++
.../jquery/src/jquery-ui/jquery.ui.tooltip.js | 398 +
.../jquery/src/jquery-ui/jquery.ui.widget.js | 528 +
phpMyAdmin/js/jquery/src/jquery/ajax.js | 855 ++
phpMyAdmin/js/jquery/src/jquery/ajax/jsonp.js | 80 +
.../js/jquery/src/jquery/ajax/script.js | 57 +
phpMyAdmin/js/jquery/src/jquery/ajax/xhr.js | 111 +
phpMyAdmin/js/jquery/src/jquery/attributes.js | 502 +
phpMyAdmin/js/jquery/src/jquery/callbacks.js | 197 +
phpMyAdmin/js/jquery/src/jquery/core.js | 846 ++
phpMyAdmin/js/jquery/src/jquery/css.js | 563 +
phpMyAdmin/js/jquery/src/jquery/data.js | 356 +
phpMyAdmin/js/jquery/src/jquery/deferred.js | 141 +
phpMyAdmin/js/jquery/src/jquery/deprecated.js | 11 +
phpMyAdmin/js/jquery/src/jquery/dimensions.js | 41 +
phpMyAdmin/js/jquery/src/jquery/effects.js | 730 +
.../js/jquery/src/jquery/event-alias.js | 32 +
phpMyAdmin/js/jquery/src/jquery/event.js | 829 ++
phpMyAdmin/js/jquery/src/jquery/intro.js | 54 +
.../js/jquery/src/jquery/manipulation.js | 577 +
phpMyAdmin/js/jquery/src/jquery/offset.js | 167 +
phpMyAdmin/js/jquery/src/jquery/outro.js | 6 +
phpMyAdmin/js/jquery/src/jquery/queue.js | 145 +
.../js/jquery/src/jquery/selector-native.js | 164 +
phpMyAdmin/js/jquery/src/jquery/serialize.js | 99 +
.../js/jquery/src/jquery/sizzle-jquery.js | 7 +
phpMyAdmin/js/jquery/src/jquery/support.js | 113 +
phpMyAdmin/js/jquery/src/jquery/traversing.js | 283 +
phpMyAdmin/js/jquery/src/jquery/wrap.js | 69 +
phpMyAdmin/js/jquery/timepicker.js | 43 -
phpMyAdmin/js/keyhandler.js | 105 +-
phpMyAdmin/js/line_counts.php | 154 +
phpMyAdmin/js/makegrid.js | 1949 ++-
phpMyAdmin/js/messages.php | 193 +-
phpMyAdmin/js/navigation.js | 1211 +-
phpMyAdmin/js/openlayers/OpenLayers.js | 4289 +++---
phpMyAdmin/js/pmd/ajax.js | 67 +-
phpMyAdmin/js/pmd/history.js | 820 +-
phpMyAdmin/js/pmd/iecanvas.js | 156 +-
phpMyAdmin/js/pmd/init.js | 31 +
phpMyAdmin/js/pmd/move.js | 1332 +-
phpMyAdmin/js/querywindow.js | 27 +-
phpMyAdmin/js/replication.js | 76 +-
phpMyAdmin/js/rte.js | 903 ++
phpMyAdmin/js/rte/common.js | 9 -
phpMyAdmin/js/rte/events.js | 1 -
phpMyAdmin/js/rte/routines.js | 15 -
phpMyAdmin/js/rte/triggers.js | 1 -
phpMyAdmin/js/server_databases.js | 130 +
phpMyAdmin/js/server_plugins.js | 31 +-
phpMyAdmin/js/server_privileges.js | 703 +-
phpMyAdmin/js/server_status.js | 26 -
phpMyAdmin/js/server_status_advisor.js | 93 +
phpMyAdmin/js/server_status_monitor.js | 2203 ++-
phpMyAdmin/js/server_status_queries.js | 40 +
phpMyAdmin/js/server_status_sorter.js | 99 +
phpMyAdmin/js/server_status_variables.js | 110 +
phpMyAdmin/js/server_synchronize.js | 13 -
phpMyAdmin/js/server_user_groups.js | 42 +
phpMyAdmin/js/server_variables.js | 165 +-
phpMyAdmin/js/sql.js | 510 +-
phpMyAdmin/js/tbl_change.js | 544 +-
phpMyAdmin/js/tbl_chart.js | 336 +-
phpMyAdmin/js/tbl_find_replace.js | 47 +
phpMyAdmin/js/tbl_gis_visualization.js | 363 +-
phpMyAdmin/js/tbl_relation.js | 136 +-
phpMyAdmin/js/tbl_select.js | 233 +-
phpMyAdmin/js/tbl_structure.js | 528 +-
phpMyAdmin/js/tbl_zoom_plot_jqplot.js | 636 +-
phpMyAdmin/js/tracekit/tracekit.js | 1114 ++
phpMyAdmin/js/update-location.js | 2 -
phpMyAdmin/libraries/.htaccess | 3 -
phpMyAdmin/libraries/Advisor.class.php | 318 +-
phpMyAdmin/libraries/Config.class.php | 874 +-
phpMyAdmin/libraries/DBQbe.class.php | 1374 ++
.../libraries/DatabaseInterface.class.php | 2353 ++++
phpMyAdmin/libraries/DbSearch.class.php | 499 +
phpMyAdmin/libraries/DisplayResults.class.php | 6036 ++++++++
phpMyAdmin/libraries/Error.class.php | 214 +-
phpMyAdmin/libraries/Error_Handler.class.php | 262 +-
phpMyAdmin/libraries/File.class.php | 604 +-
phpMyAdmin/libraries/Footer.class.php | 319 +
phpMyAdmin/libraries/Header.class.php | 698 +
phpMyAdmin/libraries/Index.class.php | 394 +-
phpMyAdmin/libraries/List.class.php | 45 +-
phpMyAdmin/libraries/List_Database.class.php | 380 +-
phpMyAdmin/libraries/Menu.class.php | 588 +
phpMyAdmin/libraries/Message.class.php | 304 +-
.../libraries/OutputBuffering.class.php | 142 +
phpMyAdmin/libraries/PDF.class.php | 75 +-
phpMyAdmin/libraries/PMA.php | 56 +-
phpMyAdmin/libraries/Partition.class.php | 41 +-
phpMyAdmin/libraries/RecentTable.class.php | 97 +-
phpMyAdmin/libraries/Response.class.php | 380 +
phpMyAdmin/libraries/Scripts.class.php | 248 +
.../libraries/ServerStatusData.class.php | 407 +
phpMyAdmin/libraries/StorageEngine.class.php | 98 +-
phpMyAdmin/libraries/String.class.php | 261 +
.../libraries/StringAbstractType.class.php | 35 +
phpMyAdmin/libraries/StringByte.int.php | 60 +
phpMyAdmin/libraries/StringCType.class.php | 110 +
phpMyAdmin/libraries/StringMB.class.php | 92 +
phpMyAdmin/libraries/StringNative.class.php | 87 +
.../libraries/StringNativeType.class.php | 138 +
phpMyAdmin/libraries/StringType.int.php | 85 +
phpMyAdmin/libraries/Table.class.php | 1023 +-
phpMyAdmin/libraries/TableSearch.class.php | 1469 ++
phpMyAdmin/libraries/Theme.class.php | 364 +-
phpMyAdmin/libraries/Theme_Manager.class.php | 217 +-
phpMyAdmin/libraries/Tracker.class.php | 340 +-
phpMyAdmin/libraries/Types.class.php | 986 ++
phpMyAdmin/libraries/Util.class.php | 4366 ++++++
phpMyAdmin/libraries/advisory_rules.txt | 117 +-
phpMyAdmin/libraries/auth/config.auth.lib.php | 134 -
phpMyAdmin/libraries/auth/cookie.auth.lib.php | 600 -
phpMyAdmin/libraries/auth/http.auth.lib.php | 237 -
phpMyAdmin/libraries/auth/signon.auth.lib.php | 249 -
.../libraries/bfShapeFiles/ShapeFile.lib.php | 35 +-
phpMyAdmin/libraries/blobstreaming.lib.php | 582 -
phpMyAdmin/libraries/blowfish.php | 535 -
phpMyAdmin/libraries/bookmark.lib.php | 135 +-
.../libraries/browse_foreigners.lib.php | 415 +
.../libraries/build_html_for_db.lib.php | 105 +-
.../libraries/charset_conversion.lib.php | 65 +-
.../libraries/check_user_privileges.lib.php | 109 +-
phpMyAdmin/libraries/cleanup.lib.php | 14 +-
phpMyAdmin/libraries/common.inc.php | 476 +-
phpMyAdmin/libraries/common.lib.php | 3840 -----
phpMyAdmin/libraries/config.default.php | 791 +-
phpMyAdmin/libraries/config.values.php | 247 +-
.../libraries/config/ConfigFile.class.php | 287 +-
phpMyAdmin/libraries/config/Form.class.php | 64 +-
.../libraries/config/FormDisplay.class.php | 594 +-
.../libraries/config/FormDisplay.tpl.php | 429 +-
.../libraries/config/Validator.class.php | 598 +
.../libraries/config/config_functions.lib.php | 20 +-
phpMyAdmin/libraries/config/messages.inc.php | 241 +-
phpMyAdmin/libraries/config/setup.forms.php | 130 +-
.../config/user_preferences.forms.php | 90 +-
phpMyAdmin/libraries/config/validate.lib.php | 481 -
phpMyAdmin/libraries/core.lib.php | 480 +-
phpMyAdmin/libraries/create_addfield.lib.php | 325 +
.../data_dictionary_relations.lib.php | 6 +-
phpMyAdmin/libraries/data_drizzle.inc.php | 225 -
phpMyAdmin/libraries/data_mysql.inc.php | 286 -
.../libraries/database_interface.inc.php | 87 +
.../libraries/database_interface.lib.php | 1855 ---
phpMyAdmin/libraries/db_common.inc.php | 54 +-
phpMyAdmin/libraries/db_info.inc.php | 260 +-
phpMyAdmin/libraries/db_links.inc.php | 158 -
phpMyAdmin/libraries/db_structure.lib.php | 125 -
phpMyAdmin/libraries/db_table_exists.lib.php | 70 +-
phpMyAdmin/libraries/dbi/DBIDrizzle.class.php | 712 +
phpMyAdmin/libraries/dbi/DBIDummy.class.php | 869 ++
phpMyAdmin/libraries/dbi/DBIExtension.int.php | 248 +
phpMyAdmin/libraries/dbi/DBIMysql.class.php | 570 +
phpMyAdmin/libraries/dbi/DBIMysqli.class.php | 764 +
.../libraries/dbi/drizzle-wrappers.lib.php | 345 +-
phpMyAdmin/libraries/dbi/drizzle.dbi.lib.php | 603 -
phpMyAdmin/libraries/dbi/mysql.dbi.lib.php | 476 -
phpMyAdmin/libraries/dbi/mysqli.dbi.lib.php | 679 -
.../libraries/display_change_password.lib.php | 142 +-
.../libraries/display_create_database.lib.php | 60 +-
.../libraries/display_create_table.lib.php | 66 +-
phpMyAdmin/libraries/display_export.inc.php | 72 +
phpMyAdmin/libraries/display_export.lib.php | 972 +-
.../libraries/display_git_revision.lib.php | 83 +
phpMyAdmin/libraries/display_import.inc.php | 54 +
phpMyAdmin/libraries/display_import.lib.php | 807 +-
.../libraries/display_import_ajax.lib.php | 80 +-
.../libraries/display_select_lang.lib.php | 133 +-
.../libraries/display_structure.inc.php | 267 +
phpMyAdmin/libraries/display_tbl.lib.php | 3032 ----
phpMyAdmin/libraries/engines/bdb.lib.php | 18 +-
.../libraries/engines/berkeleydb.lib.php | 8 +-
phpMyAdmin/libraries/engines/binlog.lib.php | 7 +-
phpMyAdmin/libraries/engines/innobase.lib.php | 5 +
phpMyAdmin/libraries/engines/innodb.lib.php | 327 +-
phpMyAdmin/libraries/engines/memory.lib.php | 12 +-
phpMyAdmin/libraries/engines/merge.lib.php | 6 +
.../libraries/engines/mrg_myisam.lib.php | 9 +-
phpMyAdmin/libraries/engines/myisam.lib.php | 12 +-
.../libraries/engines/ndbcluster.lib.php | 21 +-
phpMyAdmin/libraries/engines/pbms.lib.php | 106 -
phpMyAdmin/libraries/engines/pbxt.lib.php | 50 +-
.../engines/performance_schema.lib.php | 28 +
phpMyAdmin/libraries/error.inc.php | 12 +-
phpMyAdmin/libraries/error_report.lib.php | 358 +
phpMyAdmin/libraries/export/codegen.php | 334 -
phpMyAdmin/libraries/export/csv.php | 222 -
phpMyAdmin/libraries/export/excel.php | 43 -
phpMyAdmin/libraries/export/htmlword.php | 330 -
phpMyAdmin/libraries/export/json.php | 173 -
phpMyAdmin/libraries/export/latex.php | 509 -
phpMyAdmin/libraries/export/mediawiki.php | 159 -
phpMyAdmin/libraries/export/ods.php | 221 -
phpMyAdmin/libraries/export/odt.php | 405 -
phpMyAdmin/libraries/export/pdf.php | 454 -
phpMyAdmin/libraries/export/php_array.php | 175 -
phpMyAdmin/libraries/export/sql.php | 1290 --
phpMyAdmin/libraries/export/texytext.php | 309 -
phpMyAdmin/libraries/export/xml.php | 386 -
phpMyAdmin/libraries/export/yaml.php | 169 -
...{file_listing.php => file_listing.lib.php} | 16 +-
phpMyAdmin/libraries/footer.inc.php | 193 -
phpMyAdmin/libraries/gis/pma_gis_factory.php | 21 +-
phpMyAdmin/libraries/gis/pma_gis_geometry.php | 269 +-
.../gis/pma_gis_geometrycollection.php | 103 +-
.../libraries/gis/pma_gis_linestring.php | 78 +-
.../libraries/gis/pma_gis_multilinestring.php | 108 +-
.../libraries/gis/pma_gis_multipoint.php | 119 +-
.../libraries/gis/pma_gis_multipolygon.php | 125 +-
phpMyAdmin/libraries/gis/pma_gis_point.php | 94 +-
phpMyAdmin/libraries/gis/pma_gis_polygon.php | 90 +-
.../libraries/gis/pma_gis_visualization.php | 109 +-
phpMyAdmin/libraries/grab_globals.lib.php | 118 -
phpMyAdmin/libraries/header.inc.php | 218 -
phpMyAdmin/libraries/header_http.inc.php | 37 -
.../libraries/header_meta_style.inc.php | 51 -
phpMyAdmin/libraries/header_printview.inc.php | 76 -
phpMyAdmin/libraries/header_scripts.inc.php | 82 -
phpMyAdmin/libraries/iconv_wrapper.lib.php | 78 +-
phpMyAdmin/libraries/import.lib.php | 683 +-
phpMyAdmin/libraries/import/README | 41 -
phpMyAdmin/libraries/import/csv.php | 455 -
phpMyAdmin/libraries/import/docsql.php | 96 -
phpMyAdmin/libraries/import/ldi.php | 110 -
phpMyAdmin/libraries/import/ods.php | 306 -
phpMyAdmin/libraries/import/shp.php | 426 -
phpMyAdmin/libraries/import/sql.php | 321 -
phpMyAdmin/libraries/import/upload/apc.php | 66 -
.../libraries/import/upload/noplugin.php | 44 -
.../import/upload/uploadprogress.php | 75 -
phpMyAdmin/libraries/import/xml.php | 317 -
phpMyAdmin/libraries/index.lib.php | 49 +
.../information_schema_relations.lib.php | 197 +
phpMyAdmin/libraries/insert_edit.lib.php | 2920 ++++
phpMyAdmin/libraries/ip_allow_deny.lib.php | 236 +-
phpMyAdmin/libraries/js_escape.lib.php | 51 +-
phpMyAdmin/libraries/kanji-encoding.lib.php | 121 +-
phpMyAdmin/libraries/language_stats.inc.php | 114 +-
phpMyAdmin/libraries/logging.lib.php | 10 +-
phpMyAdmin/libraries/mime.lib.php | 6 +-
phpMyAdmin/libraries/mult_submits.inc.php | 547 +-
phpMyAdmin/libraries/mult_submits.lib.php | 627 +
phpMyAdmin/libraries/mysql_charsets.inc.php | 143 +
phpMyAdmin/libraries/mysql_charsets.lib.php | 142 +-
.../libraries/navigation/Navigation.class.php | 211 +
.../navigation/NavigationHeader.class.php | 310 +
.../navigation/NavigationTree.class.php | 1166 ++
.../navigation/NodeFactory.class.php | 97 +
.../libraries/navigation/Nodes/Node.class.php | 441 +
.../navigation/Nodes/Node_Column.class.php | 46 +
.../Nodes/Node_Column_Container.class.php | 57 +
.../navigation/Nodes/Node_Database.class.php | 327 +
.../Nodes/Node_DatabaseChild.class.php | 52 +
.../Nodes/Node_Database_Container.class.php | 47 +
.../navigation/Nodes/Node_Event.class.php | 57 +
.../Nodes/Node_Event_Container.class.php | 54 +
.../navigation/Nodes/Node_Function.class.php | 57 +
.../Nodes/Node_Function_Container.class.php | 53 +
.../navigation/Nodes/Node_Index.class.php | 45 +
.../Nodes/Node_Index_Container.class.php | 55 +
.../navigation/Nodes/Node_Procedure.class.php | 57 +
.../Nodes/Node_Procedure_Container.class.php | 55 +
.../navigation/Nodes/Node_Table.class.php | 186 +
.../Nodes/Node_Table_Container.class.php | 60 +
.../navigation/Nodes/Node_Trigger.class.php | 45 +
.../Nodes/Node_Trigger_Container.class.php | 55 +
.../navigation/Nodes/Node_View.class.php | 57 +
.../Nodes/Node_View_Container.class.php | 60 +
.../libraries/navigation_header.inc.php | 134 -
phpMyAdmin/libraries/ob.lib.php | 96 -
phpMyAdmin/libraries/opendocument.lib.php | 205 +-
phpMyAdmin/libraries/operations.lib.php | 1619 +++
phpMyAdmin/libraries/parse_analyze.inc.php | 144 +
phpMyAdmin/libraries/parse_analyze.lib.php | 59 -
phpMyAdmin/libraries/php-gettext/gettext.inc | 13 +-
phpMyAdmin/libraries/phpseclib/Crypt/AES.php | 612 +
.../libraries/phpseclib/Crypt/Rijndael.php | 1479 ++
phpMyAdmin/libraries/plugin_interface.lib.php | 539 +-
.../plugins/AuthenticationPlugin.class.php | 51 +
.../libraries/plugins/ExportPlugin.class.php | 206 +
.../libraries/plugins/ImportPlugin.class.php | 59 +
.../libraries/plugins/PluginManager.class.php | 132 +
.../plugins/PluginObserver.class.php | 91 +
.../plugins/TransformationsInterface.int.php | 49 +
.../plugins/TransformationsPlugin.class.php | 51 +
.../libraries/plugins/UploadInterface.int.php | 36 +
.../auth/AuthenticationConfig.class.php | 174 +
.../auth/AuthenticationCookie.class.php | 807 ++
.../plugins/auth/AuthenticationHttp.class.php | 261 +
.../auth/AuthenticationSignon.class.php | 299 +
.../libraries/plugins/auth/recaptchalib.php | 277 +
.../auth/swekey/authentication.inc.php | 0
.../{ => plugins}/auth/swekey/musbe-ca.crt | 0
.../auth/swekey/swekey.auth.lib.php | 148 +-
.../{ => plugins}/auth/swekey/swekey.php | 199 +-
.../plugins/export/ExportCodegen.class.php | 423 +
.../plugins/export/ExportCsv.class.php | 321 +
.../plugins/export/ExportExcel.class.php | 105 +
.../plugins/export/ExportHtmlword.class.php | 647 +
.../plugins/export/ExportJson.class.php | 210 +
.../plugins/export/ExportLatex.class.php | 657 +
.../plugins/export/ExportMediawiki.class.php | 366 +
.../plugins/export/ExportOds.class.php | 336 +
.../plugins/export/ExportOdt.class.php | 734 +
.../plugins/export/ExportPdf.class.php | 268 +
.../plugins/export/ExportPhparray.class.php | 229 +
.../plugins/export/ExportSql.class.php | 2017 +++
.../plugins/export/ExportTexytext.class.php | 576 +
.../plugins/export/ExportXml.class.php | 546 +
.../plugins/export/ExportYaml.class.php | 216 +
.../plugins/export/PMA_ExportPdf.class.php | 426 +
phpMyAdmin/libraries/plugins/export/README | 276 +
.../plugins/export/TableProperty.class.php | 286 +
.../import/AbstractImportCsv.class.php | 91 +
.../plugins/import/ImportCsv.class.php | 608 +
.../plugins/import/ImportLdi.class.php | 174 +
.../plugins/import/ImportMediawiki.class.php | 573 +
.../plugins/import/ImportOds.class.php | 415 +
.../plugins/import/ImportShp.class.php | 335 +
.../plugins/import/ImportSql.class.php | 447 +
.../plugins/import/ImportXml.class.php | 379 +
phpMyAdmin/libraries/plugins/import/README | 172 +
.../plugins/import/ShapeFile.class.php | 102 +
.../plugins/import/ShapeRecord.class.php | 161 +
.../plugins/import/upload/UploadApc.class.php | 84 +
.../import/upload/UploadNoplugin.class.php | 64 +
.../import/upload/UploadProgress.class.php | 94 +
.../import/upload/UploadSession.class.php | 96 +
...Application_Octetstream_Download.class.php | 43 +
.../Application_Octetstream_Hex.class.php | 44 +
.../Image_JPEG_Inline.class.php | 44 +
.../transformations/Image_JPEG_Link.class.php | 44 +
.../Image_PNG_Inline.class.php | 44 +
.../libraries/plugins/transformations/README | 4 +
.../plugins/transformations/TEMPLATE | 46 +
.../plugins/transformations/TEMPLATE_ABSTRACT | 89 +
.../Text_Plain_Append.class.php | 45 +
.../Text_Plain_Dateformat.class.php | 44 +
.../Text_Plain_External.class.php | 44 +
.../Text_Plain_Formatted.class.php | 44 +
.../Text_Plain_Imagelink.class.php | 44 +
.../transformations/Text_Plain_Link.class.php | 44 +
.../Text_Plain_Longtoipv4.class.php | 44 +
.../transformations/Text_Plain_Sql.class.php | 44 +
.../Text_Plain_Substring.class.php | 44 +
.../AppendTransformationsPlugin.class.php | 84 +
.../DateFormatTransformationsPlugin.class.php | 178 +
.../DownloadTransformationsPlugin.class.php | 110 +
.../ExternalTransformationsPlugin.class.php | 182 +
.../FormattedTransformationsPlugin.class.php | 80 +
.../HexTransformationsPlugin.class.php | 91 +
.../ImageLinkTransformationsPlugin.class.php | 87 +
.../InlineTransformationsPlugin.class.php | 101 +
.../LongToIPv4TransformationsPlugin.class.php | 83 +
.../SQLTransformationsPlugin.class.php | 82 +
.../SubstringTransformationsPlugin.class.php | 118 +
...xtImageLinkTransformationsPlugin.class.php | 96 +
.../TextLinkTransformationsPlugin.class.php | 98 +
.../transformations/generator_main_class.sh | 16 +
.../transformations/generator_plugin.sh | 64 +
phpMyAdmin/libraries/pmd_common.php | 205 +-
.../properties/PropertyItem.class.php | 49 +
.../options/OptionsPropertyGroup.class.php | 102 +
.../options/OptionsPropertyItem.class.php | 127 +
.../options/OptionsPropertyOneItem.class.php | 172 +
.../groups/OptionsPropertyMainGroup.class.php | 35 +
.../groups/OptionsPropertyRootGroup.class.php | 35 +
.../groups/OptionsPropertySubgroup.class.php | 68 +
.../options/items/BoolPropertyItem.class.php | 35 +
.../options/items/DocPropertyItem.class.php | 35 +
.../items/HiddenPropertyItem.class.php | 35 +
.../items/MessageOnlyPropertyItem.class.php | 35 +
.../items/NumberPropertyItem.class.php | 35 +
.../options/items/RadioPropertyItem.class.php | 35 +
.../items/SelectPropertyItem.class.php | 35 +
.../options/items/TextPropertyItem.class.php | 35 +
.../plugins/ExportPluginProperties.class.php | 214 +
.../plugins/ImportPluginProperties.class.php | 184 +
.../plugins/PluginPropertyItem.class.php | 36 +
phpMyAdmin/libraries/relation.lib.php | 1051 +-
phpMyAdmin/libraries/relation_cleanup.lib.php | 184 +-
phpMyAdmin/libraries/replication.inc.php | 271 +-
phpMyAdmin/libraries/replication_gui.lib.php | 1041 +-
phpMyAdmin/libraries/rte/rte_events.lib.php | 169 +-
phpMyAdmin/libraries/rte/rte_export.lib.php | 40 +-
phpMyAdmin/libraries/rte/rte_footer.lib.php | 28 +-
phpMyAdmin/libraries/rte/rte_list.lib.php | 182 +-
phpMyAdmin/libraries/rte/rte_main.inc.php | 52 +-
phpMyAdmin/libraries/rte/rte_routines.lib.php | 768 +-
phpMyAdmin/libraries/rte/rte_triggers.lib.php | 158 +-
phpMyAdmin/libraries/rte/rte_words.lib.php | 13 +-
phpMyAdmin/libraries/sanitizing.lib.php | 87 +-
.../schema/Dia_Relation_Schema.class.php | 281 +-
.../schema/Eps_Relation_Schema.class.php | 160 +-
.../schema/Export_Relation_Schema.class.php | 46 +-
.../schema/Pdf_Relation_Schema.class.php | 428 +-
.../schema/Svg_Relation_Schema.class.php | 279 +-
.../libraries/schema/User_Schema.class.php | 754 +-
.../schema/Visio_Relation_Schema.class.php | 645 -
phpMyAdmin/libraries/select_lang.lib.php | 137 +-
phpMyAdmin/libraries/select_server.lib.php | 64 +-
phpMyAdmin/libraries/server_bin_log.lib.php | 245 +
.../libraries/server_collations.lib.php | 110 +
phpMyAdmin/libraries/server_common.inc.php | 33 +-
phpMyAdmin/libraries/server_common.lib.php | 67 +
phpMyAdmin/libraries/server_databases.lib.php | 509 +
phpMyAdmin/libraries/server_engines.lib.php | 146 +
phpMyAdmin/libraries/server_links.inc.php | 120 -
phpMyAdmin/libraries/server_plugins.lib.php | 205 +
.../libraries/server_privileges.lib.php | 4235 ++++++
phpMyAdmin/libraries/server_status.lib.php | 546 +
.../libraries/server_status_advisor.lib.php | 70 +
.../libraries/server_status_monitor.lib.php | 798 ++
.../libraries/server_status_queries.lib.php | 153 +
.../libraries/server_status_variables.lib.php | 765 +
.../libraries/server_synchronize.lib.php | 1389 --
.../libraries/server_user_groups.lib.php | 355 +
phpMyAdmin/libraries/server_users.lib.php | 55 +
phpMyAdmin/libraries/server_variables.lib.php | 1684 +++
phpMyAdmin/libraries/server_variables_doc.php | 1396 --
phpMyAdmin/libraries/session.inc.php | 27 +-
.../libraries/special_schema_links.lib.php | 406 +
phpMyAdmin/libraries/sql.lib.php | 2386 ++++
phpMyAdmin/libraries/sql_query_form.lib.php | 498 +-
phpMyAdmin/libraries/sqlparser.data.php | 737 +-
phpMyAdmin/libraries/sqlparser.lib.php | 4926 +++----
phpMyAdmin/libraries/sqlvalidator.class.php | 140 +-
phpMyAdmin/libraries/sqlvalidator.lib.php | 21 +-
phpMyAdmin/libraries/string.inc.php | 18 +
phpMyAdmin/libraries/string.lib.php | 101 -
phpMyAdmin/libraries/string_mb.lib.php | 66 -
phpMyAdmin/libraries/string_native.lib.php | 66 -
.../libraries/string_type_ctype.lib.php | 96 -
.../libraries/string_type_native.lib.php | 125 -
phpMyAdmin/libraries/structure.lib.php | 2673 ++++
phpMyAdmin/libraries/sysinfo.lib.php | 291 +-
phpMyAdmin/libraries/tbl_chart.lib.php | 295 +
.../tbl_columns_definition_form.inc.php | 159 +
.../tbl_columns_definition_form.lib.php | 1283 ++
phpMyAdmin/libraries/tbl_common.inc.php | 63 +
phpMyAdmin/libraries/tbl_common.php | 43 -
....lib.php => tbl_gis_visualization.lib.php} | 189 +-
phpMyAdmin/libraries/tbl_indexes.lib.php | 406 +
phpMyAdmin/libraries/tbl_info.inc.php | 45 +-
phpMyAdmin/libraries/tbl_links.inc.php | 138 -
phpMyAdmin/libraries/tbl_printview.lib.php | 600 +
phpMyAdmin/libraries/tbl_properties.inc.php | 718 -
phpMyAdmin/libraries/tbl_relation.lib.php | 1036 ++
.../libraries/tbl_replace_fields.inc.php | 111 -
phpMyAdmin/libraries/tbl_select.lib.php | 385 -
phpMyAdmin/libraries/tbl_tracking.lib.php | 1210 ++
phpMyAdmin/libraries/tbl_views.lib.php | 159 +
phpMyAdmin/libraries/tcpdf/README.TXT | 50 +-
.../libraries/tcpdf/config/tcpdf_config.php | 387 +-
phpMyAdmin/libraries/tcpdf/encodings_maps.php | 846 --
.../libraries/tcpdf/fonts/dejavusans.ctg.z | Bin 10183 -> 10120 bytes
.../libraries/tcpdf/fonts/dejavusans.php | 2 +-
.../libraries/tcpdf/fonts/dejavusansb.ctg.z | Bin 9908 -> 9854 bytes
.../libraries/tcpdf/fonts/dejavusansb.php | 2 +-
phpMyAdmin/libraries/tcpdf/htmlcolors.php | 199 -
.../libraries/tcpdf/include/tcpdf_colors.php | 462 +
.../tcpdf_font_data.php} | 138 +-
.../libraries/tcpdf/include/tcpdf_fonts.php | 2562 ++++
.../libraries/tcpdf/include/tcpdf_images.php | 355 +
.../libraries/tcpdf/include/tcpdf_static.php | 2837 ++++
phpMyAdmin/libraries/tcpdf/tcpdf.php | 9862 ++++---------
.../libraries/tcpdf/tcpdf_autoconfig.php | 233 +
phpMyAdmin/libraries/transformations.lib.php | 324 +-
phpMyAdmin/libraries/transformations/README | 4 -
phpMyAdmin/libraries/transformations/TEMPLATE | 35 -
.../transformations/TEMPLATE_MIMETYPE | 12 -
.../application_octetstream__download.inc.php | 51 -
.../application_octetstream__hex.inc.php | 35 -
.../libraries/transformations/generator.sh | 23 -
.../libraries/transformations/global.inc.php | 53 -
.../image_jpeg__inline.inc.php | 31 -
.../transformations/image_jpeg__link.inc.php | 27 -
.../transformations/image_png__inline.inc.php | 31 -
.../transformations/template_generator.sh | 24 -
.../template_generator_mimetype.sh | 19 -
.../text_plain__dateformat.inc.php | 103 -
.../text_plain__external.inc.php | 105 -
.../text_plain__formatted.inc.php | 22 -
.../text_plain__imagelink.inc.php | 26 -
.../transformations/text_plain__link.inc.php | 31 -
.../text_plain__longToIpv4.inc.php | 28 -
.../transformations/text_plain__sql.inc.php | 25 -
.../text_plain__substr.inc.php | 57 -
phpMyAdmin/libraries/url_generating.lib.php | 51 +-
phpMyAdmin/libraries/user_preferences.inc.php | 23 +-
phpMyAdmin/libraries/user_preferences.lib.php | 177 +-
phpMyAdmin/libraries/vendor_config.php | 15 +
phpMyAdmin/libraries/zip.lib.php | 53 +-
phpMyAdmin/libraries/zip_extension.lib.php | 31 +-
phpMyAdmin/license.php | 2 +-
.../locale/ar/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 111324 bytes
.../locale/bg/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 222546 bytes
.../locale/bn/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 398314 bytes
.../locale/ca/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 291704 bytes
.../locale/cs/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 307561 bytes
.../locale/da/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 302042 bytes
.../locale/de/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 316078 bytes
.../locale/el/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 424358 bytes
.../locale/en_GB/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 290452 bytes
.../locale/es/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 320281 bytes
.../locale/et/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 297377 bytes
.../locale/fi/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 195174 bytes
.../locale/fr/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 318927 bytes
.../locale/gl/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 306061 bytes
.../locale/hi/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 167057 bytes
.../locale/hu/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 314365 bytes
.../locale/ia/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 101559 bytes
.../locale/id/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 205341 bytes
.../locale/it/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 279428 bytes
.../locale/ja/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 307755 bytes
.../locale/ko/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 200518 bytes
.../locale/lt/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 148485 bytes
.../locale/nb/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 176008 bytes
.../locale/nl/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 310490 bytes
.../locale/pl/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 292528 bytes
.../locale/pt/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 169071 bytes
.../locale/pt_BR/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 313681 bytes
.../locale/ro/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 160369 bytes
.../locale/ru/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 394719 bytes
.../locale/si/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 296932 bytes
.../locale/sk/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 224659 bytes
.../locale/sl/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 305099 bytes
.../locale/sr@latin/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 155730 bytes
.../locale/sv/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 295122 bytes
.../locale/th/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 132620 bytes
.../locale/tr/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 314131 bytes
.../locale/uk/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 365703 bytes
.../locale/uz/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 174395 bytes
.../locale/uz@latin/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 133098 bytes
.../locale/zh_CN/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 260101 bytes
.../locale/zh_TW/LC_MESSAGES/phpmyadmin.mo | Bin 0 -> 285327 bytes
phpMyAdmin/navigation.php | 648 +-
phpMyAdmin/phpinfo.php | 5 +-
phpMyAdmin/phpmyadmin.css.php | 18 +-
phpMyAdmin/phpunit.xml.nocoverage | 13 +-
phpMyAdmin/pmd_display_field.php | 50 +-
phpMyAdmin/pmd_general.php | 599 +-
phpMyAdmin/pmd_pdf.php | 134 +-
phpMyAdmin/pmd_relation_new.php | 100 +-
phpMyAdmin/pmd_relation_upd.php | 50 +-
phpMyAdmin/pmd_save_pos.php | 84 +-
phpMyAdmin/prefs_forms.php | 51 +-
phpMyAdmin/prefs_manage.php | 205 +-
phpMyAdmin/print.css | 49 +-
phpMyAdmin/querywindow.php | 143 +-
phpMyAdmin/schema_edit.php | 65 +-
phpMyAdmin/schema_export.php | 64 +-
phpMyAdmin/server_binlog.php | 212 +-
phpMyAdmin/server_collations.php | 93 +-
phpMyAdmin/server_databases.php | 275 +-
phpMyAdmin/server_engines.php | 148 +-
phpMyAdmin/server_export.php | 58 +-
phpMyAdmin/server_import.php | 24 +-
phpMyAdmin/server_plugins.php | 185 +-
phpMyAdmin/server_privileges.php | 2496 +---
phpMyAdmin/server_replication.php | 371 +-
phpMyAdmin/server_sql.php | 30 +-
phpMyAdmin/server_status.php | 1827 +--
phpMyAdmin/server_status_advisor.php | 39 +
phpMyAdmin/server_status_monitor.php | 116 +
phpMyAdmin/server_status_queries.php | 53 +
phpMyAdmin/server_status_variables.php | 56 +
phpMyAdmin/server_user_groups.php | 64 +
phpMyAdmin/server_variables.php | 164 +-
phpMyAdmin/setup/ajax.js | 11 +
phpMyAdmin/setup/config.php | 19 +-
phpMyAdmin/setup/frames/.htaccess | 3 -
phpMyAdmin/setup/frames/config.inc.php | 53 +-
phpMyAdmin/setup/frames/form.inc.php | 6 +-
phpMyAdmin/setup/frames/index.inc.php | 345 +-
phpMyAdmin/setup/frames/menu.inc.php | 30 +-
phpMyAdmin/setup/frames/servers.inc.php | 10 +-
phpMyAdmin/setup/index.php | 26 +-
phpMyAdmin/setup/lib/.htaccess | 3 -
.../setup/lib/ConfigGenerator.class.php | 46 +-
phpMyAdmin/setup/lib/common.inc.php | 39 +-
phpMyAdmin/setup/lib/form_processing.lib.php | 17 +-
phpMyAdmin/setup/lib/index.lib.php | 420 +-
phpMyAdmin/setup/scripts.js | 169 +-
phpMyAdmin/setup/styles.css | 378 +-
phpMyAdmin/setup/validate.php | 8 +-
phpMyAdmin/show_config_errors.php | 29 +-
phpMyAdmin/sql.php | 1023 +-
phpMyAdmin/tbl_addfield.php | 198 +-
phpMyAdmin/tbl_change.php | 1118 +-
phpMyAdmin/tbl_chart.php | 219 +-
phpMyAdmin/tbl_create.php | 351 +-
phpMyAdmin/tbl_export.php | 57 +-
phpMyAdmin/tbl_find_replace.php | 63 +
phpMyAdmin/tbl_get_field.php | 37 +-
phpMyAdmin/tbl_gis_visualization.php | 188 +-
phpMyAdmin/tbl_import.php | 22 +-
phpMyAdmin/tbl_indexes.php | 294 +-
phpMyAdmin/tbl_move_copy.php | 52 +-
phpMyAdmin/tbl_operations.php | 883 +-
phpMyAdmin/tbl_printview.php | 414 +-
phpMyAdmin/tbl_relation.php | 563 +-
phpMyAdmin/tbl_replace.php | 556 +-
phpMyAdmin/tbl_row_action.php | 206 +-
phpMyAdmin/tbl_select.php | 304 +-
phpMyAdmin/tbl_sql.php | 37 +-
phpMyAdmin/tbl_structure.php | 978 +-
phpMyAdmin/tbl_tracking.php | 706 +-
phpMyAdmin/tbl_zoom_select.php | 505 +-
phpMyAdmin/themes.php | 35 +-
.../{theme_right.css.php => common.css.php} | 1664 +--
.../themes/original/css/navigation.css.php | 296 +
.../themes/original/css/theme_left.css.php | 254 -
.../themes/original/css/theme_print.css.php | 42 -
.../themes/original/img/b_column_add.png | Bin 0 -> 534 bytes
.../themes/original/img/b_find_replace.png | Bin 0 -> 1209 bytes
phpMyAdmin/themes/original/img/b_group.png | Bin 0 -> 796 bytes
.../themes/original/img/b_index_add.png | Bin 0 -> 429 bytes
phpMyAdmin/themes/original/img/b_move.png | Bin 0 -> 168 bytes
.../themes/original/img/b_table_add.png | Bin 0 -> 368 bytes
phpMyAdmin/themes/original/img/b_undo.png | Bin 0 -> 1306 bytes
phpMyAdmin/themes/original/img/b_view_add.png | Bin 0 -> 726 bytes
.../themes/original/img/docs_menu_bg.png | Bin 76 -> 0 bytes
phpMyAdmin/themes/original/img/item_ltr.png | Bin 112 -> 0 bytes
phpMyAdmin/themes/original/img/item_rtl.png | Bin 112 -> 0 bytes
phpMyAdmin/themes/original/img/lightbulb.png | Bin 0 -> 782 bytes
.../themes/original/img/lightbulb_off.png | Bin 0 -> 700 bytes
phpMyAdmin/themes/original/img/pmd/1.png | Bin 101 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/2.png | Bin 169 -> 0 bytes
.../themes/original/img/pmd/2leftarrow.png | Bin 702 -> 0 bytes
.../themes/original/img/pmd/2leftarrow_m.png | Bin 666 -> 0 bytes
.../themes/original/img/pmd/2rightarrow.png | Bin 737 -> 0 bytes
.../themes/original/img/pmd/2rightarrow_m.png | Bin 699 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/3.png | Bin 175 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/4.png | Bin 181 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/5.png | Bin 90 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/6.png | Bin 98 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/7.png | Bin 105 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/8.png | Bin 88 -> 0 bytes
.../original/img/pmd/FieldKey_small.png | Bin 229 -> 0 bytes
.../themes/original/img/pmd/Field_small.png | Bin 275 -> 0 bytes
.../original/img/pmd/Field_small_char.png | Bin 154 -> 0 bytes
.../original/img/pmd/Field_small_date.png | Bin 156 -> 0 bytes
.../original/img/pmd/Field_small_int.png | Bin 145 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/Header.png | Bin 125 -> 0 bytes
.../themes/original/img/pmd/Header_Linked.png | Bin 108 -> 0 bytes
.../themes/original/img/pmd/and_icon.png | Bin 792 -> 0 bytes
.../themes/original/img/pmd/ang_direct.png | Bin 679 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/bord.png | Bin 87 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/bottom.png | Bin 734 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/def.png | Bin 670 -> 0 bytes
.../themes/original/img/pmd/display_field.png | Bin 685 -> 0 bytes
.../themes/original/img/pmd/downarrow1.png | Bin 758 -> 0 bytes
.../themes/original/img/pmd/downarrow2.png | Bin 772 -> 0 bytes
.../themes/original/img/pmd/downarrow2_m.png | Bin 711 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/exec.png | Bin 796 -> 0 bytes
.../themes/original/img/pmd/exec_small.png | Bin 161 -> 0 bytes
.../themes/original/img/pmd/favicon.ico | Bin 1150 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/grid.png | Bin 688 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/help.png | Bin 714 -> 0 bytes
.../themes/original/img/pmd/help_relation.png | Bin 920 -> 0 bytes
.../original/img/pmd/left_panel_butt.png | Bin 129 -> 0 bytes
.../original/img/pmd/left_panel_tab.png | Bin 133 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/minus.png | Bin 1004 -> 0 bytes
.../themes/original/img/pmd/or_icon.png | Bin 611 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/pdf.png | Bin 905 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/plus.png | Bin 969 -> 0 bytes
.../themes/original/img/pmd/query_builder.png | Bin 685 -> 0 bytes
.../themes/original/img/pmd/relation.png | Bin 295 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/reload.png | Bin 874 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/resize.png | Bin 121 -> 0 bytes
.../themes/original/img/pmd/rightarrow1.png | Bin 746 -> 0 bytes
.../themes/original/img/pmd/rightarrow2.png | Bin 757 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/save.png | Bin 409 -> 0 bytes
.../themes/original/img/pmd/small_tab.png | Bin 180 -> 0 bytes
phpMyAdmin/themes/original/img/pmd/table.png | Bin 163 -> 0 bytes
.../themes/original/img/pmd/toggle_lines.png | Bin 630 -> 0 bytes
.../themes/original/img/pmd/top_panel.png | Bin 173 -> 0 bytes
.../themes/original/img/pmd/uparrow2_m.png | Bin 729 -> 0 bytes
.../themes/original/img/s_attention.png | Bin 629 -> 0 bytes
phpMyAdmin/themes/original/img/s_info.png | Bin 740 -> 147 bytes
phpMyAdmin/themes/original/img/s_okay.png | Bin 772 -> 0 bytes
phpMyAdmin/themes/original/img/s_process.png | Bin 475 -> 0 bytes
phpMyAdmin/themes/original/img/s_top.png | Bin 0 -> 443 bytes
phpMyAdmin/themes/original/img/sprites.png | Bin 16796 -> 20509 bytes
phpMyAdmin/themes/original/info.inc.php | 2 +-
.../images/ui-bg_glass_75_dadada_1x400.png | Bin 111 -> 159 bytes
.../jquery/jquery-ui-1.9.2.custom.css} | 517 +-
phpMyAdmin/themes/original/layout.inc.php | 35 +-
phpMyAdmin/themes/original/sprites.lib.php | 380 +-
.../themes/pmahomme/css/codemirror.css.php | 303 +
phpMyAdmin/themes/pmahomme/css/common.css.php | 2795 ++++
.../themes/pmahomme/css/enum_editor.css.php | 80 +
phpMyAdmin/themes/pmahomme/css/gis.css.php | 65 +
phpMyAdmin/themes/pmahomme/css/jqplot.css.php | 277 +
.../themes/pmahomme/css/navigation.css.php | 285 +
phpMyAdmin/themes/pmahomme/css/pmd.css.php | 530 +
.../pmahomme/css/resizable-menu.css.php | 57 +
phpMyAdmin/themes/pmahomme/css/rte.css.php | 43 +
.../themes/pmahomme/css/theme_left.css.php | 312 -
.../themes/pmahomme/css/theme_print.css.php | 42 -
.../themes/pmahomme/css/theme_right.css.php | 3736 -----
.../themes/pmahomme/img/b_column_add.png | Bin 0 -> 534 bytes
.../themes/pmahomme/img/b_find_replace.png | Bin 0 -> 883 bytes
phpMyAdmin/themes/pmahomme/img/b_group.png | Bin 0 -> 796 bytes
.../themes/pmahomme/img/b_index_add.png | Bin 0 -> 839 bytes
phpMyAdmin/themes/pmahomme/img/b_minus.png | Bin 187 -> 224 bytes
phpMyAdmin/themes/pmahomme/img/b_move.png | Bin 0 -> 520 bytes
phpMyAdmin/themes/pmahomme/img/b_plus.png | Bin 189 -> 237 bytes
.../themes/pmahomme/img/b_table_add.png | Bin 0 -> 676 bytes
phpMyAdmin/themes/pmahomme/img/b_undo.png | Bin 0 -> 1306 bytes
phpMyAdmin/themes/pmahomme/img/b_view_add.png | Bin 0 -> 766 bytes
phpMyAdmin/themes/pmahomme/img/body_bg.png | Bin 649 -> 0 bytes
.../pmahomme/img/database_list_li_hover.png | Bin 108 -> 0 bytes
.../themes/pmahomme/img/docs_menu_bg.png | Bin 76 -> 0 bytes
phpMyAdmin/themes/pmahomme/img/input_bg.gif | Bin 170 -> 0 bytes
phpMyAdmin/themes/pmahomme/img/item_ltr.png | Bin 112 -> 0 bytes
phpMyAdmin/themes/pmahomme/img/item_rtl.png | Bin 112 -> 0 bytes
.../themes/pmahomme/img/left_nav_bg.png | Bin 236 -> 297 bytes
phpMyAdmin/themes/pmahomme/img/lightbulb.png | Bin 0 -> 782 bytes
.../themes/pmahomme/img/lightbulb_off.png | Bin 0 -> 700 bytes
phpMyAdmin/themes/pmahomme/img/marked_bg.png | Bin 172 -> 0 bytes
.../pmahomme/img/pmd/exitFullscreen.png | Bin 0 -> 444 bytes
.../pmahomme/img/pmd/viewInFullscreen.png | Bin 0 -> 472 bytes
phpMyAdmin/themes/pmahomme/img/s_top.png | Bin 0 -> 443 bytes
phpMyAdmin/themes/pmahomme/img/sprites.png | Bin 38291 -> 41626 bytes
phpMyAdmin/themes/pmahomme/img/tab_bg.png | Bin 127 -> 0 bytes
.../themes/pmahomme/img/tab_hover_bg.png | Bin 502 -> 0 bytes
.../themes/pmahomme/img/tabactive_bg.png | Bin 106 -> 0 bytes
phpMyAdmin/themes/pmahomme/info.inc.php | 36 +-
.../images/ui-bg_glass_75_dadada_1x400.png | Bin 111 -> 159 bytes
.../jquery/jquery-ui-1.9.2.custom.css} | 517 +-
phpMyAdmin/themes/pmahomme/layout.inc.php | 64 +-
phpMyAdmin/themes/pmahomme/sprites.lib.php | 365 +-
phpMyAdmin/themes/sprites.css.php | 113 +-
phpMyAdmin/themes/svg_gradient.php | 33 +-
phpMyAdmin/transformation_overview.php | 25 +-
phpMyAdmin/transformation_wrapper.php | 94 +-
phpMyAdmin/url.php | 8 +-
phpMyAdmin/user_password.php | 278 +-
phpMyAdmin/version_check.php | 24 +-
phpMyAdmin/view_create.php | 325 +-
phpMyAdmin/view_operations.php | 66 +-
phpMyAdmin/webapp.php | 7 +-
968 files changed, 243347 insertions(+), 81113 deletions(-)
create mode 100644 phpMyAdmin/CONTRIBUTING.md
create mode 100644 phpMyAdmin/RELEASE-DATE-4.1.7
create mode 100644 phpMyAdmin/composer.json
create mode 100644 phpMyAdmin/doc/Makefile
create mode 100644 phpMyAdmin/doc/_ext/configext.py
create mode 100644 phpMyAdmin/doc/_ext/configext.pyc
create mode 100644 phpMyAdmin/doc/conf.py
create mode 100644 phpMyAdmin/doc/config.rst
create mode 100644 phpMyAdmin/doc/copyright.rst
create mode 100644 phpMyAdmin/doc/credits.rst
create mode 100644 phpMyAdmin/doc/developers.rst
create mode 100644 phpMyAdmin/doc/doctrees/config.doctree
create mode 100644 phpMyAdmin/doc/doctrees/copyright.doctree
create mode 100644 phpMyAdmin/doc/doctrees/credits.doctree
create mode 100644 phpMyAdmin/doc/doctrees/developers.doctree
create mode 100644 phpMyAdmin/doc/doctrees/environment.pickle
create mode 100644 phpMyAdmin/doc/doctrees/faq.doctree
create mode 100644 phpMyAdmin/doc/doctrees/glossary.doctree
create mode 100644 phpMyAdmin/doc/doctrees/index.doctree
create mode 100644 phpMyAdmin/doc/doctrees/intro.doctree
create mode 100644 phpMyAdmin/doc/doctrees/other.doctree
create mode 100644 phpMyAdmin/doc/doctrees/privileges.doctree
create mode 100644 phpMyAdmin/doc/doctrees/require.doctree
create mode 100644 phpMyAdmin/doc/doctrees/setup.doctree
create mode 100644 phpMyAdmin/doc/doctrees/transformations.doctree
create mode 100644 phpMyAdmin/doc/doctrees/user.doctree
create mode 100644 phpMyAdmin/doc/doctrees/vendors.doctree
create mode 100644 phpMyAdmin/doc/faq.rst
create mode 100644 phpMyAdmin/doc/glossary.rst
create mode 100644 phpMyAdmin/doc/html/.buildinfo
create mode 100644 phpMyAdmin/doc/html/_sources/config.txt
create mode 100644 phpMyAdmin/doc/html/_sources/copyright.txt
create mode 100644 phpMyAdmin/doc/html/_sources/credits.txt
create mode 100644 phpMyAdmin/doc/html/_sources/developers.txt
create mode 100644 phpMyAdmin/doc/html/_sources/faq.txt
create mode 100644 phpMyAdmin/doc/html/_sources/glossary.txt
create mode 100644 phpMyAdmin/doc/html/_sources/index.txt
create mode 100644 phpMyAdmin/doc/html/_sources/intro.txt
create mode 100644 phpMyAdmin/doc/html/_sources/other.txt
create mode 100644 phpMyAdmin/doc/html/_sources/privileges.txt
create mode 100644 phpMyAdmin/doc/html/_sources/require.txt
create mode 100644 phpMyAdmin/doc/html/_sources/setup.txt
create mode 100644 phpMyAdmin/doc/html/_sources/transformations.txt
create mode 100644 phpMyAdmin/doc/html/_sources/user.txt
create mode 100644 phpMyAdmin/doc/html/_sources/vendors.txt
create mode 100644 phpMyAdmin/doc/html/_static/ajax-loader.gif
create mode 100644 phpMyAdmin/doc/html/_static/basic.css
create mode 100644 phpMyAdmin/doc/html/_static/comment-bright.png
create mode 100644 phpMyAdmin/doc/html/_static/comment-close.png
create mode 100644 phpMyAdmin/doc/html/_static/comment.png
create mode 100644 phpMyAdmin/doc/html/_static/default.css
create mode 100644 phpMyAdmin/doc/html/_static/doctools.js
create mode 100644 phpMyAdmin/doc/html/_static/down-pressed.png
create mode 100644 phpMyAdmin/doc/html/_static/down.png
create mode 100644 phpMyAdmin/doc/html/_static/file.png
create mode 100644 phpMyAdmin/doc/html/_static/jquery.js
create mode 100644 phpMyAdmin/doc/html/_static/minus.png
create mode 100644 phpMyAdmin/doc/html/_static/plus.png
create mode 100644 phpMyAdmin/doc/html/_static/pygments.css
create mode 100644 phpMyAdmin/doc/html/_static/searchtools.js
create mode 100644 phpMyAdmin/doc/html/_static/sidebar.js
create mode 100644 phpMyAdmin/doc/html/_static/underscore.js
create mode 100644 phpMyAdmin/doc/html/_static/up-pressed.png
create mode 100644 phpMyAdmin/doc/html/_static/up.png
create mode 100644 phpMyAdmin/doc/html/_static/websupport.js
create mode 100644 phpMyAdmin/doc/html/config.html
create mode 100644 phpMyAdmin/doc/html/copyright.html
create mode 100644 phpMyAdmin/doc/html/credits.html
create mode 100644 phpMyAdmin/doc/html/developers.html
create mode 100644 phpMyAdmin/doc/html/faq.html
create mode 100644 phpMyAdmin/doc/html/genindex.html
create mode 100644 phpMyAdmin/doc/html/glossary.html
create mode 100644 phpMyAdmin/doc/html/index.html
create mode 100644 phpMyAdmin/doc/html/intro.html
create mode 100644 phpMyAdmin/doc/html/objects.inv
create mode 100644 phpMyAdmin/doc/html/other.html
create mode 100644 phpMyAdmin/doc/html/privileges.html
create mode 100644 phpMyAdmin/doc/html/require.html
create mode 100644 phpMyAdmin/doc/html/search.html
create mode 100644 phpMyAdmin/doc/html/searchindex.js
create mode 100644 phpMyAdmin/doc/html/setup.html
create mode 100644 phpMyAdmin/doc/html/transformations.html
create mode 100644 phpMyAdmin/doc/html/user.html
create mode 100644 phpMyAdmin/doc/html/vendors.html
create mode 100644 phpMyAdmin/doc/index.rst
create mode 100644 phpMyAdmin/doc/intro.rst
create mode 100644 phpMyAdmin/doc/make.bat
create mode 100644 phpMyAdmin/doc/other.rst
create mode 100644 phpMyAdmin/doc/privileges.rst
create mode 100644 phpMyAdmin/doc/require.rst
create mode 100644 phpMyAdmin/doc/setup.rst
create mode 100644 phpMyAdmin/doc/transformations.rst
create mode 100644 phpMyAdmin/doc/user.rst
create mode 100644 phpMyAdmin/doc/vendors.rst
create mode 100644 phpMyAdmin/error_report.php
create mode 100644 phpMyAdmin/js/ajax.js
delete mode 100644 phpMyAdmin/js/canvg/flashcanvas.js
delete mode 100644 phpMyAdmin/js/canvg/flashcanvas.swf
create mode 100644 phpMyAdmin/js/chart.js
create mode 100644 phpMyAdmin/js/codemirror/addon/runmode/runmode.js
delete mode 100644 phpMyAdmin/js/codemirror/mode/mysql/mysql.js
create mode 100644 phpMyAdmin/js/codemirror/mode/sql/sql.js
delete mode 100644 phpMyAdmin/js/date.js
create mode 100644 phpMyAdmin/js/doclinks.js
delete mode 100644 phpMyAdmin/js/dom-drag.js
create mode 100644 phpMyAdmin/js/error_report.js
create mode 100644 phpMyAdmin/js/get_scripts.js.php
create mode 100644 phpMyAdmin/js/jqplot/plugins/jqplot.byteFormatter.js
create mode 100644 phpMyAdmin/js/jquery/MIT-LICENSE.txt
delete mode 100644 phpMyAdmin/js/jquery/jquery-1.6.2.js
create mode 100644 phpMyAdmin/js/jquery/jquery-1.8.3.min.js
delete mode 100644 phpMyAdmin/js/jquery/jquery-ui-1.8.16.custom.js
create mode 100644 phpMyAdmin/js/jquery/jquery-ui-1.9.2.custom.min.js
create mode 100644 phpMyAdmin/js/jquery/jquery-ui-timepicker-addon.js
create mode 100644 phpMyAdmin/js/jquery/jquery.ba-hashchange-1.3.js
create mode 100644 phpMyAdmin/js/jquery/jquery.debounce-1.0.5.js
delete mode 100644 phpMyAdmin/js/jquery/jquery.event.drag-2.0.js
create mode 100644 phpMyAdmin/js/jquery/jquery.event.drag-2.2.js
create mode 100644 phpMyAdmin/js/jquery/jquery.fullscreen.js
delete mode 100644 phpMyAdmin/js/jquery/jquery.json-2.2.js
create mode 100644 phpMyAdmin/js/jquery/jquery.json-2.4.js
create mode 100644 phpMyAdmin/js/jquery/jquery.menuResizer-1.0.js
delete mode 100644 phpMyAdmin/js/jquery/jquery.qtip-1.0.0-rc3.js
create mode 100644 phpMyAdmin/js/jquery/src/README
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.accordion.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.autocomplete.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.button.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.core.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.datepicker.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.dialog.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.draggable.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.droppable.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.effect-blind.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.effect-bounce.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.effect-clip.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.effect-drop.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.effect-explode.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.effect-fade.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.effect-fold.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.effect-highlight.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.effect-pulsate.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.effect-scale.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.effect-shake.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.effect-slide.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.effect-transfer.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.effect.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.menu.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.mouse.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.position.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.progressbar.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.resizable.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.selectable.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.slider.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.sortable.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.spinner.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.tabs.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.tooltip.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery-ui/jquery.ui.widget.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/ajax.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/ajax/jsonp.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/ajax/script.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/ajax/xhr.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/attributes.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/callbacks.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/core.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/css.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/data.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/deferred.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/deprecated.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/dimensions.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/effects.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/event-alias.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/event.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/intro.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/manipulation.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/offset.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/outro.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/queue.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/selector-native.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/serialize.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/sizzle-jquery.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/support.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/traversing.js
create mode 100644 phpMyAdmin/js/jquery/src/jquery/wrap.js
delete mode 100644 phpMyAdmin/js/jquery/timepicker.js
create mode 100644 phpMyAdmin/js/line_counts.php
create mode 100644 phpMyAdmin/js/pmd/init.js
create mode 100644 phpMyAdmin/js/rte.js
delete mode 100644 phpMyAdmin/js/rte/common.js
delete mode 100644 phpMyAdmin/js/rte/events.js
delete mode 100644 phpMyAdmin/js/rte/routines.js
delete mode 100644 phpMyAdmin/js/rte/triggers.js
create mode 100644 phpMyAdmin/js/server_databases.js
delete mode 100644 phpMyAdmin/js/server_status.js
create mode 100644 phpMyAdmin/js/server_status_advisor.js
create mode 100644 phpMyAdmin/js/server_status_queries.js
create mode 100644 phpMyAdmin/js/server_status_sorter.js
create mode 100644 phpMyAdmin/js/server_status_variables.js
delete mode 100644 phpMyAdmin/js/server_synchronize.js
create mode 100644 phpMyAdmin/js/server_user_groups.js
create mode 100644 phpMyAdmin/js/tbl_find_replace.js
create mode 100644 phpMyAdmin/js/tracekit/tracekit.js
delete mode 100644 phpMyAdmin/js/update-location.js
delete mode 100644 phpMyAdmin/libraries/.htaccess
create mode 100644 phpMyAdmin/libraries/DBQbe.class.php
create mode 100644 phpMyAdmin/libraries/DatabaseInterface.class.php
create mode 100644 phpMyAdmin/libraries/DbSearch.class.php
create mode 100644 phpMyAdmin/libraries/DisplayResults.class.php
create mode 100644 phpMyAdmin/libraries/Footer.class.php
create mode 100644 phpMyAdmin/libraries/Header.class.php
create mode 100644 phpMyAdmin/libraries/Menu.class.php
create mode 100644 phpMyAdmin/libraries/OutputBuffering.class.php
create mode 100644 phpMyAdmin/libraries/Response.class.php
create mode 100644 phpMyAdmin/libraries/Scripts.class.php
create mode 100644 phpMyAdmin/libraries/ServerStatusData.class.php
create mode 100644 phpMyAdmin/libraries/String.class.php
create mode 100644 phpMyAdmin/libraries/StringAbstractType.class.php
create mode 100644 phpMyAdmin/libraries/StringByte.int.php
create mode 100644 phpMyAdmin/libraries/StringCType.class.php
create mode 100644 phpMyAdmin/libraries/StringMB.class.php
create mode 100644 phpMyAdmin/libraries/StringNative.class.php
create mode 100644 phpMyAdmin/libraries/StringNativeType.class.php
create mode 100644 phpMyAdmin/libraries/StringType.int.php
create mode 100644 phpMyAdmin/libraries/TableSearch.class.php
create mode 100644 phpMyAdmin/libraries/Types.class.php
create mode 100644 phpMyAdmin/libraries/Util.class.php
delete mode 100644 phpMyAdmin/libraries/auth/config.auth.lib.php
delete mode 100644 phpMyAdmin/libraries/auth/cookie.auth.lib.php
delete mode 100644 phpMyAdmin/libraries/auth/http.auth.lib.php
delete mode 100644 phpMyAdmin/libraries/auth/signon.auth.lib.php
delete mode 100644 phpMyAdmin/libraries/blobstreaming.lib.php
delete mode 100644 phpMyAdmin/libraries/blowfish.php
create mode 100644 phpMyAdmin/libraries/browse_foreigners.lib.php
delete mode 100644 phpMyAdmin/libraries/common.lib.php
create mode 100644 phpMyAdmin/libraries/config/Validator.class.php
delete mode 100644 phpMyAdmin/libraries/config/validate.lib.php
create mode 100644 phpMyAdmin/libraries/create_addfield.lib.php
delete mode 100644 phpMyAdmin/libraries/data_drizzle.inc.php
delete mode 100644 phpMyAdmin/libraries/data_mysql.inc.php
create mode 100644 phpMyAdmin/libraries/database_interface.inc.php
delete mode 100644 phpMyAdmin/libraries/database_interface.lib.php
delete mode 100644 phpMyAdmin/libraries/db_links.inc.php
delete mode 100644 phpMyAdmin/libraries/db_structure.lib.php
create mode 100644 phpMyAdmin/libraries/dbi/DBIDrizzle.class.php
create mode 100644 phpMyAdmin/libraries/dbi/DBIDummy.class.php
create mode 100644 phpMyAdmin/libraries/dbi/DBIExtension.int.php
create mode 100644 phpMyAdmin/libraries/dbi/DBIMysql.class.php
create mode 100644 phpMyAdmin/libraries/dbi/DBIMysqli.class.php
delete mode 100644 phpMyAdmin/libraries/dbi/drizzle.dbi.lib.php
delete mode 100644 phpMyAdmin/libraries/dbi/mysql.dbi.lib.php
delete mode 100644 phpMyAdmin/libraries/dbi/mysqli.dbi.lib.php
create mode 100644 phpMyAdmin/libraries/display_export.inc.php
create mode 100644 phpMyAdmin/libraries/display_git_revision.lib.php
create mode 100644 phpMyAdmin/libraries/display_import.inc.php
create mode 100644 phpMyAdmin/libraries/display_structure.inc.php
delete mode 100644 phpMyAdmin/libraries/display_tbl.lib.php
delete mode 100644 phpMyAdmin/libraries/engines/pbms.lib.php
create mode 100644 phpMyAdmin/libraries/engines/performance_schema.lib.php
create mode 100644 phpMyAdmin/libraries/error_report.lib.php
delete mode 100644 phpMyAdmin/libraries/export/codegen.php
delete mode 100644 phpMyAdmin/libraries/export/csv.php
delete mode 100644 phpMyAdmin/libraries/export/excel.php
delete mode 100644 phpMyAdmin/libraries/export/htmlword.php
delete mode 100644 phpMyAdmin/libraries/export/json.php
delete mode 100644 phpMyAdmin/libraries/export/latex.php
delete mode 100644 phpMyAdmin/libraries/export/mediawiki.php
delete mode 100644 phpMyAdmin/libraries/export/ods.php
delete mode 100644 phpMyAdmin/libraries/export/odt.php
delete mode 100644 phpMyAdmin/libraries/export/pdf.php
delete mode 100644 phpMyAdmin/libraries/export/php_array.php
delete mode 100644 phpMyAdmin/libraries/export/sql.php
delete mode 100644 phpMyAdmin/libraries/export/texytext.php
delete mode 100644 phpMyAdmin/libraries/export/xml.php
delete mode 100644 phpMyAdmin/libraries/export/yaml.php
rename phpMyAdmin/libraries/{file_listing.php => file_listing.lib.php} (84%)
delete mode 100644 phpMyAdmin/libraries/footer.inc.php
delete mode 100644 phpMyAdmin/libraries/grab_globals.lib.php
delete mode 100644 phpMyAdmin/libraries/header.inc.php
delete mode 100644 phpMyAdmin/libraries/header_http.inc.php
delete mode 100644 phpMyAdmin/libraries/header_meta_style.inc.php
delete mode 100644 phpMyAdmin/libraries/header_printview.inc.php
delete mode 100644 phpMyAdmin/libraries/header_scripts.inc.php
delete mode 100644 phpMyAdmin/libraries/import/README
delete mode 100644 phpMyAdmin/libraries/import/csv.php
delete mode 100644 phpMyAdmin/libraries/import/docsql.php
delete mode 100644 phpMyAdmin/libraries/import/ldi.php
delete mode 100644 phpMyAdmin/libraries/import/ods.php
delete mode 100644 phpMyAdmin/libraries/import/shp.php
delete mode 100644 phpMyAdmin/libraries/import/sql.php
delete mode 100644 phpMyAdmin/libraries/import/upload/apc.php
delete mode 100644 phpMyAdmin/libraries/import/upload/noplugin.php
delete mode 100644 phpMyAdmin/libraries/import/upload/uploadprogress.php
delete mode 100644 phpMyAdmin/libraries/import/xml.php
create mode 100644 phpMyAdmin/libraries/index.lib.php
create mode 100644 phpMyAdmin/libraries/insert_edit.lib.php
create mode 100644 phpMyAdmin/libraries/mult_submits.lib.php
create mode 100644 phpMyAdmin/libraries/mysql_charsets.inc.php
create mode 100644 phpMyAdmin/libraries/navigation/Navigation.class.php
create mode 100644 phpMyAdmin/libraries/navigation/NavigationHeader.class.php
create mode 100644 phpMyAdmin/libraries/navigation/NavigationTree.class.php
create mode 100644 phpMyAdmin/libraries/navigation/NodeFactory.class.php
create mode 100644 phpMyAdmin/libraries/navigation/Nodes/Node.class.php
create mode 100644 phpMyAdmin/libraries/navigation/Nodes/Node_Column.class.php
create mode 100644 phpMyAdmin/libraries/navigation/Nodes/Node_Column_Container.class.php
create mode 100644 phpMyAdmin/libraries/navigation/Nodes/Node_Database.class.php
create mode 100644 phpMyAdmin/libraries/navigation/Nodes/Node_DatabaseChild.class.php
create mode 100644 phpMyAdmin/libraries/navigation/Nodes/Node_Database_Container.class.php
create mode 100644 phpMyAdmin/libraries/navigation/Nodes/Node_Event.class.php
create mode 100644 phpMyAdmin/libraries/navigation/Nodes/Node_Event_Container.class.php
create mode 100644 phpMyAdmin/libraries/navigation/Nodes/Node_Function.class.php
create mode 100644 phpMyAdmin/libraries/navigation/Nodes/Node_Function_Container.class.php
create mode 100644 phpMyAdmin/libraries/navigation/Nodes/Node_Index.class.php
create mode 100644 phpMyAdmin/libraries/navigation/Nodes/Node_Index_Container.class.php
create mode 100644 phpMyAdmin/libraries/navigation/Nodes/Node_Procedure.class.php
create mode 100644 phpMyAdmin/libraries/navigation/Nodes/Node_Procedure_Container.class.php
create mode 100644 phpMyAdmin/libraries/navigation/Nodes/Node_Table.class.php
create mode 100644 phpMyAdmin/libraries/navigation/Nodes/Node_Table_Container.class.php
create mode 100644 phpMyAdmin/libraries/navigation/Nodes/Node_Trigger.class.php
create mode 100644 phpMyAdmin/libraries/navigation/Nodes/Node_Trigger_Container.class.php
create mode 100644 phpMyAdmin/libraries/navigation/Nodes/Node_View.class.php
create mode 100644 phpMyAdmin/libraries/navigation/Nodes/Node_View_Container.class.php
delete mode 100644 phpMyAdmin/libraries/navigation_header.inc.php
delete mode 100644 phpMyAdmin/libraries/ob.lib.php
create mode 100644 phpMyAdmin/libraries/operations.lib.php
create mode 100644 phpMyAdmin/libraries/parse_analyze.inc.php
delete mode 100644 phpMyAdmin/libraries/parse_analyze.lib.php
create mode 100644 phpMyAdmin/libraries/phpseclib/Crypt/AES.php
create mode 100644 phpMyAdmin/libraries/phpseclib/Crypt/Rijndael.php
create mode 100644 phpMyAdmin/libraries/plugins/AuthenticationPlugin.class.php
create mode 100644 phpMyAdmin/libraries/plugins/ExportPlugin.class.php
create mode 100644 phpMyAdmin/libraries/plugins/ImportPlugin.class.php
create mode 100644 phpMyAdmin/libraries/plugins/PluginManager.class.php
create mode 100644 phpMyAdmin/libraries/plugins/PluginObserver.class.php
create mode 100644 phpMyAdmin/libraries/plugins/TransformationsInterface.int.php
create mode 100644 phpMyAdmin/libraries/plugins/TransformationsPlugin.class.php
create mode 100644 phpMyAdmin/libraries/plugins/UploadInterface.int.php
create mode 100644 phpMyAdmin/libraries/plugins/auth/AuthenticationConfig.class.php
create mode 100644 phpMyAdmin/libraries/plugins/auth/AuthenticationCookie.class.php
create mode 100644 phpMyAdmin/libraries/plugins/auth/AuthenticationHttp.class.php
create mode 100644 phpMyAdmin/libraries/plugins/auth/AuthenticationSignon.class.php
create mode 100644 phpMyAdmin/libraries/plugins/auth/recaptchalib.php
rename phpMyAdmin/libraries/{ => plugins}/auth/swekey/authentication.inc.php (100%)
rename phpMyAdmin/libraries/{ => plugins}/auth/swekey/musbe-ca.crt (100%)
rename phpMyAdmin/libraries/{ => plugins}/auth/swekey/swekey.auth.lib.php (66%)
rename phpMyAdmin/libraries/{ => plugins}/auth/swekey/swekey.php (72%)
create mode 100644 phpMyAdmin/libraries/plugins/export/ExportCodegen.class.php
create mode 100644 phpMyAdmin/libraries/plugins/export/ExportCsv.class.php
create mode 100644 phpMyAdmin/libraries/plugins/export/ExportExcel.class.php
create mode 100644 phpMyAdmin/libraries/plugins/export/ExportHtmlword.class.php
create mode 100644 phpMyAdmin/libraries/plugins/export/ExportJson.class.php
create mode 100644 phpMyAdmin/libraries/plugins/export/ExportLatex.class.php
create mode 100644 phpMyAdmin/libraries/plugins/export/ExportMediawiki.class.php
create mode 100644 phpMyAdmin/libraries/plugins/export/ExportOds.class.php
create mode 100644 phpMyAdmin/libraries/plugins/export/ExportOdt.class.php
create mode 100644 phpMyAdmin/libraries/plugins/export/ExportPdf.class.php
create mode 100644 phpMyAdmin/libraries/plugins/export/ExportPhparray.class.php
create mode 100644 phpMyAdmin/libraries/plugins/export/ExportSql.class.php
create mode 100644 phpMyAdmin/libraries/plugins/export/ExportTexytext.class.php
create mode 100644 phpMyAdmin/libraries/plugins/export/ExportXml.class.php
create mode 100644 phpMyAdmin/libraries/plugins/export/ExportYaml.class.php
create mode 100644 phpMyAdmin/libraries/plugins/export/PMA_ExportPdf.class.php
create mode 100644 phpMyAdmin/libraries/plugins/export/README
create mode 100644 phpMyAdmin/libraries/plugins/export/TableProperty.class.php
create mode 100644 phpMyAdmin/libraries/plugins/import/AbstractImportCsv.class.php
create mode 100644 phpMyAdmin/libraries/plugins/import/ImportCsv.class.php
create mode 100644 phpMyAdmin/libraries/plugins/import/ImportLdi.class.php
create mode 100644 phpMyAdmin/libraries/plugins/import/ImportMediawiki.class.php
create mode 100644 phpMyAdmin/libraries/plugins/import/ImportOds.class.php
create mode 100644 phpMyAdmin/libraries/plugins/import/ImportShp.class.php
create mode 100644 phpMyAdmin/libraries/plugins/import/ImportSql.class.php
create mode 100644 phpMyAdmin/libraries/plugins/import/ImportXml.class.php
create mode 100644 phpMyAdmin/libraries/plugins/import/README
create mode 100644 phpMyAdmin/libraries/plugins/import/ShapeFile.class.php
create mode 100644 phpMyAdmin/libraries/plugins/import/ShapeRecord.class.php
create mode 100644 phpMyAdmin/libraries/plugins/import/upload/UploadApc.class.php
create mode 100644 phpMyAdmin/libraries/plugins/import/upload/UploadNoplugin.class.php
create mode 100644 phpMyAdmin/libraries/plugins/import/upload/UploadProgress.class.php
create mode 100644 phpMyAdmin/libraries/plugins/import/upload/UploadSession.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/Application_Octetstream_Download.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/Application_Octetstream_Hex.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/Image_JPEG_Inline.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/Image_JPEG_Link.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/Image_PNG_Inline.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/README
create mode 100644 phpMyAdmin/libraries/plugins/transformations/TEMPLATE
create mode 100644 phpMyAdmin/libraries/plugins/transformations/TEMPLATE_ABSTRACT
create mode 100644 phpMyAdmin/libraries/plugins/transformations/Text_Plain_Append.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/Text_Plain_Dateformat.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/Text_Plain_External.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/Text_Plain_Formatted.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/Text_Plain_Imagelink.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/Text_Plain_Link.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/Text_Plain_Longtoipv4.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/Text_Plain_Sql.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/Text_Plain_Substring.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/abstract/AppendTransformationsPlugin.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/abstract/DateFormatTransformationsPlugin.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/abstract/DownloadTransformationsPlugin.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/abstract/ExternalTransformationsPlugin.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/abstract/FormattedTransformationsPlugin.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/abstract/HexTransformationsPlugin.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/abstract/ImageLinkTransformationsPlugin.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/abstract/InlineTransformationsPlugin.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/abstract/LongToIPv4TransformationsPlugin.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/abstract/SQLTransformationsPlugin.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/abstract/SubstringTransformationsPlugin.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/abstract/TextImageLinkTransformationsPlugin.class.php
create mode 100644 phpMyAdmin/libraries/plugins/transformations/abstract/TextLinkTransformationsPlugin.class.php
create mode 100755 phpMyAdmin/libraries/plugins/transformations/generator_main_class.sh
create mode 100755 phpMyAdmin/libraries/plugins/transformations/generator_plugin.sh
create mode 100644 phpMyAdmin/libraries/properties/PropertyItem.class.php
create mode 100644 phpMyAdmin/libraries/properties/options/OptionsPropertyGroup.class.php
create mode 100644 phpMyAdmin/libraries/properties/options/OptionsPropertyItem.class.php
create mode 100644 phpMyAdmin/libraries/properties/options/OptionsPropertyOneItem.class.php
create mode 100644 phpMyAdmin/libraries/properties/options/groups/OptionsPropertyMainGroup.class.php
create mode 100644 phpMyAdmin/libraries/properties/options/groups/OptionsPropertyRootGroup.class.php
create mode 100644 phpMyAdmin/libraries/properties/options/groups/OptionsPropertySubgroup.class.php
create mode 100644 phpMyAdmin/libraries/properties/options/items/BoolPropertyItem.class.php
create mode 100644 phpMyAdmin/libraries/properties/options/items/DocPropertyItem.class.php
create mode 100644 phpMyAdmin/libraries/properties/options/items/HiddenPropertyItem.class.php
create mode 100644 phpMyAdmin/libraries/properties/options/items/MessageOnlyPropertyItem.class.php
create mode 100644 phpMyAdmin/libraries/properties/options/items/NumberPropertyItem.class.php
create mode 100644 phpMyAdmin/libraries/properties/options/items/RadioPropertyItem.class.php
create mode 100644 phpMyAdmin/libraries/properties/options/items/SelectPropertyItem.class.php
create mode 100644 phpMyAdmin/libraries/properties/options/items/TextPropertyItem.class.php
create mode 100644 phpMyAdmin/libraries/properties/plugins/ExportPluginProperties.class.php
create mode 100644 phpMyAdmin/libraries/properties/plugins/ImportPluginProperties.class.php
create mode 100644 phpMyAdmin/libraries/properties/plugins/PluginPropertyItem.class.php
delete mode 100644 phpMyAdmin/libraries/schema/Visio_Relation_Schema.class.php
create mode 100644 phpMyAdmin/libraries/server_bin_log.lib.php
create mode 100644 phpMyAdmin/libraries/server_collations.lib.php
create mode 100644 phpMyAdmin/libraries/server_common.lib.php
create mode 100644 phpMyAdmin/libraries/server_databases.lib.php
create mode 100644 phpMyAdmin/libraries/server_engines.lib.php
delete mode 100644 phpMyAdmin/libraries/server_links.inc.php
create mode 100644 phpMyAdmin/libraries/server_plugins.lib.php
create mode 100644 phpMyAdmin/libraries/server_privileges.lib.php
create mode 100644 phpMyAdmin/libraries/server_status.lib.php
create mode 100644 phpMyAdmin/libraries/server_status_advisor.lib.php
create mode 100644 phpMyAdmin/libraries/server_status_monitor.lib.php
create mode 100644 phpMyAdmin/libraries/server_status_queries.lib.php
create mode 100644 phpMyAdmin/libraries/server_status_variables.lib.php
delete mode 100644 phpMyAdmin/libraries/server_synchronize.lib.php
create mode 100644 phpMyAdmin/libraries/server_user_groups.lib.php
create mode 100644 phpMyAdmin/libraries/server_users.lib.php
create mode 100644 phpMyAdmin/libraries/server_variables.lib.php
delete mode 100644 phpMyAdmin/libraries/server_variables_doc.php
create mode 100644 phpMyAdmin/libraries/special_schema_links.lib.php
create mode 100644 phpMyAdmin/libraries/sql.lib.php
create mode 100644 phpMyAdmin/libraries/string.inc.php
delete mode 100644 phpMyAdmin/libraries/string.lib.php
delete mode 100644 phpMyAdmin/libraries/string_mb.lib.php
delete mode 100644 phpMyAdmin/libraries/string_native.lib.php
delete mode 100644 phpMyAdmin/libraries/string_type_ctype.lib.php
delete mode 100644 phpMyAdmin/libraries/string_type_native.lib.php
create mode 100644 phpMyAdmin/libraries/structure.lib.php
create mode 100644 phpMyAdmin/libraries/tbl_chart.lib.php
create mode 100644 phpMyAdmin/libraries/tbl_columns_definition_form.inc.php
create mode 100644 phpMyAdmin/libraries/tbl_columns_definition_form.lib.php
create mode 100644 phpMyAdmin/libraries/tbl_common.inc.php
delete mode 100644 phpMyAdmin/libraries/tbl_common.php
rename phpMyAdmin/libraries/{gis_visualization.lib.php => tbl_gis_visualization.lib.php} (50%)
create mode 100644 phpMyAdmin/libraries/tbl_indexes.lib.php
delete mode 100644 phpMyAdmin/libraries/tbl_links.inc.php
create mode 100644 phpMyAdmin/libraries/tbl_printview.lib.php
delete mode 100644 phpMyAdmin/libraries/tbl_properties.inc.php
create mode 100644 phpMyAdmin/libraries/tbl_relation.lib.php
delete mode 100644 phpMyAdmin/libraries/tbl_replace_fields.inc.php
delete mode 100644 phpMyAdmin/libraries/tbl_select.lib.php
create mode 100644 phpMyAdmin/libraries/tbl_tracking.lib.php
create mode 100644 phpMyAdmin/libraries/tbl_views.lib.php
delete mode 100644 phpMyAdmin/libraries/tcpdf/encodings_maps.php
delete mode 100644 phpMyAdmin/libraries/tcpdf/htmlcolors.php
create mode 100644 phpMyAdmin/libraries/tcpdf/include/tcpdf_colors.php
rename phpMyAdmin/libraries/tcpdf/{unicode_data.php => include/tcpdf_font_data.php} (72%)
create mode 100644 phpMyAdmin/libraries/tcpdf/include/tcpdf_fonts.php
create mode 100644 phpMyAdmin/libraries/tcpdf/include/tcpdf_images.php
create mode 100644 phpMyAdmin/libraries/tcpdf/include/tcpdf_static.php
create mode 100644 phpMyAdmin/libraries/tcpdf/tcpdf_autoconfig.php
delete mode 100644 phpMyAdmin/libraries/transformations/README
delete mode 100644 phpMyAdmin/libraries/transformations/TEMPLATE
delete mode 100644 phpMyAdmin/libraries/transformations/TEMPLATE_MIMETYPE
delete mode 100644 phpMyAdmin/libraries/transformations/application_octetstream__download.inc.php
delete mode 100644 phpMyAdmin/libraries/transformations/application_octetstream__hex.inc.php
delete mode 100644 phpMyAdmin/libraries/transformations/generator.sh
delete mode 100644 phpMyAdmin/libraries/transformations/global.inc.php
delete mode 100644 phpMyAdmin/libraries/transformations/image_jpeg__inline.inc.php
delete mode 100644 phpMyAdmin/libraries/transformations/image_jpeg__link.inc.php
delete mode 100644 phpMyAdmin/libraries/transformations/image_png__inline.inc.php
delete mode 100644 phpMyAdmin/libraries/transformations/template_generator.sh
delete mode 100644 phpMyAdmin/libraries/transformations/template_generator_mimetype.sh
delete mode 100644 phpMyAdmin/libraries/transformations/text_plain__dateformat.inc.php
delete mode 100644 phpMyAdmin/libraries/transformations/text_plain__external.inc.php
delete mode 100644 phpMyAdmin/libraries/transformations/text_plain__formatted.inc.php
delete mode 100644 phpMyAdmin/libraries/transformations/text_plain__imagelink.inc.php
delete mode 100644 phpMyAdmin/libraries/transformations/text_plain__link.inc.php
delete mode 100644 phpMyAdmin/libraries/transformations/text_plain__longToIpv4.inc.php
delete mode 100644 phpMyAdmin/libraries/transformations/text_plain__sql.inc.php
delete mode 100644 phpMyAdmin/libraries/transformations/text_plain__substr.inc.php
create mode 100644 phpMyAdmin/locale/ar/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/bg/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/bn/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/ca/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/cs/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/da/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/de/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/el/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/en_GB/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/es/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/et/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/fi/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/fr/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/gl/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/hi/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/hu/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/ia/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/id/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/it/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/ja/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/ko/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/lt/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/nb/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/nl/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/pl/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/pt/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/pt_BR/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/ro/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/ru/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/si/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/sk/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/sl/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/sr@latin/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/sv/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/th/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/tr/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/uk/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/uz/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/uz@latin/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/zh_CN/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/locale/zh_TW/LC_MESSAGES/phpmyadmin.mo
create mode 100644 phpMyAdmin/server_status_advisor.php
create mode 100644 phpMyAdmin/server_status_monitor.php
create mode 100644 phpMyAdmin/server_status_queries.php
create mode 100644 phpMyAdmin/server_status_variables.php
create mode 100644 phpMyAdmin/server_user_groups.php
create mode 100644 phpMyAdmin/setup/ajax.js
delete mode 100644 phpMyAdmin/setup/frames/.htaccess
delete mode 100644 phpMyAdmin/setup/lib/.htaccess
create mode 100644 phpMyAdmin/tbl_find_replace.php
rename phpMyAdmin/themes/original/css/{theme_right.css.php => common.css.php} (63%)
create mode 100644 phpMyAdmin/themes/original/css/navigation.css.php
delete mode 100644 phpMyAdmin/themes/original/css/theme_left.css.php
delete mode 100644 phpMyAdmin/themes/original/css/theme_print.css.php
create mode 100644 phpMyAdmin/themes/original/img/b_column_add.png
create mode 100644 phpMyAdmin/themes/original/img/b_find_replace.png
create mode 100644 phpMyAdmin/themes/original/img/b_group.png
create mode 100644 phpMyAdmin/themes/original/img/b_index_add.png
create mode 100644 phpMyAdmin/themes/original/img/b_move.png
create mode 100644 phpMyAdmin/themes/original/img/b_table_add.png
create mode 100644 phpMyAdmin/themes/original/img/b_undo.png
create mode 100644 phpMyAdmin/themes/original/img/b_view_add.png
delete mode 100644 phpMyAdmin/themes/original/img/docs_menu_bg.png
delete mode 100644 phpMyAdmin/themes/original/img/item_ltr.png
delete mode 100644 phpMyAdmin/themes/original/img/item_rtl.png
create mode 100644 phpMyAdmin/themes/original/img/lightbulb.png
create mode 100644 phpMyAdmin/themes/original/img/lightbulb_off.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/1.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/2.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/2leftarrow.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/2leftarrow_m.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/2rightarrow.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/2rightarrow_m.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/3.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/4.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/5.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/6.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/7.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/8.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/FieldKey_small.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/Field_small.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/Field_small_char.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/Field_small_date.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/Field_small_int.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/Header.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/Header_Linked.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/and_icon.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/ang_direct.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/bord.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/bottom.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/def.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/display_field.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/downarrow1.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/downarrow2.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/downarrow2_m.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/exec.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/exec_small.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/favicon.ico
delete mode 100644 phpMyAdmin/themes/original/img/pmd/grid.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/help.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/help_relation.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/left_panel_butt.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/left_panel_tab.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/minus.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/or_icon.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/pdf.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/plus.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/query_builder.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/relation.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/reload.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/resize.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/rightarrow1.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/rightarrow2.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/save.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/small_tab.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/table.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/toggle_lines.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/top_panel.png
delete mode 100644 phpMyAdmin/themes/original/img/pmd/uparrow2_m.png
delete mode 100644 phpMyAdmin/themes/original/img/s_attention.png
delete mode 100644 phpMyAdmin/themes/original/img/s_okay.png
delete mode 100644 phpMyAdmin/themes/original/img/s_process.png
create mode 100644 phpMyAdmin/themes/original/img/s_top.png
rename phpMyAdmin/themes/{pmahomme/jquery/jquery-ui-1.8.16.custom.css => original/jquery/jquery-ui-1.9.2.custom.css} (75%)
create mode 100644 phpMyAdmin/themes/pmahomme/css/codemirror.css.php
create mode 100644 phpMyAdmin/themes/pmahomme/css/common.css.php
create mode 100644 phpMyAdmin/themes/pmahomme/css/enum_editor.css.php
create mode 100644 phpMyAdmin/themes/pmahomme/css/gis.css.php
create mode 100644 phpMyAdmin/themes/pmahomme/css/jqplot.css.php
create mode 100644 phpMyAdmin/themes/pmahomme/css/navigation.css.php
create mode 100644 phpMyAdmin/themes/pmahomme/css/pmd.css.php
create mode 100644 phpMyAdmin/themes/pmahomme/css/resizable-menu.css.php
create mode 100644 phpMyAdmin/themes/pmahomme/css/rte.css.php
delete mode 100644 phpMyAdmin/themes/pmahomme/css/theme_left.css.php
delete mode 100644 phpMyAdmin/themes/pmahomme/css/theme_print.css.php
delete mode 100644 phpMyAdmin/themes/pmahomme/css/theme_right.css.php
create mode 100644 phpMyAdmin/themes/pmahomme/img/b_column_add.png
create mode 100644 phpMyAdmin/themes/pmahomme/img/b_find_replace.png
create mode 100644 phpMyAdmin/themes/pmahomme/img/b_group.png
create mode 100644 phpMyAdmin/themes/pmahomme/img/b_index_add.png
create mode 100644 phpMyAdmin/themes/pmahomme/img/b_move.png
create mode 100644 phpMyAdmin/themes/pmahomme/img/b_table_add.png
create mode 100644 phpMyAdmin/themes/pmahomme/img/b_undo.png
create mode 100644 phpMyAdmin/themes/pmahomme/img/b_view_add.png
delete mode 100644 phpMyAdmin/themes/pmahomme/img/body_bg.png
delete mode 100644 phpMyAdmin/themes/pmahomme/img/database_list_li_hover.png
delete mode 100644 phpMyAdmin/themes/pmahomme/img/docs_menu_bg.png
delete mode 100644 phpMyAdmin/themes/pmahomme/img/input_bg.gif
delete mode 100644 phpMyAdmin/themes/pmahomme/img/item_ltr.png
delete mode 100644 phpMyAdmin/themes/pmahomme/img/item_rtl.png
create mode 100644 phpMyAdmin/themes/pmahomme/img/lightbulb.png
create mode 100644 phpMyAdmin/themes/pmahomme/img/lightbulb_off.png
delete mode 100644 phpMyAdmin/themes/pmahomme/img/marked_bg.png
create mode 100644 phpMyAdmin/themes/pmahomme/img/pmd/exitFullscreen.png
create mode 100644 phpMyAdmin/themes/pmahomme/img/pmd/viewInFullscreen.png
create mode 100644 phpMyAdmin/themes/pmahomme/img/s_top.png
delete mode 100644 phpMyAdmin/themes/pmahomme/img/tab_bg.png
delete mode 100644 phpMyAdmin/themes/pmahomme/img/tab_hover_bg.png
delete mode 100644 phpMyAdmin/themes/pmahomme/img/tabactive_bg.png
rename phpMyAdmin/themes/{original/jquery/jquery-ui-1.8.16.custom.css => pmahomme/jquery/jquery-ui-1.9.2.custom.css} (75%)
diff --git a/phpMyAdmin/CONTRIBUTING.md b/phpMyAdmin/CONTRIBUTING.md
new file mode 100644
index 0000000..62c9798
--- /dev/null
+++ b/phpMyAdmin/CONTRIBUTING.md
@@ -0,0 +1,21 @@
+# Contributing to phpMyAdmin
+
+As an open source project, phpMyAdmin welcomes contributions of many forms.
+
+## Bug reporting
+
+Please report [bugs on SourceForge.net][1].
+
+[1]: https://sourceforge.net/p/phpmyadmin/bugs/new/
+
+## Patches submission
+
+Patches are welcome either as [pull requests on GitHub][2].
+
+[2]: https://github.com/phpmyadmin/phpmyadmin/pulls
+
+## More information
+
+You can find more information on our website:
+
+http://www.phpmyadmin.net/home_page/improve.php
diff --git a/phpMyAdmin/ChangeLog b/phpMyAdmin/ChangeLog
index 0ec6062..619fb44 100644
--- a/phpMyAdmin/ChangeLog
+++ b/phpMyAdmin/ChangeLog
@@ -1,555 +1,61 @@
phpMyAdmin - ChangeLog
======================
-3.5.7.0 (2013-02-15)
-- bug #3779 [core] Problem with backslash in enum fields
-- bug #3816 Missing server_processlist.php
-- bug #3821 Safari: white page
-- Correct detection of the Chrome browser
-
-3.5.6.0 (2013-01-28)
-- bug #3593604 [status] Erroneous advisor rule
-- bug #3596070 [status] localStorage broken in server status monitor
-- bug #3598736 [routines] Editing a procedure with special characters
-- bug #3600322 [core] Visualize GIS data throws Fatal Error
-- bug #3599362 [core] Double-escaped error message
-- bug #3776 [cookies] Login without auth on second server
-
-3.5.5.0 (2012-12-21)
-- bug #3563824 [export] Support Apache's mod_deflate
-- bug #3585523 [interface] Inline query editing broken after row update
-- bug #3586389 [setup] Cannot switch language in /setup
-- bug #3585695 [CSS] Font size in inline query editor is way too big
-- bug #3588354 [l10n] Portuguese Language not displaying correctly
-- bug #3591412 [status] Live charts don't work for non-default server
-- bug [core] Proxy ajax calls to pma.net to avoid browser notices
-- bug #3593534 [tracking] Structure Snapshot on tracked view renders invalid
-SQL
-- bug #3544366 [events] Event comments not saved
-
-3.5.4.0 (2012-11-16)
-- bug #3570212 [edit] uuid_short() is a no-arguments function
-- bug #3569577 [edit] Add routine parameter headers not valid for "function"
-- bug #3575799 [search] Various search operators not working as expected
-- bug #3576322 [search] Invalid select query generated for tables with ENUM fields
-- bug #3577468 [display] Incorrect imagejpeg Syntax Breaks Image Transformation
-- bug #3578776 [search] Editing SQL not possible when no records found
-- bug #3571970 [interface] Display chart and number of rows to plot
-- bug #3582631 [core] Wrong redirect url caused cookies error with ForceSSL
-
-3.5.3.0 (2012-10-08)
-- bug #3539044 [interface] Browse mode "Show" button gives blank page if no results anymore
-- bug #3534979 [interface] Copy Database Ajax feedback vanishes long before copying is done
-- bug #3527531 [interface] GC-maxlifetime warning incorrectly displayed
-- bug #3526916 [interface] Search fails with JS error when tooltips disabled
-- bug #3544366 [interface] Event comments not saved
-- bug #3549084 [edit] Can't enter date directly when editing inline
-- bug #3548491 [interface] Inline query editor doesn't work from search results
-- bug #3547825 [edit] BLOB download no longer works
-- bug #3541966 [config] Error in generated configuration arrray
-- bug #3553551 [GUI] Invalid HTML code in multi submits confirmation form
-- [interface] Designer sometimes places tables on the top menu
-- bug #3546277 [core] Call to undefined function __() when config file has wrong permissions
-- bug #3540922 [edit] Error searching table with many fields
-- bug #3555104 [edit] Cannot copy a DB with table & views
-- bug #3559925 [privileges] Incorrect updating of the list of users
-- bug #3561224 [edit] cell edit date field with empty date fills in current date
-- bug #3559955 [edit] current_date from function drop down fails on update
-- bug #3562472 add support for Solaris and FreeBSD system load and memory display in server status
-- bug #3553068 [import] Table import from XML file fails
-- replace Highcharts with jqplot for Display chart
-- bug #3567684 [edit] Pasting value doesn't clear null checkbox
-- bug #3570786 [edit] Datepicker for date and datetime fields is broken
-
-3.5.2.2 (2012-08-12)
-- [security] Fixed XSS vulnerabilities, see PMASA-2012-4
-
-3.5.2.1 (2012-08-03)
-- [security] Fixed local path disclosure vulnerability, see PMASA-2012-3
-
-3.5.2.0 (2012-07-07)
-- bug #3521416 [interface] JS error when editing index
-- bug #3521313 [core] Call to undefined function __()
-- bug #3521016 [edit] NOW() function incorrectly selected
-- bug [GUI] Invalid HTML code on transformation_overview.php
-- bug #3522930 [browse] Missing validation in Ajax mode
-- bug Fix popup message on build SQL of import
-- bug #3523499 [core] Make X-WebKit-CSP work better
-- replace Highcharts with jqplot for query profiling, zoom search
-- bug #3531584 [interface] No form validation in change password dialog
-- bug #3531585 [interface] Broken password validation in copy user form
-- bug #3531586 [unterface] Add user form prints JSON when user presses enter
-- bug #3534121 [config] duplicate line in config.sample.inc.php
-- bug #3534311 [interface] Grid editing incorrectly parses ENUM/SET values
-- bug #3510196 [core] More clever URL rewriting with ForceSSL
-
-3.5.1.0 (2012-05-03)
-- bug #3510784 [edit] Limit clause ignored when sort order is remembered
-- bug #3511471 [interface] View name not seen in navi panel (MySQL 5.1)
-- bug #3512916 [display] Right frame reloads after displaying SQL result(zero rows)
-- bug [interface] Fixed missing Codemirror for inline query edit when exporting a result set
-- bug #3514490 [auth] Multiple Navigation panels bug still present
-- bug #3515181 [users] Error in create user + underscore + create database
-- bug #3515666 [display] Profiling chart shows wrong data
-- bug #3516037 [auth] JS includes missing in auth config error page
-- bug #3516183 [display] Missing image extension
-- bug [display] Added missing icons in original theme
-- bug #3516761 [edit] Query error after search
-- bug #3516405 [display] Chart title is getting wrong within chart export
-- bug #3517021 [interface] Header links except 'More' hide after closing dialog
-- bug #3516817 [interface] "More" actions in table structure
-- bug #3518484 [privileges] PMA_sqlAddSlashes() does not quote the table names correctly
-- bug #3518983 [designer] Error messages do not appear in the Designer
-- bug #3519747 [interface] Suhosin patch warning incorrectly displayed
-- bug #3520107 [interface] Server status page: Incorrect dialog box titles
-- bug #3516089 [structure] DROP does not work on defective VIEWs
-
-3.5.0.0 (2012-04-07)
-+ rfe #2021981 [interface] Add support for mass prefix change.
-+ "up to date" message on main page when current version is up to date
-+ Update to jQuery 1.6.2
-+ Patch #3256122 [search] Show/hide db search results
-+ Patch #3302354 Add gettext wrappers around a message
-+ Remove deprecated function PMA_DBI_get_fields
-+ rfe #2098927 Remember recent tables
-+ rfe #3078542 Remember the last sort order for each table
-+ AJAX for Create table in navigation panel
-+ rfe #3310562 Wording about Column
-+ AJAX for Add a user in Database privileges
-+ Patch #3271804 for rfe #3177495, new DisableMultiTableMaintenance directive
-+ [interface] Reorganised server status page.
-+ [interface] Changed way of generating charts.
-+ rfe #939233 [interface] Flexible column width
-+ [interface] Mouse-based column reordering in query results
-+ AJAX for Insert to a table from database Structure page
-- Patch #3316969 PMA_ajaxShowMessage() does not respect timeout
-+ AJAX for Change on multiple rows in table Browse
-+ [interface] Improved support for stored routines
-+ [display] More options for browsing GIS data
-+ [interface] Support for spatial indexes
-+ [display] GIS data visualization
-+ AJAX for table structure multiple-column change
-+ AJAX for table structure index edit
-+ Show/hide indexes in table Structure
-+ More compact navigation bar
-+ Display direction (horizontal/vertical) no longer displayed by default
-+ Shift/click support in database Structure
-+ Show/hide column in table Browse
-- bug #3353856 [AJAX] AJAX dialogs use wrong font-size
-- bug #3354356 [interface] Timepicker does not work in AJAX dialogs
-+ AJAX for table Structure Indexes Edit
-+ AJAX for table Structure column Change
-+ [interface] Improved support for events
-+ [interface] Improved support for triggers
-+ [interface] Improved server monitoring
-+ AJAX for table Structure column Add
-+ AJAX for table Operations copy table
-- bug #3380946 [export] no uid Query result export (Suhosin limit)
-+ Grid editing in browse mode (replaces row inline edit)
-+ Zoom-search in table Search
-+ [interface] Editor for GIS data
-+ [import] Import GIS data from ESRI Shapefiles
-+ [interface] 'Function based search' for GIS data
-+ Support Drizzle database
-- bug #3356456 [interface] Interface problems for queries having LIMIT clauses
-+ [interface] Remove DefaultPropDisplay feature
-- bug #3299486 [prettyprint] Order By in a query containing comment character
-+ [interface] Improved ENUM/SET editor
-+ patch #3428376 [pmadb] pmadb on a different MySQL server
-+ patch #3410688 [interface] Improving field size for character columns
-- [usability] Removed an unnecessary AJAX request from database search
-- bug #3302419 [navi] Tabs break when squeezing page
-+ rfe #3406797 [navi] Stick table tools to top of page on scroll
-+ rfe #1632106 [interface] Improved error handling
-+ patch #3432835 [interface] Add useful intermediate pages to pageselector
-+ [interface] Improved index editor
-+ View editing via a generated ALTER VIEW
-- bug #3408377 [interface] Deleting table from the DB does not change the table counter
-+ rfe #3438266 [designer] Toggle for relation lines
-- bug #3442069 [AJAX] database list not updated after adding/deleting a user + database
-- bug #3461750 [edit] Sort by key generates wrong sql with limit clause
-- bug #3340842 [structure] Error dropping index of non-existing column
-- bug #3093145 [display] Page through rows returned from a view
-+ patch #3303195 [interface] Checkbox to have SQL input remain
-- patch #3472899 [export] Fixed CSV escape for the export
-- patch #3475424 [import] Fixed CSV escape for the import
-- bug #3482734 [interface] No warning on syntax error in search form
-- bug #3423717 [core] Improved detection of SSL connection
-+ FULLTEXT support for InnoDB, starting with MySQL 5.6.4
-- bug #3497151 [interface] Duplicate inline query edit box
-- bug #3504567 [mime] Description of the transformation missing in the tooltip
-
-3.4.11.1 (2012-08-12)
-- [security] Fixed XSS vulnerabilities, see PMASA-2012-4
-
-3.4.11.0 (2012-04-14)
-- bug #3486970 [import] Exception on XML import
-- bug #3488777 [navi] $cfg['ShowTooltipAliasTB'] and blank names in navigation
-
-3.4.10.2 (2012-03-28)
-- [security] Fixed local path disclosure vulnerability, see PMASA-2012-2
-
-3.4.10.1 (2012-02-18)
-- [security] XSS in replication setup, see PMASA-2012-1
-
-3.4.10.0 (2012-02-14)
-- bug #3460090 [interface] TextareaAutoSelect feature broken
-- patch #3375984 [export] PHP Array export might generate invalid php code
-- bug #3049209 [import] Import from ODS ignores cell that is the same as cell before
-- bug #3463933 [display] SELECT DISTINCT displays wrong total records found
-- patch #3458944 [operations] copy table data missing SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO'
-- bug #3469254 [edit] Setting data to NULL and drop-downs
-- bug #3477063 [edit] Missing set fields and values in generated INSERT query
-- bug #3460867 [libraries] license issue with TCPDF (updated to 5.9.145)
-
-3.4.9.0 (2011-12-21)
-- bug #3442028 [edit] Inline editing enum fields with null shows no dropdown
-- bug #3442004 [interface] DB suggestion not correct for user with underscore
-- bug #3438420 [core] Magic quotes removed in PHP 5.4
-- bug #3398788 [session] No feedback when result is empty (signon auth_type)
-- bug #3384035 [display] Problems regarding ShowTooltipAliasTB
-- bug #3306875 [edit] Can't rename a database that contains views
-- bug #3452506 [edit] Unable to move tables with triggers
-- bug #3449659 [navi] Fast filter broken with table tree
-- bug #3448485 [GUI] Firefox favicon frameset regression
-- [core] Better compatibility with mysql extension
-- [security] Self-XSS on export options (export server/database/table), see PMASA-2011-20
-- [security] Self-XSS in setup (host parameter), see PMASA-2011-19
-
-3.4.8.0 (2011-12-01)
-- bug #3425230 [interface] enum data split at space char (more space to edit)
-- bug #3426840 [interface] ENUM/SET editor can't handle commas in values
-- bug #3427256 [interface] no links to browse/empty views and tables
-- bug #3430377 [interface] Deleted search results remain visible
-- bug #3428627 [import] ODS import ignores memory limits
-- bug #3426836 [interface] Visual column separation
-- bug #3428065 [parser] TRUE not recognized by parser
-+ patch #3433770 [config] Make location of php-gettext configurable
-- patch #3430291 [import] Handle conflicts in some open_basedir situations
-- bug #3431427 [display] Dropdown results - setting NULL does not work
-- patch #3428764 [edit] Inline edit on multi-server configuration
-- patch #3437354 [core] Notice: Array to string conversion in PHP 5.4
-- [interface] When ShowTooltipAliasTB is true, VIEW is wrongly shown as the
- view name in main panel db Structure page
-- bug #3439292 [core] Fail to synchronize column with name of keyword
-- bug #3425156 [interface] Add column after drop
-- [interface] Avoid showing the password in phpinfo()'s output
-- bug #3441572 [GUI] 'newer version of phpMyAdmin' message not shown in IE8
-- bug #3407235 [interface] Entering the key through a lookup window does not reset NULL
-- [security] Self-XSS on database names (Synchronize), see PMASA-2011-18
-- [security] Self-XSS on database names (Operations/rename), see PMASA-2011-18
-- [security] Self-XSS on column type (Create index), see PMASA-2011-18
-- [security] Self-XSS on column type (table Search), see PMASA-2011-18
-- [security] Self-XSS on invalid query (table overview), see PMASA-2011-18
-
-3.4.7.1 (2011-11-10)
-- [security] Fixed possible local file inclusion in XML import
-(CVE-2011-4107).
-
-3.4.7.0 (2011-10-23)
-- bug #3418610 [interface] Links in navigation when $cfg['MainPageIconic'] = false
-- bug #3418849 [interface] Inline edit shows dropdowns even after closing
-- bug [view] View renaming did not work
-- bug [navi] Wrong icon for view (MySQL 5.5)
-- bug #3420229 [doc] Missing documentation section
-- bug #3423725 [pdf] Broken PDF file when exporting database to PDF
-- [core] Allow to set language in URL
-- bug #3425184 [doc] Fix links to PHP documentation
-- bug #3426031 [export] Export to bzip2 is not working
-
-3.4.6.0 (2011-10-16)
-- patch #3404173 InnoDB comment display with tooltips/aliases
-- bug #3404886 [navi] Edit SQL statement after error
-- bug #3403165 [interface] Collation not displayed for long enum fields
-- bug #3399951 [export] Config for export compression not used
-- bug #3400690 [privileges] DB-specific privileges won't submit
-- bug #3410604 [config] Configuration storage incorrect suggested table name
-- bug #3383572 [interface] Cannot execute saved query
-- bug #3411535 [display] Full text button unchecks results display options
-- bug #3411224 [display] Broken binary column when 'Show binary contents' is not set
-- bug #3411633 [core] Call to undefined function PMA_isSuperuser()
-- bug #3413743 [interface] Display options link missing after search
-- bug #3324161 [core] CSP policy causing designer JS buttons to fail
-- bug #3412862 [relation] Relations/constraints are dropped/created on every change
-- bug #3390832 [display] Delete records from last page breaks search
-- bug #3392150 [schema] PMA_User_Schema::processUserChoice() is broken
-- bug #3414744 [core] External link fails in 3.4.5
-- patch #3314626 [display] CharTextareaRows is not respected
-- bug #3417089 [synchronize] Extraneous db choices
-- [security] Fixed local path disclosure vulnerability, see PMASA-2011-15
-- [security] Fixed XSS in setup (host/verbose parameter), see PMASA-2011-16
-
-3.4.5.0 (2011-09-14)
-- bug #3375325 [interface] Page list in navigation frame looks odd
-- bug #3313235 [interface] Error div misplaced
-- bug #3374802 [interface] Comment on a column breaks inline editing
-- patch #3383711 [display] Order by a column in a view doesn't work in some cases
-- bug #3386434 [interface] Add missing space to server status
-- [core] Remove library PHPExcel, due to license issues
-- [export] Remove native Excel export modules (xls and xlsx formats)
-- [import] Remove native Excel import modules (xls and xlsx formats)
-- bug #3392920 [edit] BLOB emptied after editing another column
-- [security] Fixed XSS in Inline Edit on save action, see PMASA-2011-14
-- [security] Fixed XSS with db/table/column names, see PMASA-2011-14
-
-3.4.4.0 (2011-08-24)
-- bug #3323060 [parser] SQL parser breaks AJAX requests if query has unclosed quotes
-- bug #3323101 [parser] Invalid escape sequence in SQL parser
-- bug #3348995 [config] $cfg['Export']['asfile'] set to false does not select asText option
-- bug #3340151 [export] Working SQL query exports error page
-- bug #3353649 [interface] "Create an index on X columns" form not validated
-- bug #3350790 [interface] JS error in Table->Structure->Index->Edit
-- bug #3353811 [interface] Info message has "error" class
-- bug #3357837 [interface] TABbing through a NULL field in the inline mode resets NULL
-- remove version number in /setup
-- bug #3367993 [usability] Missing "Generate Password" button
-- bug #3363221 [display] Missing Server Parameter on inline sql query
-- bug #3367986 [navi] Drop field -> lost active table
-- remove misleading comment on the "Rename database" interface
-- bug #3374374 [interface] Fix footnote for inexact count while browsing
-- bug #3372807 [interface] Fix security warning link in setup
-- bug #3374347 [display] Backquotes in normal text on import page
-- bug #3358750 [core] With Suhosin, urls are too long in edit links
-- [security] Missing sanitization on the table, column and index names leads to XSS vulnerabilities, see PMASA-2011-13
-
-3.4.3.2 (2011-07-23)
-- [security] Fixed XSS vulnerability, see PMASA-2011-9
-- [security] Fixed local file inclusion vulnerability, see PMASA-2011-10
-- [security] Fixed local file inclusion vulnerability and code execution, see PMASA-2011-11
-- [security] Fixed possible session manipulation in swekey authentication, see PMASA-2011-12
-
-3.4.3.1 (2011-07-02)
-- [security] Fixed possible session manipulation in swekey authentication, see PMASA-2011-5
-- [security] Fixed possible code injection incase session variables are compromised, see PMASA-2011-6
-- [security] Fixed regexp quoting issue in Synchronize code, see PMASA-2011-7
-- [security] Fixed filtering of a file path, which allowed for directory traversal, see PMASA-2011-8
-
-3.4.3.0 (2011-06-27)
-- bug #3311170 [sync] Missing helper icons in Synchronize
-- patch #3304473 [setup] Redefine a lable that was wrong
-- bug #3304544 [parser] master is not a reserved word
-- bug #3307616 [edit] Inline edit updates multiple duplicate rows
-- patch #3311539 [edit] Inline edit does not escape backslashes
-- bug #3313210 [interface] Columns class sometimes changed for nothing
-- patch #3313326 [interface] Some tooltips do not disappear
-- bug #3315720 [search] Fix search in non unicode tables
-- bug #3315741 [display] Inline query edit broken
-- patch #3317206 [privileges] Generate password option missing on new accounts
-- bug #3317293 [edit] Inline edit places HTML line breaks in edit area
-- bug #3319466 [interface] Inline query edit does not escape special characters
-- minor XSS (require a valid token)
-
-3.4.2.0 (2011-06-07)
-- bug #3301249 [interface] Iconic table operations does not remove inline edit label
-- bug #3303869 [interface] Unnecessary scrolling on Databases page
-- patch #3303813 [setup] Define a label that was missing
-- bug #3305606 [interface] Show all button wraps on privileges page
-- bug #3305517 [config] Config for export compression not used
-- bug #3305883 [interface] Table is dropped regardless of confirmation
-- [auth] Fixed error handling for signon auth method.
-- bug #3276001 [core] Avoid caching of index.php.
-- bug #3306958 [interface] Unnecessary Details slider
-- bug #3308476 [interface] "Show all" not persistent after a sort
-- bug #3308072 [auth] Version disclosure to anonymous visitors
-- bug #3306981 [interface] pmahomme and table statistics
-
-3.4.1.0 (2011-05-20)
-- bug #3301108 [interface] Synchronize and already configured host
-- bug #3302457 Inline edit and $cfg['PropertiesIconic']
-- Patch #3302313 Show a translated label
-- bug #3300981 [navi] Table filter is case sensitive
-- bug #3285929 [privileges] Revert temporary fix
-- bug #3302872 [synchronize] Synchronize and user name
-- bug #3302733 [core] Some browsers report an insecure https connection
-- [security] Make redirector require valid token
-
-3.4.0.0 (2011-05-11)
-+ rfe #2890226 [view] Enable VIEW rename
-+ rfe #838637 [privileges] Export a user's privileges
-- [core] Updated mootools to fix some glitches with Safari.
-+ rfe #2816943 [interface] Add REGEXP ^...$ to select dialog.
-+ rfe #2924956 [interface] Add insert ignore option to editing row.
-+ rfe #2838080 [interface] Show warning when javascript is disabled.
-+ rfe #2823707 [edit] Call UUID function separately to show it in insert.
-+ rfe #2420684 [export] Allow export of timestamps in UTC.
-+ [core] Remove config data from session as it brings chicken-egg problem.
-+ [core] Cookie path now honors PmaAbsoluteUri.
-+ rfe #2393597 [core] phpMyAdmin honors https in PmaAbsoluteUri.
-+ rfe #1778337 [core] Try moving tables by RENAME and fail to CREATE/INSERT if that fails.
-+ rfe #1721189 [core] Force reload js on code change.
-+ rfe #1954161 [interface] Do not display long numbers in server status.
-+ rfe #2033616 [edit] Add option to just display insert query.
-+ rfe #1435032 [interface] Move SSL status to the end, it is usually empty.
-+ rfe #1340812 [interface] Show numbers of columns in table structure.
-+ rfe #1186511 [inrerface] Add link to reload navigation frame.
-+ rfe #2936156 [auth] Signon authentication forwards error message through session data.
-+ rfe #2835109 [interface] Move ^1 to the end of message.
-+ rfe #854911 [interface] Grey out non applicable actions in structure
-+ [interface] Allow to create new table from navigation frame (in light mode).
-+ rfe #1025696 [browse] Add direct download of binary fields.
-- [browse] Properly display NULL value for BLOB.
-- rfe #1516803 [edit] Allow to set BLOB to/from NULL with ProtectBinary.
-- [edit] Do not default to UNHEX when using file upload.
-- rfe #1379201 [core] Add option to configure session_save_path.
-+ [interface] Provide links to documentation in highlighted SQL.
-+ [interface] It is now possible to bookmark most pages in JS capable browser.
-- bug #2936482 [core] Fix SSL detection.
-+ rfe #2937850 [doc] Add some hints to chk_rel.php for quick setup.
-+ rfe #2938579 [interface] Add class to some elements for easier theming.
-+ rfe #2937840 [doc] Add some interesting configs to config.sample.inc.php.
-+ rfe #2792992 [doc] Added advice to re-login after changing pmadb settings
-+ patch #2952353 [interface] Prefill "Copy table to" in tbl_operations.php, thanks to iinl
-+ [lang] Add English (United Kingdom) translation, thanks to Robert Readman.
-+ patch #2948421 [auth] HTTP Basic auth realm name,
- thanks to Harald Jenny - haraldj
-- bug #2954916 [interface] Do not insert doc links to not formatted SQL.
-+ [lang] Chinese Simplified update, thanks to Shanyan Baishui - rimyxp
-+ [lang] Turkish update, thanks to Burak Yavuz
-+ rfe #2963310 [interface] Focus TEXTAREA "sql_query" on click on "SQL" link
-+ [lang] Uzbek update, thanks to Orzu Samarqandiy
-+ rfe #2958013 [import] After import, also list uploaded filename, thanks
- to Pavel Konnikov and Herman van Rink
-+ patch #2974341 [structure] Clicking on table name in db Structure should
- Browse the table if possible, thanks to bhdouglass - dougboybhd
-+ patch #2975533 [search] New search operators, thanks to
- Martynas MickeviÄius
-+ patch #2967320 [designer] Colored relations based on the primary key,
- thanks to GreenRover - greenrover
-- [core] Provide way for vendors to easily change paths to config files.
-+ patch #2979922, rfe #2804874 [interface] Add inline query editing, thanks to Muhammd Adnan.
-- bug #2966752 [setup] Allow to configure changes tracking in setup script.
-+ patch #2981165 [edit] Optionally disable the Type column,
- thanks to Brian Douglass - bhdouglass
-+ patch #2984058 [edit] Buttons for quicky creating common SQL queries, thanks
- to sutharshan.
-+ patch #2984337 [interface] Convert loading of export/import to jQuery ready
- event, thanks to sutharshan.
-- [edit] CURRENT_TIMESTAMP is also valid for datetime fields.
-- patch #2985068 [engines] Fix parsing of PBXT status, thanks to Madhura Jayaratne.
-- patch #2986073 [interface] Convert upload progress bar to jQuery, thanks to
- Philip Frank.
-- patch #2983960 [interface] Add javascript validation of datetime input,
- thanks to Sutharshan Balachandren.
-- rfe #2981999 [interface] Default sort order is now SMART.
-- rfe #2972969 [interface] Fix flipping of headers in non-IE browsers.
-+ rfe #2964518 [interface] Allow to choose servers from configuration for
- synchronisation.
-+ rfe #2988633 [relation] Improve ON DELETE/ON UPDATE drop-downs
-+ rfe #2988629 [relation] Improve labels in relation view
-+ rfe #2983207, patch #2988715 [interface] Use jQuery calendar dialog, thanks
- to Muhammad Adnan.
-+ [doc] Incorporate synchronisation docs into main document.
-+ [core] Include Content Security Policy HTTP headers.
-- bug #3004216 [CSS] Field attributes use inline CSS
-- patch #2999595, rfe #2998130 [interface] Cleanup navigation frame.
-- patch #3025161 [core] Prevent sending of unnecessary cookies,
- thanks to Piotr Przybylski - crackpl
-- bug [password] Generate password only available if JS is enabled
- (fixed for Privileges and Change password)
-- [core] RecodingEngine now accepts none as valid option.
-+ [core] Dropped AllowAnywhereRecoding configuration variable.
-- rfe #3016457 [interface] Define tab order in SQL form to allow easier tab
- navigation.
-+ [core] Centralized format string expansion, @VARIABLES@ are recommended way
- now, used by file name templates, default queries, export and title
- generating.
-+ [validator] SQL validator works also with SOAP PHP extension.
-- [interface] Better formatting for SQL validator results.
-- [doc] The linked-tables infrastructure is now called phpMyAdmin
- configuration storage.
-- [interface] Move drop/empty links from being tabs to Operations tab.
-- [interface] Fixed rendering of error/notice/info titles background.
-- patch #3038293 [doc] Language and grammar fixes,
- thanks to Isaac Bennetch - ibennetch
-- patch #3038312 [export] JSON export,
- thanks to Hauke Henningsen - blubberkeks152
-- rfe #1494550 [interface] Editor for SET/ENUM fields.
-- rfe #2649375 [interface] Simplified interface to backup/restore.
-- rfe #2973909 Users preferences
-- [relations] Dropped WYSIWYG-PDF configuration variable.
-- rfe #806035, #686260 [relations] Export relations to Dia, SVG and others
-+ [interface] Added charts to status tab, profiling page and query results
-+ [interface] AJAXification on various pages
-- [core] Remove last remaining parts of profiling code which was removed in 2006.
-- bug #3042665 [parser] Add workaround for MySQL way of handling backtick.
-- bug #3056610 [interface] Removed modification options for information_schema
-+ patch #3055886 [config] Add Left frame table filter visibility config option, thanks to eesau
-- [core] Force generating of new session on login
-+ rfe #1105678 [interface] Drop page-break-before as it is useless for smaller
- tables.
-+ rfe #2956556 [interface] Allow to wrap enum values.
-- bug #1669459 [interface] Do not automatically mark PDF schema rows to delete
-- bug #3087682 [interface] Do not apply LeftFrameDBSeparator on first character.
-+ rfe #3111455 [interface] Column highlighting and marking in table view
-+ Visual query builder
-- bug #3115519 [interface] Prevent long queries from being shown in confirmation popup
-- patch #3112792 [navi] Left panel table grouping incorrect,
- thanks to garas - garas
-- bug #3123433 [interface] Avoid double escaping of MySQL errors.
-- [interface] Use less noisy message and remove disable link on server charts and database statistics.
-+ rfe #3141330 [relation] When displaying results, show a link to the foreign
- table even when phpMyAdmin configuration storage is not active
-- bug #3141327 [relation] Foreign key input options
-- [export] Better handling of export to PHP array.
-- rfe #3158867 [privileges] No DROP DATABASE warning if you delete a user
-- [interface] Add link to documentation for status variables.
-- [security] Redirect external links to avoid Referer leakage.
-- [interface] Default to not count tables in database.
-- patch #3172172 [interface] Shortcut for copying table row.
-- bug #3175227 [auth] Reset user cache on login.
-- rfe #3148361 [interface] Replace hard coded limit with $cfg['LimitChars'].
-- bug #3177136 [interface] Indicate that bookmark is being used on browse.
-- [interface] Indicate shared bookmarks in interface.
-- patch #3176420 [Search] Ajaxify browse and delete criteria in DB Search,
- thanks to Thilanka Kaushalya
-- [interface] New default theme pmahomme, dropped darkblue_orange theme.
-- rfe #2936155 [auth] Allow to pass additional parameters using signon method.
-- rfe #1640812 [auth] Add example for OpenID authentication using signon method.
-- rfe #1312657 [dbi] Default to mysqli extension.
-- rfe #1168350 [interface] Add clear button to SQL edit box.
-- [core] Update library PHPExcel to version 1.7.6
-- bug #3206876 [core] Work without mbstring installed.
-- rfe #3196075, patch #3212068 [interface] Add links to variables documentation.
-- bug #3208723 [import] Fix import of utf-8 XML files.
-- bug #3039384 [auth] Force signon auth on signon URL change.
-- bug #3168733 [core] Synchronization does not honor AllowArbitraryServer
-- bug #3134495 [synchronization] Data containing single quotes prevents sync,
- thanks to jviewer
-- Remove the custom color picker feature
-- bug #3285929 [privileges] Don't fail silently on missing priviledge to execute REVOKE ALL PRIVILEGES
-
-3.3.11.0 (not yet released)
-
-3.3.10.1 (2011-05-20)
-- [security] XSS on Tracking page
-
-3.3.10.0 (2011-03-19)
-- patch #3147400 [structure] Aria table size printed as unknown,
- thanks to erickoh75 - erickoh75
-- patch #3150164 [structure] Ordering by size gives incorrect results,
- thanks to Madhura Jayaratne - madhuracj
-- bug #3153409 [core] 0 row(s) affected
-- bug #3155842 [core] Edit relational page and page number
-- [security] Minor security fixes, see PMASA-2010-9 and PMASA-2010-10
-- [lang] German update, thanks to to jannicars@users.sourceforge.net.
-
-3.3.9.2 (2011-02-11)
-- [security] SQL injection, see PMASA-2011-2
-
-3.3.9.1 (2011-02-08)
-- [security] Path disclosure, see PMASA-2011-1
-
-3.3.9.0 (2011-01-03)
-- bug [doc] Fix references to MySQL doc
-- patch #3101490 Default function for TIMESTAMP, thanks to jirand - jirand
-- bug #3103853 [js] Double quotes were not escaped in generated js
-- bug #3077463 [core] Events were not copied when copying/renaming database
-- bug #1762306 [core] Copy database with view of a view
-- patch #3117535 [replication] Add quotes to database in initial statement,
- thanks to Craig Duncan - duncan3dc
-- bug #3112614 [pdf schema] Scratchboard for PDF pages not working
-- bug #3125606 [parser] Query for table "level" causes strange display
-- bug #3127904 [parser] Close all opened round brackets indents
+4.1.7.0 (2014-02-09)
+- bug #4245 initial Browse query does not match sorting order
+- bug #4250 Notice on export page
+- bug #4253 "New" text in navigation frame acts like a database
+- bug #4262 Cannot define a column with fractional seconds
+- bug #4265 Missing datepicker icon for DATETIME(length)
+- bug #4257 Hide fractional seconds when applicable
+- bug #4264 Uncheck "Ignore" while inserting, upon leaving a textarea
+- bug #4260 reCaptcha is ignoring language settings
+- bug #4259 reCaptcha sound session expired problem
+- bug #4263 Japanese character encoding not working properly when exporting
+- bug #4269 Notice on table relation page
+- bug #4270 Bad text-color for table comments
+- bug #4278 reCaptcha re-login requires double effort
+- bug #4272 Incorrect tabindex
+- bug #4271 Query by example and the second criteria line
+- bug #4242 Wildcard-containing only_db failure in sidebar
+
+4.1.6.0 (2014-01-26)
+- bug #4232 User not found after creating the user
+- bug #4241 Confusing dialog when trying to create an already existing user
+- bug #4239 Missing LIMIT clause for some queries
+- rfe #1489 Do not show create icon when user has no privileges
+- bug #4218 Chrome behavior with date fields
+- bug #3579 NOW() function incorrectly selected (regression)
+- bug #4244 Advisor complaints about MariaDB 10.x is version less than 5.1
+- bug #3889 When login fails and error display is active, login data is
+displayed (regression)
+- bug #4247 open_basedir warnings on export page
+- bug #4013 AJAX request waiting until version info is retrieved
+- bug #4248 js error when changing number of columns in status monitor
+
+4.1.5.0 (2014-01-17)
+- bug #3780 Allow aborting loading pages
+- bug #4223 Database list: Create database misses collation column
+- bug #4224 Empty table names when a table is "inuse"
+- bug #4225 Partition maintenance broken
+- bug #4219 Table list (left panel) does not reload when table renamed
+- bug #4230 "in use" displayed for all views in database print view
+- bug #4226 Notice: Undefined index: pma_config_loading
+- bug #4221 Bzip2 export cannot be directly imported (so withdraw bz2 export)
+- bug #4204 Reloading user privileges hides user groups submenu
+- bug #4231 DATE columns quick edit decrement by one day
+
+4.1.4.0 (2014-01-07)
+- bug #3840 (additional fix) When exporting to gzip format, the data is compressed 2 times
+- bug #4209 Missing compression in one case
+- bug #4208 Can't browse tables after sorting on columns with fieldnames that have a '-'
+- bug #4184 Switch to wrong page after adding an index
+- bug #3885 Additional fix for this bug
+- bug #4212 Table "disappears" if it has the same name as its tablegroup
+- bug #4213 Datetime Quick Edit decrements by one day
+- bug #4217 Current value not highlighted when browsing foreign values
+- bug #4220 Incorrect key values in foreign key browser
+- bug #4215 MariaDB 5.5: error in Drizzle detection
--- Older ChangeLogs can be found on our project website ---
http://www.phpmyadmin.net/old-stuff/ChangeLogs/
diff --git a/phpMyAdmin/README b/phpMyAdmin/README
index 19a9c73..1aaff94 100644
--- a/phpMyAdmin/README
+++ b/phpMyAdmin/README
@@ -1,7 +1,7 @@
phpMyAdmin - Readme
===================
-Version 3.5.7
+Version 4.1.7
A set of PHP-scripts to manage MySQL over the web.
@@ -13,7 +13,7 @@ Copyright
Copyright (C) 1998-2000
Tobias Ratschiller
-Copyright (C) 2001-2013
+Copyright (C) 2001-2014
Marc Delisle
Olivier Müller
Robin Johnson
@@ -22,7 +22,7 @@ Copyright (C) 2001-2013
Garvin Hicking
Michael Keck
Sebastian Mendel
- [check Documentation.txt/.html file for more details]
+ [check documentation for more details]
License
-------
@@ -39,10 +39,30 @@ details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
+Third party licenses
+--------------------
+
+phpMyAdmin includes several third party libraries which come under their
+respective licenses.
+
+jQuery's license, which is where we got the files under js/jquery/ is
+(MIT|GPL), a copy of each license is available in this repository (GPL
+is available as LICENSE, MIT as js/jquery/MIT-LICENSE.txt).
+
+TCPDF which is located under libraries/tcpdf is released under GPL
+version 3 and the license is available as libraries/tcpdf/LICENSE.TXT.
+
+DejaVu fonts which are located under libraries/tcpdf/fonts/ and their
+license is documented in
+libraries/tcpdf/fonts/dejavu-fonts-ttf-2.33/LICENSE.
+
+PHP-gettext which is located under libraries/php-gettext/ is released
+under GPL version 2 license which is available in the LICENSE file.
+
Requirements
------------
-* PHP 5.2 or later
+* PHP 5.3 or later
* MySQL 5.0 or later
* a web-browser (doh!)
@@ -50,7 +70,7 @@ Summary
-------
phpMyAdmin is intended to handle the administration of MySQL over the web.
-For a summary of features, please see the Documentation.txt/.html file.
+For a summary of features, please see the documentation in the doc folder.
Download
--------
@@ -60,7 +80,7 @@ You can get the newest version at http://www.phpmyadmin.net/.
More Information
----------------
-Please see the Documentation.txt/.html file.
+Please see the documentation in the doc folder.
Support
-------
@@ -80,5 +100,5 @@ Please, don't send us emails with question like "How do I compile PHP with
MySQL-support". We just don't have the time to be your free help desk.
Please send your questions to the appropriate mailing lists / forums. Before
-contacting us, please read the Documentation.html (esp. the FAQ part).
+contacting us, please read the documentation (especially the FAQ part).
diff --git a/phpMyAdmin/RELEASE-DATE-4.1.7 b/phpMyAdmin/RELEASE-DATE-4.1.7
new file mode 100644
index 0000000..7cdc65f
--- /dev/null
+++ b/phpMyAdmin/RELEASE-DATE-4.1.7
@@ -0,0 +1 @@
+Sun Feb 9 12:39:08 UTC 2014
diff --git a/phpMyAdmin/browse_foreigners.php b/phpMyAdmin/browse_foreigners.php
index 3eff09f..0384350 100644
--- a/phpMyAdmin/browse_foreigners.php
+++ b/phpMyAdmin/browse_foreigners.php
@@ -6,297 +6,61 @@
* @package PhpMyAdmin
*/
+require_once 'libraries/common.inc.php';
+require_once 'libraries/transformations.lib.php';
+require_once 'libraries/browse_foreigners.lib.php';
+
/**
- * Gets a core script and starts output buffering work
+ * Sets globals from $_REQUEST
*/
-require_once './libraries/common.inc.php';
-
-PMA_checkParameters(array('db', 'table', 'field'));
+$request_params = array(
+ 'data',
+ 'field'
+);
+
+foreach ($request_params as $one_request_param) {
+ if (isset($_REQUEST[$one_request_param])) {
+ $GLOBALS[$one_request_param] = $_REQUEST[$one_request_param];
+ }
+}
-require_once './libraries/ob.lib.php';
-PMA_outBufferPre();
+PMA_Util::checkParameters(array('db', 'table', 'field'));
-require_once './libraries/header_http.inc.php';
+$response = PMA_Response::getInstance();
+$response->getFooter()->setMinimal();
+$header = $response->getHeader();
+$header->disableMenu();
+$header->setBodyId('body_browse_foreigners');
/**
* Displays the frame
*/
-require_once './libraries/transformations.lib.php'; // Transformations
+
$cfgRelation = PMA_getRelationsParam();
$foreigners = ($cfgRelation['relwork'] ? PMA_getForeigners($db, $table) : false);
+$foreign_limit = PMA_getForeignLimit(
+ isset($foreign_navig) ? $foreign_navig : null
+);
-$override_total = true;
-
-if (! isset($pos)) {
- $pos = 0;
-}
-
-$foreign_limit = 'LIMIT ' . $pos . ', ' . $GLOBALS['cfg']['MaxRows'] . ' ';
-if (isset($foreign_navig) && $foreign_navig == __('Show all')) {
- unset($foreign_limit);
-}
+$foreignData = PMA_getForeignData(
+ $foreigners, $_REQUEST['field'], true,
+ isset($_REQUEST['foreign_filter'])
+ ? $_REQUEST['foreign_filter']
+ : '',
+ isset($foreign_limit) ? $foreign_limit : null
+);
-$foreignData = PMA_getForeignData($foreigners, $field, $override_total, isset($foreign_filter) ? $foreign_filter : '', $foreign_limit);
-if (isset($rownumber)) {
- $rownumber_param = '&rownumber=' . urlencode($rownumber);
-} else {
- $rownumber_param = '';
-}
-
-$gotopage = '';
-$showall = '';
+$code = PMA_getJsScriptToHandleSelectRelationalFields();
-if (is_array($foreignData['disp_row'])) {
+$header->getScripts()->addCode($code);
- if ($cfg['ShowAll'] && ($foreignData['the_total'] > $GLOBALS['cfg']['MaxRows'])) {
- $showall = ' ';
- }
+// HTML output
+$html = PMA_getHtmlForRelationalFieldSelection(
+ $db, $table, $_REQUEST['field'], $foreignData,
+ isset($fieldkey) ? $fieldkey : null,
+ isset($data) ? $data : null
+);
- $session_max_rows = $GLOBALS['cfg']['MaxRows'];
- $pageNow = @floor($pos / $session_max_rows) + 1;
- $nbTotalPage = @ceil($foreignData['the_total'] / $session_max_rows);
-
- if ($foreignData['the_total'] > $GLOBALS['cfg']['MaxRows']) {
- $gotopage = PMA_pageselector(
- $session_max_rows,
- $pageNow,
- $nbTotalPage,
- 200,
- 5,
- 5,
- 20,
- 10,
- __('Page number:')
- );
- }
-}
-?>
-
-
-
-
- phpMyAdmin
-
-
-addHtml($html);
?>
-
-
-
-
-
-
-
-
-
- ' . __('Keyname') . '
- ' . __('Description') . '
-
- ' . __('Description') . '
- ' . __('Keyname') . '
- ';
-
- echo '' . $header . ' ' . "\n"
- .'' . $header . ' ' . "\n"
- .'' . "\n";
-
- $values = array();
- $keys = array();
- foreach ($foreignData['disp_row'] as $relrow) {
- if ($foreignData['foreign_display'] != false) {
- $values[] = $relrow[$foreignData['foreign_display']];
- } else {
- $values[] = '';
- }
-
- $keys[] = $relrow[$foreignData['foreign_field']];
- }
-
- asort($keys);
-
- $hcount = 0;
- $odd_row = true;
- $val_ordered_current_row = 0;
- $val_ordered_current_equals_data = false;
- $key_ordered_current_equals_data = false;
- foreach ($keys as $key_ordered_current_row => $value) {
- //for ($i = 0; $i < $count; $i++) {
- $hcount++;
-
- if ($cfg['RepeatCells'] > 0 && $hcount > $cfg['RepeatCells']) {
- echo $header;
- $hcount = 0;
- $odd_row = true;
- }
-
- $key_ordered_current_key = $keys[$key_ordered_current_row];
- $key_ordered_current_val = $values[$key_ordered_current_row];
-
- $val_ordered_current_key = $keys[$val_ordered_current_row];
- $val_ordered_current_val = $values[$val_ordered_current_row];
-
- $val_ordered_current_row++;
-
- if (PMA_strlen($val_ordered_current_val) <= $cfg['LimitChars']) {
- $val_ordered_current_val = htmlspecialchars($val_ordered_current_val);
- $val_ordered_current_val_title = '';
- } else {
- $val_ordered_current_val_title
- = htmlspecialchars($val_ordered_current_val);
- $val_ordered_current_val = htmlspecialchars(
- PMA_substr($val_ordered_current_val, 0, $cfg['LimitChars'])
- . '...'
- );
- }
- if (PMA_strlen($key_ordered_current_val) <= $cfg['LimitChars']) {
- $key_ordered_current_val = htmlspecialchars($key_ordered_current_val);
- $key_ordered_current_val_title = '';
- } else {
- $key_ordered_current_val_title
- = htmlspecialchars($key_ordered_current_val);
- $key_ordered_current_val
- = htmlspecialchars(
- PMA_substr($key_ordered_current_val, 0, $cfg['LimitChars']) . '...'
- );
- }
-
- if (! empty($data)) {
- $val_ordered_current_equals_data = $val_ordered_current_key == $data;
- $key_ordered_current_equals_data = $key_ordered_current_key == $data;
- }
-
- ?>
-
-
- ' : '')
- .''
- .htmlspecialchars($key_ordered_current_key) . ' ' . ($key_ordered_current_equals_data ? '' : '');
- ?>
-
- ' : '')
- . ''
- . $key_ordered_current_val . ' ' . ($key_ordered_current_equals_data ? '' : '');
- ?>
-
-
-
-
- ' : '')
- . ''
- . $val_ordered_current_val . ' ' . ($val_ordered_current_equals_data ? '' : '');
- ?>
-
- ' : '') . '' . htmlspecialchars($val_ordered_current_key)
- . ' ' . ($val_ordered_current_equals_data ? '' : '');
- ?>
-
-
-
-
-
-
-
diff --git a/phpMyAdmin/changelog.php b/phpMyAdmin/changelog.php
index fcd727f..5066ffe 100644
--- a/phpMyAdmin/changelog.php
+++ b/phpMyAdmin/changelog.php
@@ -9,7 +9,10 @@
/**
* Gets core libraries and defines some variables
*/
-require './libraries/common.inc.php';
+require 'libraries/common.inc.php';
+
+$response = PMA_Response::getInstance();
+$response->disable();
$filename = CHANGELOG_FILE;
@@ -29,7 +32,10 @@
$changelog = file_get_contents($filename);
}
} else {
- printf(__('The %s file is not available on this system, please visit www.phpmyadmin.net for more information.'), $filename);
+ printf(
+ __('The %s file is not available on this system, please visit www.phpmyadmin.net for more information.'),
+ $filename
+ );
exit;
}
@@ -38,6 +44,13 @@
*/
$changelog = htmlspecialchars($changelog);
+$tracker_url = 'https://sourceforge.net/support/tracker.php?aid=\\1';
+$tracker_url_bug = 'https://sourceforge.net/p/phpmyadmin/bugs/\\1/';
+$tracker_url_rfe = 'https://sourceforge.net/p/phpmyadmin/feature-requests/\\1/';
+$tracker_url_patch = 'https://sourceforge.net/p/phpmyadmin/patches/\\1/';
+$github_url = 'https://github.com/phpmyadmin/phpmyadmin/';
+$faq_url = 'http://docs.phpmyadmin.net/en/latest/faq.html';
+
$replaces = array(
'@(http://[./a-zA-Z0-9.-_-]*[/a-zA-Z0-9_])@'
=> '\\1 ',
@@ -50,13 +63,13 @@
'/thanks to ([^\(\r\n]+) -\s+([-\w]+)/i'
=> 'thanks to \\1 ',
- // mail adresse
+ // mail address
'/([0-9]{4}-[0-9]{2}-[0-9]{2}) (.+[^ ]) +<(.*@.*)>/i'
=> '\\1 \\2 ',
// linking patches
'/patch\s*#?([0-9]{6,})/i'
- => 'patch #\\1 ',
+ => 'patch #\\1 ',
// linking RFE
'/(?:rfe|feature)\s*#?([0-9]{6,})/i'
@@ -64,11 +77,11 @@
// linking files
'/(\s+)([\\/a-z_0-9\.]+\.(?:php3?|html|pl|js|sh))/i'
- => '\\1\\2 ',
+ => '\\1\\2 ',
// FAQ entries
'/FAQ ([0-9]+)\.([0-9a-z]+)/i'
- => 'FAQ \\1.\\2 ',
+ => 'FAQ \\1.\\2 ',
// linking bugs
'/bug\s*#?([0-9]{6,})/i'
@@ -76,7 +89,18 @@
// all other 6+ digit numbers are treated as bugs
'/(? ' bug #\\1 ',
+ => 'bug #\\1 ',
+
+ // transitioned SF.net project bug/rfe/patch links
+ // by the time we reach 6-digit numbers, we can probably retire the above links
+ '/patch\s*#?([0-9]{4,5}) /i'
+ => 'patch #\\1 ',
+ '/(?:rfe|feature)\s*#?([0-9]{4,5}) /i'
+ => 'RFE #\\1 ',
+ '/bug\s*#?([0-9]{4,5}) /i'
+ => 'bug #\\1 ',
+ '/(? 'bug #\\1 ',
// CVE/CAN entries
'/((CAN|CVE)-[0-9]+-[0-9]+)/'
@@ -88,9 +112,13 @@
// Highlight releases (with links)
'/([0-9]+)\.([0-9]+)\.([0-9]+)\.0 (\([0-9-]+\))/'
- => '\\1.\\2.\\3.0 \\4 ',
+ => ' '
+ . ''
+ . '\\1.\\2.\\3.0 \\4 ',
'/([0-9]+)\.([0-9]+)\.([0-9]+)\.([1-9][0-9]*) (\([0-9-]+\))/'
- => '\\1.\\2.\\3.\\4 \\5 ',
+ => ' '
+ . ''
+ . '\\1.\\2.\\3.\\4 \\5 ',
// Highlight releases (not linkable)
'/( ### )(.*)/'
@@ -99,16 +127,14 @@
);
header('Content-type: text/html; charset=utf-8');
-echo '';
?>
-
-
+
+
-
-
-phpMyAdmin - ChangeLog
-
+
+
+ phpMyAdmin - ChangeLog
+
phpMyAdmin - ChangeLog
@@ -117,5 +143,11 @@
echo preg_replace(array_keys($replaces), $replaces, $changelog);
echo '';
?>
+
diff --git a/phpMyAdmin/chk_rel.php b/phpMyAdmin/chk_rel.php
index e838d2e..915e8b2 100644
--- a/phpMyAdmin/chk_rel.php
+++ b/phpMyAdmin/chk_rel.php
@@ -1,25 +1,15 @@
addHTML(
+ PMA_getRelationsParamDiagnostic(PMA_getRelationsParam())
+);
-/**
- * Gets the relation settings
- */
-$cfgRelation = PMA_getRelationsParam(true);
-
-
-/**
- * Displays the footer
- */
-require './libraries/footer.inc.php';
?>
diff --git a/phpMyAdmin/composer.json b/phpMyAdmin/composer.json
new file mode 100644
index 0000000..7b58ed7
--- /dev/null
+++ b/phpMyAdmin/composer.json
@@ -0,0 +1,27 @@
+{
+ "name": "phpmyadmin/phpmyadmin",
+ "type": "application",
+ "description": "MySQL web administration tool",
+ "keywords": ["phpmyadmin","mysql","web"],
+ "homepage": "http://www.phpmyadmin.net/",
+ "license": "GPL-2.0+",
+ "authors": [
+ {
+ "name": "The phpMyAdmin Team",
+ "email": "phpmyadmin-devel@lists.sourceforge.net",
+ "homepage": "http://www.phpmyadmin.net/home_page/team.php"
+ }
+ ],
+ "support": {
+ "forum": "https://sourceforge.net/p/phpmyadmin/discussion/Help",
+ "issues": "https://sourceforge.net/p/phpmyadmin/bugs/",
+ "wiki": "http://wiki.phpmyadmin.net/",
+ "source": "https://github.com/phpmyadmin/phpmyadmin"
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "require-dev": {
+ "satooshi/php-coveralls": "dev-master"
+ }
+}
diff --git a/phpMyAdmin/config.sample.inc.php b/phpMyAdmin/config.sample.inc.php
index da61640..07047ac 100644
--- a/phpMyAdmin/config.sample.inc.php
+++ b/phpMyAdmin/config.sample.inc.php
@@ -4,8 +4,8 @@
* phpMyAdmin sample configuration, you can use it as base for
* manual configuration. For easier setup you can use setup/
*
- * All directives are explained in Documentation.html and on phpMyAdmin
- * wiki .
+ * All directives are explained in documentation in the doc/ folder
+ * or at .
*
* @package PhpMyAdmin
*/
@@ -41,23 +41,27 @@
/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
+// $cfg['Servers'][$i]['controlport'] = '';
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
/* Storage database and tables */
// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
-// $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
-// $cfg['Servers'][$i]['relation'] = 'pma_relation';
-// $cfg['Servers'][$i]['table_info'] = 'pma_table_info';
-// $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
-// $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
-// $cfg['Servers'][$i]['column_info'] = 'pma_column_info';
-// $cfg['Servers'][$i]['history'] = 'pma_history';
-// $cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs';
-// $cfg['Servers'][$i]['tracking'] = 'pma_tracking';
-// $cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
-// $cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';
-// $cfg['Servers'][$i]['recent'] = 'pma_recent';
+// $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
+// $cfg['Servers'][$i]['relation'] = 'pma__relation';
+// $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
+// $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
+// $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
+// $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
+// $cfg['Servers'][$i]['history'] = 'pma__history';
+// $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
+// $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
+// $cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords';
+// $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
+// $cfg['Servers'][$i]['recent'] = 'pma__recent';
+// $cfg['Servers'][$i]['users'] = 'pma__users';
+// $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
+// $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
/* Contrib / Swekey authentication */
// $cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf';
@@ -85,18 +89,13 @@
*/
//$cfg['MaxRows'] = 50;
-/**
- * Use graphically less intense menu tabs
- * default = false
- */
-//$cfg['LightTabs'] = true;
-
/**
* disallow editing of binary fields
* valid values are:
- * false allow editing
- * 'blob' allow editing except for BLOB fields
- * 'all' disallow editing
+ * false allow editing
+ * 'blob' allow editing except for BLOB fields
+ * 'noblob' disallow editing except for BLOB fields
+ * 'all' disallow editing
* default = blob
*/
//$cfg['ProtectBinary'] = 'false';
@@ -139,8 +138,15 @@
*/
//$cfg['QueryHistoryMax'] = 100;
+/**
+ * Should error reporting be enabled for JavaScript errors
+ *
+ * default = 'ask'
+ */
+//$cfg['SendErrorReports'] = 'ask';
+
/*
- * You can find more configuration options in Documentation.html
- * or here: http://wiki.phpmyadmin.net/pma/Config
+ * You can find more configuration options in the documentation
+ * in the doc/ folder or at .
*/
?>
diff --git a/phpMyAdmin/db_create.php b/phpMyAdmin/db_create.php
index 2bebe0e..85443a4 100644
--- a/phpMyAdmin/db_create.php
+++ b/phpMyAdmin/db_create.php
@@ -1,6 +1,7 @@
tryQuery($sql_query);
if (! $result) {
- $message = PMA_Message::rawError(PMA_DBI_getError());
+ $message = PMA_Message::rawError($GLOBALS['dbi']->getError());
// avoid displaying the not-created db name in header or navi panel
$GLOBALS['db'] = '';
$GLOBALS['table'] = '';
/**
- * If in an Ajax request, just display the message with {@link PMA_ajaxResponse}
+ * If in an Ajax request, just display the message with {@link PMA_Response}
*/
if ($GLOBALS['is_ajax_request'] == true) {
- PMA_ajaxResponse($message, false);
+ $response = PMA_Response::getInstance();
+ $response->isSuccess(false);
+ $response->addJSON('message', $message);
+ } else {
+ include_once 'index.php';
}
-
- include_once './libraries/header.inc.php';
- include_once './main.php';
} else {
$message = PMA_Message::success(__('Database %1$s has been created.'));
- $message->addParam($new_db);
- $GLOBALS['db'] = $new_db;
+ $message->addParam($_POST['new_db']);
+ $GLOBALS['db'] = $_POST['new_db'];
/**
* If in an Ajax request, build the output and send it
*/
if ($GLOBALS['is_ajax_request'] == true) {
+ //Construct the html for the new database, so that it can be appended to
+ // the list of databases on server_databases.php
/**
- * String containing the SQL Query formatted in pretty HTML
- * @global array $GLOBALS['extra_data']
- * @name $extra_data
- */
- $extra_data['sql_query'] = PMA_showMessage(null, $sql_query, 'success');
-
- //Construct the html for the new database, so that it can be appended to the list of databases on server_databases.php
-
- /**
- * Build the array to be passed to {@link PMA_generate_common_url} to generate the links
+ * Build the array to be passed to {@link PMA_URL_getCommon}
+ * to generate the links
+ *
* @global array $GLOBALS['db_url_params']
* @name $db_url_params
*/
- $db_url_params['db'] = $new_db;
+ $db_url_params['db'] = $_POST['new_db'];
- $is_superuser = PMA_isSuperuser();
+ $is_superuser = $GLOBALS['dbi']->isSuperuser();
$column_order = PMA_getColumnOrder();
- $url_query = PMA_generate_common_url($new_db);
+ $url_query = PMA_URL_getCommon($_POST['new_db']);
/**
* String that will contain the output HTML
@@ -99,7 +95,7 @@
// $dbstats comes from the create table dialog
if (! empty($dbstats)) {
$current = array(
- 'SCHEMA_NAME' => $new_db,
+ 'SCHEMA_NAME' => $_POST['new_db'],
'DEFAULT_COLLATION_NAME' => $db_collation_for_ajax,
'SCHEMA_TABLES' => '0',
'SCHEMA_TABLE_ROWS' => '0',
@@ -111,21 +107,30 @@
);
} else {
$current = array(
- 'SCHEMA_NAME' => $new_db
+ 'SCHEMA_NAME' => $_POST['new_db'],
+ 'DEFAULT_COLLATION_NAME' => $db_collation_for_ajax
);
}
- list($column_order, $generated_html) = PMA_buildHtmlForDb($current, $is_superuser, (isset($checkall) ? $checkall : ''), $url_query, $column_order, $replication_types, $replication_info);
+ list($column_order, $generated_html) = PMA_buildHtmlForDb(
+ $current, $is_superuser, $url_query,
+ $column_order, $replication_types, $replication_info
+ );
$new_db_string .= $generated_html;
$new_db_string .= '';
- $extra_data['new_db_string'] = $new_db_string;
-
- PMA_ajaxResponse($message, true, $extra_data);
+ $response = PMA_Response::getInstance();
+ $response->addJSON('message', $message);
+ $response->addJSON('new_db_string', $new_db_string);
+ $response->addJSON(
+ 'sql_query',
+ PMA_Util::getMessage(
+ null, $sql_query, 'success'
+ )
+ );
+ } else {
+ include_once '' . $cfg['DefaultTabDatabase'];
}
-
- include_once './libraries/header.inc.php';
- include_once './' . $cfg['DefaultTabDatabase'];
}
?>
diff --git a/phpMyAdmin/db_datadict.php b/phpMyAdmin/db_datadict.php
index 1f62a09..f08a5c4 100644
--- a/phpMyAdmin/db_datadict.php
+++ b/phpMyAdmin/db_datadict.php
@@ -1,6 +1,7 @@
getHeader();
+$header->enablePrintView();
/**
* Gets the relations settings
*/
$cfgRelation = PMA_getRelationsParam();
-require_once './libraries/transformations.lib.php';
-
+require_once 'libraries/transformations.lib.php';
+require_once 'libraries/Index.class.php';
/**
* Check parameters
*/
-PMA_checkParameters(array('db'));
+PMA_Util::checkParameters(array('db'));
/**
* Defines the url to return to in case of error in a sql statement
*/
if (strlen($table)) {
- $err_url = 'tbl_sql.php?' . PMA_generate_common_url($db, $table);
+ $err_url = 'tbl_sql.php?' . PMA_URL_getCommon($db, $table);
} else {
- $err_url = 'db_sql.php?' . PMA_generate_common_url($db);
+ $err_url = 'db_sql.php?' . PMA_URL_getCommon($db);
}
if ($cfgRelation['commwork']) {
@@ -45,18 +49,16 @@
* Displays DB comment
*/
if ($comment) {
- ?>
-
-
- ' . __('Database comment: ')
+ . '' . htmlspecialchars($comment) . '
';
} // end if
}
/**
* Selects the database and gets tables names
*/
-PMA_DBI_select_db($db);
-$tables = PMA_DBI_get_tables($db);
+$GLOBALS['dbi']->selectDb($db);
+$tables = $GLOBALS['dbi']->getTables($db);
$count = 0;
foreach ($tables as $table) {
@@ -75,8 +77,8 @@
* Gets table keys and retains them
*/
- PMA_DBI_select_db($db);
- $indexes = PMA_DBI_get_table_indexes($db, $table);
+ $GLOBALS['dbi']->selectDb($db);
+ $indexes = $GLOBALS['dbi']->getTableIndexes($db, $table);
$primary = '';
$indexes = array();
$lastIndex = '';
@@ -95,19 +97,21 @@
$indexes[] = $row['Key_name'];
$lastIndex = $row['Key_name'];
}
- $indexes_info[$row['Key_name']]['Sequences'][] = $row['Seq_in_index'];
- $indexes_info[$row['Key_name']]['Non_unique'] = $row['Non_unique'];
+ $indexes_info[$row['Key_name']]['Sequences'][] = $row['Seq_in_index'];
+ $indexes_info[$row['Key_name']]['Non_unique'] = $row['Non_unique'];
if (isset($row['Cardinality'])) {
$indexes_info[$row['Key_name']]['Cardinality'] = $row['Cardinality'];
}
// I don't know what does following column mean....
// $indexes_info[$row['Key_name']]['Packed'] = $row['Packed'];
- $indexes_info[$row['Key_name']]['Comment'] = $row['Comment'];
+ $indexes_info[$row['Key_name']]['Comment'] = $row['Comment'];
- $indexes_data[$row['Key_name']][$row['Seq_in_index']]['Column_name'] = $row['Column_name'];
+ $indexes_data[$row['Key_name']][$row['Seq_in_index']]['Column_name']
+ = $row['Column_name'];
if (isset($row['Sub_part'])) {
- $indexes_data[$row['Key_name']][$row['Seq_in_index']]['Sub_part'] = $row['Sub_part'];
+ $indexes_data[$row['Key_name']][$row['Seq_in_index']]['Sub_part']
+ = $row['Sub_part'];
}
} // end while
@@ -115,8 +119,7 @@
/**
* Gets columns properties
*/
- $columns = PMA_DBI_get_columns($db, $table);
- $fields_cnt = count($columns);
+ $columns = $GLOBALS['dbi']->getColumns($db, $table);
if (PMA_MYSQL_INT_VERSION < 50025) {
// We need this to correctly learn if a TIMESTAMP is NOT NULL, since
@@ -124,9 +127,12 @@
// and SHOW CREATE TABLE says NOT NULL
// http://bugs.mysql.com/20910.
- $show_create_table = PMA_DBI_fetch_value(
- 'SHOW CREATE TABLE ' . PMA_backquote($db) . '.' . PMA_backquote($table),
- 0, 1);
+ $show_create_table_query = 'SHOW CREATE TABLE '
+ . PMA_Util::backquote($db) . '.'
+ . PMA_Util::backquote($table);
+ $show_create_table = $GLOBALS['dbi']->fetchValue(
+ $show_create_table_query, 0, 1
+ );
$analyzed_sql = PMA_SQP_analyze(PMA_SQP_parse($show_create_table));
}
@@ -150,22 +156,19 @@
* Displays the comments of the table if MySQL >= 3.23
*/
if (!empty($show_comment)) {
- echo __('Table comments') . ': ' . htmlspecialchars($show_comment) . ' ';
+ echo __('Table comments:') . ' ';
+ echo htmlspecialchars($show_comment) . ' ';
}
/**
* Displays the table structure
*/
- ?>
-
-
-
-
-*/ ?>
-
-
-*/ ?>
- ';
+ echo '' . __('Column') . ' ';
+ echo '' . __('Type') . ' ';
+ echo '' . __('Null') . ' ';
+ echo '' . __('Default') . ' ';
if ($have_rel) {
echo ' ' . __('Links to') . ' ' . "\n";
}
@@ -173,26 +176,28 @@
if ($cfgRelation['mimework']) {
echo ' MIME ' . "\n";
}
- ?>
-
- ';
$odd_row = true;
foreach ($columns as $row) {
if ($row['Null'] == '') {
$row['Null'] = 'NO';
}
- $extracted_fieldspec = PMA_extractFieldSpec($row['Type']);
+ $extracted_columnspec
+ = PMA_Util::extractColumnSpec($row['Type']);
+
// reformat mysql query output
// set or enum types: slashes single quotes inside options
- if ('set' == $extracted_fieldspec['type'] || 'enum' == $extracted_fieldspec['type']) {
+ if ('set' == $extracted_columnspec['type']
+ || 'enum' == $extracted_columnspec['type']
+ ) {
$type_nowrap = '';
} else {
- $type_nowrap = ' nowrap="nowrap"';
+ $type_nowrap = ' class="nowrap"';
}
- $type = htmlspecialchars($extracted_fieldspec['print_type']);
- $attribute = $extracted_fieldspec['attribute'];
+ $type = htmlspecialchars($extracted_columnspec['print_type']);
+ $attribute = $extracted_columnspec['attribute'];
if (! isset($row['Default'])) {
if ($row['Null'] != 'NO') {
$row['Default'] = 'NULL ';
@@ -200,76 +205,87 @@
} else {
$row['Default'] = htmlspecialchars($row['Default']);
}
- $field_name = $row['Field'];
+ $column_name = $row['Field'];
+ $tmp_column = $analyzed_sql[0]['create_table_fields'][$column_name];
if (PMA_MYSQL_INT_VERSION < 50025
- && ! empty($analyzed_sql[0]['create_table_fields'][$field_name]['type'])
- && $analyzed_sql[0]['create_table_fields'][$field_name]['type'] == 'TIMESTAMP'
- && $analyzed_sql[0]['create_table_fields'][$field_name]['timestamp_not_null']) {
- // here, we have a TIMESTAMP that SHOW FULL COLUMNS reports as having the
- // NULL attribute, but SHOW CREATE TABLE says the contrary. Believe
- // the latter.
+ && ! empty($tmp_column['type'])
+ && $tmp_column['type'] == 'TIMESTAMP'
+ && $tmp_column['timestamp_not_null']
+ ) {
+ // here, we have a TIMESTAMP that SHOW FULL COLUMNS reports as
+ // having the NULL attribute, but SHOW CREATE TABLE says the
+ // contrary. Believe the latter.
/**
* @todo merge this logic with the one in tbl_structure.php
- * or move it in a function similar to PMA_DBI_get_columns_full()
+ * or move it in a function similar to $GLOBALS['dbi']->getColumnsFull()
* but based on SHOW CREATE TABLE because information_schema
* cannot be trusted in this case (MySQL bug)
*/
$row['Null'] = 'NO';
}
- ?>
-
-
- ';
+ echo ' ';
+
if (isset($pk_array[$row['Field']])) {
- echo '' . htmlspecialchars($field_name) . ' ';
+ echo '' . htmlspecialchars($column_name) . ' ';
} else {
- echo htmlspecialchars($field_name);
+ echo htmlspecialchars($column_name);
}
- ?>
-
- xml:lang="en" dir="ltr">
->*/ ?>
-
-
->*/ ?>
- ';
+ echo '' . $type . ' ';
+ echo '';
+ echo (($row['Null'] == 'NO') ? __('No') : __('Yes'));
+ echo ' ';
+ echo '';
+ if (isset($row['Default'])) {
+ echo $row['Default'];
+ }
+ echo ' ';
+
if ($have_rel) {
echo ' ';
- if (isset($res_rel[$field_name])) {
- echo htmlspecialchars($res_rel[$field_name]['foreign_table'] . ' -> ' . $res_rel[$field_name]['foreign_field']);
+ if (isset($res_rel[$column_name])) {
+ echo htmlspecialchars(
+ $res_rel[$column_name]['foreign_table']
+ . ' -> '
+ . $res_rel[$column_name]['foreign_field']
+ );
}
echo ' ' . "\n";
}
echo ' ';
- if (isset($comments[$field_name])) {
- echo htmlspecialchars($comments[$field_name]);
+ if (isset($comments[$column_name])) {
+ echo htmlspecialchars($comments[$column_name]);
}
echo ' ' . "\n";
if ($cfgRelation['mimework']) {
$mime_map = PMA_getMIME($db, $table, true);
echo ' ';
- if (isset($mime_map[$field_name])) {
- echo htmlspecialchars(str_replace('_', '/', $mime_map[$field_name]['mimetype']));
+ if (isset($mime_map[$column_name])) {
+ echo htmlspecialchars(
+ str_replace('_', '/', $mime_map[$column_name]['mimetype'])
+ );
}
echo ' ' . "\n";
}
- ?>
-
- ';
} // end foreach
$count++;
- ?>
-
-
- ';
+ // display indexes information
+ if (count(PMA_Index::getFromTable($table, $db)) > 0) {
+ echo PMA_Index::getView($table, $db, true);
+ }
+ echo '';
} //ends main while
/**
* Displays the footer
*/
-PMA_printButton();
+echo PMA_Util::getButton();
-require './libraries/footer.inc.php';
?>
diff --git a/phpMyAdmin/db_events.php b/phpMyAdmin/db_events.php
index 7716fb0..917778b 100644
--- a/phpMyAdmin/db_events.php
+++ b/phpMyAdmin/db_events.php
@@ -9,28 +9,18 @@
/**
* Include required files
*/
-require_once './libraries/common.inc.php';
-require_once './libraries/common.lib.php';
-
-/**
- * Include JavaScript libraries
- */
-$GLOBALS['js_include'][] = 'jquery/jquery-ui-1.8.16.custom.js';
-$GLOBALS['js_include'][] = 'jquery/timepicker.js';
-$GLOBALS['js_include'][] = 'rte/common.js';
-$GLOBALS['js_include'][] = 'rte/events.js';
-$GLOBALS['js_include'][] = 'codemirror/lib/codemirror.js';
-$GLOBALS['js_include'][] = 'codemirror/mode/mysql/mysql.js';
+require_once 'libraries/common.inc.php';
+require_once 'libraries/Util.class.php';
/**
* Include all other files
*/
-require_once './libraries/rte/rte_events.lib.php';
+require_once 'libraries/rte/rte_events.lib.php';
/**
* Do the magic
*/
$_PMA_RTE = 'EVN';
-require_once './libraries/rte/rte_main.inc.php';
+require_once 'libraries/rte/rte_main.inc.php';
?>
diff --git a/phpMyAdmin/db_export.php b/phpMyAdmin/db_export.php
index 326b73a..5313e0e 100644
--- a/phpMyAdmin/db_export.php
+++ b/phpMyAdmin/db_export.php
@@ -9,16 +9,19 @@
/**
* Gets some core libraries
*/
-require_once './libraries/common.inc.php';
+require_once 'libraries/common.inc.php';
-$GLOBALS['js_include'][] = 'export.js';
+$response = PMA_Response::getInstance();
+$header = $response->getHeader();
+$scripts = $header->getScripts();
+$scripts->addFile('export.js');
// $sub_part is also used in db_info.inc.php to see if we are coming from
// db_export.php, in which case we don't obey $cfg['MaxTableList']
$sub_part = '_export';
-require_once './libraries/db_common.inc.php';
+require_once 'libraries/db_common.inc.php';
$url_query .= '&goto=db_export.php';
-require_once './libraries/db_info.inc.php';
+require_once 'libraries/db_info.inc.php';
/**
* Displays the form
@@ -28,27 +31,33 @@
// exit if no tables in db found
if ($num_tables < 1) {
PMA_Message::error(__('No tables found in database.'))->display();
- include './libraries/footer.inc.php';
exit;
} // end if
-$checkall_url = 'db_export.php?'
- . PMA_generate_common_url($db)
- . '&goto=db_export.php';
+$multi_values = '';
+$multi_values .= '
';
+$multi_values .= __('Select All');
+$multi_values .= ' ';
+$multi_values .= ' / ';
+$multi_values .= '
';
+$multi_values .= __('Unselect All');
+$multi_values .= ' ';
-$multi_values = '
';
-$multi_values .= '
' . __('Select All') . '
- /
-
' . __('Unselect All') . ' ';
-
-$multi_values .= '
';
+$multi_values .= '';
$multi_values .= "\n";
-if (!empty($selected_tbl) && empty($table_select)) {
- $table_select = $selected_tbl;
+// when called by libraries/mult_submits.inc.php
+if (!empty($_POST['selected_tbl']) && empty($table_select)) {
+ $table_select = $_POST['selected_tbl'];
}
-// Check if the selected tables are defined in $_GET (from clicking Back button on export.php)
+// Check if the selected tables are defined in $_GET
+// (from clicking Back button on export.php)
if (isset($_GET['table_select'])) {
$_GET['table_select'] = urldecode($_GET['table_select']);
$_GET['table_select'] = explode(",", $_GET['table_select']);
@@ -61,9 +70,12 @@
} else {
$is_selected = '';
}
- } elseif (! empty($unselectall)
- || (! empty($table_select) && !in_array($each_table['Name'], $table_select))) {
- $is_selected = '';
+ } elseif (isset($table_select)) {
+ if (in_array($each_table['Name'], $table_select)) {
+ $is_selected = ' selected="selected"';
+ } else {
+ $is_selected = '';
+ }
} else {
$is_selected = ' selected="selected"';
}
@@ -77,10 +89,6 @@
$multi_values .= ' ';
$export_type = 'database';
-require_once './libraries/display_export.lib.php';
+require_once 'libraries/display_export.inc.php';
-/**
- * Displays the footer
- */
-require './libraries/footer.inc.php';
?>
diff --git a/phpMyAdmin/db_import.php b/phpMyAdmin/db_import.php
index fcf56b6..70425b2 100644
--- a/phpMyAdmin/db_import.php
+++ b/phpMyAdmin/db_import.php
@@ -1,29 +1,25 @@
getHeader();
+$scripts = $header->getScripts();
+$scripts->addFile('import.js');
/**
* Gets tables informations and displays top links
*/
-require './libraries/db_common.inc.php';
-require './libraries/db_info.inc.php';
+require 'libraries/db_common.inc.php';
+require 'libraries/db_info.inc.php';
$import_type = 'database';
-require './libraries/display_import.lib.php';
+require 'libraries/display_import.inc.php';
-/**
- * Displays the footer
- */
-require './libraries/footer.inc.php';
?>
-
diff --git a/phpMyAdmin/db_operations.php b/phpMyAdmin/db_operations.php
index e4c5591..6d0db19 100644
--- a/phpMyAdmin/db_operations.php
+++ b/phpMyAdmin/db_operations.php
@@ -15,59 +15,42 @@
/**
* requirements
*/
-require_once './libraries/common.inc.php';
-require_once './libraries/mysql_charsets.lib.php';
+require_once 'libraries/common.inc.php';
+require_once 'libraries/mysql_charsets.inc.php';
-// add blobstreaming library functions
-require_once "./libraries/blobstreaming.lib.php";
+/**
+ * functions implementation for this script
+ */
+require_once 'libraries/operations.lib.php';
// add a javascript file for jQuery functions to handle Ajax actions
-// also add jQueryUI
-$GLOBALS['js_include'][] = 'jquery/jquery-ui-1.8.16.custom.js';
-$GLOBALS['js_include'][] = 'db_operations.js';
+$response = PMA_Response::getInstance();
+$header = $response->getHeader();
+$scripts = $header->getScripts();
+$scripts->addFile('db_operations.js');
/**
* Rename/move or copy database
*/
-if (strlen($db) && (! empty($db_rename) || ! empty($db_copy))) {
-
- if (! empty($db_rename)) {
+if (strlen($db)
+ && (! empty($_REQUEST['db_rename']) || ! empty($_REQUEST['db_copy']))
+) {
+ if (! empty($_REQUEST['db_rename'])) {
$move = true;
} else {
$move = false;
}
- if (! isset($newname) || ! strlen($newname)) {
+ if (! isset($_REQUEST['newname']) || ! strlen($_REQUEST['newname'])) {
$message = PMA_Message::error(__('The database name is empty!'));
} else {
$sql_query = ''; // in case target db exists
$_error = false;
- if ($move || (isset($create_database_before_copying) && $create_database_before_copying)) {
- // lower_case_table_names=1 `DB` becomes `db`
- if (!PMA_DRIZZLE) {
- $lower_case_table_names = PMA_DBI_fetch_value('SHOW VARIABLES LIKE "lower_case_table_names"', 0, 1);
- if ($lower_case_table_names === '1') {
- $newname = PMA_strtolower($newname);
- }
- }
-
- $local_query = 'CREATE DATABASE ' . PMA_backquote($newname);
- if (isset($db_collation)) {
- $local_query .= ' DEFAULT' . PMA_generateCharsetQueryPart($db_collation);
- }
- $local_query .= ';';
- $sql_query = $local_query;
- // save the original db name because Tracker.class.php which
- // may be called under PMA_DBI_query() changes $GLOBALS['db']
- // for some statements, one of which being CREATE DATABASE
- $original_db = $db;
- PMA_DBI_query($local_query);
- $db = $original_db;
- unset($original_db);
-
- // rebuild the database list because PMA_Table::moveCopy
- // checks in this list if the target db exists
- $GLOBALS['pma']->databases->build();
+ if ($move
+ || (isset($_REQUEST['create_database_before_copying'])
+ && $_REQUEST['create_database_before_copying'])
+ ) {
+ $sql_query = PMA_getSqlQueryAndCreateDbBeforeCopy();
}
// here I don't use DELIMITER because it's not part of the
@@ -76,224 +59,96 @@
// to avoid selecting alternatively the current and new db
// we would need to modify the CREATE definitions to qualify
// the db name
- $procedure_names = PMA_DBI_get_procedures_or_functions($db, 'PROCEDURE');
- if ($procedure_names) {
- foreach ($procedure_names as $procedure_name) {
- PMA_DBI_select_db($db);
- $tmp_query = PMA_DBI_get_definition($db, 'PROCEDURE', $procedure_name);
- // collect for later display
- $GLOBALS['sql_query'] .= "\n" . $tmp_query;
- PMA_DBI_select_db($newname);
- PMA_DBI_query($tmp_query);
- }
- }
-
- $function_names = PMA_DBI_get_procedures_or_functions($db, 'FUNCTION');
- if ($function_names) {
- foreach ($function_names as $function_name) {
- PMA_DBI_select_db($db);
- $tmp_query = PMA_DBI_get_definition($db, 'FUNCTION', $function_name);
- // collect for later display
- $GLOBALS['sql_query'] .= "\n" . $tmp_query;
- PMA_DBI_select_db($newname);
- PMA_DBI_query($tmp_query);
- }
- }
+ PMA_runProcedureAndFunctionDefinitions($db);
// go back to current db, just in case
- PMA_DBI_select_db($db);
+ $GLOBALS['dbi']->selectDb($db);
- $GLOBALS['sql_constraints_query_full_db'] = array();
-
- $tables_full = PMA_DBI_get_tables_full($db);
- $views = array();
+ $tables_full = $GLOBALS['dbi']->getTablesFull($db);
+ include_once "libraries/plugin_interface.lib.php";
// remove all foreign key constraints, otherwise we can get errors
- include_once './libraries/export/sql.php';
- foreach ($tables_full as $each_table => $tmp) {
- $sql_constraints = '';
- $sql_drop_foreign_keys = '';
- $sql_structure = PMA_getTableDef($db, $each_table, "\n", '', false, false);
- if ($move && ! empty($sql_drop_foreign_keys)) {
- PMA_DBI_query($sql_drop_foreign_keys);
- }
- // keep the constraint we just dropped
- if (! empty($sql_constraints)) {
- $GLOBALS['sql_constraints_query_full_db'][] = $sql_constraints;
- }
- }
- unset($sql_constraints, $sql_drop_foreign_keys, $sql_structure);
-
- foreach ($tables_full as $each_table => $tmp) {
- // to be able to rename a db containing views,
- // first all the views are collected and a stand-in is created
- // the real views are created after the tables
- if (PMA_Table::isView($db, $each_table)) {
- $views[] = $each_table;
- // Create stand-in definition to resolve view dependencies
- $sql_view_standin = PMA_getTableDefStandIn($db, $each_table, "\n");
- PMA_DBI_select_db($newname);
- PMA_DBI_query($sql_view_standin);
- $GLOBALS['sql_query'] .= "\n" . $sql_view_standin;
- }
- }
+ $export_sql_plugin = PMA_getPlugin(
+ "export",
+ "sql",
+ 'libraries/plugins/export/',
+ array(
+ 'single_table' => isset($single_table),
+ 'export_type' => 'database'
+ )
+ );
+ $GLOBALS['sql_constraints_query_full_db']
+ = PMA_getSqlConstraintsQueryForFullDb(
+ $tables_full, $export_sql_plugin, $move, $db
+ );
- foreach ($tables_full as $each_table => $tmp) {
- // skip the views; we have creted stand-in definitions
- if (PMA_Table::isView($db, $each_table)) {
- continue;
- }
- $back = $sql_query;
- $sql_query = '';
-
- // value of $what for this table only
- $this_what = $what;
-
- // do not copy the data from a Merge table
- // note: on the calling FORM, 'data' means 'structure and data'
- if (PMA_Table::isMerge($db, $each_table)) {
- if ($this_what == 'data') {
- $this_what = 'structure';
- }
- if ($this_what == 'dataonly') {
- $this_what = 'nocopy';
- }
- }
+ $views = PMA_getViewsAndCreateSqlViewStandIn(
+ $tables_full, $export_sql_plugin, $db
+ );
- if ($this_what != 'nocopy') {
- // keep the triggers from the original db+table
- // (third param is empty because delimiters are only intended
- // for importing via the mysql client or our Import feature)
- $triggers = PMA_DBI_get_triggers($db, $each_table, '');
-
- if (! PMA_Table::moveCopy(
- $db, $each_table, $newname, $each_table,
- isset($this_what) ? $this_what : 'data', $move, 'db_copy')
- ) {
- $_error = true;
- // $sql_query is filled by PMA_Table::moveCopy()
- $sql_query = $back . $sql_query;
- break;
- }
- // apply the triggers to the destination db+table
- if ($triggers) {
- PMA_DBI_select_db($newname);
- foreach ($triggers as $trigger) {
- PMA_DBI_query($trigger['create']);
- $GLOBALS['sql_query'] .= "\n" . $trigger['create'] . ';';
- }
- unset($trigger);
- }
- unset($triggers);
-
- // this does not apply to a rename operation
- if (isset($GLOBALS['add_constraints']) && !empty($GLOBALS['sql_constraints_query'])) {
- $GLOBALS['sql_constraints_query_full_db'][] = $GLOBALS['sql_constraints_query'];
- unset($GLOBALS['sql_constraints_query']);
- }
- }
- // $sql_query is filled by PMA_Table::moveCopy()
- $sql_query = $back . $sql_query;
- } // end (foreach)
- unset($each_table);
+ list($sql_query, $_error) = PMA_getSqlQueryForCopyTable(
+ $tables_full, $sql_query, $move, $db
+ );
// handle the views
if (! $_error) {
- // temporarily force to add DROP IF EXIST to CREATE VIEW query,
- // to remove stand-in VIEW that was created earlier
- if (isset($GLOBALS['drop_if_exists'])) {
- $temp_drop_if_exists = $GLOBALS['drop_if_exists'];
- }
- $GLOBALS['drop_if_exists'] = 'true';
-
- foreach ($views as $view) {
- if (! PMA_Table::moveCopy($db, $view, $newname, $view, 'structure', $move, 'db_copy')) {
- $_error = true;
- break;
- }
- }
- unset($GLOBALS['drop_if_exists']);
- if (isset($temp_drop_if_exists)) {
- // restore previous value
- $GLOBALS['drop_if_exists'] = $temp_drop_if_exists;
- unset($temp_drop_if_exists);
- }
+ $_error = PMA_handleTheViews($views, $move, $db);
}
- unset($view, $views);
+ unset($views);
// now that all tables exist, create all the accumulated constraints
if (! $_error && count($GLOBALS['sql_constraints_query_full_db']) > 0) {
- PMA_DBI_select_db($newname);
- foreach ($GLOBALS['sql_constraints_query_full_db'] as $one_query) {
- PMA_DBI_query($one_query);
- // and prepare to display them
- $GLOBALS['sql_query'] .= "\n" . $one_query;
- }
-
- unset($GLOBALS['sql_constraints_query_full_db'], $one_query);
+ PMA_createAllAccumulatedConstraints();
}
- if (!PMA_DRIZZLE && PMA_MYSQL_INT_VERSION >= 50100) {
+ if (! PMA_DRIZZLE && PMA_MYSQL_INT_VERSION >= 50100) {
// here DELIMITER is not used because it's not part of the
// language; each statement is sent one by one
- // to avoid selecting alternatively the current and new db
- // we would need to modify the CREATE definitions to qualify
- // the db name
- $event_names = PMA_DBI_fetch_result('SELECT EVENT_NAME FROM information_schema.EVENTS WHERE EVENT_SCHEMA= \'' . PMA_sqlAddSlashes($db, true) . '\';');
- if ($event_names) {
- foreach ($event_names as $event_name) {
- PMA_DBI_select_db($db);
- $tmp_query = PMA_DBI_get_definition($db, 'EVENT', $event_name);
- // collect for later display
- $GLOBALS['sql_query'] .= "\n" . $tmp_query;
- PMA_DBI_select_db($newname);
- PMA_DBI_query($tmp_query);
- }
- }
+ PMA_runEventDefinitionsForDb($db);
}
// go back to current db, just in case
- PMA_DBI_select_db($db);
+ $GLOBALS['dbi']->selectDb($db);
// Duplicate the bookmarks for this db (done once for each db)
- if (! $_error && $db != $newname) {
- $get_fields = array('user', 'label', 'query');
- $where_fields = array('dbase' => $db);
- $new_fields = array('dbase' => $newname);
- PMA_Table::duplicateInfo('bookmarkwork', 'bookmark', $get_fields,
- $where_fields, $new_fields);
- }
+ PMA_duplicateBookmarks($_error, $db);
if (! $_error && $move) {
/**
* cleanup pmadb stuff for this db
*/
- include_once './libraries/relation_cleanup.lib.php';
+ include_once 'libraries/relation_cleanup.lib.php';
PMA_relationsCleanupDatabase($db);
// if someday the RENAME DATABASE reappears, do not DROP
- $local_query = 'DROP DATABASE ' . PMA_backquote($db) . ';';
+ $local_query = 'DROP DATABASE ' . PMA_Util::backquote($db) . ';';
$sql_query .= "\n" . $local_query;
- PMA_DBI_query($local_query);
+ $GLOBALS['dbi']->query($local_query);
- $message = PMA_Message::success(__('Database %s has been renamed to %s'));
+ $message = PMA_Message::success(
+ __('Database %1$s has been renamed to %2$s')
+ );
$message->addParam($db);
- $message->addParam($newname);
+ $message->addParam($_REQUEST['newname']);
} elseif (! $_error) {
- $message = PMA_Message::success(__('Database %s has been copied to %s'));
+ $message = PMA_Message::success(
+ __('Database %1$s has been copied to %2$s')
+ );
$message->addParam($db);
- $message->addParam($newname);
+ $message->addParam($_REQUEST['newname']);
}
$reload = true;
/* Change database to be used */
if (! $_error && $move) {
- $db = $newname;
+ $db = $_REQUEST['newname'];
} elseif (! $_error) {
- if (isset($switch_to_new) && $switch_to_new == 'true') {
+ if (isset($_REQUEST['switch_to_new'])
+ && $_REQUEST['switch_to_new'] == 'true'
+ ) {
$GLOBALS['PMA_Config']->setCookie('pma_switch_to_new', 'true');
- $db = $newname;
+ $db = $_REQUEST['newname'];
} else {
$GLOBALS['PMA_Config']->setCookie('pma_switch_to_new', '');
}
@@ -306,16 +161,22 @@
/**
* Database has been successfully renamed/moved. If in an Ajax request,
- * generate the output with {@link PMA_ajaxResponse} and exit
+ * generate the output with {@link PMA_Response} and exit
*/
- if ( $GLOBALS['is_ajax_request'] == true) {
- $extra_data['newname'] = $newname;
- $extra_data['sql_query'] = PMA_showMessage(null, $sql_query);
- PMA_ajaxResponse($message, $message->isSuccess(), $extra_data);
- };
+ if ($GLOBALS['is_ajax_request'] == true) {
+ $response = PMA_Response::getInstance();
+ $response->isSuccess($message->isSuccess());
+ $response->addJSON('message', $message);
+ $response->addJSON('newname', $_REQUEST['newname']);
+ $response->addJSON(
+ 'sql_query',
+ PMA_Util::getMessage(null, $sql_query)
+ );
+ $response->addJSON('db', $db);
+ exit;
+ }
}
-
/**
* Settings for relations stuff
*/
@@ -327,276 +188,113 @@
* (must be done before displaying the menu tabs)
*/
if (isset($_REQUEST['comment'])) {
- PMA_setDbComment($db, $comment);
+ PMA_setDbComment($db, $_REQUEST['comment']);
}
-/**
- * Prepares the tables list if the user where not redirected to this script
- * because there is no table in the database ($is_info is true)
- */
-if (empty($is_info)) {
- include './libraries/db_common.inc.php';
- $url_query .= '&goto=db_operations.php';
-
- // Gets the database structure
- $sub_part = '_structure';
- include './libraries/db_info.inc.php';
- echo "\n";
-
- if (isset($message)) {
- PMA_showMessage($message, $sql_query);
- unset($message);
- }
+require 'libraries/db_common.inc.php';
+$url_query .= '&goto=db_operations.php';
+
+// Gets the database structure
+$sub_part = '_structure';
+require 'libraries/db_info.inc.php';
+echo "\n";
+
+if (isset($message)) {
+ echo PMA_Util::getMessage($message, $sql_query);
+ unset($message);
}
-$db_collation = PMA_getDbCollation($db);
-$is_information_schema = PMA_is_system_schema($db);
+$_REQUEST['db_collation'] = PMA_getDbCollation($db);
+$is_information_schema = $GLOBALS['dbi']->isSystemSchema($db);
+
+$response->addHTML('
');
if (!$is_information_schema) {
if ($cfgRelation['commwork']) {
/**
* database comment
*/
- ?>
-
-
-
- addHTML(PMA_getHtmlForDatabaseComment($db));
}
- ?>
-
-
-
- addHTML('
');
+ ob_start();
+ include 'libraries/display_create_table.lib.php';
+ $content = ob_get_contents();
+ ob_end_clean();
+ $response->addHTML($content);
+ $response->addHTML('
');
+
/**
* rename database
*/
-if ($db != 'mysql') {
- ?>
-
-
-
-
-
-
-
-
-
- $this_sql_query,
- 'back' => 'db_operations.php',
- 'goto' => 'main.php',
- 'reload' => '1',
- 'purge' => '1',
- 'message_to_show' => sprintf(__('Database %s has been dropped.'), htmlspecialchars(PMA_backquote($db))),
- 'db' => null,
- );
- ?>
- >
-
-
-
-
-
-
-
- addHTML(PMA_getHtmlForDropDatabaseLink($db));
+ }
/**
* Copy database
*/
- ?>
-
-
-
- addHTML(PMA_getHtmlForCopyDatabase($db));
/**
* Change database charset
*/
- echo '
' . "\n";
+ $response->addHTML(PMA_getHtmlForChangeDatabaseCharset($db, $table));
if ($num_tables > 0
- && ! $cfgRelation['allworks'] && $cfg['PmaNoRelation_DisableWarning'] == false) {
- $message = PMA_Message::notice(__('The phpMyAdmin configuration storage has been deactivated. To find out why click %shere%s.'));
- $message->addParam('
', false);
+ && ! $cfgRelation['allworks']
+ && $cfg['PmaNoRelation_DisableWarning'] == false
+ ) {
+ $message = PMA_Message::notice(
+ __('The phpMyAdmin configuration storage has been deactivated. To find out why click %shere%s.')
+ );
+ $message->addParam(
+ ' ',
+ false
+ );
$message->addParam(' ', false);
/* Show error if user has configured something, notice elsewhere */
if (!empty($cfg['Servers'][$server]['pmadb'])) {
$message->isError(true);
}
- echo '
';
- $message->display();
- echo '
';
+ $response->addHTML('
');
+ $response->addHTML($message->getDisplay());
+ $response->addHTML('
');
} // end if
} // end if (!$is_information_schema)
+$response->addHTML('
');
// not sure about displaying the PDF dialog in case db is information_schema
-if ($cfgRelation['pdfwork'] && $num_tables > 0) { ?>
-
-
- 0) {
// We only show this if we find something in the new pdf_pages table
-
$test_query = '
SELECT *
- FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['pdf_pages']) . '
- WHERE db_name = \'' . PMA_sqlAddSlashes($db) . '\'';
- $test_rs = PMA_query_as_controluser($test_query, null, PMA_DBI_QUERY_STORE);
+ FROM ' . PMA_Util::backquote($GLOBALS['cfgRelation']['db'])
+ . '.' . PMA_Util::backquote($cfgRelation['pdf_pages']) . '
+ WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
+ $test_rs = PMA_queryAsControlUser(
+ $test_query,
+ null,
+ PMA_DatabaseInterface::QUERY_STORE
+ );
/*
* Export Relational Schema View
*/
- echo '
';
+ $response->addHTML(PMA_getHtmlForExportRelationalSchemaView($url_query));
} // end if
-/**
- * Displays the footer
- */
-require './libraries/footer.inc.php';
?>
diff --git a/phpMyAdmin/db_printview.php b/phpMyAdmin/db_printview.php
index 5512fa6..137bdaa 100644
--- a/phpMyAdmin/db_printview.php
+++ b/phpMyAdmin/db_printview.php
@@ -1,6 +1,7 @@
getHeader();
+$header->enablePrintView();
-PMA_checkParameters(array('db'));
+PMA_Util::checkParameters(array('db'));
/**
* Defines the url to return to in case of error in a sql statement
*/
-$err_url = 'db_sql.php?' . PMA_generate_common_url($db);
+$err_url = 'db_sql.php?' . PMA_URL_getCommon($db);
/**
* Settings for relations stuff
*/
$cfgRelation = PMA_getRelationsParam();
-/**
- * Gets the list of the table in the current db and informations about these
- * tables if possible
- *
- * @todo merge this speedup _optionaly_ into PMA_DBI_get_tables_full()
- *
-// speedup view on locked tables
-// Special speedup for newer MySQL Versions (in 4.0 format changed)
-if ($cfg['SkipLockedTables'] == true) {
- $result = PMA_DBI_query('SHOW OPEN TABLES FROM ' . PMA_backquote($db) . ';');
- // Blending out tables in use
- if ($result != false && PMA_DBI_num_rows($result) > 0) {
- while ($tmp = PMA_DBI_fetch_row($result)) {
- // if in use memorize tablename
- if (preg_match('@in_use=[1-9]+@i', $tmp[0])) {
- $sot_cache[$tmp[0]] = true;
- }
- }
- PMA_DBI_free_result($result);
-
- if (isset($sot_cache)) {
- $result = PMA_DBI_query('SHOW TABLES FROM ' . PMA_backquote($db) . ';', null, PMA_DBI_QUERY_STORE);
- if ($result != false && PMA_DBI_num_rows($result) > 0) {
- while ($tmp = PMA_DBI_fetch_row($result)) {
- if (! isset($sot_cache[$tmp[0]])) {
- $sts_result = PMA_DBI_query('SHOW TABLE STATUS FROM ' . PMA_backquote($db) . ' LIKE \'' . PMA_sqlAddSlashes($tmp[0], true) . '\';');
- $sts_tmp = PMA_DBI_fetch_assoc($sts_result);
- $tables[] = $sts_tmp;
- } else { // table in use
- $tables[] = array('Name' => $tmp[0]);
- }
- }
- PMA_DBI_free_result($result);
- $sot_ready = true;
- }
- }
- unset($tmp, $result);
- }
-}
-
-if (! isset($sot_ready)) {
- $result = PMA_DBI_query('SHOW TABLE STATUS FROM ' . PMA_backquote($db) . ';');
- if (PMA_DBI_num_rows($result) > 0) {
- while ($sts_tmp = PMA_DBI_fetch_assoc($result)) {
- $tables[] = $sts_tmp;
- }
- PMA_DBI_free_result($result);
- unset($res);
- }
-}
- */
-
/**
* If there is at least one table, displays the printer friendly view, else
* an error message
*/
-$tables = PMA_DBI_get_tables_full($db);
+$tables = $GLOBALS['dbi']->getTablesFull($db);
$num_tables = count($tables);
echo '
';
@@ -93,76 +40,66 @@
if ($num_tables == 0) {
echo __('No tables found in database.');
} else {
-// 2. Shows table information
- ?>
-
-
-
-
-
-
- ';
+ echo '';
+ echo '';
+ echo '' . __('Table') . ' ';
+ echo '' . __('Rows') . ' ';
+ echo '' . __('Type') . ' ';
if ($cfg['ShowStats']) {
echo '' . __('Size') . ' ';
}
- ?>
-
-
-
-
- ' . __('Comments') . '';
+ echo '';
+ echo '';
+ echo ' ';
$sum_entries = $sum_size = 0;
$odd_row = true;
foreach ($tables as $sts_data) {
if (PMA_Table::isMerge($db, $sts_data['TABLE_NAME'])
- || strtoupper($sts_data['ENGINE']) == 'FEDERATED') {
+ || strtoupper($sts_data['ENGINE']) == 'FEDERATED'
+ ) {
$merged_size = true;
} else {
$merged_size = false;
}
$sum_entries += $sts_data['TABLE_ROWS'];
- ?>
-
-
-
-
- ';
+ echo '';
+ echo htmlspecialchars($sts_data['TABLE_NAME']);
+ echo ' ';
if (isset($sts_data['TABLE_ROWS'])) {
- ?>
-
- ';
if ($merged_size) {
- echo '' . PMA_formatNumber($sts_data['TABLE_ROWS'], 0) . ' ' . "\n";
+ echo '';
+ echo PMA_Util::formatNumber($sts_data['TABLE_ROWS'], 0);
+ echo ' ';
} else {
- echo PMA_formatNumber($sts_data['TABLE_ROWS'], 0) . "\n";
+ echo PMA_Util::formatNumber($sts_data['TABLE_ROWS'], 0);
}
- ?>
-
-
-
-
- ';
+ echo '';
+ echo $sts_data['ENGINE'];
+ echo ' ';
if ($cfg['ShowStats']) {
$tblsize = $sts_data['Data_length'] + $sts_data['Index_length'];
$sum_size += $tblsize;
- list($formated_size, $unit) = PMA_formatByteDown($tblsize, 3, 1);
- ?>
-
-
-
- ';
+ echo $formated_size . ' ' . $unit;
+ echo '';
} // end if
} else {
- ?>
-
-
-
- ';
+ if (! PMA_Table::isView($db, $sts_data['TABLE_NAME'])) {
+ echo __('in use');
+ }
+ echo '';
}
- ?>
-
- ';
if (! empty($sts_data['Comment'])) {
echo htmlspecialchars($sts_data['Comment']);
$needs_break = ' ';
@@ -171,82 +108,73 @@
}
if (! empty($sts_data['Create_time'])
- || ! empty($sts_data['Update_time'])
- || ! empty($sts_data['Check_time'])) {
+ || ! empty($sts_data['Update_time'])
+ || ! empty($sts_data['Check_time'])
+ ) {
echo $needs_break;
- ?>
-
- ';
if (! empty($sts_data['Create_time'])) {
- ?>
-
-
-
-
- ';
+ echo '' . __('Creation:') . ' ';
+ echo '';
+ echo PMA_Util::localisedDate(strtotime($sts_data['Create_time']));
+ echo ' ';
+ echo '';
}
if (! empty($sts_data['Update_time'])) {
- ?>
-
-
-
-
- ';
+ echo '' . __('Last update:') . ' ';
+ echo '';
+ echo PMA_Util::localisedDate(strtotime($sts_data['Update_time']));
+ echo ' ';
+ echo '';
}
if (! empty($sts_data['Check_time'])) {
- ?>
-
-
-
-
- ';
+ echo '' . __('Last check:') . ' ';
+ echo '';
+ echo PMA_Util::localisedDate(strtotime($sts_data['Check_time']));
+ echo ' ';
+ echo '';
}
- ?>
-
- ';
}
- ?>
-
-
- ';
+ echo '';
}
- ?>
-
-
-
-
-
-
-
-
- --
-
- ';
+ echo '';
+ printf(
+ _ngettext('%s table', '%s tables', $num_tables),
+ PMA_Util::formatNumber($num_tables, 0)
+ );
+ echo ' ';
+ echo '';
+ echo PMA_Util::formatNumber($sum_entries, 0);
+ echo ' ';
+ echo '';
+ echo '--';
+ echo ' ';
if ($cfg['ShowStats']) {
- list($sum_formated, $unit) = PMA_formatByteDown($sum_size, 3, 1);
- ?>
-
-
-
- ';
+ echo $sum_formated . ' ' . $unit;
+ echo '';
}
- ?>
-
-
-
-
- ';
+ echo '';
+ echo '';
+ echo '';
}
/**
* Displays the footer
*/
-PMA_printButton();
+echo PMA_Util::getButton();
echo "\n";
-
-require './libraries/footer.inc.php';
?>
diff --git a/phpMyAdmin/db_qbe.php b/phpMyAdmin/db_qbe.php
index b4249bf..7fad34d 100644
--- a/phpMyAdmin/db_qbe.php
+++ b/phpMyAdmin/db_qbe.php
@@ -9,13 +9,15 @@
/**
* requirements
*/
-require_once './libraries/common.inc.php';
+require_once 'libraries/common.inc.php';
+require_once 'libraries/DBQbe.class.php';
+require_once 'libraries/bookmark.lib.php';
+require_once 'libraries/sql.lib.php';
-/**
- * Gets the relation settings
- */
-$cfgRelation = PMA_getRelationsParam();
+$response = PMA_Response::getInstance();
+// Gets the relation settings
+$cfgRelation = PMA_getRelationsParam();
/**
* A query has been submitted -> (maybe) execute it
@@ -26,941 +28,51 @@
$message_to_display = true;
} else {
$goto = 'db_sql.php';
- include './sql.php';
- exit;
+
+ // Parse and analyze the query
+ include_once 'libraries/parse_analyze.inc.php';
+
+ PMA_executeQueryAndSendQueryResponse(
+ $analyzed_sql_results, false, $_REQUEST['db'], null, null, null, null,
+ false, null, null, null, null, $goto, $pmaThemeImage, null, null, null,
+ $sql_query, null, null
+ );
}
}
$sub_part = '_qbe';
-require './libraries/db_common.inc.php';
+require 'libraries/db_common.inc.php';
$url_query .= '&goto=db_qbe.php';
$url_params['goto'] = 'db_qbe.php';
-require './libraries/db_info.inc.php';
+require 'libraries/db_info.inc.php';
if ($message_to_display) {
PMA_Message::error(__('You have to choose at least one column to display'))->display();
}
unset($message_to_display);
-/**
- * Initialize some variables
- */
-$col_cnt = PMA_ifSetOr($_REQUEST['col_cnt'], 3, 'numeric');
-$add_col = PMA_ifSetOr($_REQUEST['add_col'], 0, 'numeric');
-$add_row = PMA_ifSetOr($_REQUEST['add_row'], 0, 'numeric');
-
-$rows = PMA_ifSetOr($_REQUEST['rows'], 0, 'numeric');
-$ins_col = PMA_ifSetOr($_REQUEST['ins_col'], null, 'array');
-$del_col = PMA_ifSetOr($_REQUEST['del_col'], null, 'array');
-
-$prev_criteria = isset($_REQUEST['prev_criteria'])
- ? $_REQUEST['prev_criteria']
- : array();
-$criteria = isset($_REQUEST['criteria'])
- ? $_REQUEST['criteria']
- : array_fill(0, $col_cnt, '');
-
-$ins_row = isset($_REQUEST['ins_row'])
- ? $_REQUEST['ins_row']
- : array_fill(0, $col_cnt, '');
-$del_row = isset($_REQUEST['del_row'])
- ? $_REQUEST['del_row']
- : array_fill(0, $col_cnt, '');
-$and_or_row = isset($_REQUEST['and_or_row'])
- ? $_REQUEST['and_or_row']
- : array_fill(0, $col_cnt, '');
-$and_or_col = isset($_REQUEST['and_or_col'])
- ? $_REQUEST['and_or_col']
- : array_fill(0, $col_cnt, '');
-
-// minimum width
-$form_column_width = 12;
-$col = max($col_cnt + $add_col, 0);
-$row = max($rows + $add_row, 0);
-
-
-// The tables list sent by a previously submitted form
-if (PMA_isValid($_REQUEST['TableList'], 'array')) {
- foreach ($_REQUEST['TableList'] as $each_table) {
- $tbl_names[$each_table] = ' selected="selected"';
- }
-} // end if
-
-
-// this was a work in progress, deactivated for now
-//$columns = PMA_DBI_get_columns_full($GLOBALS['db']);
-//$tables = PMA_DBI_get_columns_full($GLOBALS['db']);
-
-
-/**
- * Prepares the form
- */
-$tbl_result = PMA_DBI_query('SHOW TABLES FROM ' . PMA_backquote($db) . ';', null, PMA_DBI_QUERY_STORE);
-$tbl_result_cnt = PMA_DBI_num_rows($tbl_result);
-if (0 == $tbl_result_cnt) {
- PMA_Message::error(__('No tables found in database.'))->display();
- include './libraries/footer.inc.php';
- exit;
-}
-
-// The tables list gets from MySQL
-while (list($tbl) = PMA_DBI_fetch_row($tbl_result)) {
- $fld_results = PMA_DBI_get_columns($db, $tbl);
-
- if (empty($tbl_names[$tbl]) && !empty($_REQUEST['TableList'])) {
- $tbl_names[$tbl] = '';
- } else {
- $tbl_names[$tbl] = ' selected="selected"';
- } // end if
-
- // The fields list per selected tables
- if ($tbl_names[$tbl] == ' selected="selected"') {
- $each_table = PMA_backquote($tbl);
- $fld[] = $each_table . '.*';
- foreach ($fld_results as $each_field) {
- $each_field = $each_table . '.' . PMA_backquote($each_field['Field']);
- $fld[] = $each_field;
-
- // increase the width if necessary
- $form_column_width = max(strlen($each_field), $form_column_width);
- } // end foreach
- } // end if
-} // end while
-PMA_DBI_free_result($tbl_result);
-
-// largest width found
-$realwidth = $form_column_width . 'ex';
-
+// create new qbe search instance
+$db_qbe = new PMA_DBQbe($GLOBALS['db']);
/**
* Displays the Query by example form
*/
-
-/**
- * Enter description here...
- *
- * @param array $columns
- * @param integer $column_number
- * @param string $selected
- */
-function showColumnSelectCell($columns, $column_number, $selected = '')
-{
- ?>
-
-
-
- '
- . str_replace(' ', ' ', htmlspecialchars($column)) . '' . "\n";
- }
- ?>
-
-
-
- $value) {
- $tab_designer['link'] .= PMA_get_arg_separator('html') . urlencode($param) . '='
- . urlencode($value);
- }
- }
- }
- if (! empty($tab['fragment'])) {
- $tab['link'] .= $tab['fragment'];
- }
- if (isset($tab_designer['link'])) {
-?>
-
-
-
-
-
-addHTML($db_qbe->getSelectionForm($cfgRelation));
?>
diff --git a/phpMyAdmin/db_routines.php b/phpMyAdmin/db_routines.php
index 1d4ee0c..a58d4c0 100644
--- a/phpMyAdmin/db_routines.php
+++ b/phpMyAdmin/db_routines.php
@@ -9,34 +9,19 @@
/**
* Include required files
*/
-require_once './libraries/common.inc.php';
-require_once './libraries/common.lib.php';
-require_once './libraries/mysql_charsets.lib.php';
-if (PMA_DRIZZLE) {
- include_once './libraries/data_drizzle.inc.php';
-} else {
- include_once './libraries/data_mysql.inc.php';
-}
-
-/**
- * Include JavaScript libraries
- */
-$GLOBALS['js_include'][] = 'jquery/jquery-ui-1.8.16.custom.js';
-$GLOBALS['js_include'][] = 'jquery/timepicker.js';
-$GLOBALS['js_include'][] = 'rte/common.js';
-$GLOBALS['js_include'][] = 'rte/routines.js';
-$GLOBALS['js_include'][] = 'codemirror/lib/codemirror.js';
-$GLOBALS['js_include'][] = 'codemirror/mode/mysql/mysql.js';
+require_once 'libraries/common.inc.php';
+require_once 'libraries/Util.class.php';
+require_once 'libraries/mysql_charsets.inc.php';
/**
* Include all other files
*/
-require_once './libraries/rte/rte_routines.lib.php';
+require_once 'libraries/rte/rte_routines.lib.php';
/**
* Do the magic
*/
$_PMA_RTE = 'RTN';
-require_once './libraries/rte/rte_main.inc.php';
+require_once 'libraries/rte/rte_main.inc.php';
?>
diff --git a/phpMyAdmin/db_search.php b/phpMyAdmin/db_search.php
index 68cb463..acfec8e 100644
--- a/phpMyAdmin/db_search.php
+++ b/phpMyAdmin/db_search.php
@@ -9,353 +9,49 @@
*/
/**
- *
+ * Gets some core libraries
*/
-require_once './libraries/common.inc.php';
+require_once 'libraries/common.inc.php';
+require_once 'libraries/DbSearch.class.php';
-$GLOBALS['js_include'][] = 'db_search.js';
-$GLOBALS['js_include'][] = 'sql.js';
-$GLOBALS['js_include'][] = 'makegrid.js';
-$GLOBALS['js_include'][] = 'jquery/timepicker.js';
+$response = PMA_Response::getInstance();
+$header = $response->getHeader();
+$scripts = $header->getScripts();
+$scripts->addFile('db_search.js');
+$scripts->addFile('sql.js');
+$scripts->addFile('makegrid.js');
+$scripts->addFile('jquery/jquery-ui-timepicker-addon.js');
-/**
- * Gets some core libraries and send headers
- */
-require './libraries/db_common.inc.php';
+require 'libraries/db_common.inc.php';
-/**
- * init
- */
// If config variable $GLOBALS['cfg']['Usedbsearch'] is on false : exit.
if (! $GLOBALS['cfg']['UseDbSearch']) {
- PMA_mysqlDie(__('Access denied'), '', false, $err_url);
+ PMA_Util::mysqlDie(
+ __('Access denied'), '', false, $err_url
+ );
} // end if
$url_query .= '&goto=db_search.php';
$url_params['goto'] = 'db_search.php';
-/**
- * @global array list of tables from the current database
- * but do not clash with $tables coming from db_info.inc.php
- */
-$tables_names_only = PMA_DBI_get_tables($GLOBALS['db']);
-
-$search_options = array(
- '1' => __('at least one of the words'),
- '2' => __('all words'),
- '3' => __('the exact phrase'),
- '4' => __('as regular expression'),
-);
-
-if (empty($_REQUEST['search_option']) || ! is_string($_REQUEST['search_option'])
- || ! array_key_exists($_REQUEST['search_option'], $search_options)) {
- $search_option = 1;
- unset($_REQUEST['submit_search']);
-} else {
- $search_option = (int) $_REQUEST['search_option'];
- $option_str = $search_options[$_REQUEST['search_option']];
-}
-
-if (empty($_REQUEST['search_str']) || ! is_string($_REQUEST['search_str'])) {
- unset($_REQUEST['submit_search']);
- $searched = '';
-} else {
- $searched = htmlspecialchars($_REQUEST['search_str']);
- // For "as regular expression" (search option 4), we should not treat
- // this as an expression that contains a LIKE (second parameter of
- // PMA_sqlAddSlashes()).
- //
- // Usage example: If user is seaching for a literal $ in a regexp search,
- // he should enter \$ as the value.
- $search_str = PMA_sqlAddSlashes($_REQUEST['search_str'], ($search_option == 4 ? false : true));
-}
-
-$tables_selected = array();
-if (empty($_REQUEST['table_select']) || ! is_array($_REQUEST['table_select'])) {
- unset($_REQUEST['submit_search']);
-} elseif (! isset($_REQUEST['selectall']) && ! isset($_REQUEST['unselectall'])) {
- $tables_selected = array_intersect($_REQUEST['table_select'], $tables_names_only);
-}
-
-if (isset($_REQUEST['selectall'])) {
- $tables_selected = $tables_names_only;
-} elseif (isset($_REQUEST['unselectall'])) {
- $tables_selected = array();
-}
-
-if (empty($_REQUEST['field_str']) || ! is_string($_REQUEST['field_str'])) {
- unset($field_str);
-} else {
- $field_str = PMA_sqlAddSlashes($_REQUEST['field_str'], true);
-}
-
-/**
- * Displays top links if we are not in an Ajax request
- */
-$sub_part = '';
+// Create a database search instance
+$db_search = new PMA_DbSearch($GLOBALS['db']);
+// Display top links if we are not in an Ajax request
if ( $GLOBALS['is_ajax_request'] != true) {
- include './libraries/db_info.inc.php';
- echo '
';
+ include 'libraries/db_info.inc.php';
}
+$response->addHTML('
');
-/**
- * 1. Main search form has been submitted
- */
+// Main search form has been submitted, get results
if (isset($_REQUEST['submit_search'])) {
+ $response->addHTML($db_search->getSearchResults());
+}
- /**
- * Builds the SQL search query
- *
- * @todo can we make use of fulltextsearch IN BOOLEAN MODE for this?
- * PMA_backquote
- * PMA_DBI_free_result
- * PMA_DBI_fetch_assoc
- * $GLOBALS['db']
- * explode
- * count
- * strlen
- * @param string the table name
- * @param string restrict the search to this field
- * @param string the string to search
- * @param integer type of search (1 -> 1 word at least, 2 -> all words,
- * 3 -> exact string, 4 -> regexp)
- *
- * @return array 3 SQL querys (for count, display and delete results)
- */
- function PMA_getSearchSqls($table, $field, $search_str, $search_option)
- {
- // Statement types
- $sqlstr_select = 'SELECT';
- $sqlstr_delete = 'DELETE';
-
- // Fields to select
- $tblfields = PMA_DBI_get_columns($GLOBALS['db'], $table);
-
- // Table to use
- $sqlstr_from = ' FROM ' . PMA_backquote($GLOBALS['db']) . '.' . PMA_backquote($table);
-
- $search_words = (($search_option > 2) ? array($search_str) : explode(' ', $search_str));
-
- $like_or_regex = (($search_option == 4) ? 'REGEXP' : 'LIKE');
- $automatic_wildcard = (($search_option < 3) ? '%' : '');
-
- $fieldslikevalues = array();
- foreach ($search_words as $search_word) {
- // Eliminates empty values
- if (strlen($search_word) === 0) {
- continue;
- }
-
- $thefieldlikevalue = array();
- foreach ($tblfields as $tblfield) {
- if (! isset($field) || strlen($field) == 0 || $tblfield['Field'] == $field) {
- // Drizzle has no CONVERT and all text columns are UTF-8
- if (PMA_DRIZZLE) {
- $thefieldlikevalue[] = PMA_backquote($tblfield['Field'])
- . ' ' . $like_or_regex . ' '
- . "'" . $automatic_wildcard
- . $search_word
- . $automatic_wildcard . "'";
- } else {
- $thefieldlikevalue[] = 'CONVERT(' . PMA_backquote($tblfield['Field']) . ' USING utf8)'
- . ' ' . $like_or_regex . ' '
- . "'" . $automatic_wildcard
- . $search_word
- . $automatic_wildcard . "'";
- }
- }
- } // end for
-
- if (count($thefieldlikevalue) > 0) {
- $fieldslikevalues[] = implode(' OR ', $thefieldlikevalue);
- }
- } // end for
-
- $implode_str = ($search_option == 1 ? ' OR ' : ' AND ');
- if ( empty($fieldslikevalues)) {
- // this could happen when the "inside field" does not exist
- // in any selected tables
- $sqlstr_where = ' WHERE FALSE';
- } else {
- $sqlstr_where = ' WHERE (' . implode(') ' . $implode_str . ' (', $fieldslikevalues) . ')';
- }
- unset($fieldslikevalues);
-
- // Builds complete queries
- $sql['select_fields'] = $sqlstr_select . ' * ' . $sqlstr_from . $sqlstr_where;
- // here, I think we need to still use the COUNT clause, even for
- // VIEWs, anyway we have a WHERE clause that should limit results
- $sql['select_count'] = $sqlstr_select . ' COUNT(*) AS `count`' . $sqlstr_from . $sqlstr_where;
- $sql['delete'] = $sqlstr_delete . $sqlstr_from . $sqlstr_where;
-
- return $sql;
- } // end of the "PMA_getSearchSqls()" function
-
-
- /**
- * Displays the results
- */
- $this_url_params = array(
- 'db' => $GLOBALS['db'],
- 'goto' => 'db_sql.php',
- 'pos' => 0,
- 'is_js_confirmed' => 0,
- );
-
- // Displays search string
- echo '
' . "\n"
- .'
' . "\n"
- .'' . "\n";
-
- $num_search_result_total = 0;
- $odd_row = true;
-
- foreach ($tables_selected as $each_table) {
- // Gets the SQL statements
- $newsearchsqls = PMA_getSearchSqls($each_table, (! empty($field_str) ? $field_str : ''), $search_str, $search_option);
-
- // Executes the "COUNT" statement
- $res_cnt = PMA_DBI_fetch_value($newsearchsqls['select_count']);
- $num_search_result_total += $res_cnt;
-
- $sql_query .= $newsearchsqls['select_count'];
-
- echo ''
- .'' . sprintf(_ngettext('%s match inside table %s ', '%s matches inside table %s ', $res_cnt), $res_cnt,
- htmlspecialchars($each_table)) . " \n";
-
- if ($res_cnt > 0) {
- $this_url_params['sql_query'] = $newsearchsqls['select_fields'];
- $browse_result_path = 'sql.php' . PMA_generate_common_url($this_url_params);
- ?>
-
-
-
- ' . "\n"
- .' ' . "\n";
- }// end if else
- $odd_row = ! $odd_row;
- echo ' ' . "\n";
- } // end for
-
- echo '
' . "\n";
-
- if (count($tables_selected) > 1) {
- echo '
' . sprintf(_ngettext('Total: %s match', 'Total: %s matches', $num_search_result_total),
- $num_search_result_total) . '
' . "\n";
- }
-} // end 1.
-
-/**
- * If we are in an Ajax request, we need to exit after displaying all the HTML
- */
-if ($GLOBALS['is_ajax_request'] == true) {
+// If we are in an Ajax request, we need to exit after displaying all the HTML
+if ($GLOBALS['is_ajax_request'] == true && empty($_REQUEST['ajax_page_request'])) {
exit;
-} else {
- echo '
';//end searchresults div
}
-/**
- * 2. Displays the main search form
- */
-?>
-
-
method="post" action="db_search.php" name="db_search">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-addHTML($db_search->getSelectionForm($url_params));
?>
diff --git a/phpMyAdmin/db_sql.php b/phpMyAdmin/db_sql.php
index 9b4e74d..67bbbb5 100644
--- a/phpMyAdmin/db_sql.php
+++ b/phpMyAdmin/db_sql.php
@@ -1,6 +1,7 @@
getHeader();
+$scripts = $header->getScripts();
+$scripts->addFile('functions.js');
+$scripts->addFile('makegrid.js');
+$scripts->addFile('sql.js');
-require './libraries/db_common.inc.php';
-require_once './libraries/sql_query_form.lib.php';
+require 'libraries/db_common.inc.php';
+require_once 'libraries/sql_query_form.lib.php';
// After a syntax error, we return to this script
// with the typed query in the textarea.
$goto = 'db_sql.php';
$back = 'db_sql.php';
-/**
- * Gets informations about the database and, if it is empty, move to the
- * "db_structure.php" script where table can be created
- */
-require './libraries/db_info.inc.php';
-if ($num_tables == 0 && empty($db_query_force)) {
- $sub_part = '';
- $is_info = true;
- include './db_structure.php';
- exit();
-}
-
/**
* Query box, bookmark, insert data from textfile
*/
-PMA_sqlQueryForm(true, false, isset($_REQUEST['delimiter']) ? htmlspecialchars($_REQUEST['delimiter']) : ';');
+$response->addHTML(
+ PMA_getHtmlForSqlQueryForm(
+ true, false,
+ isset($_REQUEST['delimiter'])
+ ? htmlspecialchars($_REQUEST['delimiter'])
+ : ';'
+ )
+);
-/**
- * Displays the footer
- */
-require './libraries/footer.inc.php';
?>
diff --git a/phpMyAdmin/db_structure.php b/phpMyAdmin/db_structure.php
index 43fa401..0eed9ad 100644
--- a/phpMyAdmin/db_structure.php
+++ b/phpMyAdmin/db_structure.php
@@ -1,6 +1,7 @@
libraries/mult_submits.inc.php -> sql.php
- // -> db_structure.php and if we got an error on the multi submit,
- // we must display it here and not call again mult_submits.inc.php
- if (! isset($error) || false === $error) {
- include './libraries/mult_submits.inc.php';
- }
- if (empty($message)) {
- $message = PMA_Message::success();
- }
+require_once 'libraries/structure.lib.php';
+
+$response = PMA_Response::getInstance();
+$header = $response->getHeader();
+$scripts = $header->getScripts();
+$scripts->addFile('db_structure.js');
+$scripts->addFile('tbl_change.js');
+$scripts->addFile('jquery/jquery-ui-timepicker-addon.js');
+
+// Drops/deletes/etc. multiple tables if required
+if ((!empty($_POST['submit_mult']) && isset($_POST['selected_tbl']))
+ || isset($_POST['mult_btn'])
+) {
+ $action = 'db_structure.php';
+ $err_url = 'db_structure.php?'. PMA_URL_getCommon($db);
+
+ // see bug #2794840; in this case, code path is:
+ // db_structure.php -> libraries/mult_submits.inc.php -> sql.php
+ // -> db_structure.php and if we got an error on the multi submit,
+ // we must display it here and not call again mult_submits.inc.php
+ if (! isset($_POST['error']) || false === $_POST['error']) {
+ include 'libraries/mult_submits.inc.php';
}
- include './libraries/db_common.inc.php';
- $url_query .= '&goto=db_structure.php';
+ if (empty($_POST['message'])) {
+ $_POST['message'] = PMA_Message::success();
+ }
+}
+require 'libraries/db_common.inc.php';
+$url_query .= '&goto=db_structure.php';
- // Gets the database structure
- $sub_part = '_structure';
- include './libraries/db_info.inc.php';
+// Gets the database structure
+$sub_part = '_structure';
+require 'libraries/db_info.inc.php';
- if (!PMA_DRIZZLE) {
- include_once './libraries/replication.inc.php';
- } else {
- $server_slave_status = false;
- }
+if (!PMA_DRIZZLE) {
+ include_once 'libraries/replication.inc.php';
+} else {
+ $server_slave_status = false;
}
-require_once './libraries/bookmark.lib.php';
+require_once 'libraries/bookmark.lib.php';
-require_once './libraries/mysql_charsets.lib.php';
+require_once 'libraries/mysql_charsets.inc.php';
$db_collation = PMA_getDbCollation($db);
-// in a separate file to avoid redeclaration of functions in some code paths
-require_once './libraries/db_structure.lib.php';
-$titles = PMA_buildActionTitles();
+$titles = PMA_Util::buildActionTitles();
// 1. No tables
if ($num_tables == 0) {
- echo '
' . __('No tables found in database') . '
' . "\n";
-
+ $response->addHTML(
+ '
' . __('No tables found in database.') . '
' . "\n"
+ );
if (empty($db_is_information_schema)) {
- include './libraries/display_create_table.lib.php';
+ ob_start();
+ include 'libraries/display_create_table.lib.php';
+ $content = ob_get_contents();
+ ob_end_clean();
+ $response->addHTML($content);
+ unset($content);
} // end if (Create Table dialog)
-
- /**
- * Displays the footer
- */
- include_once './libraries/footer.inc.php';
exit;
}
@@ -84,7 +84,7 @@
/**
* Displays the tables list
*/
-echo '
';
+$response->addHTML('
');
$_url_params = array(
'pos' => $pos,
'db' => $db);
@@ -98,176 +98,119 @@
$_url_params['sort_order'] = $_REQUEST['sort_order'];
}
-PMA_listNavigator(
- $total_num_tables, $pos, $_url_params, 'db_structure.php',
- 'frame_content', $GLOBALS['cfg']['MaxTableList']
+$response->addHTML(
+ PMA_Util::getListNavigator(
+ $total_num_tables, $pos, $_url_params, 'db_structure.php',
+ 'frame_content', $GLOBALS['cfg']['MaxTableList']
+ )
);
-?>
-
-addHTML(
+ ' '
+);
+
+$response->addHTML(PMA_URL_getHiddenInputs($db));
-PMA_TableHeader($db_is_information_schema, $server_slave_status);
+$response->addHTML(
+ PMA_tableHeader($db_is_information_schema, $server_slave_status)
+);
$i = $sum_entries = 0;
-$sum_size = (double) 0;
-$overhead_size = (double) 0;
$overhead_check = '';
-$checked = !empty($checkall) ? ' checked="checked"' : '';
+$create_time_all = '';
+$update_time_all = '';
+$check_time_all = '';
$num_columns = $cfg['PropertiesNumColumns'] > 1
? ceil($num_tables / $cfg['PropertiesNumColumns']) + 1
: 0;
$row_count = 0;
-
+$sum_size = (double) 0;
+$overhead_size = (double) 0;
$hidden_fields = array();
$odd_row = true;
$sum_row_count_pre = '';
-$tableReductionCount = 0; // the amount to reduce the table count by
-
-foreach ($tables as $keyname => $each_table) {
- if (PMA_BS_IsHiddenTable($keyname)) {
- $tableReductionCount++;
- continue;
- }
-
+foreach ($tables as $keyname => $current_table) {
// Get valid statistics whatever is the table type
+ $drop_query = '';
+ $drop_message = '';
+ $overhead = '';
+
$table_is_view = false;
- $table_encoded = urlencode($each_table['TABLE_NAME']);
+ $table_encoded = urlencode($current_table['TABLE_NAME']);
// Sets parameters for links
$tbl_url_query = $url_query . '&table=' . $table_encoded;
// do not list the previous table's size info for a view
- $formatted_size = '-';
- $unit = '';
-
- switch ( $each_table['ENGINE']) {
- // MyISAM, ISAM or Heap table: Row count, data size and index size
- // are accurate; data size is accurate for ARCHIVE
- case 'MyISAM' :
- case 'ISAM' :
- case 'HEAP' :
- case 'MEMORY' :
- case 'ARCHIVE' :
- case 'Aria' :
- case 'Maria' :
- if ($db_is_information_schema) {
- $each_table['Rows'] = PMA_Table::countRecords(
- $db, $each_table['Name']
- );
- }
-
- if ($is_show_stats) {
- $tblsize = doubleval($each_table['Data_length']) + doubleval($each_table['Index_length']);
- $sum_size += $tblsize;
- list($formatted_size, $unit) = PMA_formatByteDown($tblsize, 3, ($tblsize > 0) ? 1 : 0);
- if (isset($each_table['Data_free']) && $each_table['Data_free'] > 0) {
- list($formatted_overhead, $overhead_unit) = PMA_formatByteDown($each_table['Data_free'], 3, ($each_table['Data_free'] > 0) ? 1 : 0);
- $overhead_size += $each_table['Data_free'];
- }
- }
- break;
- case 'InnoDB' :
- case 'PBMS' :
- // InnoDB table: Row count is not accurate but data and index sizes are.
- // PBMS table in Drizzle: TABLE_ROWS is taken from table cache, so it may be unavailable
-
- if (($each_table['ENGINE'] == 'InnoDB'
- && $each_table['TABLE_ROWS'] < $GLOBALS['cfg']['MaxExactCount'])
- || !isset($each_table['TABLE_ROWS'])
- ) {
- $each_table['COUNTED'] = true;
- $each_table['TABLE_ROWS'] = PMA_Table::countRecords(
- $db, $each_table['TABLE_NAME'],
- $force_exact = true, $is_view = false
- );
- } else {
- $each_table['COUNTED'] = false;
- }
- // Drizzle doesn't provide data and index length, check for null
- if ($is_show_stats && $each_table['Data_length'] !== null) {
- $tblsize = $each_table['Data_length'] + $each_table['Index_length'];
- $sum_size += $tblsize;
- list($formatted_size, $unit) = PMA_formatByteDown($tblsize, 3, ($tblsize > 0) ? 1 : 0);
- }
- //$display_rows = ' - ';
- break;
- // Mysql 5.0.x (and lower) uses MRG_MyISAM and MySQL 5.1.x (and higher) uses MRG_MYISAM
- // Both are aliases for MERGE
- case 'MRG_MyISAM' :
- case 'MRG_MYISAM' :
- case 'MERGE' :
- case 'BerkeleyDB' :
- // Merge or BerkleyDB table: Only row count is accurate.
- if ($is_show_stats) {
- $formatted_size = ' - ';
- $unit = '';
- }
- break;
- // for a view, the ENGINE is sometimes reported as null,
- // or on some servers it's reported as "SYSTEM VIEW"
- case null :
- case 'SYSTEM VIEW' :
- case 'FunctionEngine' :
- // if table is broken, Engine is reported as null, so one more test
- if ($each_table['TABLE_TYPE'] == 'VIEW') {
- // countRecords() takes care of $cfg['MaxExactCountViews']
- $each_table['TABLE_ROWS'] = PMA_Table::countRecords(
- $db, $each_table['TABLE_NAME'],
- $force_exact = true, $is_view = true
+ list($current_table, $formatted_size, $unit, $formatted_overhead,
+ $overhead_unit, $overhead_size, $table_is_view, $sum_size)
+ = PMA_getStuffForEngineTypeTable(
+ $current_table, $db_is_information_schema,
+ $is_show_stats, $table_is_view, $sum_size, $overhead_size
);
- $table_is_view = true;
- }
- break;
- default :
- // Unknown table type.
- if ($is_show_stats) {
- $formatted_size = __('unknown');
- $unit = '';
- }
- } // end switch
- if (! PMA_Table::isMerge($db, $each_table['TABLE_NAME'])) {
- $sum_entries += $each_table['TABLE_ROWS'];
+ if (! PMA_Table::isMerge($db, $current_table['TABLE_NAME'])) {
+ $sum_entries += $current_table['TABLE_ROWS'];
}
- if (isset($each_table['Collation'])) {
+ if (isset($current_table['Collation'])) {
$collation = ''
- . $each_table['Collation'] . ' ';
+ . PMA_getCollationDescr($current_table['Collation']) . '">'
+ . $current_table['Collation'] . '';
} else {
$collation = '---';
}
if ($is_show_stats) {
- if (isset($formatted_overhead)) {
+ if ($formatted_overhead != '') {
$overhead = '' . $formatted_overhead
- . ' ' . $overhead_unit . ' ' . "\n";
- unset($formatted_overhead);
+ . $tbl_url_query . '#showusage">'
+ . '' . $formatted_overhead . ' '
+ . '' . $overhead_unit . ' '
+ . '' . "\n";
$overhead_check .=
- "document.getElementById('checkbox_tbl_" . ($i + 1) . "').checked = true;";
+ "markAllRows('row_tbl_" . ($i + 1) . "');";
} else {
$overhead = '-';
}
} // end if
- $alias = (!empty($tooltip_aliasname) && isset($tooltip_aliasname[$each_table['TABLE_NAME']]))
- ? str_replace(' ', ' ', htmlspecialchars($tooltip_truename[$each_table['TABLE_NAME']]))
- : str_replace(' ', ' ', htmlspecialchars($each_table['TABLE_NAME']));
- $truename = (!empty($tooltip_truename) && isset($tooltip_truename[$each_table['TABLE_NAME']]))
- ? str_replace(' ', ' ', htmlspecialchars($tooltip_truename[$each_table['TABLE_NAME']]))
- : str_replace(' ', ' ', htmlspecialchars($each_table['TABLE_NAME']));
+ unset($showtable);
+
+ if ($GLOBALS['cfg']['ShowDbStructureCreation']) {
+ list($create_time, $create_time_all) = PMA_getTimeForCreateUpdateCheck(
+ $current_table, 'Create_time', $create_time_all
+ );
+ }
+
+ if ($GLOBALS['cfg']['ShowDbStructureLastUpdate']) {
+ // $showtable might already be set from ShowDbStructureCreation, see above
+ list($update_time, $update_time_all) = PMA_getTimeForCreateUpdateCheck(
+ $current_table, 'Update_time', $update_time_all
+ );
+ }
+
+ if ($GLOBALS['cfg']['ShowDbStructureLastCheck']) {
+ // $showtable might already be set from ShowDbStructureCreation, see above
+ list($check_time, $check_time_all) = PMA_getTimeForCreateUpdateCheck(
+ $current_table, 'Check_time', $check_time_all
+ );
+ }
+
+ list($alias, $truename) = PMA_getAliasAndTrueName(
+ $tooltip_aliasname, $current_table, $tooltip_truename
+ );
$i++;
$row_count++;
if ($table_is_view) {
$hidden_fields[] = ' ';
+ . htmlspecialchars($current_table['TABLE_NAME']) . '" />';
}
/*
@@ -280,69 +223,15 @@
* I could have used the PHP ternary conditional operator but I find
* the code easier to read without this operator.
*/
- if ($each_table['TABLE_ROWS'] > 0 || $table_is_view) {
- $may_have_rows = true;
- } else {
- $may_have_rows = false;
- }
- $browse_table = '';
- if ($may_have_rows) {
- $browse_table .= $titles['Browse'];
- } else {
- $browse_table .= $titles['NoBrowse'];
- }
- $browse_table .= ' ';
-
- $search_table = '';
- if ($may_have_rows) {
- $search_table .= $titles['Search'];
- } else {
- $search_table .= $titles['NoSearch'];
- }
- $search_table .= ' ';
-
- $browse_table_label = '' . $truename . ' ';
-
- if (! $db_is_information_schema) {
- $empty_table = '';
- if ($may_have_rows) {
- $empty_table .= $titles['Empty'];
- } else {
- $empty_table .= $titles['NoEmpty'];
- }
- $empty_table .= ' ';
-
- $drop_query = 'DROP '
- . (($table_is_view || $each_table['ENGINE'] == null) ? 'VIEW' : 'TABLE')
- . ' ' . PMA_backquote($each_table['TABLE_NAME']);
- $drop_message = sprintf(
- ($table_is_view || $each_table['ENGINE'] == null)? __('View %s has been dropped') : __('Table %s has been dropped'),
- str_replace(' ', ' ', htmlspecialchars($each_table['TABLE_NAME']))
+ list($browse_table, $search_table, $browse_table_label, $empty_table,
+ $tracking_icon) = PMA_getHtmlForActionLinks(
+ $current_table, $table_is_view, $tbl_url_query,
+ $titles, $truename, $db_is_information_schema, $url_query
);
- }
- $tracking_icon = '';
- if (PMA_Tracker::isActive()) {
- if (PMA_Tracker::isTracked($GLOBALS["db"], $truename)) {
- $tracking_icon = ''
- . PMA_getImage('eye.png', __('Tracking is active.'))
- . ' ';
- } elseif (PMA_Tracker::getVersion($GLOBALS["db"], $truename) > 0) {
- $tracking_icon = ''
- . PMA_getImage('eye.png', __('Tracking is not active.'))
- . ' ';
- }
+ if (! $db_is_information_schema) {
+ list($drop_query, $drop_message)
+ = PMA_getTableDropQueryAndMessage($table_is_view, $current_table);
}
if ($num_columns > 0
@@ -351,313 +240,78 @@
) {
$row_count = 1;
$odd_row = true;
- ?>
-
-
-
- addHTML(
+ ''
+ );
- if ((strlen(array_search($truename, $server_slave_Do_Table)) > 0)
- || (strlen(array_search($db, $server_slave_Do_DB)) > 0)
- || (count($server_slave_Do_DB) == 1 && count($server_slave_Ignore_DB) == 1)
- ) {
- $do = true;
- }
- foreach ($server_slave_Wild_Do_Table as $db_table) {
- $table_part = PMA_extract_db_or_table($db_table, 'table');
- if (($db == PMA_extract_db_or_table($db_table, 'db'))
- && (preg_match("@^" . substr($table_part, 0, strlen($table_part) - 1) . "@", $truename))
- ) {
- $do = true;
- }
- }
- ////////////////////////////////////////////////////////////////////
- if ((strlen(array_search($truename, $server_slave_Ignore_Table)) > 0)
- || (strlen(array_search($db, $server_slave_Ignore_DB)) > 0)
- ) {
- $ignored = true;
- }
- foreach ($server_slave_Wild_Ignore_Table as $db_table) {
- $table_part = PMA_extract_db_or_table($db_table, 'table');
- if (($db == PMA_extract_db_or_table($db_table))
- && (preg_match("@^" . substr($table_part, 0, strlen($table_part) - 1) . "@", $truename))
- ) {
- $ignored = true;
- }
- }
- unset($table_part);
+ $response->addHTML(PMA_tableHeader(false, $server_slave_status));
}
- ?>
-
-
- />
-
-
-
-
-
-
-
-
-
-
-
- href="tbl_change.php?">
-
-
-
- href="sql.php?&reload=1&purge=1&sql_query=&message_to_show=" >
-
- = $GLOBALS['cfg']['MaxExactCountViews']
- && $each_table['ENGINE'] != 'FunctionEngine'
- ) {
- $row_count_pre = '~';
- $sum_row_count_pre = '~';
- $show_superscript = PMA_showHint(
- PMA_sanitize(
- sprintf(
- __('This view has at least this number of rows. Please refer to %sdocumentation%s.'),
- '[a@./Documentation.html#cfg_MaxExactCountViews@_blank]',
- '[/a]'
- )
- )
- );
- }
- } elseif ($each_table['ENGINE'] == 'InnoDB' && (! $each_table['COUNTED'])) {
- // InnoDB table: we did not get an accurate row count
- $row_count_pre = '~';
- $sum_row_count_pre = '~';
- $show_superscript = '';
- }
- ?>
-
- 1)) { ?>
-
-
-
-
-
-
-
- ' . $formatted_size . ' ' . $unit . ' '; ?>
-
-
-
- -
-
- ---
-
- -
- -
-
-
-
-
-
-
- addHTML($html_output);
+
} // end foreach
// Show Summary
-if ($is_show_stats) {
- list($sum_formatted, $unit) = PMA_formatByteDown($sum_size, 3, 1);
- list($overhead_formatted, $overhead_unit)
- = PMA_formatByteDown($overhead_size, 3, 1);
-}
-?>
-
-
-
-
-
-
- ' . __('Replication') . '' . "\n";
- }
- ?>
-
-
-
- 1)) {
- $default_engine = PMA_DBI_fetch_value('SHOW VARIABLES LIKE \'storage_engine\';', 0, 1);
- echo ' ' . "\n"
- . ' ' .$default_engine . ' ' . "\n";
- // we got a case where $db_collation was empty
- echo ' ' . "\n";
- if (! empty($db_collation)) {
- echo ' ' . $db_collation
- . ' ';
- }
- echo ' ';
-}
-
-if ($is_show_stats) {
- ?>
-
-
-
-
-
-
+$response->addHTML('');
+$response->addHTML(
+ PMA_getHtmlBodyForTableSummary(
+ $num_tables, $server_slave_status, $db_is_information_schema, $sum_entries,
+ $db_collation, $is_show_stats, $sum_size, $overhead_size, $create_time_all,
+ $update_time_all, $check_time_all, $sum_row_count_pre
+ )
+);
+$response->addHTML('');
+//check all
+$response->addHTML(
+ PMA_getHtmlForCheckAllTables(
+ $pmaThemeImage, $text_dir, $overhead_check,
+ $db_is_information_schema, $hidden_fields
+ )
+);
+$response->addHTML(' '); //end of form
-
-
-
-
-
-/
-
-
-
-/
-
-
-
-
-
-'
- . __('With selected:') . '' . "\n";
-echo ' '
- . __('Export') . ' ' . "\n";
-echo ' '
- . __('Print view') . ' ' . "\n";
-
-if (!$db_is_information_schema && !$cfg['DisableMultiTableMaintenance']) {
- echo ' '
- . __('Empty') . ' ' . "\n";
- echo ' '
- . __('Drop') . ' ' . "\n";
- echo ' '
- . __('Check table') . ' ' . "\n";
- if (!PMA_DRIZZLE) {
- echo ' '
- . __('Optimize table') . ' ' . "\n";
- echo ' '
- . __('Repair table') . ' ' . "\n";
- }
- echo ' '
- . __('Analyze table') . ' ' . "\n";
- echo ' '
- . __('Add prefix to table') . ' ' . "\n";
- echo ' '
- . __('Replace table prefix') . ' ' . "\n";
- echo ' '
- . __('Copy table with prefix') . ' ' . "\n";
-}
-?>
-
-
-
-
-
-
-
-
-addHTML(
+ PMA_Util::getListNavigator(
+ $total_num_tables, $pos, $_url_params, 'db_structure.php',
+ 'frame_content', $GLOBALS['cfg']['MaxTableList']
+ )
);
-?>
-
-
-addHTML('
');
/**
* Work on the database
*/
/* DATABASE WORK */
/* Printable view of a table */
-echo '
';
-echo '';
-echo PMA_getIcon('b_print.png', __('Print view'), true) . ' ';
-
-echo '';
-echo PMA_getIcon('b_tblanalyse.png', __('Data Dictionary'), true) . ' ';
-echo '
';
+$response->addHTML(
+ PMA_getHtmlForTablePrintViewLink($url_query)
+ . PMA_getHtmlForDataDictionaryLink($url_query)
+);
if (empty($db_is_information_schema)) {
- include './libraries/display_create_table.lib.php';
+ ob_start();
+ include 'libraries/display_create_table.lib.php';
+ $content = ob_get_contents();
+ ob_end_clean();
+ $response->addHTML($content);
} // end if (Create Table dialog)
-/**
- * Displays the footer
- */
-require './libraries/footer.inc.php';
?>
diff --git a/phpMyAdmin/db_tracking.php b/phpMyAdmin/db_tracking.php
index 6fd9a9c..bcd552c 100644
--- a/phpMyAdmin/db_tracking.php
+++ b/phpMyAdmin/db_tracking.php
@@ -1,29 +1,31 @@
getHeader();
+$scripts = $header->getScripts();
+$scripts->addFile('db_structure.js');
/**
* If we are not in an Ajax request, then do the common work and show the links etc.
*/
-if ($GLOBALS['is_ajax_request'] != true) {
- include './libraries/db_common.inc.php';
-}
+require 'libraries/db_common.inc.php';
$url_query .= '&goto=tbl_tracking.php&back=db_tracking.php';
// Get the database structure
$sub_part = '_structure';
-require './libraries/db_info.inc.php';
+require 'libraries/db_info.inc.php';
// Work to do?
// (here, do not use $_REQUEST['db] as it can be crafted)
@@ -32,11 +34,12 @@
/**
* If in an Ajax request, generate the success message and use
- * {@link PMA_ajaxResponse()} to send the output
+ * {@link PMA_Response()} to send the output
*/
if ($GLOBALS['is_ajax_request'] == true) {
- $message = PMA_Message::success();
- PMA_ajaxResponse($message, true);
+ $response = PMA_Response::getInstance();
+ $response->addJSON('message', PMA_Message::success());
+ exit;
}
}
@@ -48,34 +51,26 @@
echo '
' . __('No tables found in database.') . '
' . "\n";
if (empty($db_is_information_schema)) {
- include './libraries/display_create_table.lib.php';
+ include 'libraries/display_create_table.lib.php';
}
-
- // Display the footer
- include './libraries/footer.inc.php';
exit;
}
// ---------------------------------------------------------------------------
-/*
- * Display top menu links
- */
-require_once './libraries/db_links.inc.php';
-
// Prepare statement to get HEAD version
$all_tables_query = ' SELECT table_name, MAX(version) as version FROM ' .
- PMA_backquote($GLOBALS['cfg']['Server']['pmadb']) . '.' .
- PMA_backquote($GLOBALS['cfg']['Server']['tracking']) .
- ' WHERE db_name = \'' . PMA_sqlAddSlashes($_REQUEST['db']) . '\' ' .
- ' GROUP BY table_name' .
- ' ORDER BY table_name ASC';
+ PMA_Util::backquote($GLOBALS['cfg']['Server']['pmadb']) . '.' .
+ PMA_Util::backquote($GLOBALS['cfg']['Server']['tracking']) .
+ ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($_REQUEST['db']) . '\' ' .
+ ' GROUP BY table_name' .
+ ' ORDER BY table_name ASC';
-$all_tables_result = PMA_query_as_controluser($all_tables_query);
+$all_tables_result = PMA_queryAsControlUser($all_tables_query);
// If a HEAD version exists
-if (PMA_DBI_num_rows($all_tables_result) > 0) {
-?>
+if ($GLOBALS['dbi']->numRows($all_tables_result) > 0) {
+ ?>
@@ -98,31 +93,39 @@
// Print out information about versions
$drop_image_or_text = '';
- if (true == $GLOBALS['cfg']['PropertiesIconic']) {
- $drop_image_or_text .= PMA_getImage('b_drop.png', __('Delete tracking data for this table'));
+ if (PMA_Util::showIcons('ActionLinksMode')) {
+ $drop_image_or_text .= PMA_Util::getImage(
+ 'b_drop.png',
+ __('Delete tracking data for this table')
+ );
}
- if ('both' === $GLOBALS['cfg']['PropertiesIconic'] || false === $GLOBALS['cfg']['PropertiesIconic']) {
+ if (PMA_Util::showText('ActionLinksMode')) {
$drop_image_or_text .= __('Drop');
}
$style = 'odd';
- while ($one_result = PMA_DBI_fetch_array($all_tables_result)) {
+ while ($one_result = $GLOBALS['dbi']->fetchArray($all_tables_result)) {
list($table_name, $version_number) = $one_result;
$table_query = ' SELECT * FROM ' .
- PMA_backquote($GLOBALS['cfg']['Server']['pmadb']) . '.' .
- PMA_backquote($GLOBALS['cfg']['Server']['tracking']) .
- ' WHERE `db_name` = \'' . PMA_sqlAddSlashes($_REQUEST['db']) . '\' AND `table_name` = \'' . PMA_sqlAddSlashes($table_name) . '\' AND `version` = \'' . $version_number . '\'';
+ PMA_Util::backquote($GLOBALS['cfg']['Server']['pmadb']) . '.' .
+ PMA_Util::backquote($GLOBALS['cfg']['Server']['tracking']) .
+ ' WHERE `db_name` = \'' . PMA_Util::sqlAddSlashes($_REQUEST['db'])
+ . '\' AND `table_name` = \'' . PMA_Util::sqlAddSlashes($table_name)
+ . '\' AND `version` = \'' . $version_number . '\'';
- $table_result = PMA_query_as_controluser($table_query);
- $version_data = PMA_DBI_fetch_array($table_result);
+ $table_result = PMA_queryAsControlUser($table_query);
+ $version_data = $GLOBALS['dbi']->fetchArray($table_result);
if ($version_data['tracking_active'] == 1) {
$version_status = __('active');
} else {
$version_status = __('not active');
}
- $tmp_link = 'tbl_tracking.php?' . $url_query . '&table=' . htmlspecialchars($version_data['table_name']);
- $delete_link = 'db_tracking.php?' . $url_query . '&table=' . htmlspecialchars($version_data['table_name']) . '&delete_tracking=true&';
+ $tmp_link = 'tbl_tracking.php?' . $url_query . '&table='
+ . htmlspecialchars($version_data['table_name']);
+ $delete_link = 'db_tracking.php?' . $url_query . '&table='
+ . htmlspecialchars($version_data['table_name'])
+ . '&delete_tracking=true&';
?>
@@ -131,12 +134,22 @@
- href="" >
-
- |
- |
-
+
+
+
'
+ . ' '
+ . '' . __('Versions') . ' '
+ . ' | '
+ . '' . __('Tracking report') . ' '
+ . ' | '
+ . '' . __('Structure snapshot')
+ . ' '
+ . ' '
+ . '';
if ($style == 'even') {
$style = 'odd';
} else {
@@ -148,29 +161,36 @@
- $value) {
// If $value is a table group.
- if (array_key_exists(('is' . $sep . 'group'), $value) && $value['is' . $sep . 'group']) {
+ if (array_key_exists(('is' . $sep . 'group'), $value)
+ && $value['is' . $sep . 'group']
+ ) {
foreach ($value as $temp_table) {
// If $temp_table is a table with the value for 'Name' is set,
// rather than a propery of the table group.
- if (is_array($temp_table) && array_key_exists('Name', $temp_table)) {
- if (PMA_Tracker::getVersion($GLOBALS['db'], $temp_table['Name']) == -1) {
+ if (is_array($temp_table)
+ && array_key_exists('Name', $temp_table)
+ ) {
+ $tracking_version = PMA_Tracker::getVersion(
+ $GLOBALS['db'],
+ $temp_table['Name']
+ );
+ if ($tracking_version == -1) {
$my_tables[] = $temp_table['Name'];
}
}
}
- // If $value is a table.
- } else {
+ } else { // If $value is a table.
if (PMA_Tracker::getVersion($GLOBALS['db'], $value['Name']) == -1) {
$my_tables[] = $value['Name'];
}
@@ -179,32 +199,34 @@
// If untracked tables exist
if (isset($my_tables)) {
-?>
+ ?>
-
- 0) {
$log = '';
foreach ($data['ddlog'] as $entry) {
- $log .= '# ' . $entry['date'] . ' ' . $entry['username'] . "\n" . $entry['statement'] . "\n";
+ $log .= '# ' . $entry['date'] . ' ' . $entry['username'] . "\n"
+ . $entry['statement'] . "\n";
}
- PMA_showMessage(__('Database Log'), $log);
+ echo PMA_Util::getMessage(__('Database Log'), $log);
}
-/**
- * Display the footer
- */
-require './libraries/footer.inc.php';
?>
diff --git a/phpMyAdmin/db_triggers.php b/phpMyAdmin/db_triggers.php
index 210dbfd..d1a2a8c 100644
--- a/phpMyAdmin/db_triggers.php
+++ b/phpMyAdmin/db_triggers.php
@@ -9,27 +9,17 @@
/**
* Include required files
*/
-require_once './libraries/common.inc.php';
-require_once './libraries/common.lib.php';
-
-/**
- * Include JavaScript libraries
- */
-$GLOBALS['js_include'][] = 'jquery/jquery-ui-1.8.16.custom.js';
-$GLOBALS['js_include'][] = 'rte/common.js';
-$GLOBALS['js_include'][] = 'rte/triggers.js';
-$GLOBALS['js_include'][] = 'codemirror/lib/codemirror.js';
-$GLOBALS['js_include'][] = 'codemirror/mode/mysql/mysql.js';
+require_once 'libraries/common.inc.php';
/**
* Include all other files
*/
-require_once './libraries/rte/rte_triggers.lib.php';
+require_once 'libraries/rte/rte_triggers.lib.php';
/**
* Do the magic
*/
$_PMA_RTE = 'TRI';
-require_once './libraries/rte/rte_main.inc.php';
+require_once 'libraries/rte/rte_main.inc.php';
?>
diff --git a/phpMyAdmin/doc/Makefile b/phpMyAdmin/doc/Makefile
new file mode 100644
index 0000000..1ee62c8
--- /dev/null
+++ b/phpMyAdmin/doc/Makefile
@@ -0,0 +1,153 @@
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS =
+SPHINXBUILD = sphinx-build
+PAPER =
+BUILDDIR = .
+
+# Internal variables.
+PAPEROPT_a4 = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+# the i18n builder cannot share the environment and doctrees with the others
+I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+
+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
+
+help:
+ @echo "Please use \`make
' where is one of"
+ @echo " html to make standalone HTML files"
+ @echo " dirhtml to make HTML files named index.html in directories"
+ @echo " singlehtml to make a single large HTML file"
+ @echo " pickle to make pickle files"
+ @echo " json to make JSON files"
+ @echo " htmlhelp to make HTML files and a HTML help project"
+ @echo " qthelp to make HTML files and a qthelp project"
+ @echo " devhelp to make HTML files and a Devhelp project"
+ @echo " epub to make an epub"
+ @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+ @echo " latexpdf to make LaTeX files and run them through pdflatex"
+ @echo " text to make text files"
+ @echo " man to make manual pages"
+ @echo " texinfo to make Texinfo files"
+ @echo " info to make Texinfo files and run them through makeinfo"
+ @echo " gettext to make PO message catalogs"
+ @echo " changes to make an overview of all changed/added/deprecated items"
+ @echo " linkcheck to check all external links for integrity"
+ @echo " doctest to run all doctests embedded in the documentation (if enabled)"
+
+clean:
+ -rm -rf $(BUILDDIR)/*
+
+html:
+ $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
+
+dirhtml:
+ $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
+
+singlehtml:
+ $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
+ @echo
+ @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
+
+pickle:
+ $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
+ @echo
+ @echo "Build finished; now you can process the pickle files."
+
+json:
+ $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
+ @echo
+ @echo "Build finished; now you can process the JSON files."
+
+htmlhelp:
+ $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
+ @echo
+ @echo "Build finished; now you can run HTML Help Workshop with the" \
+ ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+qthelp:
+ $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+ @echo
+ @echo "Build finished; now you can run "qcollectiongenerator" with the" \
+ ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
+ @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/phpMyAdmin.qhcp"
+ @echo "To view the help file:"
+ @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/phpMyAdmin.qhc"
+
+devhelp:
+ $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
+ @echo
+ @echo "Build finished."
+ @echo "To view the help file:"
+ @echo "# mkdir -p $$HOME/.local/share/devhelp/phpMyAdmin"
+ @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/phpMyAdmin"
+ @echo "# devhelp"
+
+epub:
+ $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
+ @echo
+ @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
+
+latex:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo
+ @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+ @echo "Run \`make' in that directory to run these through (pdf)latex" \
+ "(use \`make latexpdf' here to do that automatically)."
+
+latexpdf:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo "Running LaTeX files through pdflatex..."
+ $(MAKE) -C $(BUILDDIR)/latex all-pdf
+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+text:
+ $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
+ @echo
+ @echo "Build finished. The text files are in $(BUILDDIR)/text."
+
+man:
+ $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
+ @echo
+ @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
+
+texinfo:
+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+ @echo
+ @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
+ @echo "Run \`make' in that directory to run these through makeinfo" \
+ "(use \`make info' here to do that automatically)."
+
+info:
+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+ @echo "Running Texinfo files through makeinfo..."
+ make -C $(BUILDDIR)/texinfo info
+ @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
+
+gettext:
+ $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
+ @echo
+ @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
+
+changes:
+ $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
+ @echo
+ @echo "The overview file is in $(BUILDDIR)/changes."
+
+linkcheck:
+ $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
+ @echo
+ @echo "Link check complete; look for any errors in the above output " \
+ "or in $(BUILDDIR)/linkcheck/output.txt."
+
+doctest:
+ $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+ @echo "Testing of doctests in the sources finished, look at the " \
+ "results in $(BUILDDIR)/doctest/output.txt."
diff --git a/phpMyAdmin/doc/_ext/configext.py b/phpMyAdmin/doc/_ext/configext.py
new file mode 100644
index 0000000..fdf3314
--- /dev/null
+++ b/phpMyAdmin/doc/_ext/configext.py
@@ -0,0 +1,189 @@
+from sphinx.locale import l_, _
+from sphinx.domains import Domain, ObjType
+from sphinx.roles import XRefRole
+from sphinx.domains.std import GenericObject, StandardDomain
+from sphinx.directives import ObjectDescription
+from sphinx.util.nodes import clean_astext, make_refnode
+from sphinx.util import ws_re
+from sphinx import addnodes
+from sphinx.util.docfields import Field
+from docutils import nodes
+
+def get_id_from_cfg(text):
+ '''
+ Formats anchor ID from config option.
+ '''
+ if text[:6] == '$cfg[\'':
+ text = text[6:]
+ if text[-2:] == '\']':
+ text = text[:-2]
+ text = text.replace('[$i]', '')
+ parts = text.split("']['")
+ return parts
+
+
+class ConfigOption(ObjectDescription):
+ indextemplate = l_('configuration option; %s')
+ parse_node = None
+
+ has_arguments = True
+
+ doc_field_types = [
+ Field('default', label=l_('Default value'), has_arg=False,
+ names=('default', )),
+ Field('type', label=l_('Type'), has_arg=False,
+ names=('type',)),
+ ]
+
+
+ def handle_signature(self, sig, signode):
+ signode.clear()
+ signode += addnodes.desc_name(sig, sig)
+ # normalize whitespace like XRefRole does
+ name = ws_re.sub('', sig)
+ return name
+
+ def add_target_and_index(self, name, sig, signode):
+ targetparts = get_id_from_cfg(name)
+ targetname = 'cfg_%s' % '_'.join(targetparts)
+ signode['ids'].append(targetname)
+ self.state.document.note_explicit_target(signode)
+ indextype = 'single'
+
+ # Generic index entries
+ indexentry = self.indextemplate % (name,)
+ self.indexnode['entries'].append((indextype, indexentry,
+ targetname, targetname))
+ self.indexnode['entries'].append((indextype, name,
+ targetname, targetname))
+
+ # Server section
+ if targetparts[0] == 'Servers' and len(targetparts) > 1:
+ indexname = ', '.join(targetparts[1:])
+ self.indexnode['entries'].append((indextype, l_('server configuration; %s') % indexname,
+ targetname, targetname))
+ self.indexnode['entries'].append((indextype, indexname,
+ targetname, targetname))
+ else:
+ indexname = ', '.join(targetparts)
+ self.indexnode['entries'].append((indextype, indexname,
+ targetname, targetname))
+
+ self.env.domaindata['config']['objects'][self.objtype, name] = \
+ self.env.docname, targetname
+
+
+class ConfigSectionXRefRole(XRefRole):
+ """
+ Cross-referencing role for configuration sections (adds an index entry).
+ """
+
+ def result_nodes(self, document, env, node, is_ref):
+ if not is_ref:
+ return [node], []
+ varname = node['reftarget']
+ tgtid = 'index-%s' % env.new_serialno('index')
+ indexnode = addnodes.index()
+ indexnode['entries'] = [
+ ('single', varname, tgtid, varname),
+ ('single', _('configuration section; %s') % varname, tgtid, varname)
+ ]
+ targetnode = nodes.target('', '', ids=[tgtid])
+ document.note_explicit_target(targetnode)
+ return [indexnode, targetnode, node], []
+
+class ConfigSection(ObjectDescription):
+ indextemplate = l_('configuration section; %s')
+ parse_node = None
+
+ def handle_signature(self, sig, signode):
+ if self.parse_node:
+ name = self.parse_node(self.env, sig, signode)
+ else:
+ signode.clear()
+ signode += addnodes.desc_name(sig, sig)
+ # normalize whitespace like XRefRole does
+ name = ws_re.sub('', sig)
+ return name
+
+ def add_target_and_index(self, name, sig, signode):
+ targetname = '%s-%s' % (self.objtype, name)
+ signode['ids'].append(targetname)
+ self.state.document.note_explicit_target(signode)
+ if self.indextemplate:
+ colon = self.indextemplate.find(':')
+ if colon != -1:
+ indextype = self.indextemplate[:colon].strip()
+ indexentry = self.indextemplate[colon+1:].strip() % (name,)
+ else:
+ indextype = 'single'
+ indexentry = self.indextemplate % (name,)
+ self.indexnode['entries'].append((indextype, indexentry,
+ targetname, targetname))
+ self.env.domaindata['config']['objects'][self.objtype, name] = \
+ self.env.docname, targetname
+
+
+class ConfigOptionXRefRole(XRefRole):
+ """
+ Cross-referencing role for configuration options (adds an index entry).
+ """
+
+ def result_nodes(self, document, env, node, is_ref):
+ if not is_ref:
+ return [node], []
+ varname = node['reftarget']
+ tgtid = 'index-%s' % env.new_serialno('index')
+ indexnode = addnodes.index()
+ indexnode['entries'] = [
+ ('single', varname, tgtid, varname),
+ ('single', _('configuration option; %s') % varname, tgtid, varname)
+ ]
+ targetnode = nodes.target('', '', ids=[tgtid])
+ document.note_explicit_target(targetnode)
+ return [indexnode, targetnode, node], []
+
+
+class ConfigFileDomain(Domain):
+ name = 'config'
+ label = 'Config'
+
+ object_types = {
+ 'option': ObjType(l_('config option'), 'option'),
+ 'section': ObjType(l_('config section'), 'section'),
+ }
+ directives = {
+ 'option': ConfigOption,
+ 'section': ConfigSection,
+ }
+ roles = {
+ 'option': ConfigOptionXRefRole(),
+ 'section': ConfigSectionXRefRole(),
+ }
+
+ initial_data = {
+ 'objects': {}, # (type, name) -> docname, labelid
+ }
+
+ def clear_doc(self, docname):
+ for key, (fn, _) in self.data['objects'].items():
+ if fn == docname:
+ del self.data['objects'][key]
+
+ def resolve_xref(self, env, fromdocname, builder,
+ typ, target, node, contnode):
+ docname, labelid = self.data['objects'].get((typ, target), ('', ''))
+ if not docname:
+ return None
+ else:
+ return make_refnode(builder, fromdocname, docname,
+ labelid, contnode)
+
+ def get_objects(self):
+ for (type, name), info in self.data['objects'].iteritems():
+ yield (name, name, type, info[0], info[1],
+ self.object_types[type].attrs['searchprio'])
+
+def setup(app):
+ app.add_domain(ConfigFileDomain)
+
diff --git a/phpMyAdmin/doc/_ext/configext.pyc b/phpMyAdmin/doc/_ext/configext.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..a46d58feef0adcd22d05bb6847f2660c1a112240
GIT binary patch
literal 7773
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 v documentation".
+#html_title = None
+
+# A shorter title for the navigation bar. Default is the same as html_title.
+#html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+#html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+#html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+#html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_domain_indices = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+#html_show_sourcelink = True
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+#html_show_sphinx = True
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+#html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a tag referring to it. The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = None
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'phpMyAdmindoc'
+
+
+# -- Options for LaTeX output --------------------------------------------------
+
+latex_elements = {
+# The paper size ('letterpaper' or 'a4paper').
+#'papersize': 'letterpaper',
+
+# The font size ('10pt', '11pt' or '12pt').
+#'pointsize': '10pt',
+
+# Additional stuff for the LaTeX preamble.
+#'preamble': '',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title, author, documentclass [howto/manual]).
+latex_documents = [
+ ('index', 'phpMyAdmin.tex', u'phpMyAdmin Documentation',
+ u'The phpMyAdmin devel team', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# If true, show page references after internal links.
+#latex_show_pagerefs = False
+
+# If true, show URL addresses after external links.
+#latex_show_urls = False
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+#latex_domain_indices = True
+
+
+# -- Options for manual page output --------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+ ('index', 'phpmyadmin', u'phpMyAdmin Documentation',
+ [u'The phpMyAdmin devel team'], 1)
+]
+
+# If true, show URL addresses after external links.
+#man_show_urls = False
+
+
+# -- Options for Texinfo output ------------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+# dir menu entry, description, category)
+texinfo_documents = [
+ ('index', 'phpMyAdmin', u'phpMyAdmin Documentation',
+ u'The phpMyAdmin devel team', 'phpMyAdmin', 'One line description of project.',
+ 'Miscellaneous'),
+]
+
+# Documents to append as an appendix to all manuals.
+#texinfo_appendices = []
+
+# If false, no module index is generated.
+#texinfo_domain_indices = True
+
+# How to display URL addresses: 'footnote', 'no', or 'inline'.
+#texinfo_show_urls = 'footnote'
+
+
+# -- Options for Epub output ---------------------------------------------------
+
+# Bibliographic Dublin Core info.
+epub_title = u'phpMyAdmin'
+epub_author = u'The phpMyAdmin devel team'
+epub_publisher = u'The phpMyAdmin devel team'
+epub_copyright = copyright
+
+# The language of the text. It defaults to the language option
+# or en if the language is not set.
+#epub_language = ''
+
+# The scheme of the identifier. Typical schemes are ISBN or URL.
+#epub_scheme = ''
+
+# The unique identifier of the text. This can be a ISBN number
+# or the project homepage.
+#epub_identifier = ''
+
+# A unique identification for the text.
+#epub_uid = ''
+
+# A tuple containing the cover image and cover page html template filenames.
+#epub_cover = ()
+
+# HTML files that should be inserted before the pages created by sphinx.
+# The format is a list of tuples containing the path and title.
+#epub_pre_files = []
+
+# HTML files shat should be inserted after the pages created by sphinx.
+# The format is a list of tuples containing the path and title.
+#epub_post_files = []
+
+# A list of files that should not be packed into the epub file.
+#epub_exclude_files = []
+
+# The depth of the table of contents in toc.ncx.
+#epub_tocdepth = 3
+
+# Allow duplicate toc entries.
+#epub_tocdup = True
+
+# Highlight PHP without starting `_).
+
+ A good test is to browse a table, edit a row and save it. There should be
+ an error message if phpMyAdmin is having trouble auto–detecting the correct
+ value. If you get an error that this must be set or if the autodetect code
+ fails to detect your path, please post a bug report on our bug tracker so
+ we can improve the code.
+
+ .. seealso:: :ref:`faq1_40`
+
+.. config:option:: $cfg['PmaNoRelation_DisableWarning']
+
+ :type: boolean
+ :default: false
+
+ Starting with version 2.3.0 phpMyAdmin offers a lot of features to
+ work with master / foreign – tables (see :config:option:`$cfg['Servers'][$i]['pmadb']`).
+
+ If you tried to set this
+ up and it does not work for you, have a look on the :guilabel:`Structure` page
+ of one database where you would like to use it. You will find a link
+ that will analyze why those features have been disabled.
+
+ If you do not want to use those features set this variable to ``true`` to
+ stop this message from appearing.
+
+.. config:option:: $cfg['SuhosinDisableWarning']
+
+ :type: boolean
+ :default: false
+
+ A warning is displayed on the main page if Suhosin is detected.
+
+ You can set this parameter to ``true`` to stop this message from appearing.
+
+.. config:option:: $cfg['McryptDisableWarning']
+
+ :type: boolean
+ :default: false
+
+ Disable the default warning that is displayed if mcrypt is missing for
+ cookie authentication.
+
+ You can set this parameter to ``true`` to stop this message from appearing.
+
+.. config:option:: $cfg['ServerLibraryDifference_DisableWarning']
+
+ :type: boolean
+ :default: false
+
+ A warning is displayed on the main page if there is a difference
+ between the MySQL library and server version.
+
+ You can set this parameter to ``true`` to stop this message from appearing.
+
+.. config:option:: $cfg['ReservedWordDisableWarning']
+
+ :type: boolean
+ :default: false
+
+ This warning is displayed on the Structure page of a table if one or more
+ column names match with words which are MySQL reserved.
+
+ If you want to turn off this warning, you can set it to ``true`` and
+ warning will no longer be displayed.
+
+.. config:option:: $cfg['TranslationWarningThreshold']
+
+ :type: integer
+ :default: 80
+
+ Show warning about incomplete translations on certain threshold.
+
+.. config:option:: $cfg['SendErrorReports']
+
+ :type: string
+ :default: ``'ask'``
+
+ Sets the default behavior for JavaScript error reporting.
+
+ Whenever an error is detected in the JavaScript execution, an error report
+ may be sent to the phpMyAdmin team if the user agrees.
+
+ The default setting of ``'ask'`` will ask the user everytime there is a new
+ error report. However you can set this parameter to ``'always'`` to send error
+ reports without asking for confirmation or you can set it to ``'never'`` to
+ never send error reports.
+
+ This directive is available both in the configuration file and in users
+ preferences. If the person in charge of a multi-user installation prefers
+ to disable this feature for all users, a value of ``'never'`` should be
+ set, and the :config:option:`$cfg['UserprefsDisallow']` directive should
+ contain ``'SendErrorReports'`` in one of its array values.
+
+.. config:option:: $cfg['AllowThirdPartyFraming']
+
+ :type: boolean
+ :default: false
+
+ Setting this to ``true`` allows phpMyAdmin to be included inside a frame,
+ and is a potential security hole allowing cross-frame scripting attacks or
+ clickjacking.
+
+Server connection settings
+--------------------------
+
+.. config:option:: $cfg['Servers']
+
+ :type: array
+ :default: one server array with settings listed bellow
+
+ Since version 1.4.2, phpMyAdmin supports the administration of multiple
+ MySQL servers. Therefore, a :config:option:`$cfg['Servers']`-array has been
+ added which contains the login information for the different servers. The
+ first :config:option:`$cfg['Servers'][$i]['host']` contains the hostname of
+ the first server, the second :config:option:`$cfg['Servers'][$i]['host']`
+ the hostname of the second server, etc. In
+ :file:`libraries/config.default.php`, there is only one section for server
+ definition, however you can put as many as you need in
+ :file:`config.inc.php`, copy that block or needed parts (you don't have to
+ define all settings, just those you need to change).
+
+ .. note::
+
+ The :config:option:`$cfg['Servers']` array starts with
+ $cfg['Servers'][1]. Do not use $cfg['Servers'][0]. If you want more
+ than one server, just copy following section (including $i
+ incrementation) serveral times. There is no need to define full server
+ array, just define values you need to change.
+
+
+.. config:option:: $cfg['Servers'][$i]['host']
+
+ :type: string
+ :default: ``'localhost'``
+
+ The hostname or :term:`IP` address of your $i-th MySQL-server. E.g.
+ ``localhost``.
+
+ Possible values are:
+
+ * hostname, e.g., ``'localhost'`` or ``'mydb.example.org'``
+ * IP address, e.g., ``'127.0.0.1'`` or ``'192.168.10.1'``
+ * dot - ``'.'``, i.e., use named pipes on windows systems
+ * empty - ``''``, disables this server
+
+ .. note::
+
+ phpMyAdmin supports connecting to MySQL servers reachable via IPv6 only.
+ To connect to an IPv6 MySQL server, enter its IPv6 address in this field.
+
+.. config:option:: $cfg['Servers'][$i]['port']
+
+ :type: string
+ :default: ``''``
+
+ The port-number of your $i-th MySQL-server. Default is 3306 (leave
+ blank).
+
+ .. note::
+
+ If you use ``localhost`` as the hostname, MySQL ignores this port number
+ and connects with the socket, so if you want to connect to a port
+ different from the default port, use ``127.0.0.1`` or the real hostname
+ in :config:option:`$cfg['Servers'][$i]['host']`.
+
+.. config:option:: $cfg['Servers'][$i]['socket']
+
+ :type: string
+ :default: ``''``
+
+ The path to the socket to use. Leave blank for default. To determine
+ the correct socket, check your MySQL configuration or, using the
+ :command:`mysql` command–line client, issue the ``status`` command. Among the
+ resulting information displayed will be the socket used.
+
+.. config:option:: $cfg['Servers'][$i]['ssl']
+
+ :type: boolean
+ :default: false
+
+ Whether to enable SSL for the connection between phpMyAdmin and the MySQL server.
+
+ When using :config:option:`$cfg['Servers'][$i]['extension']` = ``'mysql'``,
+ none of the remaining ``'ssl...'`` configuration options apply.
+
+ We strongly recommend using :config:option:`$cfg['Servers'][$i]['extension']` = ``'mysqli'``
+ when using this option.
+
+.. config:option:: $cfg['Servers'][$i]['ssl_key']
+
+ :type: string
+ :default: NULL
+
+ Path to the key file when using SSL for connecting to the MySQL server.
+
+ For example:
+
+ .. code-block:: php
+
+ $cfg['Servers'][$i]['ssl_key'] = '/etc/mysql/server-key.pem';
+
+.. config:option:: $cfg['Servers'][$i]['ssl_cert']
+
+ :type: string
+ :default: NULL
+
+ Path to the cert file when using SSL for connecting to the MySQL server.
+
+.. config:option:: $cfg['Servers'][$i]['ssl_ca']
+
+ :type: string
+ :default: NULL
+
+ Path to the CA file when using SSL for connecting to the MySQL server.
+
+.. config:option:: $cfg['Servers'][$i]['ssl_ca_path']
+
+ :type: string
+ :default: NULL
+
+ Directory containing trusted SSL CA certificates in PEM format.
+
+.. config:option:: $cfg['Servers'][$i]['ssl_ciphers']
+
+ :type: string
+ :default: NULL
+
+ List of allowable ciphers for SSL connections to the MySQL server.
+
+.. config:option:: $cfg['Servers'][$i]['connect_type']
+
+ :type: string
+ :default: ``'tcp'``
+
+ What type connection to use with the MySQL server. Your options are
+ ``'socket'`` and ``'tcp'``. It defaults to tcp as that is nearly guaranteed
+ to be available on all MySQL servers, while sockets are not supported on
+ some platforms. To use the socket mode, your MySQL server must be on the
+ same machine as the Web server.
+
+.. config:option:: $cfg['Servers'][$i]['extension']
+
+ :type: string
+ :default: ``'mysqli'``
+
+ What php MySQL extension to use for the connection. Valid options are:
+
+ ``mysql``
+ The classic MySQL extension.
+
+ ``mysqli``
+ The improved MySQL extension. This extension became available with PHP
+ 5.0.0 and is the recommended way to connect to a server running MySQL
+ 4.1.x or newer.
+
+.. config:option:: $cfg['Servers'][$i]['compress']
+
+ :type: boolean
+ :default: false
+
+ Whether to use a compressed protocol for the MySQL server connection
+ or not (experimental).
+
+.. _controlhost:
+.. config:option:: $cfg['Servers'][$i]['controlhost']
+
+ :type: string
+ :default: ``''``
+
+ Permits to use an alternate host to hold the configuration storage
+ data.
+
+.. _controlport:
+.. config:option:: $cfg['Servers'][$i]['controlport']
+
+ :type: string
+ :default: ``''``
+
+ Permits to use an alternate port to connect to the host that
+ holds the configuration storage.
+
+.. _controluser:
+.. config:option:: $cfg['Servers'][$i]['controluser']
+
+ :type: string
+ :default: ``''``
+
+.. config:option:: $cfg['Servers'][$i]['controlpass']
+
+ :type: string
+ :default: ``''``
+
+ This special account is used for 2 distinct purposes: to make possible all
+ relational features (see :config:option:`$cfg['Servers'][$i]['pmadb']`) and,
+ for a MySQL server running with ``--skip-show-database``, to enable a
+ multi-user installation (:term:`HTTP` or cookie
+ authentication mode).
+
+ When using :term:`HTTP` or
+ cookie authentication modes (or 'config' authentication mode since phpMyAdmin
+ 2.2.1), you need to supply the details of a MySQL account that has ``SELECT``
+ privilege on the *mysql.user (all columns except "Password")*, *mysql.db (all
+ columns)* and *mysql.tables\_priv (all columns except "Grantor" and
+ "Timestamp")* tables. This account is used to check what databases the user
+ will see at login.
+
+ .. versionchanged:: 2.2.5
+ those were called ``stduser`` and ``stdpass``
+
+ .. seealso:: :ref:`setup`, :ref:`authentication_modes`
+
+.. config:option:: $cfg['Servers'][$i]['auth_type']
+
+ :type: string
+ :default: ``'cookie'``
+
+ Whether config or cookie or :term:`HTTP` or signon authentication should be
+ used for this server.
+
+ * 'config' authentication (``$auth_type = 'config'``) is the plain old
+ way: username and password are stored in :file:`config.inc.php`.
+ * 'cookie' authentication mode (``$auth_type = 'cookie'``) as
+ introduced in 2.2.3 allows you to log in as any valid MySQL user with
+ the help of cookies. Username and password are stored in cookies
+ during the session and password is deleted when it ends. This can also
+ allow you to log in in arbitrary server if :config:option:`$cfg['AllowArbitraryServer']` enabled.
+ * 'http' authentication (was
+ called 'advanced' in previous versions and can be written also as
+ 'http') (``$auth_type = 'http';'``) as introduced in 1.3.0 allows you to log in as any
+ valid MySQL user via HTTP-Auth.
+ * 'signon' authentication mode (``$auth_type = 'signon'``) as
+ introduced in 2.10.0 allows you to log in from prepared PHP session
+ data or using supplied PHP script. This is useful for implementing
+ single signon from another application. Sample way how to seed session
+ is in signon example: :file:`examples/signon.php`. There is also
+ alternative example using OpenID - :file:`examples/openid.php` and example
+ for scripts based solution - :file:`examples/signon-script.php`. You need
+ to configure :config:option:`$cfg['Servers'][$i]['SignonSession']` or
+ :config:option:`$cfg['Servers'][$i]['SignonScript']` and
+ :config:option:`$cfg['Servers'][$i]['SignonURL']` to use this authentication
+ method.
+
+ .. seealso:: :ref:`authentication_modes`
+
+.. _servers_auth_http_realm:
+.. config:option:: $cfg['Servers'][$i]['auth_http_realm']
+
+ :type: string
+ :default: ``''``
+
+ When using auth\_type = ``http``, this field allows to define a custom
+ :term:`HTTP` Basic Auth Realm which will be displayed to the user. If not
+ explicitly specified in your configuration, a string combined of
+ "phpMyAdmin " and either :config:option:`$cfg['Servers'][$i]['verbose']` or
+ :config:option:`$cfg['Servers'][$i]['host']` will be used.
+
+.. _servers_auth_swekey_config:
+.. config:option:: $cfg['Servers'][$i]['auth_swekey_config']
+
+ :type: string
+ :default: ``''``
+
+ The name of the file containing :ref:`swekey` ids and login names for hardware
+ authentication. Leave empty to deactivate this feature.
+
+.. _servers_user:
+.. config:option:: $cfg['Servers'][$i]['user']
+
+ :type: string
+ :default: ``'root'``
+
+.. config:option:: $cfg['Servers'][$i]['password']
+
+ :type: string
+ :default: ``''``
+
+ When using :config:option:`$cfg['Servers'][$i]['auth_type']` set to
+ 'config', this is the user/password-pair which phpMyAdmin will use to
+ connect to the MySQL server. This user/password pair is not needed when
+ :term:`HTTP` or cookie authentication is used
+ and should be empty.
+
+.. _servers_nopassword:
+.. config:option:: $cfg['Servers'][$i]['nopassword']
+
+ :type: boolean
+ :default: false
+
+ Allow attempt to log in without password when a login with password
+ fails. This can be used together with http authentication, when
+ authentication is done some other way and phpMyAdmin gets user name
+ from auth and uses empty password for connecting to MySQL. Password
+ login is still tried first, but as fallback, no password method is
+ tried.
+
+.. _servers_only_db:
+.. config:option:: $cfg['Servers'][$i]['only_db']
+
+ :type: string or array
+ :default: ``''``
+
+ If set to a (an array of) database name(s), only this (these)
+ database(s) will be shown to the user. Since phpMyAdmin 2.2.1,
+ this/these database(s) name(s) may contain MySQL wildcards characters
+ ("\_" and "%"): if you want to use literal instances of these
+ characters, escape them (I.E. use ``'my\_db'`` and not ``'my_db'``).
+
+ This setting is an efficient way to lower the server load since the
+ latter does not need to send MySQL requests to build the available
+ database list. But **it does not replace the privileges rules of the
+ MySQL database server**. If set, it just means only these databases
+ will be displayed but **not that all other databases can't be used.**
+
+ An example of using more that one database:
+
+ .. code-block:: php
+
+ $cfg['Servers'][$i]['only_db'] = array('db1', 'db2');
+
+ .. versionchanged:: 4.0.0
+ Previous versions permitted to specify the display order of
+ the database names via this directive.
+
+.. config:option:: $cfg['Servers'][$i]['hide_db']
+
+ :type: string
+ :default: ``''``
+
+ Regular expression for hiding some databases from unprivileged users.
+ This only hides them from listing, but a user is still able to access
+ them (using, for example, the SQL query area). To limit access, use
+ the MySQL privilege system. For example, to hide all databases
+ starting with the letter "a", use
+
+ .. code-block:: php
+
+ $cfg['Servers'][$i]['hide_db'] = '^a';
+
+ and to hide both "db1" and "db2" use
+
+ .. code-block:: php
+
+ $cfg['Servers'][$i]['hide_db'] = '^(db1|db2)$';
+
+ More information on regular expressions can be found in the `PCRE
+ pattern syntax
+ `_ portion
+ of the PHP reference manual.
+
+.. config:option:: $cfg['Servers'][$i]['verbose']
+
+ :type: string
+ :default: ``''``
+
+ Only useful when using phpMyAdmin with multiple server entries. If
+ set, this string will be displayed instead of the hostname in the
+ pull-down menu on the main page. This can be useful if you want to
+ show only certain databases on your system, for example. For HTTP
+ auth, all non-US-ASCII characters will be stripped.
+
+.. config:option:: $cfg['Servers'][$i]['pmadb']
+
+ :type: string
+ :default: ``''``
+
+ The name of the database containing the phpMyAdmin configuration
+ storage.
+
+ See the :ref:`linked-tables` section in this document to see the benefits of
+ this feature, and for a quick way of creating this database and the needed
+ tables.
+
+ If you are the only user of this phpMyAdmin installation, you can use your
+ current database to store those special tables; in this case, just put your
+ current database name in :config:option:`$cfg['Servers'][$i]['pmadb']`. For a
+ multi-user installation, set this parameter to the name of your central
+ database containing the phpMyAdmin configuration storage.
+
+.. _bookmark:
+.. config:option:: $cfg['Servers'][$i]['bookmarktable']
+
+ :type: string
+ :default: ``''``
+
+ Since release 2.2.0 phpMyAdmin allows users to bookmark queries. This
+ can be useful for queries you often run. To allow the usage of this
+ functionality:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * enter the table name in :config:option:`$cfg['Servers'][$i]['bookmarktable']`
+
+
+.. _relation:
+.. config:option:: $cfg['Servers'][$i]['relation']
+
+ :type: string
+ :default: ``''``
+
+ Since release 2.2.4 you can describe, in a special 'relation' table,
+ which column is a key in another table (a foreign key). phpMyAdmin
+ currently uses this to:
+
+ * make clickable, when you browse the master table, the data values that
+ point to the foreign table;
+ * display in an optional tool-tip the "display column" when browsing the
+ master table, if you move the mouse to a column containing a foreign
+ key (use also the 'table\_info' table); (see :ref:`faqdisplay`)
+ * in edit/insert mode, display a drop-down list of possible foreign keys
+ (key value and "display column" are shown) (see :ref:`faq6_21`)
+ * display links on the table properties page, to check referential
+ integrity (display missing foreign keys) for each described key;
+ * in query-by-example, create automatic joins (see :ref:`faq6_6`)
+ * enable you to get a :term:`PDF` schema of
+ your database (also uses the table\_coords table).
+
+ The keys can be numeric or character.
+
+ To allow the usage of this functionality:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the relation table name in :config:option:`$cfg['Servers'][$i]['relation']`
+ * now as normal user open phpMyAdmin and for each one of your tables
+ where you want to use this feature, click :guilabel:`Structure/Relation view/`
+ and choose foreign columns.
+
+ .. note::
+
+ In the current version, ``master_db`` must be the same as ``foreign_db``.
+ Those columns have been put in future development of the cross-db
+ relations.
+
+.. _table_info:
+.. config:option:: $cfg['Servers'][$i]['table_info']
+
+ :type: string
+ :default: ``''``
+
+ Since release 2.3.0 you can describe, in a special 'table\_info'
+ table, which column is to be displayed as a tool-tip when moving the
+ cursor over the corresponding key. This configuration variable will
+ hold the name of this special table. To allow the usage of this
+ functionality:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['table\_info']` (e.g.
+ ``pma__table_info``)
+ * then for each table where you want to use this feature, click
+ "Structure/Relation view/Choose column to display" to choose the
+ column.
+
+ .. seealso:: :ref:`faqdisplay`
+
+.. _table_coords:
+.. config:option:: $cfg['Servers'][$i]['table_coords']
+
+ :type: string
+ :default: ``''``
+
+.. config:option:: $cfg['Servers'][$i]['pdf_pages']
+
+ :type: string
+ :default: ``''``
+
+ Since release 2.3.0 you can have phpMyAdmin create :term:`PDF` pages
+ showing the relations between your tables. To do this it needs two tables
+ "pdf\_pages" (storing information about the available :term:`PDF` pages)
+ and "table\_coords" (storing coordinates where each table will be placed on
+ a :term:`PDF` schema output). You must be using the "relation" feature.
+
+ To allow the usage of this functionality:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the correct table names in
+ :config:option:`$cfg['Servers'][$i]['table\_coords']` and
+ :config:option:`$cfg['Servers'][$i]['pdf\_pages']`
+
+ .. seealso:: :ref:`faqpdf`.
+
+.. _col_com:
+.. config:option:: $cfg['Servers'][$i]['column_info']
+
+ :type: string
+ :default: ``''``
+
+ This part requires a content update! Since release 2.3.0 you can
+ store comments to describe each column for each table. These will then
+ be shown on the "printview".
+
+ Starting with release 2.5.0, comments are consequently used on the table
+ property pages and table browse view, showing up as tool-tips above the
+ column name (properties page) or embedded within the header of table in
+ browse view. They can also be shown in a table dump. Please see the
+ relevant configuration directives later on.
+
+ Also new in release 2.5.0 is a MIME- transformation system which is also
+ based on the following table structure. See :ref:`transformations` for
+ further information. To use the MIME- transformation system, your
+ column\_info table has to have the three new columns 'mimetype',
+ 'transformation', 'transformation\_options'.
+
+
+ To allow the usage of this functionality:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['column\_info']` (e.g.
+ ``pma__column_info``)
+ * to update your PRE-2.5.0 Column\_comments Table use this: and
+ remember that the Variable in :file:`config.inc.php` has been renamed from
+ :config:option:`$cfg['Servers'][$i]['column\_comments']` to
+ :config:option:`$cfg['Servers'][$i]['column\_info']`
+
+ .. code-block:: mysql
+
+ ALTER TABLE `pma__column_comments`
+ ADD `mimetype` VARCHAR( 255 ) NOT NULL,
+ ADD `transformation` VARCHAR( 255 ) NOT NULL,
+ ADD `transformation_options` VARCHAR( 255 ) NOT NULL;
+
+.. _history:
+.. config:option:: $cfg['Servers'][$i]['history']
+
+ :type: string
+ :default: ``''``
+
+ Since release 2.5.0 you can store your :term:`SQL` history, which means all
+ queries you entered manually into the phpMyAdmin interface. If you don't
+ want to use a table-based history, you can use the JavaScript-based
+ history.
+
+ Using that, all your history items are deleted when closing the window.
+ Using :config:option:`$cfg['QueryHistoryMax']` you can specify an amount of
+ history items you want to have on hold. On every login, this list gets cut
+ to the maximum amount.
+
+ The query history is only available if JavaScript is enabled in
+ your browser.
+
+ To allow the usage of this functionality:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['history']` (e.g.
+ ``pma__history``)
+
+.. _recent:
+.. config:option:: $cfg['Servers'][$i]['recent']
+
+ :type: string
+ :default: ``''``
+
+ Since release 3.5.0 you can show recently used tables in the
+ navigation panel. It helps you to jump across table directly, without
+ the need to select the database, and then select the table. Using
+ :config:option:`$cfg['NumRecentTables']` you can configure the maximum number
+ of recent tables shown. When you select a table from the list, it will jump to
+ the page specified in :config:option:`$cfg['NavigationTreeDefaultTabTable']`.
+
+
+ Without configuring the storage, you can still access the recently used tables,
+ but it will disappear after you logout.
+
+ To allow the usage of this functionality persistently:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['recent']` (e.g.
+ ``pma__recent``)
+
+.. _table_uiprefs:
+.. config:option:: $cfg['Servers'][$i]['table_uiprefs']
+
+ :type: string
+ :default: ``''``
+
+ Since release 3.5.0 phpMyAdmin can be configured to remember several
+ things (sorted column :config:option:`$cfg['RememberSorting']`, column order,
+ and column visibility from a database table) for browsing tables. Without
+ configuring the storage, these features still can be used, but the values will
+ disappear after you logout.
+
+ To allow the usage of these functionality persistently:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['table\_uiprefs']` (e.g.
+ ``pma__table_uiprefs``)
+
+.. _configurablemenus:
+.. config:option:: $cfg['Servers'][$i]['users']
+
+ :type: string
+ :default: ``''``
+
+.. config:option:: $cfg['Servers'][$i]['usergroups']
+
+ :type: string
+ :default: ``''``
+
+ Since release 4.1.0 you can create different user groups with menu items
+ attached to them. Users can be assigned to these groups and the logged in
+ user would only see menu items configured to the usergroup he is assigned to.
+ To do this it needs two tables "usergroups" (storing allowed menu items for each
+ user group) and "users" (storing users and their assignments to user groups).
+
+ To allow the usage of this functionality:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the correct table names in
+ :config:option:`$cfg['Servers'][$i]['users']` (e.g. ``pma__users``) and
+ :config:option:`$cfg['Servers'][$i]['usergroups']` (e.g. ``pma__usergroups``)
+
+.. _navigationhiding:
+.. config:option:: $cfg['Servers'][$i]['navigationhiding']
+
+ :type: string
+ :default: ``''``
+
+ Since release 4.1.0 you can hide/show items in the navigation tree.
+
+ To allow the usage of this functionality:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['navigationhiding']` (e.g.
+ ``pma__navigationhiding``)
+
+.. _tracking:
+.. config:option:: $cfg['Servers'][$i]['tracking']
+
+ :type: string
+ :default: ``''``
+
+ Since release 3.3.x a tracking mechanism is available. It helps you to
+ track every :term:`SQL` command which is
+ executed by phpMyAdmin. The mechanism supports logging of data
+ manipulation and data definition statements. After enabling it you can
+ create versions of tables.
+
+ The creation of a version has two effects:
+
+ * phpMyAdmin saves a snapshot of the table, including structure and
+ indexes.
+ * phpMyAdmin logs all commands which change the structure and/or data of
+ the table and links these commands with the version number.
+
+ Of course you can view the tracked changes. On the :guilabel:`Tracking`
+ page a complete report is available for every version. For the report you
+ can use filters, for example you can get a list of statements within a date
+ range. When you want to filter usernames you can enter \* for all names or
+ you enter a list of names separated by ','. In addition you can export the
+ (filtered) report to a file or to a temporary database.
+
+ To allow the usage of this functionality:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['tracking']` (e.g.
+ ``pma__tracking``)
+
+
+.. _tracking2:
+.. config:option:: $cfg['Servers'][$i]['tracking_version_auto_create']
+
+ :type: boolean
+ :default: false
+
+ Whether the tracking mechanism creates versions for tables and views
+ automatically.
+
+ If this is set to true and you create a table or view with
+
+ * CREATE TABLE ...
+ * CREATE VIEW ...
+
+ and no version exists for it, the mechanism will create a version for
+ you automatically.
+
+.. _tracking3:
+.. config:option:: $cfg['Servers'][$i]['tracking_default_statements']
+
+ :type: string
+ :default: ``'CREATE TABLE,ALTER TABLE,DROP TABLE,RENAME TABLE,CREATE INDEX,DROP INDEX,INSERT,UPDATE,DELETE,TRUNCATE,REPLACE,CREATE VIEW,ALTER VIEW,DROP VIEW,CREATE DATABASE,ALTER DATABASE,DROP DATABASE'``
+
+ Defines the list of statements the auto-creation uses for new
+ versions.
+
+.. _tracking4:
+.. config:option:: $cfg['Servers'][$i]['tracking_add_drop_view']
+
+ :type: boolean
+ :default: true
+
+ Whether a DROP VIEW IF EXISTS statement will be added as first line to
+ the log when creating a view.
+
+.. _tracking5:
+.. config:option:: $cfg['Servers'][$i]['tracking_add_drop_table']
+
+ :type: boolean
+ :default: true
+
+ Whether a DROP TABLE IF EXISTS statement will be added as first line
+ to the log when creating a table.
+
+.. _tracking6:
+.. config:option:: $cfg['Servers'][$i]['tracking_add_drop_database']
+
+ :type: boolean
+ :default: true
+
+ Whether a DROP DATABASE IF EXISTS statement will be added as first
+ line to the log when creating a database.
+
+.. _userconfig:
+.. config:option:: $cfg['Servers'][$i]['userconfig']
+
+ :type: string
+ :default: ``''``
+
+ Since release 3.4.x phpMyAdmin allows users to set most preferences by
+ themselves and store them in the database.
+
+ If you don't allow for storing preferences in
+ :config:option:`$cfg['Servers'][$i]['pmadb']`, users can still personalize
+ phpMyAdmin, but settings will be saved in browser's local storage, or, it
+ is is unavailable, until the end of session.
+
+ To allow the usage of this functionality:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['userconfig']`
+
+
+
+.. _designer_coords:
+.. config:option:: $cfg['Servers'][$i]['designer_coords']
+
+ :type: string
+ :default: ``''``
+
+ Since release 2.10.0 a Designer interface is available; it permits to
+ visually manage the relations.
+
+ To allow the usage of this functionality:
+
+ * set up :config:option:`$cfg['Servers'][$i]['pmadb']` and the phpMyAdmin configuration storage
+ * put the table name in :config:option:`$cfg['Servers'][$i]['designer\_coords']`
+ (e.g. ``pma__designer_coords``)
+
+
+
+.. config:option:: $cfg['Servers'][$i]['MaxTableUiprefs']
+
+ :type: integer
+ :default: 100
+
+ Maximum number of rows saved in
+ :config:option:`$cfg['Servers'][$i]['table_uiprefs']` table.
+
+ When tables are dropped or renamed,
+ :config:option:`$cfg['Servers'][$i]['table_uiprefs']` may contain invalid data
+ (referring to tables which no longer exist). We only keep this number of newest
+ rows in :config:option:`$cfg['Servers'][$i]['table_uiprefs']` and automatically
+ delete older rows.
+
+.. config:option:: $cfg['Servers'][$i]['AllowRoot']
+
+ :type: boolean
+ :default: true
+
+ Whether to allow root access. This is just a shortcut for the
+ :config:option:`$cfg['Servers'][$i]['AllowDeny']['rules']` below.
+
+.. config:option:: $cfg['Servers'][$i]['AllowNoPassword']
+
+ :type: boolean
+ :default: false
+
+ Whether to allow logins without a password. The default value of
+ ``false`` for this parameter prevents unintended access to a MySQL
+ server with was left with an empty password for root or on which an
+ anonymous (blank) user is defined.
+
+.. _servers_allowdeny_order:
+.. config:option:: $cfg['Servers'][$i]['AllowDeny']['order']
+
+ :type: string
+ :default: ``''``
+
+ If your rule order is empty, then :term:`IP`
+ authorization is disabled.
+
+ If your rule order is set to
+ ``'deny,allow'`` then the system applies all deny rules followed by
+ allow rules. Access is allowed by default. Any client which does not
+ match a Deny command or does match an Allow command will be allowed
+ access to the server.
+
+ If your rule order is set to ``'allow,deny'``
+ then the system applies all allow rules followed by deny rules. Access
+ is denied by default. Any client which does not match an Allow
+ directive or does match a Deny directive will be denied access to the
+ server.
+
+ If your rule order is set to ``'explicit'``, authorization is
+ performed in a similar fashion to rule order 'deny,allow', with the
+ added restriction that your host/username combination **must** be
+ listed in the *allow* rules, and not listed in the *deny* rules. This
+ is the **most** secure means of using Allow/Deny rules, and was
+ available in Apache by specifying allow and deny rules without setting
+ any order.
+
+ Please also see :config:option:`$cfg['TrustedProxies']` for
+ detecting IP address behind proxies.
+
+.. _servers_allowdeny_rules:
+.. config:option:: $cfg['Servers'][$i]['AllowDeny']['rules']
+
+ :type: array of strings
+ :default: array()
+
+ The general format for the rules is as such:
+
+ .. code-block:: none
+
+ <'allow' | 'deny'> [from]
+
+ If you wish to match all users, it is possible to use a ``'%'`` as a
+ wildcard in the *username* field.
+
+ There are a few shortcuts you can
+ use in the *ipmask* field as well (please note that those containing
+ SERVER\_ADDRESS might not be available on all webservers):
+
+ .. code-block:: none
+
+
+ 'all' -> 0.0.0.0/0
+ 'localhost' -> 127.0.0.1/8
+ 'localnetA' -> SERVER_ADDRESS/8
+ 'localnetB' -> SERVER_ADDRESS/16
+ 'localnetC' -> SERVER_ADDRESS/24
+
+ Having an empty rule list is equivalent to either using ``'allow %
+ from all'`` if your rule order is set to ``'deny,allow'`` or ``'deny %
+ from all'`` if your rule order is set to ``'allow,deny'`` or
+ ``'explicit'``.
+
+ For the :term:`IP address` matching
+ system, the following work:
+
+ * ``xxx.xxx.xxx.xxx`` (an exact :term:`IP address`)
+ * ``xxx.xxx.xxx.[yyy-zzz]`` (an :term:`IP address` range)
+ * ``xxx.xxx.xxx.xxx/nn`` (CIDR, Classless Inter-Domain Routing type :term:`IP` addresses)
+
+ But the following does not work:
+
+ * ``xxx.xxx.xxx.xx[yyy-zzz]`` (partial :term:`IP` address range)
+
+ For :term:`IPv6` addresses, the following work:
+
+ * ``xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx`` (an exact :term:`IPv6` address)
+ * ``xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:[yyyy-zzzz]`` (an :term:`IPv6` address range)
+ * ``xxxx:xxxx:xxxx:xxxx/nn`` (CIDR, Classless Inter-Domain Routing type :term:`IPv6` addresses)
+
+ But the following does not work:
+
+ * ``xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xx[yyy-zzz]`` (partial :term:`IPv6` address range)
+
+.. config:option:: $cfg['Servers'][$i]['SignonScript']
+
+ :type: string
+ :default: ``''``
+
+ Name of PHP script to be sourced and executed to obtain login
+ credentials. This is alternative approach to session based single
+ signon. The script needs to provide function
+ ``get_login_credentials`` which returns list of username and
+ password, accepting single parameter of existing username (can be
+ empty). See :file:`examples/signon-script.php` for an example.
+
+.. config:option:: $cfg['Servers'][$i]['SignonSession']
+
+ :type: string
+ :default: ``''``
+
+ Name of session which will be used for signon authentication method.
+ You should use something different than ``phpMyAdmin``, because this
+ is session which phpMyAdmin uses internally. Takes effect only if
+ :config:option:`$cfg['Servers'][$i]['SignonScript']` is not configured.
+
+.. config:option:: $cfg['Servers'][$i]['SignonURL']
+
+ :type: string
+ :default: ``''``
+
+ :term:`URL` where user will be redirected
+ to log in for signon authentication method. Should be absolute
+ including protocol.
+
+.. config:option:: $cfg['Servers'][$i]['LogoutURL']
+
+ :type: string
+ :default: ``''``
+
+ :term:`URL` where user will be redirected
+ after logout (doesn't affect config authentication method). Should be
+ absolute including protocol.
+
+.. config:option:: $cfg['Servers'][$i]['StatusCacheDatabases']
+
+ :type: array of strings
+ :default: array()
+
+ Enables caching of ``TABLE STATUS`` outputs for specific databases on
+ this server (in some cases ``TABLE STATUS`` can be very slow, so you
+ may want to cache it). APC is used (if the PHP extension is available,
+ if not, this setting is ignored silently). You have to provide
+ :config:option:`$cfg['Servers'][$i]['StatusCacheLifetime']`.
+
+.. config:option:: $cfg['Servers'][$i]['StatusCacheLifetime']
+
+ :type: integer
+ :default: 0
+
+ Lifetime in seconds of the ``TABLE STATUS`` cache if
+ :config:option:`$cfg['Servers'][$i]['StatusCacheDatabases']` is used.
+
+Generic settings
+----------------
+
+.. config:option:: $cfg['ServerDefault']
+
+ :type: integer
+ :default: 1
+
+ If you have more than one server configured, you can set
+ :config:option:`$cfg['ServerDefault']` to any one of them to autoconnect to that
+ server when phpMyAdmin is started, or set it to 0 to be given a list
+ of servers without logging in.
+
+ If you have only one server configured,
+ :config:option:`$cfg['ServerDefault']` MUST be set to that server.
+
+.. config:option:: $cfg['VersionCheck']
+
+ :type: boolean
+ :default: true
+
+ Enables check for latest versions using javascript on main phpMyAdmin
+ page.
+
+ .. note::
+
+ This setting can be adjusted by your vendor.
+
+.. config:option:: $cfg['ProxyUrl']
+
+ :type: string
+ :default: ""
+
+ The url of the proxy to be used when phpmyadmin needs to access the outside
+ intenet such as when retrieving the latest version info or submitting error
+ reports. You need this if the server where phpMyAdmin is installed does not
+ have direct access to the internet.
+ The format is: "hostname:portnumber"
+
+.. config:option:: $cfg['ProxyUser']
+
+ :type: string
+ :default: ""
+
+ The username for authenticating with the proxy. By default, no
+ authentication is performed. If a username is supplied, Basic
+ Authentication will be performed. No other types of authentication
+ are currently supported.
+
+.. config:option:: $cfg['ProxyPass']
+
+ :type: string
+ :default: ""
+
+ The password for authenticating with the proxy.
+
+.. config:option:: $cfg['MaxDbList']
+
+ :type: integer
+ :default: 100
+
+ The maximum number of database names to be displayed in the main panel's
+ database list.
+
+.. config:option:: $cfg['MaxTableList']
+
+ :type: integer
+ :default: 250
+
+ The maximum number of table names to be displayed in the main panel's
+ list (except on the Export page). This limit is also enforced in the
+ navigation panel when in Light mode.
+
+.. config:option:: $cfg['ShowHint']
+
+ :type: boolean
+ :default: true
+
+ Whether or not to show hints (for example, hints when hovering over
+ table headers).
+
+.. config:option:: $cfg['MaxCharactersInDisplayedSQL']
+
+ :type: integer
+ :default: 1000
+
+ The maximum number of characters when a :term:`SQL` query is displayed. The
+ default limit of 1000 should be correct to avoid the display of tons of
+ hexadecimal codes that represent BLOBs, but some users have real
+ :term:`SQL` queries that are longer than 1000 characters. Also, if a
+ query's length exceeds this limit, this query is not saved in the history.
+
+.. config:option:: $cfg['PersistentConnections']
+
+ :type: boolean
+ :default: false
+
+ Whether `persistent connections `_ should be used or not. Works with
+ following extensions:
+
+ * mysql (`mysql\_pconnect `_),
+ * mysqli (requires PHP 5.3.0 or newer, `more information
+ `_).
+
+.. config:option:: $cfg['ForceSSL']
+
+ :type: boolean
+ :default: false
+
+ Whether to force using https while accessing phpMyAdmin.
+
+ .. note::
+
+ In some setups (like separate SSL proxy or load balancer) you might
+ have to set :config:option:`$cfg['PmaAbsoluteUri']` for correct
+ redirection.
+
+.. config:option:: $cfg['ExecTimeLimit']
+
+ :type: integer [number of seconds]
+ :default: 300
+
+ Set the number of seconds a script is allowed to run. If seconds is
+ set to zero, no time limit is imposed. This setting is used while
+ importing/exporting dump files but has
+ no effect when PHP is running in safe mode.
+
+.. config:option:: $cfg['SessionSavePath']
+
+ :type: string
+ :default: ``''``
+
+ Path for storing session data (`session\_save\_path PHP parameter
+ `_).
+
+.. config:option:: $cfg['MemoryLimit']
+
+ :type: string [number of bytes]
+ :default: ``'-1'``
+
+ Set the number of bytes a script is allowed to allocate. If set to
+ ``'-1'``, no limit is imposed.
+
+ This setting is used while importing/exporting dump files and at some other
+ places in phpMyAdmin so you definitely don't want to put here a too low
+ value. It has no effect when PHP is running in safe mode.
+
+ You can also use any string as in :file:`php.ini`, eg. '16M'. Ensure you
+ don't omit the suffix (16 means 16 bytes!)
+
+.. config:option:: $cfg['SkipLockedTables']
+
+ :type: boolean
+ :default: false
+
+ Mark used tables and make it possible to show databases with locked
+ tables (since MySQL 3.23.30).
+
+.. config:option:: $cfg['ShowSQL']
+
+ :type: boolean
+ :default: true
+
+ Defines whether :term:`SQL` queries
+ generated by phpMyAdmin should be displayed or not.
+
+.. config:option:: $cfg['RetainQueryBox']
+
+ :type: boolean
+ :default: false
+
+ Defines whether the :term:`SQL` query box
+ should be kept displayed after its submission.
+
+.. config:option:: $cfg['CodemirrorEnable']
+
+ :type: boolean
+ :default: true
+
+ Defines whether to use a Javascript code editor for SQL query boxes.
+ CodeMirror provides syntax highlighting and line numbers. However,
+ middle-clicking for pasting the clipboard contents in some Linux
+ distributions (such as Ubuntu) is not supported by all browsers.
+
+.. config:option:: $cfg['AllowUserDropDatabase']
+
+ :type: boolean
+ :default: false
+
+ Defines whether normal users (non-administrator) are allowed to delete
+ their own database or not. If set as false, the link :guilabel:`Drop
+ Database` will not be shown, and even a ``DROP DATABASE mydatabase`` will
+ be rejected. Quite practical for :term:`ISP` 's with many customers.
+
+ .. note::
+
+ This limitation of :term:`SQL` queries is not
+ as strict as when using MySQL privileges. This is due to nature of
+ :term:`SQL` queries which might be quite
+ complicated. So this choice should be viewed as help to avoid accidental
+ dropping rather than strict privilege limitation.
+
+.. config:option:: $cfg['Confirm']
+
+ :type: boolean
+ :default: true
+
+ Whether a warning ("Are your really sure...") should be displayed when
+ you're about to lose data.
+
+.. config:option:: $cfg['UseDbSearch']
+
+ :type: boolean
+ :default: true
+
+ Define whether the "search string inside database" is enabled or not.
+
+.. config:option:: $cfg['IgnoreMultiSubmitErrors']
+
+ :type: boolean
+ :default: false
+
+ Define whether phpMyAdmin will continue executing a multi-query
+ statement if one of the queries fails. Default is to abort execution.
+
+Cookie authentication options
+-----------------------------
+
+.. config:option:: $cfg['blowfish_secret']
+
+ :type: string
+ :default: ``''``
+
+ The "cookie" auth\_type uses blowfish algorithm to encrypt the
+ password. If you are using the "cookie" auth\_type, enter here a
+ random passphrase of your choice. It will be used internally by the
+ blowfish algorithm: you won’t be prompted for this passphrase. There
+ is no maximum length for this secret.
+
+ .. versionchanged:: 3.1.0
+ Since version 3.1.0 phpMyAdmin can generate this on the fly, but it
+ makes a bit weaker security as this generated secret is stored in
+ session and furthermore it makes impossible to recall user name from
+ cookie.
+
+.. config:option:: $cfg['LoginCookieRecall']
+
+ :type: boolean
+ :default: true
+
+ Define whether the previous login should be recalled or not in cookie
+ authentication mode.
+
+ This is automatically disabled if you do not have
+ configured :config:option:`$cfg['blowfish_secret']`.
+
+.. config:option:: $cfg['LoginCookieValidity']
+
+ :type: integer [number of seconds]
+ :default: 1440
+
+ Define how long a login cookie is valid. Please note that php
+ configuration option `session.gc\_maxlifetime
+ `_ might limit session validity and if the session is lost,
+ the login cookie is also invalidated. So it is a good idea to set
+ ``session.gc_maxlifetime`` at least to the same value of
+ :config:option:`$cfg['LoginCookieValidity']`.
+
+.. config:option:: $cfg['LoginCookieStore']
+
+ :type: integer [number of seconds]
+ :default: 0
+
+ Define how long login cookie should be stored in browser. Default 0
+ means that it will be kept for existing session. This is recommended
+ for not trusted environments.
+
+.. config:option:: $cfg['LoginCookieDeleteAll']
+
+ :type: boolean
+ :default: true
+
+ If enabled (default), logout deletes cookies for all servers,
+ otherwise only for current one. Setting this to false makes it easy to
+ forget to log out from other server, when you are using more of them.
+
+.. _AllowArbitraryServer:
+.. config:option:: $cfg['AllowArbitraryServer']
+
+ :type: boolean
+ :default: false
+
+ If enabled, allows you to log in to arbitrary servers using cookie
+ authentication.
+
+ .. note::
+
+ Please use this carefully, as this may allow users access to MySQL servers
+ behind the firewall where your :term:`HTTP`
+ server is placed.
+
+.. config:option:: $cfg['CaptchaLoginPublicKey']
+
+ :type: string
+ :default: ``''``
+
+ The public key for the reCaptcha service that can be obtain from
+ http://www.google.com/recaptcha.
+
+ reCaptcha will be then used in :ref:`cookie`.
+
+.. config:option:: $cfg['CaptchaLoginPrivateKey']
+
+ :type: string
+ :default: ``''``
+
+ The private key for the reCaptcha service that can be obtain from
+ http://www.google.com/recaptcha.
+
+ reCaptcha will be then used in :ref:`cookie`.
+
+Navigation panel setup
+----------------------
+
+.. config:option:: $cfg['MaxNavigationItems']
+
+ :type: integer
+ :default: 250
+
+ The number of items that can be displayed on each page of the
+ navigation tree.
+
+.. config:option:: $cfg['NavigationTreeEnableGrouping']
+
+ :type: boolean
+ :default: true
+
+ Defines whether to group the databases based on a common prefix
+ in their name :config:option:`$cfg['NavigationTreeDbSeparator']`.
+
+.. config:option:: $cfg['NavigationTreeDbSeparator']
+
+ :type: string or array
+ :default: ``'_'``
+
+ The string used to separate the parts of the database name when
+ showing them in a tree. Alternatively you can specify more strings in
+ an array and all of them will be used as a separator.
+
+.. config:option:: $cfg['NavigationTreeTableSeparator']
+
+ :type: string or array
+ :default: ``'__'``
+
+ Defines a string to be used to nest table spaces. This means if you have
+ tables like ``first__second__third`` this will be shown as a three-level
+ hierarchy like: first > second > third. If set to false or empty, the
+ feature is disabled. NOTE: You should not use this separator at the
+ beginning or end of a table name or multiple times after another without
+ any other characters in between.
+
+.. config:option:: $cfg['NavigationTreeTableLevel']
+
+ :type: integer
+ :default: 1
+
+ Defines how many sublevels should be displayed when splitting up
+ tables by the above separator.
+
+.. config:option:: $cfg['NumRecentTables']
+
+ :type: integer
+ :default: 10
+
+ The maximum number of recently used tables shown in the navigation
+ panel. Set this to 0 (zero) to disable the listing of recent tables.
+
+.. config:option:: $cfg['NavigationDisplayLogo']
+
+ :type: boolean
+ :default: true
+
+ Defines whether or not to display the phpMyAdmin logo at the top of
+ the navigation panel.
+
+.. config:option:: $cfg['NavigationLogoLink']
+
+ :type: string
+ :default: ``'index.php'``
+
+ Enter :term:`URL` where logo in the
+ navigation panel will point to. For use especially with self made
+ theme which changes this.
+
+.. config:option:: $cfg['NavigationLogoLinkWindow']
+
+ :type: string
+ :default: ``'main'``
+
+ Whether to open the linked page in the main window (``main``) or in a
+ new one (``new``). Note: use ``new`` if you are linking to
+ ``phpmyadmin.net``.
+
+.. config:option:: $cfg['NavigationTreeDisplayItemFilterMinimum']
+
+ :type: integer
+ :default: 30
+
+ Defines the minimum number of items (tables, views, routines and
+ events) to display a JavaScript filter box above the list of items in
+ the navigation tree.
+
+ To disable the filter completely some high number can be used (e.g. 9999)
+
+.. config:option:: $cfg['NavigationTreeDisplayDbFilterMinimum']
+
+ :type: integer
+ :default: 30
+
+ Defines the minimum number of databases to display a JavaScript filter
+ box above the list of databases in the navigation tree.
+
+ To disable the filter completely some high number can be used
+ (e.g. 9999)
+
+.. config:option:: $cfg['NavigationDisplayServers']
+
+ :type: boolean
+ :default: true
+
+ Defines whether or not to display a server choice at the top of the
+ navigation panel.
+
+.. config:option:: $cfg['DisplayServersList']
+
+ :type: boolean
+ :default: false
+
+ Defines whether to display this server choice as links instead of in a
+ drop-down.
+
+.. config:option:: $cfg['NavigationTreeDefaultTabTable']
+
+ :type: string
+ :default: ``'tbl_structure.php'``
+
+ Defines the tab displayed by default when clicking the small icon next
+ to each table name in the navigation panel. Possible values:
+
+ * ``tbl_structure.php``
+ * ``tbl_sql.php``
+ * ``tbl_select.php``
+ * ``tbl_change.php``
+ * ``sql.php``
+
+Main panel
+----------
+
+.. config:option:: $cfg['ShowStats']
+
+ :type: boolean
+ :default: true
+
+ Defines whether or not to display space usage and statistics about
+ databases and tables. Note that statistics requires at least MySQL
+ 3.23.3 and that, at this date, MySQL doesn't return such information
+ for Berkeley DB tables.
+
+.. config:option:: $cfg['ShowServerInfo']
+
+ :type: boolean
+ :default: true
+
+ Defines whether to display detailed server information on main page.
+ You can additionally hide more information by using
+ :config:option:`$cfg['Servers'][$i]['verbose']`.
+
+.. config:option:: $cfg['ShowPhpInfo']
+
+ :type: boolean
+ :default: false
+
+.. config:option:: $cfg['ShowChgPassword']
+
+ :type: boolean
+ :default: true
+
+.. config:option:: $cfg['ShowCreateDb']
+
+ :type: boolean
+ :default: true
+
+ Defines whether to display the :guilabel:`PHP information` and
+ :guilabel:`Change password` links and form for creating database or not at
+ the starting main (right) frame. This setting does not check MySQL commands
+ entered directly.
+
+ Please note that to block the usage of ``phpinfo()`` in scripts, you have to
+ put this in your :file:`php.ini`:
+
+ .. code-block:: ini
+
+ disable_functions = phpinfo()
+
+ Also note that enabling the :guilabel:`Change password` link has no effect
+ with config authentication mode: because of the hard coded password value
+ in the configuration file, end users can't be allowed to change their
+ passwords.
+
+Database structure
+------------------
+
+.. config:option:: $cfg['ShowDbStructureCreation']
+
+ :type: boolean
+ :default: false
+
+ Defines whether the database structure page (tables list) has a
+ "Creation" column that displays when each table was created.
+
+.. config:option:: $cfg['ShowDbStructureLastUpdate']
+
+ :type: boolean
+ :default: false
+
+ Defines whether the database structure page (tables list) has a "Last
+ update" column that displays when each table was last updated.
+
+.. config:option:: $cfg['ShowDbStructureLastCheck']
+
+ :type: boolean
+ :default: false
+
+ Defines whether the database structure page (tables list) has a "Last
+ check" column that displays when each table was last checked.
+
+.. config:option:: $cfg['HideStructureActions']
+
+ :type: boolean
+ :default: true
+
+ Defines whether the table structure actions are hidden under a "More"
+ drop-down.
+
+Browse mode
+-----------
+
+.. config:option:: $cfg['TableNavigationLinksMode']
+
+ :type: string
+ :default: ``'icons'``
+
+ Defines whether the table navigation links contain ``'icons'``, ``'text'``
+ or ``'both'``.
+
+.. config:option:: $cfg['ShowAll']
+
+ :type: boolean
+ :default: false
+
+ Defines whether a user should be displayed a "Show all" button in browse
+ mode or not in all cases. By default it is shown only on small tables (less
+ than 500 rows) to avoid performance issues while getting too many rows.
+
+.. config:option:: $cfg['MaxRows']
+
+ :type: integer
+ :default: 25
+
+ Number of rows displayed when browsing a result set and no LIMIT
+ clause is used. If the result set contains more rows, "Previous" and
+ "Next" links will be shown. Possible values: 25,50,100,250,500.
+
+.. config:option:: $cfg['Order']
+
+ :type: string
+ :default: ``'SMART'``
+
+ Defines whether columns are displayed in ascending (``ASC``) order, in
+ descending (``DESC``) order or in a "smart" (``SMART``) order - I.E.
+ descending order for columns of type TIME, DATE, DATETIME and
+ TIMESTAMP, ascending order else- by default.
+
+.. config:option:: $cfg['DisplayBinaryAsHex']
+
+ :type: boolean
+ :default: true
+
+ Defines whether the "Show binary contents as HEX" browse option is
+ ticked by default.
+
+.. config:option:: $cfg['GridEditing']
+
+ :type: string
+ :default: ``'double-click'``
+
+ Defines which action (``double-click`` or ``click``) triggers grid
+ editing. Can be deactived with the ``disabled`` value.
+
+.. config:option:: $cfg['SaveCellsAtOnce']
+
+ :type: boolean
+ :default: false
+
+ Defines whether or not to save all edited cells at once for grid
+ editing.
+
+Editing mode
+------------
+
+.. config:option:: $cfg['ProtectBinary']
+
+ :type: boolean or string
+ :default: ``'blob'``
+
+ Defines whether ``BLOB`` or ``BINARY`` columns are protected from
+ editing when browsing a table's content. Valid values are:
+
+ * ``false`` to allow editing of all columns;
+ * ``'blob'`` to allow editing of all columns except ``BLOBS``;
+ * ``'noblob'`` to disallow editing of all columns except ``BLOBS`` (the
+ opposite of ``'blob'``);
+ * ``'all'`` to disallow editing of all ``BINARY`` or ``BLOB`` columns.
+
+.. config:option:: $cfg['ShowFunctionFields']
+
+ :type: boolean
+ :default: true
+
+ Defines whether or not MySQL functions fields should be initially
+ displayed in edit/insert mode. Since version 2.10, the user can toggle
+ this setting from the interface.
+
+.. config:option:: $cfg['ShowFieldTypesInDataEditView']
+
+ :type: boolean
+ :default: true
+
+ Defines whether or not type fields should be initially displayed in
+ edit/insert mode. The user can toggle this setting from the interface.
+
+.. config:option:: $cfg['InsertRows']
+
+ :type: integer
+ :default: 2
+
+ Defines the maximum number of concurrent entries for the Insert page.
+
+.. config:option:: $cfg['ForeignKeyMaxLimit']
+
+ :type: integer
+ :default: 100
+
+ If there are fewer items than this in the set of foreign keys, then a
+ drop-down box of foreign keys is presented, in the style described by
+ the :config:option:`$cfg['ForeignKeyDropdownOrder']` setting.
+
+.. config:option:: $cfg['ForeignKeyDropdownOrder']
+
+ :type: array
+ :default: array('content-id', 'id-content')
+
+ For the foreign key drop-down fields, there are several methods of
+ display, offering both the key and value data. The contents of the
+ array should be one or both of the following strings: ``content-id``,
+ ``id-content``.
+
+Export and import settings
+--------------------------
+
+.. config:option:: $cfg['ZipDump']
+
+ :type: boolean
+ :default: true
+
+.. config:option:: $cfg['GZipDump']
+
+ :type: boolean
+ :default: true
+
+.. config:option:: $cfg['BZipDump']
+
+ :type: boolean
+ :default: true
+
+ Defines whether to allow the use of zip/GZip/BZip2 compression when
+ creating a dump file
+
+.. config:option:: $cfg['CompressOnFly']
+
+ :type: boolean
+ :default: true
+
+ Defines whether to allow on the fly compression for GZip/BZip2
+ compressed exports. This doesn't affect smaller dumps and allows users
+ to create larger dumps that won't otherwise fit in memory due to php
+ memory limit. Produced files contain more GZip/BZip2 headers, but all
+ normal programs handle this correctly.
+
+.. config:option:: $cfg['Export']
+
+ :type: array
+ :default: array(...)
+
+ In this array are defined default parameters for export, names of
+ items are similar to texts seen on export page, so you can easily
+ identify what they mean.
+
+.. config:option:: $cfg['Export']['method']
+
+ :type: string
+ :default: ``'quick'``
+
+ Defines how the export form is displayed when it loads. Valid values
+ are:
+
+ * ``quick`` to display the minimum number of options to configure
+ * ``custom`` to display every available option to configure
+ * ``custom-no-form`` same as ``custom`` but does not display the option
+ of using quick export
+
+
+
+.. config:option:: $cfg['Import']
+
+ :type: array
+ :default: array(...)
+
+ In this array are defined default parameters for import, names of
+ items are similar to texts seen on import page, so you can easily
+ identify what they mean.
+
+
+Tabs display settings
+---------------------
+
+.. config:option:: $cfg['TabsMode']
+
+ :type: string
+ :default: ``'both'``
+
+ Defines whether the menu tabs contain ``'icons'``, ``'text'`` or ``'both'``.
+
+.. config:option:: $cfg['ActionLinksMode']
+
+ :type: string
+ :default: ``'both'``
+
+ If set to ``icons``, will display icons instead of text for db and table
+ properties links (like :guilabel:`Browse`, :guilabel:`Select`,
+ :guilabel:`Insert`, ...). Can be set to ``'both'``
+ if you want icons AND text. When set to ``text``, will only show text.
+
+.. config:option:: $cfg['PropertiesNumColumns']
+
+ :type: integer
+ :default: 1
+
+ How many columns will be utilized to display the tables on the database
+ property view? When setting this to a value larger than 1, the type of the
+ database will be omitted for more display space.
+
+.. config:option:: $cfg['DefaultTabServer']
+
+ :type: string
+ :default: ``'index.php'``
+
+ Defines the tab displayed by default on server view. Possible values:
+
+ * ``main.php`` (recommended for multi-user setups)
+ * ``server_databases.php``,
+ * ``server_status.php``
+ * ``server_variables.php``
+ * ``server_privileges.php``
+
+.. config:option:: $cfg['DefaultTabDatabase']
+
+ :type: string
+ :default: ``'db_structure.php'``
+
+ Defines the tab displayed by default on database view. Possible
+ values:
+
+ * ``db_structure.php``
+ * ``db_sql.php``
+ * ``db_search.php``.
+
+.. config:option:: $cfg['DefaultTabTable']
+
+ :type: string
+ :default: ``'sql.php'``
+
+ Defines the tab displayed by default on table view. Possible values:
+
+ * ``tbl_structure.php``
+ * ``tbl_sql.php``
+ * ``tbl_select.php``
+ * ``tbl_change.php``
+ * ``sql.php``
+
+PDF Options
+-----------
+
+.. config:option:: $cfg['PDFPageSizes']
+
+ :type: array
+ :default: ``array('A3', 'A4', 'A5', 'letter', 'legal')``
+
+ Array of possible paper sizes for creating PDF pages.
+
+ You should never need to change this.
+
+.. config:option:: $cfg['PDFDefaultPageSize']
+
+ :type: string
+ :default: ``'A4'``
+
+ Default page size to use when creating PDF pages. Valid values are any
+ listed in :config:option:`$cfg['PDFPageSizes']`.
+
+Languages
+---------
+
+.. config:option:: $cfg['DefaultLang']
+
+ :type: string
+ :default: ``'en'``
+
+ Defines the default language to use, if not browser-defined or user-
+ defined. The corresponding language file needs to be in
+ locale/*code*/LC\_MESSAGES/phpmyadmin.mo.
+
+.. config:option:: $cfg['DefaultConnectionCollation']
+
+ :type: string
+ :default: ``'utf8_general_ci'``
+
+ Defines the default connection collation to use, if not user-defined.
+ See the `MySQL documentation `_ for list of possible values. This setting is
+ ignored when connected to Drizzle server.
+
+.. config:option:: $cfg['Lang']
+
+ :type: string
+ :default: not set
+
+ Force language to use. The corresponding language file needs to be in
+ locale/*code*/LC\_MESSAGES/phpmyadmin.mo.
+
+.. config:option:: $cfg['FilterLanguages']
+
+ :type: string
+ :default: ``''``
+
+ Limit list of available languages to those matching the given regular
+ expression. For example if you want only Czech and English, you should
+ set filter to ``'^(cs|en)'``.
+
+.. config:option:: $cfg['RecodingEngine']
+
+ :type: string
+ :default: ``'auto'``
+
+ You can select here which functions will be used for character set
+ conversion. Possible values are:
+
+ * auto - automatically use available one (first is tested iconv, then
+ recode)
+ * iconv - use iconv or libiconv functions
+ * recode - use recode\_string function
+ * mb - use mbstring extension
+ * none - disable encoding conversion
+
+ Enabled charset conversion activates a pull-down menu in the Export
+ and Import pages, to choose the character set when exporting a file.
+ The default value in this menu comes from
+ :config:option:`$cfg['Export']['charset']` and :config:option:`$cfg['Import']['charset']`.
+
+.. config:option:: $cfg['IconvExtraParams']
+
+ :type: string
+ :default: ``'//TRANSLIT'``
+
+ Specify some parameters for iconv used in charset conversion. See
+ `iconv documentation `_ for details. By default
+ ``//TRANSLIT`` is used, so that invalid characters will be
+ transliterated.
+
+.. config:option:: $cfg['AvailableCharsets']
+
+ :type: array
+ :default: array(..._
+
+ Available character sets for MySQL conversion. You can add your own
+ (any of supported by recode/iconv) or remove these which you don't
+ use. Character sets will be shown in same order as here listed, so if
+ you frequently use some of these move them to the top.
+
+Web server settings
+-------------------
+
+.. config:option:: $cfg['OBGzip']
+
+ :type: string/boolean
+ :default: ``'auto'``
+
+ Defines whether to use GZip output buffering for increased speed in
+ :term:`HTTP` transfers. Set to
+ true/false for enabling/disabling. When set to 'auto' (string),
+ phpMyAdmin tries to enable output buffering and will automatically
+ disable it if your browser has some problems with buffering. IE6 with
+ a certain patch is known to cause data corruption when having enabled
+ buffering.
+
+.. config:option:: $cfg['TrustedProxies']
+
+ :type: array
+ :default: array()
+
+ Lists proxies and HTTP headers which are trusted for
+ :config:option:`$cfg['Servers'][$i]['AllowDeny']['order']`. This list is by
+ default empty, you need to fill in some trusted proxy servers if you
+ want to use rules for IP addresses behind proxy.
+
+ The following example specifies that phpMyAdmin should trust a
+ HTTP\_X\_FORWARDED\_FOR (``X -Forwarded-For``) header coming from the proxy
+ 1.2.3.4:
+
+ .. code-block:: php
+
+ $cfg['TrustedProxies'] = array('1.2.3.4' => 'HTTP_X_FORWARDED_FOR');
+
+ The :config:option:`$cfg['Servers'][$i]['AllowDeny']['rules']` directive uses the
+ client's IP address as usual.
+
+.. config:option:: $cfg['GD2Available']
+
+ :type: string
+ :default: ``'auto'``
+
+ Specifies whether GD >= 2 is available. If yes it can be used for MIME
+ transformations. Possible values are:
+
+ * auto - automatically detect
+ * yes - GD 2 functions can be used
+ * no - GD 2 function cannot be used
+
+.. config:option:: $cfg['CheckConfigurationPermissions']
+
+ :type: boolean
+ :default: true
+
+ We normally check the permissions on the configuration file to ensure
+ it's not world writable. However, phpMyAdmin could be installed on a
+ NTFS filesystem mounted on a non-Windows server, in which case the
+ permissions seems wrong but in fact cannot be detected. In this case a
+ sysadmin would set this parameter to ``false``.
+
+.. config:option:: $cfg['LinkLengthLimit']
+
+ :type: integer
+ :default: 1000
+
+ Limit for length of :term:`URL` in links. When length would be above this
+ limit, it is replaced by form with button. This is required as some web
+ servers (:term:`IIS`) have problems with long :term:`URL` .
+
+.. config:option:: $cfg['CSPAllow']
+
+ :type: string
+ :default: ``''``
+
+ Additional string to include in allowed script and image sources in Content
+ Security Policy header.
+
+ This can be useful when you want to include some external javascript files
+ in :file:`config.footer.inc.php` or :file:`config.header.inc.php`, which
+ would be normally not allowed by Content Security Policy.
+
+ To allow some sites, just list them within the string:
+
+ .. code-block:: php
+
+ $cfg['CSPAllow'] = 'example.com example.net';
+
+ .. versionadded:: 4.0.4
+
+.. config:option:: $cfg['DisableMultiTableMaintenance']
+
+ :type: boolean
+ :default: false
+
+ In the database Structure page, it's possible to mark some tables then
+ choose an operation like optimizing for many tables. This can slow
+ down a server; therefore, setting this to ``true`` prevents this kind
+ of multiple maintenance operation.
+
+Theme settings
+--------------
+
+.. config:option:: $cfg['NaviWidth']
+
+ :type: integer
+ :default:
+
+ Navigation panel width in pixels. See
+ :file:`themes/themename/layout.inc.php`.
+
+.. config:option:: $cfg['NaviBackground']
+
+ :type: string [CSS color for background]
+ :default:
+
+.. config:option:: $cfg['MainBackground']
+
+ :type: string [CSS color for background]
+ :default:
+
+ The background styles used for both the frames. See
+ :file:`themes/themename/layout.inc.php`.
+
+.. config:option:: $cfg['NaviPointerBackground']
+
+ :type: string [CSS color for background]
+ :default:
+
+.. config:option:: $cfg['NaviPointerColor']
+
+ :type: string [CSS color]
+ :default:
+
+ The style used for the pointer in the navigation panel. See
+ :file:`themes/themename/layout.inc.php`.
+
+.. config:option:: $cfg['Border']
+
+ :type: integer
+ :default:
+
+ The size of a table's border. See :file:`themes/themename/layout.inc.php`.
+
+.. config:option:: $cfg['ThBackground']
+
+ :type: string [CSS color for background]
+ :default:
+
+.. config:option:: $cfg['ThColor']
+
+ :type: string [CSS color]
+ :default:
+
+ The style used for table headers. See
+ :file:`themes/themename/layout.inc.php`.
+
+.. _cfg_BgcolorOne:
+.. config:option:: $cfg['BgOne']
+
+ :type: string [CSS color]
+ :default:
+
+ The color (HTML) #1 for table rows. See
+ :file:`themes/themename/layout.inc.php`.
+
+.. _cfg_BgcolorTwo:
+.. config:option:: $cfg['BgTwo']
+
+ :type: string [CSS color]
+ :default:
+
+ The color (HTML) #2 for table rows. See
+ :file:`themes/themename/layout.inc.php`.
+
+.. config:option:: $cfg['BrowsePointerBackground']
+
+ :type: string [CSS color]
+ :default:
+
+.. config:option:: $cfg['BrowsePointerColor']
+
+ :type: string [CSS color]
+ :default:
+
+.. config:option:: $cfg['BrowseMarkerBackground']
+
+ :type: string [CSS color]
+ :default:
+
+.. config:option:: $cfg['BrowseMarkerColor']
+
+ :type: string [CSS color]
+ :default:
+
+ The colors (HTML) uses for the pointer and the marker in browse mode.
+ The former feature highlights the row over which your mouse is passing
+ and the latter lets you visually mark/unmark rows by clicking on the
+ corresponding checkbox. Highlighting / marking a column is done by
+ hovering over / clicking the column's header (outside of the text).
+ See :file:`themes/themename/layout.inc.php`.
+
+.. config:option:: $cfg['FontFamily']
+
+ :type: string
+ :default:
+
+ You put here a valid CSS font family value, for example ``arial, sans-
+ serif``. See :file:`themes/themename/layout.inc.php`.
+
+.. config:option:: $cfg['FontFamilyFixed']
+
+ :type: string
+ :default:
+
+ You put here a valid CSS font family value, for example ``monospace``.
+ This one is used in textarea. See :file:`themes/themename/layout.inc.php`.
+
+Design customization
+--------------------
+
+.. config:option:: $cfg['NavigationTreePointerEnable']
+
+ :type: boolean
+ :default: true
+
+ A value of ``true`` activates the navi pointer.
+
+.. config:option:: $cfg['BrowsePointerEnable']
+
+ :type: boolean
+ :default: true
+
+ Whether to activate the browse pointer or not.
+
+.. config:option:: $cfg['BrowseMarkerEnable']
+
+ :type: boolean
+ :default: true
+
+ Whether to activate the browse marker or not.
+
+.. config:option:: $cfg['LimitChars']
+
+ :type: integer
+ :default: 50
+
+ Maximum number of characters shown in any non-numeric field on browse
+ view. Can be turned off by a toggle button on the browse page.
+
+.. config:option:: $cfg['RowActionLinks']
+
+ :type: string
+ :default: ``'left'``
+
+ Defines the place where table row links (Edit, Copy, Delete) would be
+ put when tables contents are displayed (you may have them displayed at
+ the left side, right side, both sides or nowhere). "left" and "right"
+ are parsed as "top" and "bottom" with vertical display mode.
+
+.. config:option:: $cfg['DefaultDisplay']
+
+ :type: string
+ :default: ``'horizonta'``
+
+ There are 3 display modes: horizontal, horizontalflipped and vertical.
+ Define which one is displayed by default. The first mode displays each
+ row on a horizontal line, the second rotates the headers by 90
+ degrees, so you can use descriptive headers even though columns only
+ contain small values and still print them out. The vertical mode sorts
+ each row on a vertical lineup.
+
+.. config:option:: $cfg['RememberSorting']
+
+ :type: boolean
+ :default: true
+
+ If enabled, remember the sorting of each table when browsing them.
+
+.. config:option:: $cfg['HeaderFlipType']
+
+ :type: string
+ :default: ``'auto'``
+
+ The HeaderFlipType can be set to 'auto', 'css' or 'fake'. When using
+ 'css' the rotation of the header for horizontalflipped is done via
+ CSS. The CSS transformation currently works only in Internet
+ Explorer.If set to 'fake' PHP does the transformation for you, but of
+ course this does not look as good as CSS. The 'auto' option enables
+ CSS transformation when browser supports it and use PHP based one
+ otherwise.
+
+.. config:option:: $cfg['ShowBrowseComments']
+
+ :type: boolean
+ :default: true
+
+.. config:option:: $cfg['ShowPropertyComments']
+
+ :type: boolean
+ :default: true
+
+ By setting the corresponding variable to ``true`` you can enable the
+ display of column comments in Browse or Property display. In browse
+ mode, the comments are shown inside the header. In property mode,
+ comments are displayed using a CSS-formatted dashed-line below the
+ name of the column. The comment is shown as a tool-tip for that
+ column.
+
+Text fields
+-----------
+
+.. config:option:: $cfg['CharEditing']
+
+ :type: string
+ :default: ``'input'``
+
+ Defines which type of editing controls should be used for CHAR and
+ VARCHAR columns. Possible values are:
+
+ * input - this allows to limit size of text to size of columns in MySQL,
+ but has problems with newlines in columns
+ * textarea - no problems with newlines in columns, but also no length
+ limitations
+
+.. config:option:: $cfg['MinSizeForInputField']
+
+ :type: integer
+ :default: 4
+
+ Defines the minimum size for input fields generated for CHAR and
+ VARCHAR columns.
+
+.. config:option:: $cfg['MaxSizeForInputField']
+
+ :type: integer
+ :default: 60
+
+ Defines the maximum size for input fields generated for CHAR and
+ VARCHAR columns.
+
+.. config:option:: $cfg['TextareaCols']
+
+ :type: integer
+ :default: 40
+
+.. config:option:: $cfg['TextareaRows']
+
+ :type: integer
+ :default: 15
+
+.. config:option:: $cfg['CharTextareaCols']
+
+ :type: integer
+ :default: 40
+
+.. config:option:: $cfg['CharTextareaRows']
+
+ :type: integer
+ :default: 2
+
+ Number of columns and rows for the textareas. This value will be
+ emphasized (\*2) for :term:`SQL` query
+ textareas and (\*1.25) for :term:`SQL`
+ textareas inside the query window.
+
+ The Char\* values are used for CHAR
+ and VARCHAR editing (if configured via :config:option:`$cfg['CharEditing']`).
+
+.. config:option:: $cfg['LongtextDoubleTextarea']
+
+ :type: boolean
+ :default: true
+
+ Defines whether textarea for LONGTEXT columns should have double size.
+
+.. config:option:: $cfg['TextareaAutoSelect']
+
+ :type: boolean
+ :default: false
+
+ Defines if the whole textarea of the query box will be selected on
+ click.
+
+
+SQL query box settings
+----------------------
+
+.. config:option:: $cfg['SQLQuery']['Edit']
+
+ :type: boolean
+ :default: true
+
+ Whether to display an edit link to change a query in any SQL Query
+ box.
+
+.. config:option:: $cfg['SQLQuery']['Explain']
+
+ :type: boolean
+ :default: true
+
+ Whether to display a link to explain a SELECT query in any SQL Query
+ box.
+
+.. config:option:: $cfg['SQLQuery']['ShowAsPHP']
+
+ :type: boolean
+ :default: true
+
+ Whether to display a link to wrap a query in PHP code in any SQL Query
+ box.
+
+.. config:option:: $cfg['SQLQuery']['Validate']
+
+ :type: boolean
+ :default: false
+
+ Whether to display a link to validate a query in any SQL Query box.
+
+ .. seealso:: :config:option:`$cfg['SQLValidator']`
+
+.. config:option:: $cfg['SQLQuery']['Refresh']
+
+ :type: boolean
+ :default: true
+
+ Whether to display a link to refresh a query in any SQL Query box.
+
+Web server upload/save/import directories
+-----------------------------------------
+
+.. config:option:: $cfg['UploadDir']
+
+ :type: string
+ :default: ``''``
+
+ The name of the directory where :term:`SQL` files have been uploaded by
+ other means than phpMyAdmin (for example, ftp). Those files are available
+ under a drop-down box when you click the database or table name, then the
+ Import tab.
+
+ If
+ you want different directory for each user, %u will be replaced with
+ username.
+
+ Please note that the file names must have the suffix ".sql"
+ (or ".sql.bz2" or ".sql.gz" if support for compressed formats is
+ enabled).
+
+ This feature is useful when your file is too big to be
+ uploaded via :term:`HTTP`, or when file
+ uploads are disabled in PHP.
+
+ .. note::
+
+ If PHP is running in safe mode, this directory must be owned by the same
+ user as the owner of the phpMyAdmin scripts. See also :ref:`faq1_16` for
+ alternatives.
+
+.. config:option:: $cfg['SaveDir']
+
+ :type: string
+ :default: ``''``
+
+ The name of the directory where dumps can be saved.
+
+ If you want different directory for each user, %u will be replaced with
+ username.
+
+ Please note that the directory must exist and has to be writable for
+ the user running webserver.
+
+ .. note::
+
+ If PHP is running in safe mode, this directory must be owned by the same
+ user as the owner of the phpMyAdmin scripts.
+
+.. config:option:: $cfg['TempDir']
+
+ :type: string
+ :default: ``''``
+
+ The name of the directory where temporary files can be stored.
+
+ This is needed for importing ESRI Shapefiles, see :ref:`faq6_30` and to
+ work around limitations of ``open_basedir`` for uploaded files, see
+ :ref:`faq1_11`.
+
+ If the directory where phpMyAdmin is installed is
+ subject to an ``open_basedir`` restriction, you need to create a
+ temporary directory in some directory accessible by the web server.
+ However for security reasons, this directory should be outside the
+ tree published by webserver. If you cannot avoid having this directory
+ published by webserver, place at least an empty :file:`index.html` file
+ there, so that directory listing is not possible.
+
+ This directory should have as strict permissions as possible as the only
+ user required to access this directory is the one who runs the webserver.
+ If you have root privileges, simply make this user owner of this directory
+ and make it accessible only by it:
+
+ .. code-block:: sh
+
+
+ chown www-data:www-data tmp
+ chmod 700 tmp
+
+ If you cannot change owner of the directory, you can achieve a similar
+ setup using :term:`ACL`:
+
+ .. code-block:: sh
+
+ chmod 700 tmp
+ setfacl -m "g:www-data:rwx" tmp
+ setfacl -d -m "g:www-data:rwx" tmp
+
+ If neither of above works for you, you can still make the directory
+ :command:`chmod 777`, but it might impose risk of other users on system
+ reading and writing data in this directory.
+
+Various display setting
+-----------------------
+
+.. config:option:: $cfg['ShowDisplayDirection']
+
+ :type: boolean
+ :default: false
+
+ Defines whether or not type display direction option is shown when
+ browsing a table.
+
+.. config:option:: $cfg['RepeatCells']
+
+ :type: integer
+ :default: 100
+
+ Repeat the headers every X cells, or 0 to deactivate.
+
+.. config:option:: $cfg['EditInWindow']
+
+ :type: boolean
+ :default: true
+
+.. config:option:: $cfg['QueryWindowWidth']
+
+ :type: integer
+ :default: 550
+
+.. config:option:: $cfg['QueryWindowHeight']
+
+ :type: integer
+ :default: 310
+
+.. config:option:: $cfg['QueryHistoryDB']
+
+ :type: boolean
+ :default: false
+
+.. config:option:: $cfg['QueryWindowDefTab']
+
+ :type: string
+ :default: ``'sql'``
+
+.. config:option:: $cfg['QueryHistoryMax']
+
+ :type: integer
+ :default: 25
+
+ All those variables affect the query window feature. A :term:`SQL` link or
+ icon is always displayed in the navigation panel. If JavaScript is enabled
+ in your browser, a click on this opens a distinct query window, which is a
+ direct interface to enter :term:`SQL` queries. Otherwise, the right panel
+ changes to display a query box.
+
+ The size of this query window can be customized with
+ :config:option:`$cfg['QueryWindowWidth']` and
+ :config:option:`$cfg['QueryWindowHeight']` - both integers for the size in
+ pixels. Note that normally, those parameters will be modified in
+ :file:`layout.inc.php`` for the theme you are using.
+
+ If :config:option:`$cfg['EditInWindow']` is set to true, a click on [Edit]
+ from the results page (in the :guilabel:`Showing Rows` section) opens the
+ query window and puts the current query inside it. If set to false,
+ clicking on the link puts the :term:`SQL` query
+ in the right panel's query box.
+
+ If :config:option:`$cfg['QueryHistoryDB']` is set to ``true``, all your
+ Queries are logged to a table, which has to be created by you (see
+ :config:option:`$cfg['Servers'][$i]['history']`). If set to false, all your
+ queries will be appended to the form, but only as long as your window is
+ opened they remain saved.
+
+ When using the JavaScript based query window, it will always get updated
+ when you click on a new table/db to browse and will focus if you click on
+ :guilabel:`Edit SQL` after using a query. You can suppress updating the
+ query window by checking the box :guilabel:`Do not overwrite this query
+ from outside the window` below the query textarea. Then you can browse
+ tables/databases in the background without losing the contents of the
+ textarea, so this is especially useful when composing a query with tables
+ you first have to look in. The checkbox will get automatically checked
+ whenever you change the contents of the textarea. Please uncheck the button
+ whenever you definitely want the query window to get updated even though
+ you have made alterations.
+
+ If :config:option:`$cfg['QueryHistoryDB']` is set to ``true`` you can
+ specify the amount of saved history items using
+ :config:option:`$cfg['QueryHistoryMax']`.
+
+ The query window also has a custom tabbed look to group the features.
+ Using the variable :config:option:`$cfg['QueryWindowDefTab']` you can
+ specify the default tab to be used when opening the query window. It can be
+ set to either ``sql``, ``files``, ``history`` or ``full``.
+
+.. config:option:: $cfg['BrowseMIME']
+
+ :type: boolean
+ :default: true
+
+ Enable :ref:`transformations`.
+
+.. config:option:: $cfg['MaxExactCount']
+
+ :type: integer
+ :default: 0
+
+ For InnoDB tables, determines for how large tables phpMyAdmin should
+ get the exact row count using ``SELECT COUNT``. If the approximate row
+ count as returned by ``SHOW TABLE STATUS`` is smaller than this value,
+ ``SELECT COUNT`` will be used, otherwise the approximate count will be
+ used.
+
+.. config:option:: $cfg['MaxExactCountViews']
+
+ :type: integer
+ :default: 0
+
+ For VIEWs, since obtaining the exact count could have an impact on
+ performance, this value is the maximum to be displayed, using a
+ ``SELECT COUNT ... LIMIT``. Setting this to 0 bypasses any row
+ counting.
+
+.. config:option:: $cfg['NaturalOrder']
+
+ :type: boolean
+ :default: true
+
+ Sorts database and table names according to natural order (for
+ example, t1, t2, t10). Currently implemented in the navigation panel
+ and in Database view, for the table list.
+
+.. config:option:: $cfg['InitialSlidersState']
+
+ :type: string
+ :default: ``'closed'``
+
+ If set to ``'closed'``, the visual sliders are initially in a closed
+ state. A value of ``'open'`` does the reverse. To completely disable
+ all visual sliders, use ``'disabled'``.
+
+.. config:option:: $cfg['UserprefsDisallow']
+
+ :type: array
+ :default: array()
+
+ Contains names of configuration options (keys in ``$cfg`` array) that
+ users can't set through user preferences. For possible values, refer
+ to :file:`libraries/config/user_preferences.forms.php`.
+
+.. config:option:: $cfg['UserprefsDeveloperTab']
+
+ :type: boolean
+ :default: false
+
+ Activates in the user preferences a tab containing options for
+ developers of phpMyAdmin.
+
+Page titles
+-----------
+
+.. config:option:: $cfg['TitleTable']
+
+ :type: string
+ :default: ``'@HTTP_HOST@ / @VSERVER@ / @DATABASE@ / @TABLE@ | @PHPMYADMIN@'``
+
+.. config:option:: $cfg['TitleDatabase']
+
+ :type: string
+ :default: ``'@HTTP_HOST@ / @VSERVER@ / @DATABASE@ | @PHPMYADMIN@'``
+
+.. config:option:: $cfg['TitleServer']
+
+ :type: string
+ :default: ``'@HTTP_HOST@ / @VSERVER@ | @PHPMYADMIN@'``
+
+.. config:option:: $cfg['TitleDefault']
+
+ :type: string
+ :default: ``'@HTTP_HOST@ | @PHPMYADMIN@'``
+
+ Allows you to specify window's title bar. You can use :ref:`faq6_27`.
+
+Theme manager settings
+----------------------
+
+.. config:option:: $cfg['ThemePath']
+
+ :type: string
+ :default: ``'./themes'``
+
+ If theme manager is active, use this as the path of the subdirectory
+ containing all the themes.
+
+.. config:option:: $cfg['ThemeManager']
+
+ :type: boolean
+ :default: true
+
+ Enables user-selectable themes. See :ref:`faqthemes`.
+
+.. config:option:: $cfg['ThemeDefault']
+
+ :type: string
+ :default: ``'pmahomme'``
+
+ The default theme (a subdirectory under :config:option:`$cfg['ThemePath']`).
+
+.. config:option:: $cfg['ThemePerServer']
+
+ :type: boolean
+ :default: false
+
+ Whether to allow different theme for each server.
+
+Default queries
+---------------
+
+.. config:option:: $cfg['DefaultQueryTable']
+
+ :type: string
+ :default: ``'SELECT * FROM @TABLE@ WHERE 1'``
+
+.. config:option:: $cfg['DefaultQueryDatabase']
+
+ :type: string
+ :default: ``''``
+
+ Default queries that will be displayed in query boxes when user didn't
+ specify any. You can use standard :ref:`faq6_27`.
+
+SQL validator settings
+----------------------
+
+.. config:option:: $cfg['SQLValidator']
+
+ :type: array
+ :default: array(...)
+
+
+
+.. config:option:: $cfg['SQLValidator']['use']
+
+ :type: boolean
+ :default: false
+
+ phpMyAdmin now supports use of the `Mimer SQL Validator
+ `_ service, as originally
+ published on `Slashdot
+ `_. For
+ help in setting up your system to use the service, see the
+ :ref:`faqsqlvalidator`.
+
+.. config:option:: $cfg['SQLValidator']['username']
+
+ :type: string
+ :default: ``''``
+
+.. config:option:: $cfg['SQLValidator']['password']
+
+ :type: string
+ :default: ``''``
+
+ The SOAP service allows you to log in with ``anonymous`` and any password,
+ so we use those by default. Instead, if you have an account with them, you
+ can put your login details here, and it will be used in place of the
+ anonymous login.
+
+MySQL settings
+--------------
+
+.. config:option:: $cfg['DefaultFunctions']
+
+ :type: array
+ :default: array(...)
+
+ Functions selected by default when inserting/changing row, Functions
+ are defined for meta types as (FUNC\_NUMBER, FUNC\_DATE, FUNC\_CHAR,
+ FUNC\_SPATIAL, FUNC\_UUID) and for ``first_timestamp``, which is used
+ for first timestamp column in table.
+
+
+Developer
+---------
+
+.. warning::
+
+ These settings might have huge effect on performance or security.
+
+.. config:option:: $cfg['DBG']
+
+ :type: array
+ :default: array(...)
+
+.. config:option:: $cfg['DBG']['sql']
+
+ :type: boolean
+ :default: false
+
+ Enable logging queries and execution times to be
+ displayed in the bottom of main page (right frame).
+
+.. config:option:: $cfg['DBG']['demo']
+
+ :type: boolean
+ :default: false
+
+ Enable to let server present itself as demo server.
+ This is used for .
+
+.. config:option:: $cfg['Error_Handler']['display']
+
+ :type: boolean
+ :default: false
+
+ Whether to display errors from PHP or not.
+
diff --git a/phpMyAdmin/doc/copyright.rst b/phpMyAdmin/doc/copyright.rst
new file mode 100644
index 0000000..cfcb863
--- /dev/null
+++ b/phpMyAdmin/doc/copyright.rst
@@ -0,0 +1,30 @@
+.. _copyright:
+
+Copyright
+=========
+
+.. code-block:: none
+
+ Copyright (C) 1998-2000 Tobias Ratschiller
+ Copyright (C) 2001-2013 Marc Delisle
+ Olivier Müller
+ Robin Johnson
+ Alexander M. Turek
+ Michal ÄŒihaÅ™
+ Garvin Hicking
+ Michael Keck
+ Sebastian Mendel
+ [check credits for more details]
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License version 2, as
+published by the Free Software Foundation.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see `http://www.gnu.org/licenses/
+ `_.
diff --git a/phpMyAdmin/doc/credits.rst b/phpMyAdmin/doc/credits.rst
new file mode 100644
index 0000000..61c7758
--- /dev/null
+++ b/phpMyAdmin/doc/credits.rst
@@ -0,0 +1,626 @@
+.. _credits:
+
+Credits
+=======
+
+
+Credits, in chronological order
++++++++++++++++++++++++++++++++
+
+* Tobias Ratschiller
+
+ * creator of the phpmyadmin project
+
+ * maintainer from 1998 to summer 2000
+
+* Marc Delisle
+
+ * multi-language version in December 1998
+
+ * various fixes and improvements
+
+ * :term:`SQL` analyser (most of it)
+
+ * current project maintainer
+
+ * maintains content on our website
+
+* Olivier Müller
+
+ * started SourceForge phpMyAdmin project in March 2001
+
+ * sync'ed different existing CVS trees with new features and bugfixes
+
+ * multi-language improvements, dynamic language selection
+
+ * many bugfixes and improvements
+
+* Loïc Chapeaux
+
+ * rewrote and optimized javascript, DHTML and DOM stuff
+
+ * rewrote the scripts so they fit the :term:`PEAR` coding standards and
+ generate XHTML1.0 and CSS2 compliant codes
+
+ * improved the language detection system
+
+ * many bugfixes and improvements
+
+* Robin Johnson
+
+ * database maintenance controls
+
+ * table type code
+
+ * Host authentication :term:`IP` Allow/Deny
+
+ * DB-based configuration (Not completed)
+
+ * :term:`SQL` parser and pretty-printer
+
+ * :term:`SQL` validator
+
+ * many bugfixes and improvements
+
+* Armel Fauveau
+
+ * bookmarks feature
+
+ * multiple dump feature
+
+ * gzip dump feature
+
+ * zip dump feature
+
+* Geert Lund
+
+ * various fixes
+
+ * moderator of the phpMyAdmin former users forum at phpwizard.net
+
+* Korakot Chaovavanich
+
+ * "insert as new row" feature
+
+* Pete Kelly
+
+ * rewrote and fix dump code
+
+ * bugfixes
+
+* Steve Alberty
+
+ * rewrote dump code for PHP4
+
+ * mySQL table statistics
+
+ * bugfixes
+
+* Benjamin Gandon
+
+ * main author of the version 2.1.0.1
+
+ * bugfixes
+
+* Alexander M. Turek
+
+ * MySQL 4.0 / 4.1 / 5.0 compatibility
+
+ * abstract database interface (PMA\_DBI) with MySQLi support
+
+ * privileges administration
+
+ * :term:`XML` exports
+
+ * various features and fixes
+
+ * German language file updates
+
+* Mike Beck
+
+ * automatic joins in QBE
+
+ * links column in printview
+
+ * Relation view
+
+* Michal ÄŒihaÅ™
+
+ * enhanced index creation/display feature
+
+ * feature to use a different charset for HTML than for MySQL
+
+ * improvements of export feature
+
+ * various features and fixes
+
+ * Czech language file updates
+
+ * created current website for phpMyAdmin
+
+* Christophe Gesché from the "MySQL Form Generator for PHPMyAdmin"
+ (http://sf.net/projects/phpmysqlformgen/)
+
+ * suggested the patch for multiple table printviews
+
+* Garvin Hicking
+
+ * built the patch for vertical display of table rows
+
+ * built the Javascript based Query window + :term:`SQL` history
+
+ * Improvement of column/db comments
+
+ * (MIME)-Transformations for columns
+
+ * Use custom alias names for Databases in left frame
+
+ * hierarchical/nested table display
+
+ * :term:`PDF`-scratchboard for WYSIWYG-
+ distribution of :term:`PDF` relations
+
+ * new icon sets
+
+ * vertical display of column properties page
+
+ * some bugfixes, features, support, German language additions
+
+* Yukihiro Kawada
+
+ * japanese kanji encoding conversion feature
+
+* Piotr Roszatycki and Dan Wilson
+
+ * the Cookie authentication mode
+
+* Axel Sander
+
+ * table relation-links feature
+
+* Maxime Delorme
+
+ * :term:`PDF` schema output, thanks also to
+ Olivier Plathey for the "FPDF" library (see ), Steven
+ Wittens for the "UFPDF" library (see ) and
+ Nicola Asuni for the "TCPDF" library (see ).
+
+* Olof Edlund
+
+ * :term:`SQL` validator server
+
+* Ivan R. Lanin
+
+ * phpMyAdmin logo (until June 2004)
+
+* Mike Cochrane
+
+ * blowfish library from the Horde project (withdrawn in release 4.0)
+
+* Marcel Tschopp
+
+ * mysqli support
+
+ * many bugfixes and improvements
+
+* Nicola Asuni (Tecnick.com)
+
+ * TCPDF library (`http://www.tcpdf.org `_)
+
+* Michael Keck
+
+ * redesign for 2.6.0
+
+ * phpMyAdmin sailboat logo (June 2004)
+
+* Mathias Landhäußer
+
+ * Representation at conferences
+
+* Sebastian Mendel
+
+ * interface improvements
+
+ * various bugfixes
+
+* Ivan A Kirillov
+
+ * new relations Designer
+
+* Raj Kissu Rajandran (Google Summer of Code 2008)
+
+ * BLOBstreaming support (withdrawn in release 4.0)
+
+* Piotr Przybylski (Google Summer of Code 2008, 2010 and 2011)
+
+ * improved setup script
+
+ * user preferences
+
+ * Drizzle support
+
+* Derek Schaefer (Google Summer of Code 2009)
+
+ * Improved the import system
+
+* Alexander Rutkowski (Google Summer of Code 2009)
+
+ * Tracking mechanism
+
+* Zahra Naeem (Google Summer of Code 2009)
+
+ * Synchronization feature (removed in release 4.0)
+
+* Tomáš Srnka (Google Summer of Code 2009)
+
+ * Replication support
+
+* Muhammad Adnan (Google Summer of Code 2010)
+
+ * Relation schema export to multiple formats
+
+* Lori Lee (Google Summer of Code 2010)
+
+ * User interface improvements
+
+ * ENUM/SET editor
+
+ * Simplified interface for export/import
+
+* Ninad Pundalik (Google Summer of Code 2010)
+
+ * AJAXifying the interface
+
+* Martynas MickeviÄius (Google Summer of Code 2010)
+
+ * Charts
+
+* Barrie Leslie
+
+ * BLOBstreaming support with PBMS PHP extension (withdrawn in release
+ 4.0)
+
+* Ankit Gupta (Google Summer of Code 2010)
+
+ * Visual query builder
+
+* Madhura Jayaratne (Google Summer of Code 2011)
+
+ * OpenGIS support
+
+* Ammar Yasir (Google Summer of Code 2011)
+
+ * Zoom search
+
+* Aris Feryanto (Google Summer of Code 2011)
+
+ * Browse-mode improvements
+
+* Thilanka Kaushalya (Google Summer of Code 2011)
+
+ * AJAXification
+
+* Tyron Madlener (Google Summer of Code 2011)
+
+ * Query statistics and charts for the status page
+
+* Zarubin Stas (Google Summer of Code 2011)
+
+ * Automated testing
+
+* Rouslan Placella (Google Summer of Code 2011 and 2012)
+
+ * Improved support for Stored Routines, Triggers and Events
+
+ * Italian translation updates
+
+ * Removal of frames, new navigation
+
+* Dieter Adriaenssens
+
+ * Various bugfixes
+
+ * Dutch translation updates
+
+* Alex Marin (Google Summer of Code 2012)
+
+ * New plugins and properties system
+
+* Thilina Buddika Abeyrathna (Google Summer of Code 2012)
+
+ * Refactoring
+
+* Atul Pratap Singh (Google Summer of Code 2012)
+
+ * Refactoring
+
+* Chanaka Indrajith (Google Summer of Code 2012)
+
+ * Refactoring
+
+* Yasitha Pandithawatta (Google Summer of Code 2012)
+
+ * Automated testing
+
+* Jim Wigginton (phpseclib.sourceforge.net)
+
+ * phpseclib
+
+* Bin Zu (Google Summer of Code 2013)
+
+ * Refactoring
+
+* Supun Nakandala (Google Summer of Code 2013)
+
+ * Refactoring
+
+* Mohamed Ashraf (Google Summer of Code 2013)
+
+ * AJAX error reporting
+
+* Adam Kang (Google Summer of Code 2013)
+
+ * Automated testing
+
+* Ayush Chaudhary (Google Summer of Code 2013)
+
+ * Automated testing
+
+* Kasun Chathuranga (Google Summer of Code 2013)
+
+ * Interface improvements
+
+
+And also to the following people who have contributed minor changes,
+enhancements, bugfixes or support for a new language since version
+2.1.0:
+
+Bora Alioglu, Ricardo ?, Sven-Erik Andersen, Alessandro Astarita,
+Péter Bakondy, Borges Botelho, Olivier Bussier, Neil Darlow, Mats
+Engstrom, Ian Davidson, Laurent Dhima, Kristof Hamann, Thomas Kläger,
+Lubos Klokner, Martin Marconcini, Girish Nair, David Nordenberg,
+Andreas Pauley, Bernard M. Piller, Laurent Haas, "Sakamoto", Yuval
+Sarna, www.securereality.com.au, Alexis Soulard, Alvar Soome, Siu Sun,
+Peter Svec, Michael Tacelosky, Rachim Tamsjadi, Kositer Uros, LuÃs V.,
+Martijn W. van der Lee, Algis Vainauskas, Daniel Villanueva, Vinay,
+Ignacio Vazquez-Abrams, Chee Wai, Jakub Wilk, Thomas Michael
+Winningham, Vilius Zigmantas, "Manuzhai".
+
+
+Translators
++++++++++++
+
+Following people have contributed to translation of phpMyAdmin:
+
+* Arabic
+
+ * Abdullah Al-Saedi
+
+* Bulgarian
+
+ * stoyanster
+
+* Catalan
+
+ * Xavier Navarro
+
+* Czech
+
+ * Michal ÄŒihaÅ™
+
+* Danish
+
+ * opensource
+ * Jørgen Thomsen
+
+* German
+
+ * mrbendig
+ * torsten.funck
+ * Sven Strickroth
+ * typo3
+ * Jo Michael
+
+* Greek
+
+ * Panagiotis Papazoglou
+
+* English (United Kingdom)
+
+ * Robert Readman
+
+* Spanish
+
+ * MatÃas Bellone
+
+* French
+
+ * Marc Delisle
+
+* Hindi
+
+ * u4663530
+ * rsedwardian
+
+* Hungarian
+
+ * gergo314
+
+* Italian
+
+ * Rouslan Placella
+
+* Japanese
+
+ * Yuichiro
+
+* Lithuanian
+
+ * Kęstutis
+
+* Norwegian Bokmål
+
+ * Sven-Erik Andersen
+
+* Dutch
+
+ * Dieter Adriaenssens
+ * Herman van Rink
+
+* Polish
+
+ * Stanisław Krukowski
+ * Marcin Kozioł
+
+* Portuguese
+
+ * JoaoTMDias
+
+* Portuguese (Brazil)
+
+ * wiltave
+ * emerson4br
+
+* Romanian
+
+ * alexukf
+
+* Russian
+
+ * Victor Volkov
+
+* Sinhala
+
+ * Madhura Jayaratne
+
+* Slovak
+
+ * Martin Lacina
+
+* Slovenian
+
+ * Domen
+
+* Swedish
+
+ * stefan
+
+* Tamil
+
+ * ysajeepan
+
+* Telugu
+
+ * veeven
+
+* Thai
+
+ * kanitchet
+
+* Turkish
+
+ * Burak Yavuz
+
+* Uighur
+
+ * gheni
+
+* Ukrainian
+
+ * typim
+ * oleg-ilnytskyi
+
+* Urdu
+
+ * Mehbooob Khan
+
+* Simplified Chinese
+
+ * shanyan baishui
+
+* Traditional Chinese
+
+ * star
+
+Documentation translators
++++++++++++++++++++++++++
+
+Following people have contributed to translation of phpMyAdmin documentation:
+
+* Czech
+
+ * Michal ÄŒihaÅ™
+
+* Greek
+
+ * Panagiotis Papazoglou
+
+* English (United Kingdom)
+
+ * Robert Readman
+
+* French
+
+ * Cédric Corazza
+
+* Japanese
+
+ * Yuichiro Takahashi
+
+* Polish
+
+ * Stanisław Krukowski
+
+* Portuguese (Brazil)
+
+ * mjaning
+
+* Slovenian
+
+ * Domen
+
+Original Credits of Version 2.1.0
++++++++++++++++++++++++++++++++++
+
+This work is based on Peter Kuppelwieser's MySQL-Webadmin. It was his
+idea to create a web-based interface to MySQL using PHP3. Although I
+have not used any of his source-code, there are some concepts I've
+borrowed from him. phpMyAdmin was created because Peter told me he
+wasn't going to further develop his (great) tool.
+
+Thanks go to
+
+* Amalesh Kempf who contributed the
+ code for the check when dropping a table or database. He also
+ suggested that you should be able to specify the primary key on
+ tbl\_create.php3. To version 1.1.1 he contributed the ldi\_\*.php3-set
+ (Import text-files) as well as a bug-report. Plus many smaller
+ improvements.
+* Jan Legenhausen : He made many of the changes that
+ were introduced in 1.3.0 (including quite significant ones like the
+ authentication). For 1.4.1 he enhanced the table-dump feature. Plus
+ bug-fixes and help.
+* Marc Delisle made phpMyAdmin
+ language-independent by outsourcing the strings to a separate file. He
+ also contributed the French translation.
+* Alexandr Bravo who contributed
+ tbl\_select.php3, a feature to display only some columns from a table.
+* Chris Jackson added support for MySQL functions
+ in tbl\_change.php3. He also added the "Query by Example" feature in
+ 2.0.
+* Dave Walton added support for multiple
+ servers and is a regular contributor for bug-fixes.
+* Gabriel Ash contributed the random access
+ features for 2.0.6.
+
+The following people have contributed minor changes, enhancements,
+bugfixes or support for a new language:
+
+Jim Kraai, Jordi Bruguera, Miquel Obrador, Geert Lund, Thomas
+Kleemann, Alexander Leidinger, Kiko Albiol, Daniel C. Chao, Pavel
+Piankov, Sascha Kettler, Joe Pruett, Renato Lins, Mark Kronsbein,
+Jannis Hermanns, G. Wieggers.
+
+And thanks to everyone else who sent me email with suggestions, bug-
+reports and or just some feedback.
+
diff --git a/phpMyAdmin/doc/developers.rst b/phpMyAdmin/doc/developers.rst
new file mode 100644
index 0000000..5574527
--- /dev/null
+++ b/phpMyAdmin/doc/developers.rst
@@ -0,0 +1,12 @@
+.. _developers:
+
+Developers Information
+======================
+
+phpMyAdmin is Open Source, so you're invited to contribute to it. Many
+great features have been written by other people and you too can help
+to make phpMyAdmin a useful tool.
+
+You can check out all the possibilities to contribute in the
+`contribute section on our website
+`_.
\ No newline at end of file
diff --git a/phpMyAdmin/doc/doctrees/config.doctree b/phpMyAdmin/doc/doctrees/config.doctree
new file mode 100644
index 0000000000000000000000000000000000000000..4acf48f107e47ec0b209032e925366bf4f0769f1
GIT binary patch
literal 802067
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ⅈ4LHIdx-!YMna1
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