diff --git a/pandora_console/extensions/db_status.php b/pandora_console/extensions/db_status.php
new file mode 100755
index 0000000000..447fcf13da
--- /dev/null
+++ b/pandora_console/extensions/db_status.php
@@ -0,0 +1,240 @@
+";
+
+ echo "
";
+
+ echo "";
+ html_print_input_hidden('db_status_execute', 1);
+ html_print_submit_button(__('Execute Test'), 'submit', false, 'class="sub"');
+ echo "
";
+
+ echo "";
+
+ if ($db_status_execute) {
+ extension_db_status_execute_checks($db_user, $db_password,
+ $db_host, $db_name);
+ }
+}
+
+
+function extension_db_status_execute_checks($db_user, $db_password, $db_host, $db_name) {
+ global $config;
+
+ $connection_system = $config['dbconnection'];
+
+ // Avoid SQL injection
+ $db_name = io_safe_output($db_name);
+ $db_name = str_replace(';', ' ', $db_name);
+ $db_name = explode(" ", $db_name);
+ $db_name = $db_name[0];
+
+ $connection_test = mysql_connect ($db_host, $db_user, $db_password);
+
+ if (!$connection_test) {
+ ui_print_error_message(
+ __('Unsuccessful connected to the DB'));
+ }
+ else {
+ $create_db = mysql_query ("CREATE DATABASE `$db_name`");
+
+ if (!$create_db) {
+ ui_print_error_message(
+ __('Unsuccessful created the testing DB'));
+ }
+ else {
+ mysql_select_db($db_name, $connection_test);
+
+ $install_tables = extension_db_status_execute_sql_file(
+ $config['homedir'] . "/pandoradb.sql",
+ $connection_test);
+
+ if (!$install_tables) {
+ ui_print_error_message(
+ __('Unsuccessful installed tables into the testing DB'));
+ }
+ else {
+ if (enterprise_installed()) {
+ $install_tables_enterprise =
+ extension_db_status_execute_sql_file(
+ $config['homedir'] . "/enterprise/pandoradb.sql",
+ $connection_test);
+
+ if (!$install_tables_enterprise) {
+ ui_print_error_message(
+ __('Unsuccessful installed enterprise tables into the testing DB'));
+ }
+ }
+
+ extension_db_check_tables_differences(
+ $connection_test,
+ $connection_system,
+ $db_name,
+ $config['dbname']);
+ //extension_db_check_data_differences();
+ }
+
+ mysql_select_db($db_name, $connection_test);
+ mysql_query ("DROP DATABASE IF EXISTS `$db_name`");
+ }
+ }
+}
+
+function extension_db_check_tables_differences($connection_test,
+ $connection_system, $db_name_test, $db_name_system) {
+
+ global $config;
+
+ // --------- Check the tables --------------------------------------
+ $result = mysql_query("SHOW TABLES");
+ $tables_test = array();
+ while ($row = mysql_fetch_array ($result)) {
+ $tables_test[] = $row[0];
+ }
+ mysql_free_result ($result);
+ $tables_test = array_merge($tables_test,
+ extension_db_status_extension_tables());
+
+
+ mysql_select_db($db_name_system, $connection_system);
+ $result = mysql_query("SHOW TABLES", $connection_system);
+ $tables_system = array();
+ while ($row = mysql_fetch_array ($result)) {
+ $tables_system[] = $row[0];
+ }
+ mysql_free_result ($result);
+
+ $diff_tables = array_diff($tables_system, $tables_test);
+
+ html_debug_print($tables_test);
+ html_debug_print($tables_system);
+ html_debug_print($diff_tables);
+
+ ui_print_result_message(
+ empty($diff_tables),
+ __('Successful the DB Pandora has all tables'),
+ __('Unsuccessful the DB Pandora has not all tables. The tables lost are (%s)',
+ implode(", ", $diff_tables)));
+
+ // --------------- Check the fields -------------------------------
+
+ //~ mysql_select_db($db_name, $connection);
+ //~ foreach ($tables_system as $table) {
+ //~ $result = mysql_query("EXPLAIN " . $table);
+ //~
+ //~ $fields_system = array();
+ //~ while ($row = mysql_fetch_array ($result)) {
+ //~ $fields_system[] = $row[0];
+ //~ }
+ //~ mysql_free_result ($result);
+ //~
+ //~ $result = mysql_query("EXPLAIN " . $table);
+ //~
+ //~ $fields_system = array();
+ //~ while ($row = mysql_fetch_array ($result)) {
+ //~ $fields_system[] = $row[0];
+ //~ }
+ //~ mysql_free_result ($result);
+ //~ }
+
+
+}
+
+function extension_db_status_execute_sql_file($url, $connection) {
+ if (file_exists($url)) {
+ $file_content = file($url);
+ $query = "";
+ foreach ($file_content as $sql_line) {
+ if (trim($sql_line) != "" && strpos($sql_line, "--") === false) {
+ $query .= $sql_line;
+ if (preg_match("/;[\040]*\$/", $sql_line)) {
+ if (!$result = mysql_query($query, $connection)) {
+ echo mysql_error(); //Uncomment for debug
+ echo "
$query
";
+ return 0;
+ }
+ $query = "";
+ }
+ }
+ }
+ return 1;
+ }
+ else
+ return 0;
+}
+
+extensions_add_godmode_function('extension_db_status');
+extensions_add_godmode_menu_option(__('DB Status'), 'PM', 'gdbman', null, "v1r1");
+?>
\ No newline at end of file