';
+ }
+
+ /**
+ * Get HTML for Delete data or table (truncate table, drop table)
+ *
+ * @param array $truncate_table_url_params url parameter array for truncate table
+ * @param array $dropTableUrlParams url parameter array for drop table
+ *
+ * @return string $html_output
+ */
+ public static function getHtmlForDeleteDataOrTable(
+ $truncate_table_url_params,
+ $dropTableUrlParams
+ ) {
+ $html_output = '
'
+ . '
';
+
+ return $html_output;
+ }
+
+ /**
+ * Get the HTML link for Truncate table, Drop table and Drop db
+ *
+ * @param array $url_params url parameter array for delete data or table
+ * @param string $syntax TRUNCATE_TABLE or DROP_TABLE or DROP_DATABASE
+ * @param string $link link to be shown
+ * @param string $htmlId id of the link
+ *
+ * @return String html output
+ */
+ public static function getDeleteDataOrTablelink($url_params, $syntax, $link, $htmlId)
+ {
+ return '
';
+
+ return $html_output;
+ }
+
+ /**
+ * Get the HTML for Referential Integrity check
+ *
+ * @param array $foreign all Relations to foreign tables for a given table
+ * or optionally a given column in a table
+ * @param array $url_params array of url parameters
+ *
+ * @return string $html_output
+ */
+ public static function getHtmlForReferentialIntegrityCheck($foreign, $url_params)
+ {
+ $html_output = '
'
+ . '
';
+
+ return $html_output;
+ }
+
+ /**
+ * Reorder table based on request params
+ *
+ * @return array SQL query and result
+ */
+ public static function getQueryAndResultForReorderingTable()
+ {
+ $sql_query = 'ALTER TABLE '
+ . Util::backquote($GLOBALS['table'])
+ . ' ORDER BY '
+ . Util::backquote(urldecode($_REQUEST['order_field']));
+ if (isset($_REQUEST['order_order'])
+ && $_REQUEST['order_order'] === 'desc'
+ ) {
+ $sql_query .= ' DESC';
+ } else {
+ $sql_query .= ' ASC';
+ }
+ $sql_query .= ';';
+ $result = $GLOBALS['dbi']->query($sql_query);
+
+ return array($sql_query, $result);
+ }
+
+ /**
+ * Get table alters array
+ *
+ * @param Table $pma_table The Table object
+ * @param string $pack_keys pack keys
+ * @param string $checksum value of checksum
+ * @param string $page_checksum value of page checksum
+ * @param string $delay_key_write delay key write
+ * @param string $row_format row format
+ * @param string $newTblStorageEngine table storage engine
+ * @param string $transactional value of transactional
+ * @param string $tbl_collation collation of the table
+ *
+ * @return array $table_alters
+ */
+ public static function getTableAltersArray($pma_table, $pack_keys,
+ $checksum, $page_checksum, $delay_key_write,
+ $row_format, $newTblStorageEngine, $transactional, $tbl_collation
+ ) {
+ global $auto_increment;
+
+ $table_alters = array();
+
+ if (isset($_REQUEST['comment'])
+ && urldecode($_REQUEST['prev_comment']) !== $_REQUEST['comment']
+ ) {
+ $table_alters[] = 'COMMENT = \''
+ . $GLOBALS['dbi']->escapeString($_REQUEST['comment']) . '\'';
+ }
+
+ if (! empty($newTblStorageEngine)
+ && mb_strtolower($newTblStorageEngine) !== mb_strtolower($GLOBALS['tbl_storage_engine'])
+ ) {
+ $table_alters[] = 'ENGINE = ' . $newTblStorageEngine;
+ }
+ if (! empty($_REQUEST['tbl_collation'])
+ && $_REQUEST['tbl_collation'] !== $tbl_collation
+ ) {
+ $table_alters[] = 'DEFAULT '
+ . Util::getCharsetQueryPart($_REQUEST['tbl_collation']);
+ }
+
+ if ($pma_table->isEngine(array('MYISAM', 'ARIA', 'ISAM'))
+ && isset($_REQUEST['new_pack_keys'])
+ && $_REQUEST['new_pack_keys'] != (string)$pack_keys
+ ) {
+ $table_alters[] = 'pack_keys = ' . $_REQUEST['new_pack_keys'];
+ }
+
+ $_REQUEST['new_checksum'] = empty($_REQUEST['new_checksum']) ? '0' : '1';
+ if ($pma_table->isEngine(array('MYISAM', 'ARIA'))
+ && $_REQUEST['new_checksum'] !== $checksum
+ ) {
+ $table_alters[] = 'checksum = ' . $_REQUEST['new_checksum'];
+ }
+
+ $_REQUEST['new_transactional']
+ = empty($_REQUEST['new_transactional']) ? '0' : '1';
+ if ($pma_table->isEngine('ARIA')
+ && $_REQUEST['new_transactional'] !== $transactional
+ ) {
+ $table_alters[] = 'TRANSACTIONAL = ' . $_REQUEST['new_transactional'];
+ }
+
+ $_REQUEST['new_page_checksum']
+ = empty($_REQUEST['new_page_checksum']) ? '0' : '1';
+ if ($pma_table->isEngine('ARIA')
+ && $_REQUEST['new_page_checksum'] !== $page_checksum
+ ) {
+ $table_alters[] = 'PAGE_CHECKSUM = ' . $_REQUEST['new_page_checksum'];
+ }
+
+ $_REQUEST['new_delay_key_write']
+ = empty($_REQUEST['new_delay_key_write']) ? '0' : '1';
+ if ($pma_table->isEngine(array('MYISAM', 'ARIA'))
+ && $_REQUEST['new_delay_key_write'] !== $delay_key_write
+ ) {
+ $table_alters[] = 'delay_key_write = ' . $_REQUEST['new_delay_key_write'];
+ }
+
+ if ($pma_table->isEngine(array('MYISAM', 'ARIA', 'INNODB', 'PBXT'))
+ && ! empty($_REQUEST['new_auto_increment'])
+ && (! isset($auto_increment)
+ || $_REQUEST['new_auto_increment'] !== $auto_increment)
+ ) {
+ $table_alters[] = 'auto_increment = '
+ . $GLOBALS['dbi']->escapeString($_REQUEST['new_auto_increment']);
+ }
+
+ if (! empty($_REQUEST['new_row_format'])) {
+ $newRowFormat = $_REQUEST['new_row_format'];
+ $newRowFormatLower = mb_strtolower($newRowFormat);
+ if ($pma_table->isEngine(array('MYISAM', 'ARIA', 'INNODB', 'PBXT'))
+ && (strlen($row_format) === 0
+ || $newRowFormatLower !== mb_strtolower($row_format))
+ ) {
+ $table_alters[] = 'ROW_FORMAT = '
+ . $GLOBALS['dbi']->escapeString($newRowFormat);
+ }
+ }
+
+ return $table_alters;
+ }
+
+ /**
+ * Get warning messages array
+ *
+ * @return array $warning_messages
+ */
+ public static function getWarningMessagesArray()
+ {
+ $warning_messages = array();
+ foreach ($GLOBALS['dbi']->getWarnings() as $warning) {
+ // In MariaDB 5.1.44, when altering a table from Maria to MyISAM
+ // and if TRANSACTIONAL was set, the system reports an error;
+ // I discussed with a Maria developer and he agrees that this
+ // should not be reported with a Level of Error, so here
+ // I just ignore it. But there are other 1478 messages
+ // that it's better to show.
+ if (! ($_REQUEST['new_tbl_storage_engine'] == 'MyISAM'
+ && $warning['Code'] == '1478'
+ && $warning['Level'] == 'Error')
+ ) {
+ $warning_messages[] = $warning['Level'] . ': #' . $warning['Code']
+ . ' ' . $warning['Message'];
+ }
+ }
+ return $warning_messages;
+ }
+
+ /**
+ * Get SQL query and result after ran this SQL query for a partition operation
+ * has been requested by the user
+ *
+ * @return array $sql_query, $result
+ */
+ public static function getQueryAndResultForPartition()
+ {
+ $sql_query = 'ALTER TABLE '
+ . Util::backquote($GLOBALS['table']) . ' '
+ . $_REQUEST['partition_operation']
+ . ' PARTITION ';
+
+ if ($_REQUEST['partition_operation'] == 'COALESCE') {
+ $sql_query .= count($_REQUEST['partition_name']);
+ } else {
+ $sql_query .= implode(', ', $_REQUEST['partition_name']) . ';';
+ }
+
+ $result = $GLOBALS['dbi']->query($sql_query);
+
+ return array($sql_query, $result);
+ }
+
+ /**
+ * Adjust the privileges after renaming/moving a table
+ *
+ * @param string $oldDb Database name before table renaming/moving table
+ * @param string $oldTable Table name before table renaming/moving table
+ * @param string $newDb Database name after table renaming/ moving table
+ * @param string $newTable Table name after table renaming/moving table
+ *
+ * @return void
+ */
+ public static function adjustPrivilegesRenameOrMoveTable($oldDb, $oldTable, $newDb, $newTable)
+ {
+ if ($GLOBALS['table_priv'] && $GLOBALS['col_priv']
+ && $GLOBALS['is_reload_priv']
+ ) {
+ $GLOBALS['dbi']->selectDb('mysql');
+
+ // For table specific privileges
+ $query_table_specific = 'UPDATE ' . Util::backquote('tables_priv')
+ . 'SET Db = \'' . $GLOBALS['dbi']->escapeString($newDb) . '\', Table_name = \'' . $GLOBALS['dbi']->escapeString($newTable)
+ . '\' where Db = \'' . $GLOBALS['dbi']->escapeString($oldDb) . '\' AND Table_name = \'' . $GLOBALS['dbi']->escapeString($oldTable)
+ . '\';';
+ $GLOBALS['dbi']->query($query_table_specific);
+
+ // For column specific privileges
+ $query_col_specific = 'UPDATE ' . Util::backquote('columns_priv')
+ . 'SET Db = \'' . $GLOBALS['dbi']->escapeString($newDb) . '\', Table_name = \'' . $GLOBALS['dbi']->escapeString($newTable)
+ . '\' where Db = \'' . $GLOBALS['dbi']->escapeString($oldDb) . '\' AND Table_name = \'' . $GLOBALS['dbi']->escapeString($oldTable)
+ . '\';';
+ $GLOBALS['dbi']->query($query_col_specific);
+
+ // Finally FLUSH the new privileges
+ $flush_query = "FLUSH PRIVILEGES;";
+ $GLOBALS['dbi']->query($flush_query);
+ }
+ }
+
+ /**
+ * Adjust the privileges after copying a table
+ *
+ * @param string $oldDb Database name before table copying
+ * @param string $oldTable Table name before table copying
+ * @param string $newDb Database name after table copying
+ * @param string $newTable Table name after table copying
+ *
+ * @return void
+ */
+ public static function adjustPrivilegesCopyTable($oldDb, $oldTable, $newDb, $newTable)
+ {
+ if ($GLOBALS['table_priv'] && $GLOBALS['col_priv']
+ && $GLOBALS['is_reload_priv']
+ ) {
+ $GLOBALS['dbi']->selectDb('mysql');
+
+ // For Table Specific privileges
+ $query_table_specific_old = 'SELECT * FROM '
+ . Util::backquote('tables_priv') . ' where '
+ . 'Db = "' . $oldDb . '" AND Table_name = "' . $oldTable . '";';
+
+ $old_privs_table = $GLOBALS['dbi']->fetchResult(
+ $query_table_specific_old,
+ 0
+ );
+
+ foreach ($old_privs_table as $old_priv) {
+ $newDb_table_privs_query = 'INSERT INTO '
+ . Util::backquote('tables_priv') . ' VALUES("'
+ . $old_priv[0] . '", "' . $newDb . '", "' . $old_priv[2] . '", "'
+ . $newTable . '", "' . $old_priv[4] . '", "' . $old_priv[5]
+ . '", "' . $old_priv[6] . '", "' . $old_priv[7] . '");';
+
+ $GLOBALS['dbi']->query($newDb_table_privs_query);
+ }
+
+ // For Column Specific privileges
+ $query_col_specific_old = 'SELECT * FROM '
+ . Util::backquote('columns_priv') . ' WHERE '
+ . 'Db = "' . $oldDb . '" AND Table_name = "' . $oldTable . '";';
+
+ $old_privs_col = $GLOBALS['dbi']->fetchResult(
+ $query_col_specific_old,
+ 0
+ );
+
+ foreach ($old_privs_col as $old_priv) {
+ $newDb_col_privs_query = 'INSERT INTO '
+ . Util::backquote('columns_priv') . ' VALUES("'
+ . $old_priv[0] . '", "' . $newDb . '", "' . $old_priv[2] . '", "'
+ . $newTable . '", "' . $old_priv[4] . '", "' . $old_priv[5]
+ . '", "' . $old_priv[6] . '");';
+
+ $GLOBALS['dbi']->query($newDb_col_privs_query);
+ }
+
+ // Finally FLUSH the new privileges
+ $flush_query = "FLUSH PRIVILEGES;";
+ $GLOBALS['dbi']->query($flush_query);
+ }
+ }
+
+ /**
+ * Change all collations and character sets of all columns in table
+ *
+ * @param string $db Database name
+ * @param string $table Table name
+ * @param string $tbl_collation Collation Name
+ *
+ * @return void
+ */
+ public static function changeAllColumnsCollation($db, $table, $tbl_collation)
+ {
+ $GLOBALS['dbi']->selectDb($db);
+
+ $change_all_collations_query = 'ALTER TABLE '
+ . Util::backquote($table)
+ . ' CONVERT TO';
+
+ list($charset) = explode('_', $tbl_collation);
+
+ $change_all_collations_query .= ' CHARACTER SET ' . $charset
+ . ($charset == $tbl_collation ? '' : ' COLLATE ' . $tbl_collation);
+
+ $GLOBALS['dbi']->query($change_all_collations_query);
+ }
+
+ /**
+ * Move or copy a table
+ *
+ * @param string $db current database name
+ * @param string $table current table name
+ *
+ * @return void
+ */
+ public static function moveOrCopyTable($db, $table)
+ {
+ /**
+ * Selects the database to work with
+ */
+ $GLOBALS['dbi']->selectDb($db);
+
+ /**
+ * $_REQUEST['target_db'] could be empty in case we came from an input field
+ * (when there are many databases, no drop-down)
+ */
+ if (empty($_REQUEST['target_db'])) {
+ $_REQUEST['target_db'] = $db;
+ }
+
+ /**
+ * A target table name has been sent to this script -> do the work
+ */
+ if (Core::isValid($_REQUEST['new_name'])) {
+ if ($db == $_REQUEST['target_db'] && $table == $_REQUEST['new_name']) {
+ if (isset($_REQUEST['submit_move'])) {
+ $message = Message::error(__('Can\'t move table to same one!'));
+ } else {
+ $message = Message::error(__('Can\'t copy table to same one!'));
+ }
+ } else {
+ Table::moveCopy(
+ $db, $table, $_REQUEST['target_db'], $_REQUEST['new_name'],
+ $_REQUEST['what'], isset($_REQUEST['submit_move']), 'one_table'
+ );
+
+ if (isset($_REQUEST['adjust_privileges'])
+ && ! empty($_REQUEST['adjust_privileges'])
+ ) {
+ if (isset($_REQUEST['submit_move'])) {
+ self::adjustPrivilegesRenameOrMoveTable(
+ $db, $table, $_REQUEST['target_db'], $_REQUEST['new_name']
+ );
+ } else {
+ self::adjustPrivilegesCopyTable(
+ $db, $table, $_REQUEST['target_db'], $_REQUEST['new_name']
+ );
+ }
+
+ if (isset($_REQUEST['submit_move'])) {
+ $message = Message::success(
+ __(
+ 'Table %s has been moved to %s. Privileges have been '
+ . 'adjusted.'
+ )
+ );
+ } else {
+ $message = Message::success(
+ __(
+ 'Table %s has been copied to %s. Privileges have been '
+ . 'adjusted.'
+ )
+ );
+ }
+
+ } else {
+ if (isset($_REQUEST['submit_move'])) {
+ $message = Message::success(
+ __('Table %s has been moved to %s.')
+ );
+ } else {
+ $message = Message::success(
+ __('Table %s has been copied to %s.')
+ );
+ }
+ }
+
+ $old = Util::backquote($db) . '.'
+ . Util::backquote($table);
+ $message->addParam($old);
+
+ $new_name = $_REQUEST['new_name'];
+ if ($GLOBALS['dbi']->getLowerCaseNames() === '1') {
+ $new_name = strtolower($new_name);
+ }
+
+ $new = Util::backquote($_REQUEST['target_db']) . '.'
+ . Util::backquote($new_name);
+ $message->addParam($new);
+
+ /* Check: Work on new table or on old table? */
+ if (isset($_REQUEST['submit_move'])
+ || Core::isValid($_REQUEST['switch_to_new'])
+ ) {
+ }
+ }
+ } else {
+ /**
+ * No new name for the table!
+ */
+ $message = Message::error(__('The table name is empty!'));
+ }
+
+ $response = Response::getInstance();
+ if ($response->isAjax()) {
+ $response->addJSON('message', $message);
+ if ($message->isSuccess()) {
+ $response->addJSON('db', $GLOBALS['db']);
+ } else {
+ $response->setRequestStatus(false);
+ }
+ exit;
+ }
+ }
+}
diff --git a/libraries/classes/Sql.php b/libraries/classes/Sql.php
index b0fd3af63e..88a1cd0ed5 100644
--- a/libraries/classes/Sql.php
+++ b/libraries/classes/Sql.php
@@ -13,6 +13,7 @@ use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DisplayResults;
use PhpMyAdmin\Index;
use PhpMyAdmin\Message;
+use PhpMyAdmin\Operations;
use PhpMyAdmin\Response;
use PhpMyAdmin\SqlParser\Statements\AlterStatement;
use PhpMyAdmin\SqlParser\Statements\DropStatement;
@@ -23,8 +24,6 @@ use PhpMyAdmin\Transformations;
use PhpMyAdmin\Url;
use PhpMyAdmin\Util;
-require_once 'libraries/operations.lib.php';
-
/**
* Sql class
*
@@ -2183,7 +2182,7 @@ EOT;
isset($extra_data) ? $extra_data : null
);
- $warning_messages = PMA_getWarningMessagesArray();
+ $warning_messages = Operations::getWarningMessagesArray();
// No rows returned -> move back to the calling page
if ((0 == $num_rows && 0 == $unlim_num_rows)
@@ -2223,7 +2222,7 @@ EOT;
Util::handleDisableFKCheckCleanup($default_fk_check);
foreach ($warning_messages as $warning) {
- $message = \PhpMyAdmin\Message::notice($warning);
+ $message = Message::notice($warning);
$html_output .= $message->getDisplay();
}
diff --git a/libraries/mult_submits.lib.php b/libraries/mult_submits.lib.php
index c1c3b0a1a0..aee828eb70 100644
--- a/libraries/mult_submits.lib.php
+++ b/libraries/mult_submits.lib.php
@@ -8,10 +8,12 @@
* @package PhpMyAdmin
*/
+use PhpMyAdmin\Operations;
use PhpMyAdmin\Sql;
use PhpMyAdmin\Table;
use PhpMyAdmin\Transformations;
use PhpMyAdmin\Url;
+use PhpMyAdmin\Util;
/**
* Gets url params
@@ -47,7 +49,7 @@ function PMA_getUrlParams(
foreach ($selected as $sval) {
if ($what == 'row_delete') {
$_url_params['selected'][] = 'DELETE FROM '
- . PhpMyAdmin\Util::backquote($table)
+ . Util::backquote($table)
. ' WHERE ' . $sval . ' LIMIT 1;';
} else {
$_url_params['selected'][] = $sval;
@@ -116,7 +118,7 @@ function PMA_buildOrExecuteQueryForMulti(
case 'drop_db':
PMA_relationsCleanupDatabase($selected[$i]);
$a_query = 'DROP DATABASE '
- . PhpMyAdmin\Util::backquote($selected[$i]);
+ . Util::backquote($selected[$i]);
$reload = 1;
$run_parts = true;
$rebuild_database_list = true;
@@ -127,104 +129,104 @@ function PMA_buildOrExecuteQueryForMulti(
$current = $selected[$i];
if (!empty($views) && in_array($current, $views)) {
$sql_query_views .= (empty($sql_query_views) ? 'DROP VIEW ' : ', ')
- . PhpMyAdmin\Util::backquote($current);
+ . Util::backquote($current);
} else {
$sql_query .= (empty($sql_query) ? 'DROP TABLE ' : ', ')
- . PhpMyAdmin\Util::backquote($current);
+ . Util::backquote($current);
}
$reload = 1;
break;
case 'check_tbl':
$sql_query .= (empty($sql_query) ? 'CHECK TABLE ' : ', ')
- . PhpMyAdmin\Util::backquote($selected[$i]);
+ . Util::backquote($selected[$i]);
$execute_query_later = true;
break;
case 'optimize_tbl':
$sql_query .= (empty($sql_query) ? 'OPTIMIZE TABLE ' : ', ')
- . PhpMyAdmin\Util::backquote($selected[$i]);
+ . Util::backquote($selected[$i]);
$execute_query_later = true;
break;
case 'analyze_tbl':
$sql_query .= (empty($sql_query) ? 'ANALYZE TABLE ' : ', ')
- . PhpMyAdmin\Util::backquote($selected[$i]);
+ . Util::backquote($selected[$i]);
$execute_query_later = true;
break;
case 'checksum_tbl':
$sql_query .= (empty($sql_query) ? 'CHECKSUM TABLE ' : ', ')
- . PhpMyAdmin\Util::backquote($selected[$i]);
+ . Util::backquote($selected[$i]);
$execute_query_later = true;
break;
case 'repair_tbl':
$sql_query .= (empty($sql_query) ? 'REPAIR TABLE ' : ', ')
- . PhpMyAdmin\Util::backquote($selected[$i]);
+ . Util::backquote($selected[$i]);
$execute_query_later = true;
break;
case 'empty_tbl':
$deletes = true;
$a_query = 'TRUNCATE ';
- $a_query .= PhpMyAdmin\Util::backquote($selected[$i]);
+ $a_query .= Util::backquote($selected[$i]);
$run_parts = true;
break;
case 'drop_fld':
PMA_relationsCleanupColumn($db, $table, $selected[$i]);
$sql_query .= (empty($sql_query)
- ? 'ALTER TABLE ' . PhpMyAdmin\Util::backquote($table)
+ ? 'ALTER TABLE ' . Util::backquote($table)
: ',')
- . ' DROP ' . PhpMyAdmin\Util::backquote($selected[$i])
+ . ' DROP ' . Util::backquote($selected[$i])
. (($i == $selected_cnt-1) ? ';' : '');
break;
case 'primary_fld':
$sql_query .= (empty($sql_query)
- ? 'ALTER TABLE ' . PhpMyAdmin\Util::backquote($table)
+ ? 'ALTER TABLE ' . Util::backquote($table)
. (empty($primary)
? ''
: ' DROP PRIMARY KEY,') . ' ADD PRIMARY KEY( '
: ', ')
- . PhpMyAdmin\Util::backquote($selected[$i])
+ . Util::backquote($selected[$i])
. (($i == $selected_cnt-1) ? ');' : '');
break;
case 'index_fld':
$sql_query .= (empty($sql_query)
- ? 'ALTER TABLE ' . PhpMyAdmin\Util::backquote($table)
+ ? 'ALTER TABLE ' . Util::backquote($table)
. ' ADD INDEX( '
: ', ')
- . PhpMyAdmin\Util::backquote($selected[$i])
+ . Util::backquote($selected[$i])
. (($i == $selected_cnt-1) ? ');' : '');
break;
case 'unique_fld':
$sql_query .= (empty($sql_query)
- ? 'ALTER TABLE ' . PhpMyAdmin\Util::backquote($table)
+ ? 'ALTER TABLE ' . Util::backquote($table)
. ' ADD UNIQUE( '
: ', ')
- . PhpMyAdmin\Util::backquote($selected[$i])
+ . Util::backquote($selected[$i])
. (($i == $selected_cnt-1) ? ');' : '');
break;
case 'spatial_fld':
$sql_query .= (empty($sql_query)
- ? 'ALTER TABLE ' . PhpMyAdmin\Util::backquote($table)
+ ? 'ALTER TABLE ' . Util::backquote($table)
. ' ADD SPATIAL( '
: ', ')
- . PhpMyAdmin\Util::backquote($selected[$i])
+ . Util::backquote($selected[$i])
. (($i == $selected_cnt-1) ? ');' : '');
break;
case 'fulltext_fld':
$sql_query .= (empty($sql_query)
- ? 'ALTER TABLE ' . PhpMyAdmin\Util::backquote($table)
+ ? 'ALTER TABLE ' . Util::backquote($table)
. ' ADD FULLTEXT( '
: ', ')
- . PhpMyAdmin\Util::backquote($selected[$i])
+ . Util::backquote($selected[$i])
. (($i == $selected_cnt-1) ? ');' : '');
break;
@@ -232,9 +234,9 @@ function PMA_buildOrExecuteQueryForMulti(
$newtablename = $_POST['add_prefix'] . $selected[$i];
// ADD PREFIX TO TABLE NAME
$a_query = 'ALTER TABLE '
- . PhpMyAdmin\Util::backquote($selected[$i])
+ . Util::backquote($selected[$i])
. ' RENAME '
- . PhpMyAdmin\Util::backquote($newtablename);
+ . Util::backquote($newtablename);
$run_parts = true;
break;
@@ -256,9 +258,9 @@ function PMA_buildOrExecuteQueryForMulti(
}
// CHANGE PREFIX PATTERN
$a_query = 'ALTER TABLE '
- . PhpMyAdmin\Util::backquote($selected[$i])
+ . Util::backquote($selected[$i])
. ' RENAME '
- . PhpMyAdmin\Util::backquote($newtablename);
+ . Util::backquote($newtablename);
$run_parts = true;
break;
@@ -282,8 +284,7 @@ function PMA_buildOrExecuteQueryForMulti(
$copy_tbl = true;
Table::moveCopy($db, $selected[$i], $_POST['target_db'], $selected[$i], $_POST['what'], false, 'one_table');
if (isset($_POST['adjust_privileges']) && !empty($_POST['adjust_privileges'])) {
- include_once 'operations.lib.php';
- PMA_AdjustPrivileges_copyTable($db, $selected[$i], $_POST['target_db'], $selected[$i]);
+ Operations::adjustPrivilegesCopyTable($db, $selected[$i], $_POST['target_db'], $selected[$i]);
}
break;
} // end switch
@@ -454,7 +455,7 @@ function PMA_getHtmlForOtherActions($what, $action, $_url_params, $full_query)
// Display option to disable foreign key checks while dropping tables
if ($what === 'drop_tbl' || $what === 'empty_tbl' || $what === 'row_delete') {
$html .= '
';
-}
-
-/**
- * Get HTML for Delete data or table (truncate table, drop table)
- *
- * @param array $truncate_table_url_params url parameter array for truncate table
- * @param array $dropTableUrlParams url parameter array for drop table
- *
- * @return string $html_output
- */
-function PMA_getHtmlForDeleteDataOrTable(
- $truncate_table_url_params,
- $dropTableUrlParams
-) {
- $html_output = '
'
- . '
';
-
- return $html_output;
-}
-
-/**
- * Get the HTML link for Truncate table, Drop table and Drop db
- *
- * @param array $url_params url parameter array for delete data or table
- * @param string $syntax TRUNCATE_TABLE or DROP_TABLE or DROP_DATABASE
- * @param string $link link to be shown
- * @param string $htmlId id of the link
- *
- * @return String html output
- */
-function PMA_getDeleteDataOrTablelink($url_params, $syntax, $link, $htmlId)
-{
- return '
';
-
- return $html_output;
-}
-
-/**
- * Get the HTML for Referential Integrity check
- *
- * @param array $foreign all Relations to foreign tables for a given table
- * or optionally a given column in a table
- * @param array $url_params array of url parameters
- *
- * @return string $html_output
- */
-function PMA_getHtmlForReferentialIntegrityCheck($foreign, $url_params)
-{
- $html_output = '
'
- . '
';
-
- return $html_output;
-}
-
-/**
- * Reorder table based on request params
- *
- * @return array SQL query and result
- */
-function PMA_getQueryAndResultForReorderingTable()
-{
- $sql_query = 'ALTER TABLE '
- . Util::backquote($GLOBALS['table'])
- . ' ORDER BY '
- . Util::backquote(urldecode($_REQUEST['order_field']));
- if (isset($_REQUEST['order_order'])
- && $_REQUEST['order_order'] === 'desc'
- ) {
- $sql_query .= ' DESC';
- } else {
- $sql_query .= ' ASC';
- }
- $sql_query .= ';';
- $result = $GLOBALS['dbi']->query($sql_query);
-
- return array($sql_query, $result);
-}
-
-/**
- * Get table alters array
- *
- * @param Table $pma_table The Table object
- * @param string $pack_keys pack keys
- * @param string $checksum value of checksum
- * @param string $page_checksum value of page checksum
- * @param string $delay_key_write delay key write
- * @param string $row_format row format
- * @param string $newTblStorageEngine table storage engine
- * @param string $transactional value of transactional
- * @param string $tbl_collation collation of the table
- *
- * @return array $table_alters
- */
-function PMA_getTableAltersArray($pma_table, $pack_keys,
- $checksum, $page_checksum, $delay_key_write,
- $row_format, $newTblStorageEngine, $transactional, $tbl_collation
-) {
- global $auto_increment;
-
- $table_alters = array();
-
- if (isset($_REQUEST['comment'])
- && urldecode($_REQUEST['prev_comment']) !== $_REQUEST['comment']
- ) {
- $table_alters[] = 'COMMENT = \''
- . $GLOBALS['dbi']->escapeString($_REQUEST['comment']) . '\'';
- }
-
- if (! empty($newTblStorageEngine)
- && mb_strtolower($newTblStorageEngine) !== mb_strtolower($GLOBALS['tbl_storage_engine'])
- ) {
- $table_alters[] = 'ENGINE = ' . $newTblStorageEngine;
- }
- if (! empty($_REQUEST['tbl_collation'])
- && $_REQUEST['tbl_collation'] !== $tbl_collation
- ) {
- $table_alters[] = 'DEFAULT '
- . Util::getCharsetQueryPart($_REQUEST['tbl_collation']);
- }
-
- if ($pma_table->isEngine(array('MYISAM', 'ARIA', 'ISAM'))
- && isset($_REQUEST['new_pack_keys'])
- && $_REQUEST['new_pack_keys'] != (string)$pack_keys
- ) {
- $table_alters[] = 'pack_keys = ' . $_REQUEST['new_pack_keys'];
- }
-
- $_REQUEST['new_checksum'] = empty($_REQUEST['new_checksum']) ? '0' : '1';
- if ($pma_table->isEngine(array('MYISAM', 'ARIA'))
- && $_REQUEST['new_checksum'] !== $checksum
- ) {
- $table_alters[] = 'checksum = ' . $_REQUEST['new_checksum'];
- }
-
- $_REQUEST['new_transactional']
- = empty($_REQUEST['new_transactional']) ? '0' : '1';
- if ($pma_table->isEngine('ARIA')
- && $_REQUEST['new_transactional'] !== $transactional
- ) {
- $table_alters[] = 'TRANSACTIONAL = ' . $_REQUEST['new_transactional'];
- }
-
- $_REQUEST['new_page_checksum']
- = empty($_REQUEST['new_page_checksum']) ? '0' : '1';
- if ($pma_table->isEngine('ARIA')
- && $_REQUEST['new_page_checksum'] !== $page_checksum
- ) {
- $table_alters[] = 'PAGE_CHECKSUM = ' . $_REQUEST['new_page_checksum'];
- }
-
- $_REQUEST['new_delay_key_write']
- = empty($_REQUEST['new_delay_key_write']) ? '0' : '1';
- if ($pma_table->isEngine(array('MYISAM', 'ARIA'))
- && $_REQUEST['new_delay_key_write'] !== $delay_key_write
- ) {
- $table_alters[] = 'delay_key_write = ' . $_REQUEST['new_delay_key_write'];
- }
-
- if ($pma_table->isEngine(array('MYISAM', 'ARIA', 'INNODB', 'PBXT'))
- && ! empty($_REQUEST['new_auto_increment'])
- && (! isset($auto_increment)
- || $_REQUEST['new_auto_increment'] !== $auto_increment)
- ) {
- $table_alters[] = 'auto_increment = '
- . $GLOBALS['dbi']->escapeString($_REQUEST['new_auto_increment']);
- }
-
- if (! empty($_REQUEST['new_row_format'])) {
- $newRowFormat = $_REQUEST['new_row_format'];
- $newRowFormatLower = mb_strtolower($newRowFormat);
- if ($pma_table->isEngine(array('MYISAM', 'ARIA', 'INNODB', 'PBXT'))
- && (strlen($row_format) === 0
- || $newRowFormatLower !== mb_strtolower($row_format))
- ) {
- $table_alters[] = 'ROW_FORMAT = '
- . $GLOBALS['dbi']->escapeString($newRowFormat);
- }
- }
-
- return $table_alters;
-}
-
-/**
- * Get warning messages array
- *
- * @return array $warning_messages
- */
-function PMA_getWarningMessagesArray()
-{
- $warning_messages = array();
- foreach ($GLOBALS['dbi']->getWarnings() as $warning) {
- // In MariaDB 5.1.44, when altering a table from Maria to MyISAM
- // and if TRANSACTIONAL was set, the system reports an error;
- // I discussed with a Maria developer and he agrees that this
- // should not be reported with a Level of Error, so here
- // I just ignore it. But there are other 1478 messages
- // that it's better to show.
- if (! ($_REQUEST['new_tbl_storage_engine'] == 'MyISAM'
- && $warning['Code'] == '1478'
- && $warning['Level'] == 'Error')
- ) {
- $warning_messages[] = $warning['Level'] . ': #' . $warning['Code']
- . ' ' . $warning['Message'];
- }
- }
- return $warning_messages;
-}
-
-/**
- * Get SQL query and result after ran this SQL query for a partition operation
- * has been requested by the user
- *
- * @return array $sql_query, $result
- */
-function PMA_getQueryAndResultForPartition()
-{
- $sql_query = 'ALTER TABLE '
- . Util::backquote($GLOBALS['table']) . ' '
- . $_REQUEST['partition_operation']
- . ' PARTITION ';
-
- if ($_REQUEST['partition_operation'] == 'COALESCE') {
- $sql_query .= count($_REQUEST['partition_name']);
- } else {
- $sql_query .= implode(', ', $_REQUEST['partition_name']) . ';';
- }
-
- $result = $GLOBALS['dbi']->query($sql_query);
-
- return array($sql_query, $result);
-}
-
-/**
- * Adjust the privileges after renaming/moving a table
- *
- * @param string $oldDb Database name before table renaming/moving table
- * @param string $oldTable Table name before table renaming/moving table
- * @param string $newDb Database name after table renaming/ moving table
- * @param string $newTable Table name after table renaming/moving table
- *
- * @return void
- */
-function PMA_AdjustPrivileges_renameOrMoveTable($oldDb, $oldTable, $newDb, $newTable)
-{
- if ($GLOBALS['table_priv'] && $GLOBALS['col_priv']
- && $GLOBALS['is_reload_priv']
- ) {
- $GLOBALS['dbi']->selectDb('mysql');
-
- // For table specific privileges
- $query_table_specific = 'UPDATE ' . Util::backquote('tables_priv')
- . 'SET Db = \'' . $GLOBALS['dbi']->escapeString($newDb) . '\', Table_name = \'' . $GLOBALS['dbi']->escapeString($newTable)
- . '\' where Db = \'' . $GLOBALS['dbi']->escapeString($oldDb) . '\' AND Table_name = \'' . $GLOBALS['dbi']->escapeString($oldTable)
- . '\';';
- $GLOBALS['dbi']->query($query_table_specific);
-
- // For column specific privileges
- $query_col_specific = 'UPDATE ' . Util::backquote('columns_priv')
- . 'SET Db = \'' . $GLOBALS['dbi']->escapeString($newDb) . '\', Table_name = \'' . $GLOBALS['dbi']->escapeString($newTable)
- . '\' where Db = \'' . $GLOBALS['dbi']->escapeString($oldDb) . '\' AND Table_name = \'' . $GLOBALS['dbi']->escapeString($oldTable)
- . '\';';
- $GLOBALS['dbi']->query($query_col_specific);
-
- // Finally FLUSH the new privileges
- $flush_query = "FLUSH PRIVILEGES;";
- $GLOBALS['dbi']->query($flush_query);
- }
-}
-
-/**
- * Adjust the privileges after copying a table
- *
- * @param string $oldDb Database name before table copying
- * @param string $oldTable Table name before table copying
- * @param string $newDb Database name after table copying
- * @param string $newTable Table name after table copying
- *
- * @return void
- */
-function PMA_AdjustPrivileges_copyTable($oldDb, $oldTable, $newDb, $newTable)
-{
- if ($GLOBALS['table_priv'] && $GLOBALS['col_priv']
- && $GLOBALS['is_reload_priv']
- ) {
- $GLOBALS['dbi']->selectDb('mysql');
-
- // For Table Specific privileges
- $query_table_specific_old = 'SELECT * FROM '
- . Util::backquote('tables_priv') . ' where '
- . 'Db = "' . $oldDb . '" AND Table_name = "' . $oldTable . '";';
-
- $old_privs_table = $GLOBALS['dbi']->fetchResult(
- $query_table_specific_old,
- 0
- );
-
- foreach ($old_privs_table as $old_priv) {
- $newDb_table_privs_query = 'INSERT INTO '
- . Util::backquote('tables_priv') . ' VALUES("'
- . $old_priv[0] . '", "' . $newDb . '", "' . $old_priv[2] . '", "'
- . $newTable . '", "' . $old_priv[4] . '", "' . $old_priv[5]
- . '", "' . $old_priv[6] . '", "' . $old_priv[7] . '");';
-
- $GLOBALS['dbi']->query($newDb_table_privs_query);
- }
-
- // For Column Specific privileges
- $query_col_specific_old = 'SELECT * FROM '
- . Util::backquote('columns_priv') . ' WHERE '
- . 'Db = "' . $oldDb . '" AND Table_name = "' . $oldTable . '";';
-
- $old_privs_col = $GLOBALS['dbi']->fetchResult(
- $query_col_specific_old,
- 0
- );
-
- foreach ($old_privs_col as $old_priv) {
- $newDb_col_privs_query = 'INSERT INTO '
- . Util::backquote('columns_priv') . ' VALUES("'
- . $old_priv[0] . '", "' . $newDb . '", "' . $old_priv[2] . '", "'
- . $newTable . '", "' . $old_priv[4] . '", "' . $old_priv[5]
- . '", "' . $old_priv[6] . '");';
-
- $GLOBALS['dbi']->query($newDb_col_privs_query);
- }
-
- // Finally FLUSH the new privileges
- $flush_query = "FLUSH PRIVILEGES;";
- $GLOBALS['dbi']->query($flush_query);
- }
-}
-
-/**
- * Change all collations and character sets of all columns in table
- *
- * @param string $db Database name
- * @param string $table Table name
- * @param string $tbl_collation Collation Name
- *
- * @return void
- */
-function PMA_changeAllColumnsCollation($db, $table, $tbl_collation)
-{
- $GLOBALS['dbi']->selectDb($db);
-
- $change_all_collations_query = 'ALTER TABLE '
- . Util::backquote($table)
- . ' CONVERT TO';
-
- list($charset) = explode('_', $tbl_collation);
-
- $change_all_collations_query .= ' CHARACTER SET ' . $charset
- . ($charset == $tbl_collation ? '' : ' COLLATE ' . $tbl_collation);
-
- $GLOBALS['dbi']->query($change_all_collations_query);
-}
-
-/**
- * Move or copy a table
- *
- * @param string $db current database name
- * @param string $table current table name
- *
- * @return void
- */
-function PMA_moveOrCopyTable($db, $table)
-{
- /**
- * Selects the database to work with
- */
- $GLOBALS['dbi']->selectDb($db);
-
- /**
- * $_REQUEST['target_db'] could be empty in case we came from an input field
- * (when there are many databases, no drop-down)
- */
- if (empty($_REQUEST['target_db'])) {
- $_REQUEST['target_db'] = $db;
- }
-
- /**
- * A target table name has been sent to this script -> do the work
- */
- if (Core::isValid($_REQUEST['new_name'])) {
- if ($db == $_REQUEST['target_db'] && $table == $_REQUEST['new_name']) {
- if (isset($_REQUEST['submit_move'])) {
- $message = Message::error(__('Can\'t move table to same one!'));
- } else {
- $message = Message::error(__('Can\'t copy table to same one!'));
- }
- } else {
- Table::moveCopy(
- $db, $table, $_REQUEST['target_db'], $_REQUEST['new_name'],
- $_REQUEST['what'], isset($_REQUEST['submit_move']), 'one_table'
- );
-
- if (isset($_REQUEST['adjust_privileges'])
- && ! empty($_REQUEST['adjust_privileges'])
- ) {
- if (isset($_REQUEST['submit_move'])) {
- PMA_AdjustPrivileges_renameOrMoveTable(
- $db, $table, $_REQUEST['target_db'], $_REQUEST['new_name']
- );
- } else {
- PMA_AdjustPrivileges_copyTable(
- $db, $table, $_REQUEST['target_db'], $_REQUEST['new_name']
- );
- }
-
- if (isset($_REQUEST['submit_move'])) {
- $message = Message::success(
- __(
- 'Table %s has been moved to %s. Privileges have been '
- . 'adjusted.'
- )
- );
- } else {
- $message = Message::success(
- __(
- 'Table %s has been copied to %s. Privileges have been '
- . 'adjusted.'
- )
- );
- }
-
- } else {
- if (isset($_REQUEST['submit_move'])) {
- $message = Message::success(
- __('Table %s has been moved to %s.')
- );
- } else {
- $message = Message::success(
- __('Table %s has been copied to %s.')
- );
- }
- }
-
- $old = Util::backquote($db) . '.'
- . Util::backquote($table);
- $message->addParam($old);
-
- $new_name = $_REQUEST['new_name'];
- if ($GLOBALS['dbi']->getLowerCaseNames() === '1') {
- $new_name = strtolower($new_name);
- }
-
- $new = Util::backquote($_REQUEST['target_db']) . '.'
- . Util::backquote($new_name);
- $message->addParam($new);
-
- /* Check: Work on new table or on old table? */
- if (isset($_REQUEST['submit_move'])
- || Core::isValid($_REQUEST['switch_to_new'])
- ) {
- }
- }
- } else {
- /**
- * No new name for the table!
- */
- $message = Message::error(__('The table name is empty!'));
- }
-
- $response = Response::getInstance();
- if ($response->isAjax()) {
- $response->addJSON('message', $message);
- if ($message->isSuccess()) {
- $response->addJSON('db', $GLOBALS['db']);
- } else {
- $response->setRequestStatus(false);
- }
- exit;
- }
-}
diff --git a/tbl_operations.php b/tbl_operations.php
index 3208a20e54..c6b0f8046c 100644
--- a/tbl_operations.php
+++ b/tbl_operations.php
@@ -5,9 +5,13 @@
*
* @package PhpMyAdmin
*/
+use PhpMyAdmin\Index;
+use PhpMyAdmin\Message;
use PhpMyAdmin\Partition;
-use PhpMyAdmin\Table;
+use PhpMyAdmin\Operations;
use PhpMyAdmin\Response;
+use PhpMyAdmin\Table;
+use PhpMyAdmin\Util;
/**
*
@@ -18,7 +22,6 @@ require_once 'libraries/common.inc.php';
* functions implementation for this script
*/
require_once 'libraries/check_user_privileges.lib.php';
-require_once 'libraries/operations.lib.php';
$pma_table = new Table($GLOBALS['table'], $GLOBALS['db']);
@@ -95,7 +98,7 @@ $table_alters = array();
*/
if (isset($_REQUEST['submit_move']) || isset($_REQUEST['submit_copy'])) {
//$_message = '';
- PMA_moveOrCopyTable($db, $table);
+ Operations::moveOrCopyTable($db, $table);
// This was ended in an Ajax call
exit;
}
@@ -122,7 +125,7 @@ if (isset($_REQUEST['submitoptions'])) {
if (isset($_REQUEST['adjust_privileges'])
&& ! empty($_REQUEST['adjust_privileges'])
) {
- PMA_AdjustPrivileges_renameOrMoveTable(
+ Operations::adjustPrivilegesRenameOrMoveTable(
$oldDb, $oldTable, $_REQUEST['db'], $_REQUEST['new_name']
);
}
@@ -160,7 +163,7 @@ if (isset($_REQUEST['submitoptions'])) {
? $create_options['row_format']
: $pma_table->getRowFormat();
- $table_alters = PMA_getTableAltersArray(
+ $table_alters = Operations::getTableAltersArray(
$pma_table,
$create_options['pack_keys'],
(empty($create_options['checksum']) ? '0' : '1'),
@@ -174,13 +177,13 @@ if (isset($_REQUEST['submitoptions'])) {
if (count($table_alters) > 0) {
$sql_query = 'ALTER TABLE '
- . PhpMyAdmin\Util::backquote($GLOBALS['table']);
+ . Util::backquote($GLOBALS['table']);
$sql_query .= "\r\n" . implode("\r\n", $table_alters);
$sql_query .= ';';
$result .= $GLOBALS['dbi']->query($sql_query) ? true : false;
$reread_info = true;
unset($table_alters);
- $warning_messages = PMA_getWarningMessagesArray();
+ $warning_messages = Operations::getWarningMessagesArray();
}
if (isset($_REQUEST['tbl_collation'])
@@ -188,7 +191,7 @@ if (isset($_REQUEST['submitoptions'])) {
&& isset($_REQUEST['change_all_collations'])
&& ! empty($_REQUEST['change_all_collations'])
) {
- PMA_changeAllColumnsCollation(
+ Operations::changeAllColumnsCollation(
$GLOBALS['db'], $GLOBALS['table'], $_REQUEST['tbl_collation']
);
}
@@ -197,7 +200,7 @@ if (isset($_REQUEST['submitoptions'])) {
* Reordering the table has been requested by the user
*/
if (isset($_REQUEST['submitorderby']) && ! empty($_REQUEST['order_field'])) {
- list($sql_query, $result) = PMA_getQueryAndResultForReorderingTable();
+ list($sql_query, $result) = Operations::getQueryAndResultForReorderingTable();
} // end if
/**
@@ -206,7 +209,7 @@ if (isset($_REQUEST['submitorderby']) && ! empty($_REQUEST['order_field'])) {
if (isset($_REQUEST['submit_partition'])
&& ! empty($_REQUEST['partition_operation'])
) {
- list($sql_query, $result) = PMA_getQueryAndResultForPartition();
+ list($sql_query, $result) = Operations::getQueryAndResultForPartition();
} // end if
if ($reread_info) {
@@ -235,11 +238,11 @@ unset($reread_info);
if (isset($result) && empty($message_to_show)) {
if (empty($_message)) {
if (empty($sql_query)) {
- $_message = PhpMyAdmin\Message::success(__('No change'));
+ $_message = Message::success(__('No change'));
} else {
$_message = $result
- ? PhpMyAdmin\Message::success()
- : PhpMyAdmin\Message::error();
+ ? Message::success()
+ : Message::error();
}
if ($response->isAjax()) {
@@ -247,19 +250,19 @@ if (isset($result) && empty($message_to_show)) {
$response->addJSON('message', $_message);
if (!empty($sql_query)) {
$response->addJSON(
- 'sql_query', PhpMyAdmin\Util::getMessage(null, $sql_query)
+ 'sql_query', Util::getMessage(null, $sql_query)
);
}
exit;
}
} else {
$_message = $result
- ? PhpMyAdmin\Message::success($_message)
- : PhpMyAdmin\Message::error($_message);
+ ? Message::success($_message)
+ : Message::error($_message);
}
if (! empty($warning_messages)) {
- $_message = new PhpMyAdmin\Message;
+ $_message = new Message;
$_message->addMessagesString($warning_messages);
$_message->isError(true);
if ($response->isAjax()) {
@@ -267,7 +270,7 @@ if (isset($result) && empty($message_to_show)) {
$response->addJSON('message', $_message);
if (!empty($sql_query)) {
$response->addJSON(
- 'sql_query', PhpMyAdmin\Util::getMessage(null, $sql_query)
+ 'sql_query', Util::getMessage(null, $sql_query)
);
}
exit;
@@ -281,7 +284,7 @@ if (isset($result) && empty($message_to_show)) {
);
} else {
$response->addHTML(
- PhpMyAdmin\Util::getMessage($_message, $sql_query)
+ Util::getMessage($_message, $sql_query)
);
}
unset($_message);
@@ -308,7 +311,7 @@ $hideOrderTable = false;
// a user-defined clustered index (PRIMARY KEY or NOT NULL UNIQUE index).
// InnoDB always orders table rows according to such an index if one is present.
if ($tbl_storage_engine == 'INNODB') {
- $indexes = PhpMyAdmin\Index::getFromTable($GLOBALS['table'], $GLOBALS['db']);
+ $indexes = Index::getFromTable($GLOBALS['table'], $GLOBALS['db']);
foreach ($indexes as $name => $idx) {
if ($name == 'PRIMARY') {
$hideOrderTable = true;
@@ -329,13 +332,13 @@ if ($tbl_storage_engine == 'INNODB') {
}
}
if (! $hideOrderTable) {
- $response->addHTML(PMA_getHtmlForOrderTheTable($columns));
+ $response->addHTML(Operations::getHtmlForOrderTheTable($columns));
}
/**
* Move table
*/
-$response->addHTML(PMA_getHtmlForMoveTable());
+$response->addHTML(Operations::getHtmlForMoveTable());
if (mb_strstr($show_comment, '; InnoDB free') === false) {
if (mb_strstr($show_comment, 'InnoDB free') === false) {
@@ -359,7 +362,7 @@ if (mb_strstr($show_comment, '; InnoDB free') === false) {
// check for version
$response->addHTML(
- PMA_getTableOptionDiv(
+ Operations::getTableOptionDiv(
$pma_table, $comment, $tbl_collation, $tbl_storage_engine,
$create_options['pack_keys'],
$auto_increment,
@@ -373,13 +376,13 @@ $response->addHTML(
/**
* Copy table
*/
-$response->addHTML(PMA_getHtmlForCopytable());
+$response->addHTML(Operations::getHtmlForCopytable());
/**
* Table maintenance
*/
$response->addHTML(
- PMA_getHtmlForTableMaintenance($pma_table, $url_params)
+ Operations::getHtmlForTableMaintenance($pma_table, $url_params)
);
if (! (isset($db_is_system_schema) && $db_is_system_schema)) {
@@ -390,7 +393,7 @@ if (! (isset($db_is_system_schema) && $db_is_system_schema)) {
&& ! (isset($db_is_system_schema) && $db_is_system_schema)
) {
$this_sql_query = 'TRUNCATE TABLE '
- . PhpMyAdmin\Util::backquote($GLOBALS['table']);
+ . Util::backquote($GLOBALS['table']);
$truncate_table_url_params = array_merge(
$url_params,
array(
@@ -406,7 +409,7 @@ if (! (isset($db_is_system_schema) && $db_is_system_schema)) {
}
if (! (isset($db_is_system_schema) && $db_is_system_schema)) {
$this_sql_query = 'DROP TABLE '
- . PhpMyAdmin\Util::backquote($GLOBALS['table']);
+ . Util::backquote($GLOBALS['table']);
$drop_table_url_params = array_merge(
$url_params,
array(
@@ -428,7 +431,7 @@ if (! (isset($db_is_system_schema) && $db_is_system_schema)) {
);
}
$response->addHTML(
- PMA_getHtmlForDeleteDataOrTable(
+ Operations::getHtmlForDeleteDataOrTable(
$truncate_table_url_params,
$drop_table_url_params
)
@@ -440,7 +443,7 @@ if (Partition::havePartitioning()) {
// show the Partition maintenance section only if we detect a partition
if (! is_null($partition_names[0])) {
$response->addHTML(
- PMA_getHtmlForPartitionMaintenance($partition_names, $url_params)
+ Operations::getHtmlForPartitionMaintenance($partition_names, $url_params)
);
} // end if
} // end if
@@ -458,7 +461,7 @@ if ($cfgRelation['relwork'] && ! $pma_table->isEngine("INNODB")) {
if (! empty($foreign)) {
$response->addHTML(
- PMA_getHtmlForReferentialIntegrityCheck($foreign, $url_params)
+ Operations::getHtmlForReferentialIntegrityCheck($foreign, $url_params)
);
} // end if ($foreign)
diff --git a/test/libraries/PMA_operations_test.php b/test/classes/OperationsTest.php
similarity index 76%
rename from test/libraries/PMA_operations_test.php
rename to test/classes/OperationsTest.php
index 63af5ed2c9..159c67ed64 100644
--- a/test/libraries/PMA_operations_test.php
+++ b/test/classes/OperationsTest.php
@@ -5,17 +5,12 @@
*
* @package PhpMyAdmin-test
*/
+namespace PhpMyAdmin\Tests;
-/*
- * Include to test.
- */
-
+use PhpMyAdmin\Operations;
use PhpMyAdmin\Theme;
-$GLOBALS['server'] = 1;
-require_once 'libraries/operations.lib.php';
require_once 'libraries/relation.lib.php';
-
require_once 'libraries/database_interface.inc.php';
/**
@@ -23,7 +18,7 @@ require_once 'libraries/database_interface.inc.php';
*
* @package PhpMyAdmin-test
*/
-class PMA_Operations_Test extends PHPUnit_Framework_TestCase
+class OperationsTest extends \PHPUnit_Framework_TestCase
{
/**
* Set up global environment.
@@ -32,6 +27,7 @@ class PMA_Operations_Test extends PHPUnit_Framework_TestCase
*/
public function setup()
{
+ $GLOBALS['server'] = 1;
$GLOBALS['table'] = 'table';
$GLOBALS['db'] = 'db';
$GLOBALS['cfg'] = array(
@@ -49,7 +45,7 @@ class PMA_Operations_Test extends PHPUnit_Framework_TestCase
}
/**
- * Test for PMA_getHtmlForDatabaseComment
+ * Test for Operations::getHtmlForDatabaseComment
*
* @return void
*/
@@ -58,12 +54,12 @@ class PMA_Operations_Test extends PHPUnit_Framework_TestCase
$this->assertRegExp(
'/.*db_operations.php(.|[\n])*Database comment.*name="comment"([\n]|.)*/m',
- PMA_getHtmlForDatabaseComment("pma")
+ Operations::getHtmlForDatabaseComment("pma")
);
}
/**
- * Test for PMA_getHtmlForRenameDatabase
+ * Test for Operations::getHtmlForRenameDatabase
*
* @return void
*/
@@ -71,7 +67,7 @@ class PMA_Operations_Test extends PHPUnit_Framework_TestCase
{
$_REQUEST['db_collation'] = 'db1';
- $html = PMA_getHtmlForRenameDatabase("pma");
+ $html = Operations::getHtmlForRenameDatabase("pma");
$this->assertContains('db_operations.php', $html);
$this->assertRegExp(
'/.*db_rename.*Rename database to.*/',
@@ -80,7 +76,7 @@ class PMA_Operations_Test extends PHPUnit_Framework_TestCase
}
/**
- * Test for PMA_getHtmlForDropDatabaseLink
+ * Test for Operations::getHtmlForDropDatabaseLink
*
* @return void
*/
@@ -89,26 +85,26 @@ class PMA_Operations_Test extends PHPUnit_Framework_TestCase
$this->assertRegExp(
'/.*DROP.DATABASE.*db_operations.php.*Drop the database.*/',
- PMA_getHtmlForDropDatabaseLink("pma")
+ Operations::getHtmlForDropDatabaseLink("pma")
);
}
/**
- * Test for PMA_getHtmlForCopyDatabase
+ * Test for Operations::getHtmlForCopyDatabase
*
* @return void
*/
public function testGetHtmlForCopyDatabase()
{
$_REQUEST['db_collation'] = 'db1';
- $html = PMA_getHtmlForCopyDatabase("pma");
+ $html = Operations::getHtmlForCopyDatabase("pma");
$this->assertRegExp('/.*db_operations.php.*/', $html);
$this->assertRegExp('/.*db_copy.*/', $html);
$this->assertRegExp('/.*Copy database to.*/', $html);
}
/**
- * Test for PMA_getHtmlForChangeDatabaseCharset
+ * Test for Operations::getHtmlForChangeDatabaseCharset
*
* @return void
*/
@@ -116,7 +112,7 @@ class PMA_Operations_Test extends PHPUnit_Framework_TestCase
{
$_REQUEST['db_collation'] = 'db1';
- $result = PMA_getHtmlForChangeDatabaseCharset("pma", "bookmark");
+ $result = Operations::getHtmlForChangeDatabaseCharset("pma", "bookmark");
$this->assertRegExp(
'/.*select_db_collation.*Collation.*/m', $result
);
@@ -126,7 +122,7 @@ class PMA_Operations_Test extends PHPUnit_Framework_TestCase
}
/**
- * Test for PMA_getHtmlForOrderTheTable
+ * Test for Operations::getHtmlForOrderTheTable
*
* @return void
*/
@@ -135,14 +131,14 @@ class PMA_Operations_Test extends PHPUnit_Framework_TestCase
$this->assertRegExp(
'/.*tbl_operations.php(.|[\n])*Alter table order by([\n]|.)*order_order.*/m',
- PMA_getHtmlForOrderTheTable(
+ Operations::getHtmlForOrderTheTable(
array(array('Field' => "column1"), array('Field' => "column2"))
)
);
}
/**
- * Test for PMA_getHtmlForTableRow
+ * Test for Operations::getHtmlForTableRow
*
* @return void
*/
@@ -151,12 +147,12 @@ class PMA_Operations_Test extends PHPUnit_Framework_TestCase
$this->assertEquals(
'
',
- PMA_getHtmlForTableRow("name", "lable", "value")
+ Operations::getHtmlForTableRow("name", "lable", "value")
);
}
/**
- * Test for PMA_getMaintainActionlink
+ * Test for Operations::getMaintainActionlink
*
* @return void
*/
@@ -165,7 +161,7 @@ class PMA_Operations_Test extends PHPUnit_Framework_TestCase
$this->assertRegExp(
'/.*href="sql.php.*post.*/',
- PMA_getMaintainActionlink(
+ Operations::getMaintainActionlink(
"post",
array("name" => 'foo', "value" => 'bar'),
array(),
@@ -175,7 +171,7 @@ class PMA_Operations_Test extends PHPUnit_Framework_TestCase
}
/**
- * Test for PMA_getHtmlForDeleteDataOrTable
+ * Test for Operations::getHtmlForDeleteDataOrTable
*
* @return void
*/
@@ -184,14 +180,14 @@ class PMA_Operations_Test extends PHPUnit_Framework_TestCase
$this->assertRegExp(
'/.*Delete data or table.*Empty the table.*Delete the table.*/m',
- PMA_getHtmlForDeleteDataOrTable(
+ Operations::getHtmlForDeleteDataOrTable(
array("truncate" => 'foo'), array("drop" => 'bar')
)
);
}
/**
- * Test for PMA_getDeleteDataOrTablelink
+ * Test for Operations::getDeleteDataOrTablelink
*
* @return void
*/
@@ -200,7 +196,7 @@ class PMA_Operations_Test extends PHPUnit_Framework_TestCase
$this->assertRegExp(
'/.*TRUNCATE.TABLE.foo.*id_truncate.*Truncate table.*/m',
- PMA_getDeleteDataOrTablelink(
+ Operations::getDeleteDataOrTablelink(
array("sql" => 'TRUNCATE TABLE foo'),
"TRUNCATE_TABLE",
"Truncate table",
@@ -210,13 +206,13 @@ class PMA_Operations_Test extends PHPUnit_Framework_TestCase
}
/**
- * Test for PMA_getHtmlForPartitionMaintenance
+ * Test for Operations::getHtmlForPartitionMaintenance
*
* @return void
*/
public function testGetHtmlForPartitionMaintenance()
{
- $html = PMA_getHtmlForPartitionMaintenance(
+ $html = Operations::getHtmlForPartitionMaintenance(
array("partition1", "partion2"),
array("param1" => 'foo', "param2" => 'bar')
);
@@ -226,7 +222,7 @@ class PMA_Operations_Test extends PHPUnit_Framework_TestCase
}
/**
- * Test for PMA_getHtmlForReferentialIntegrityCheck
+ * Test for Operations::getHtmlForReferentialIntegrityCheck
*
* @return void
*/
@@ -235,7 +231,7 @@ class PMA_Operations_Test extends PHPUnit_Framework_TestCase
$this->assertRegExp(
'/.*Check referential integrity.*href="sql.php(.|[\n])*/m',
- PMA_getHtmlForReferentialIntegrityCheck(
+ Operations::getHtmlForReferentialIntegrityCheck(
array(
array(
'foreign_db' => 'db1',
diff --git a/view_operations.php b/view_operations.php
index 529ee2cbb7..9eb54d5318 100644
--- a/view_operations.php
+++ b/view_operations.php
@@ -5,9 +5,12 @@
*
* @package PhpMyAdmin
*/
-use PhpMyAdmin\Table;
+use PhpMyAdmin\Message;
+use PhpMyAdmin\Operations;
use PhpMyAdmin\Response;
+use PhpMyAdmin\Table;
use PhpMyAdmin\Url;
+use PhpMyAdmin\Util;
/**
*
@@ -16,11 +19,6 @@ require_once './libraries/common.inc.php';
$pma_table = new Table($GLOBALS['table'], $GLOBALS['db']);
-/**
- * functions implementation for this script
- */
-require_once 'libraries/operations.lib.php';
-
/**
* Load JavaScript files
*/
@@ -39,7 +37,7 @@ $url_params['goto'] = $url_params['back'] = 'view_operations.php';
/**
* Updates if required
*/
-$_message = new PhpMyAdmin\Message;
+$_message = new Message;
$_type = 'success';
if (isset($_REQUEST['submitoptions'])) {
@@ -57,7 +55,7 @@ if (isset($_REQUEST['submitoptions'])) {
}
}
- $warning_messages = PMA_getWarningMessagesArray();
+ $warning_messages = Operations::getWarningMessagesArray();
}
if (isset($result)) {
@@ -79,7 +77,7 @@ if (isset($result)) {
$_message->isError(true);
unset($warning_messages);
}
- echo PhpMyAdmin\Util::getMessage(
+ echo Util::getMessage(
$_message, $sql_query, $_type
);
}
@@ -120,7 +118,7 @@ $url_params['back'] = 'view_operations.php';
$drop_view_url_params = array_merge(
$url_params,
array(
- 'sql_query' => 'DROP VIEW ' . PhpMyAdmin\Util::backquote(
+ 'sql_query' => 'DROP VIEW ' . Util::backquote(
$GLOBALS['table']
),
'goto' => 'tbl_structure.php',
@@ -138,7 +136,7 @@ echo '