Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpmyadmin/phpmyadmin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason <jason.daurus@gmail.com>2015-07-26 13:59:37 +0300
committerJason <jason.daurus@gmail.com>2015-07-30 20:04:30 +0300
commit1c28e6a8ab62afc6e663b768ce1ef3a2f6698b58 (patch)
tree9fb926bcde84000b50dec74c8120af321d010aa2 /db_structure.php
parentf3668b3e33e1db3996c360b9cd5ee97b715b5dd4 (diff)
Creating StructureController
Signed-off-by: Jason <jason.daurus@gmail.com>
Diffstat (limited to 'db_structure.php')
-rw-r--r--db_structure.php388
1 files changed, 26 insertions, 362 deletions
diff --git a/db_structure.php b/db_structure.php
index 12f1de5cc5..f7c644c2dd 100644
--- a/db_structure.php
+++ b/db_structure.php
@@ -6,370 +6,34 @@
* @package PhpMyAdmin
*/
-/**
- *
- */
-require_once 'libraries/common.inc.php';
-
-/**
- * Function implementations for this script
- */
-require_once 'libraries/structure.lib.php';
-
-// Add/Remove favorite tables using Ajax request.
-if ($GLOBALS['is_ajax_request'] && ! empty($_REQUEST['favorite_table'])) {
- PMA_addRemoveFavoriteTables($db);
- exit;
-}
-
-$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(array('db' => $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';
- }
- if (empty($_POST['message'])) {
- $_POST['message'] = PMA_Message::success();
- }
-}
-
-require 'libraries/db_common.inc.php';
-$url_query .= '&amp;goto=db_structure.php';
-
-// Gets the database structure
-$sub_part = '_structure';
-require 'libraries/db_info.inc.php';
-
-// If there is an Ajax request for real row count of a table.
-if ($GLOBALS['is_ajax_request']
- && isset($_REQUEST['real_row_count'])
- && $_REQUEST['real_row_count'] == true
-) {
- PMA_handleRealRowCountRequest();
- exit;
-}
-
-if (!PMA_DRIZZLE) {
- include_once 'libraries/replication.inc.php';
-} else {
- $GLOBALS['replication_info']['slave']['status'] = false;
-}
-
-
-require_once 'libraries/config/page_settings.class.php';
-PMA_PageSettings::showGroup('DbStructure');
-
-require_once 'libraries/bookmark.lib.php';
+namespace PMA;
-require_once 'libraries/mysql_charsets.inc.php';
-$db_collation = PMA_getDbCollation($db);
-
-$titles = PMA_Util::buildActionTitles();
-
-// 1. No tables
-
-if ($num_tables == 0) {
- $response->addHTML(
- PMA_message::notice(__('No tables found in database.'))
- );
- PMA_possiblyShowCreateTableDialog($db, $db_is_system_schema, $response);
- exit;
-}
-
-// else
-// 2. Shows table information
-
-/**
- * Displays the tables list
- */
-$response->addHTML('<div id="tableslistcontainer">');
-$_url_params = array(
- 'pos' => $pos,
- 'db' => $db);
-
-// Add the sort options if they exists
-if (isset($_REQUEST['sort'])) {
- $_url_params['sort'] = $_REQUEST['sort'];
-}
-
-if (isset($_REQUEST['sort_order'])) {
- $_url_params['sort_order'] = $_REQUEST['sort_order'];
-}
-
-$response->addHTML(
- PMA_Util::getListNavigator(
- $total_num_tables, $pos, $_url_params, 'db_structure.php',
- 'frame_content', $GLOBALS['cfg']['MaxTableList']
- )
-);
-
-// tables form
-$response->addHTML(
- '<form method="post" action="db_structure.php" '
- . 'name="tablesForm" id="tablesForm">'
-);
-
-$response->addHTML(PMA_URL_getHiddenInputs($db));
-
-$response->addHTML(
- PMA\Template::get('structure/table_header')->render(
- array(
- 'db_is_system_schema' => $db_is_system_schema,
- 'replication' => $GLOBALS['replication_info']['slave']['status']
- )
- )
-);
-
-$i = $sum_entries = 0;
-$overhead_check = '';
-$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;
-$overall_approx_rows = false;
-// Instance of PMA_RecentFavoriteTable class.
-$fav_instance = PMA_RecentFavoriteTable::getInstance('favorite');
-foreach ($tables as $keyname => $current_table) {
- // Get valid statistics whatever is the table type
-
- $drop_query = '';
- $drop_message = '';
- $already_favorite = false;
- $overhead = '';
-
- $table_is_view = false;
- $table_encoded = urlencode($current_table['TABLE_NAME']);
- // Sets parameters for links
- $tbl_url_query = $url_query . '&amp;table=' . $table_encoded;
- // do not list the previous table's size info for a view
-
- list($current_table, $formatted_size, $unit, $formatted_overhead,
- $overhead_unit, $overhead_size, $table_is_view, $sum_size)
- = PMA_getStuffForEngineTypeTable(
- $current_table, $db_is_system_schema,
- $is_show_stats, $table_is_view, $sum_size, $overhead_size
- );
-
- $_table = new PMA_Table($current_table['TABLE_NAME'], $db);
- if (! $_table->isMerge()) {
- $sum_entries += $current_table['TABLE_ROWS'];
- }
-
- if (isset($current_table['Collation'])) {
- $collation = '<dfn title="'
- . PMA_getCollationDescr($current_table['Collation']) . '">'
- . $current_table['Collation'] . '</dfn>';
- } else {
- $collation = '---';
- }
-
- if ($is_show_stats) {
- if ($formatted_overhead != '') {
- $overhead = '<a href="tbl_structure.php'
- . $tbl_url_query . '#showusage">'
- . '<span>' . $formatted_overhead . '</span>&nbsp;'
- . '<span class="unit">' . $overhead_unit . '</span>'
- . '</a>' . "\n";
- $overhead_check .=
- "markAllRows('row_tbl_" . ($i + 1) . "');";
- } else {
- $overhead = '-';
- }
- } // end if
-
- 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[] = '<input type="hidden" name="views[]" value="'
- . htmlspecialchars($current_table['TABLE_NAME']) . '" />';
- }
-
- /*
- * Always activate links for Browse, Search and Empty, even if
- * the icons are greyed, because
- * 1. for views, we don't know the number of rows at this point
- * 2. for tables, another source could have populated them since the
- * page was generated
- *
- * I could have used the PHP ternary conditional operator but I find
- * the code easier to read without this operator.
- */
- 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_system_schema, $url_query
- );
-
- if (! $db_is_system_schema) {
- list($drop_query, $drop_message)
- = PMA_getTableDropQueryAndMessage($table_is_view, $current_table);
- }
-
- if ($num_columns > 0
- && $num_tables > $num_columns
- && ($row_count % $num_columns) == 0
- ) {
- $row_count = 1;
- $odd_row = true;
-
- $response->addHTML(
- '</tr></tbody></table>'
- );
-
- $response->addHTML(
- PMA\Template::get('structure/table_header')->render(
- array(
- 'db_is_system_schema' => false,
- 'replication' => $GLOBALS['replication_info']['slave']['status']
- )
- )
- );
- }
-
- list($do, $ignored) = PMA_getServerSlaveStatus(
- $GLOBALS['replication_info']['slave']['status'], $truename
- );
- // Handle favorite table list. ----START----
- $already_favorite = PMA_checkFavoriteTable($db, $current_table['TABLE_NAME']);
-
- if (isset($_REQUEST['remove_favorite'])) {
- if ($already_favorite) {
- // If already in favorite list, remove it.
- $favorite_table = $_REQUEST['favorite_table'];
- $fav_instance->remove($db, $favorite_table);
- }
- }
-
- if (isset($_REQUEST['add_favorite'])) {
- if (!$already_favorite) {
- // Otherwise add to favorite list.
- $favorite_table = $_REQUEST['favorite_table'];
- $fav_instance->add($db, $favorite_table);
- }
- } // Handle favorite table list. ----ENDS----
-
- list($html_output, $odd_row, $approx_rows) = PMA_getHtmlForStructureTableRow(
- $i, $odd_row, $table_is_view, $current_table,
- $browse_table_label, $tracking_icon,
- $GLOBALS['replication_info']['slave']['status'],
- $browse_table, $tbl_url_query, $search_table, $db_is_system_schema,
- $titles, $empty_table, $drop_query, $drop_message, $collation,
- $formatted_size, $unit, $overhead,
- (isset ($create_time) ? $create_time : ''),
- (isset ($update_time) ? $update_time : ''),
- (isset ($check_time) ? $check_time : ''),
- $is_show_stats, $ignored, $do, $colspan_for_structure
- );
- $overall_approx_rows = $overall_approx_rows || $approx_rows;
- $response->addHTML($html_output);
-
-} // end foreach
-
-// Show Summary
-$response->addHTML('</tbody>');
-$response->addHTML(
- PMA\Template::get('structure/body_for_table_summary')->render(
- array(
- 'num_tables' => $num_tables,
- 'server_slave_status' => $GLOBALS['replication_info']['slave']['status'],
- 'db_is_system_schema' => $db_is_system_schema,
- 'sum_entries' => $sum_entries,
- 'db_collation' => $db_collation,
- 'is_show_stats' => $is_show_stats,
- 'sum_size' => $sum_size,
- 'overhead_size' => $overhead_size,
- 'create_time_all' => $create_time_all,
- 'update_time_all' => $update_time_all,
- 'check_time_all' => $check_time_all,
- 'approx_rows' => $overall_approx_rows
- )
- )
-);
-$response->addHTML('</table>');
-//check all
-$response->addHTML(
- PMA\Template::get('structure/check_all_tables')->render(
- array(
- 'pmaThemeImage' => $pmaThemeImage,
- 'text_dir' => $text_dir,
- 'overhead_check' => $overhead_check,
- 'db_is_system_schema' => $db_is_system_schema,
- 'hidden_fields' => $hidden_fields
- )
- )
-);
-$response->addHTML('</form>'); //end of form
-
-// display again the table list navigator
-$response->addHTML(
- PMA_Util::getListNavigator(
- $total_num_tables, $pos, $_url_params, 'db_structure.php',
- 'frame_content', $GLOBALS['cfg']['MaxTableList']
- )
+require_once 'libraries/common.inc.php';
+require_once 'libraries/db_common.inc.php';
+require_once 'libraries/db_info.inc.php';
+require_once 'libraries/di/Container.class.php';
+require_once 'libraries/controllers/StructureController.class.php';
+
+$container = DI\Container::getDefaultContainer();
+$container->factory('PMA\Controllers\StructureController');
+$container->alias(
+ 'StructureController', 'PMA\Controllers\StructureController'
);
-$response->addHTML('</div><hr />');
-
-/**
- * Work on the database
- */
-/* DATABASE WORK */
-/* Printable view of a table */
-$response->addHTML(
- PMA\Template::get('structure/print_view_data_dictionary_link')->render(
- array('url_query' => $url_query)
- )
+global $db, $table, $pos, $db_is_system_schema, $total_num_tables, $tables, $num_tables;
+/* Define dependencies for the concerned controller */
+$dependency_definitions = array(
+ 'db' => $db,
+ 'table' => $table,
+ 'type' => 'db',
+ 'url_query' => &$GLOBALS['url_query'],
+ 'pos' => $pos,
+ 'db_is_system_schema' => $db_is_system_schema,
+ 'num_tables' => $num_tables,
+ 'total_num_tables' => $total_num_tables,
+ 'tables' => $tables
);
-PMA_possiblyShowCreateTableDialog($db, $db_is_system_schema, $response);
+/** @var Controllers\StructureController $controller */
+$controller = $container->get('StructureController', $dependency_definitions);
+$controller->indexAction();