can_share = true;
$this->can_refresh = true;
global $wpdb;
if ( isset( $args['schema_name'] ) ) {
$schema_name = $args['schema_name'];
if ( 'wpdb' === $schema_name ) {
$schema_name = $wpdb->dbname;
$this->title = "WordPress database ({$schema_name})";
} else {
$this->title = "Remote database {$schema_name}";
}
} else {
$schema_name = $wpdb->dbname;
$this->title = "WordPress database ({$schema_name})";
}
$this->id = 'dbms' . $this->widget_id . str_replace( ':', '_', $schema_name );
$this->schema_name = $schema_name;
$info = static::get_data( $schema_name );
$dbms_status = "\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t| Host | \n\t\t\t\t\t\t\t\t{$info['hostname']} | \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t| Port | \n\t\t\t\t\t\t\t\t{$info['port']} | \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t| SSL | \n\t\t\t\t\t\t\t\t{$info['ssl']} | \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t| Version | \n\t\t\t\t\t\t\t\t{$info['version']} {$info['version_comment']} | \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t| Compiled For | \n\t\t\t\t\t\t\t\t{$info['version_compile_os']} ({$info['version_compile_machine']}) | \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t| Uptime | \n\t\t\t\t\t\t\t\t{$info['uptime']} | \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t| Server Directories | \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t| Base Directory | \n\t\t\t\t\t\t\t\t{$info['basedir']} | \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t| Data Directory | \n\t\t\t\t\t\t\t\t{$info['datadir']} | \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t| Plugins Directory | \n\t\t\t\t\t\t\t\t{$info['plugin_dir']} | \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tTmp Directory
| \n\t\t\t\t\t\t\t\t{$info['tmpdir']} | \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t| Log Files | \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t| Error Log | \n\t\t\t\t\t\t\t\t{$info['log_error']} [ON] | \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t| General Log | \n\t\t\t\t\t\t\t\t{$info['general_log_file']} [{$info['general_log']}] | \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t| Slow Query Log | \n\t\t\t\t\t\t\t\t{$info['slow_query_log_file']} [{$info['slow_query_log']}] | \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t";
$this->content = $dbms_status;
}
/**
* DBMS widget shortcode
*
* @param WPDA_Widget_Dbms $widget Widget.
* @return void
*/
public function do_shortcode( $widget ) {
}
/**
* Embed DBMS widget
*
* @param WPDA_Widget_Dbms $widget Widget.
* @param string $target_element HTML element id.
* @return void
*/
public function do_embed( $widget, $target_element ) {
}
/**
* DBMS widget javascript code
*
* @param boolean $is_backend Running in back-end.
* @return void
*/
protected function js( $is_backend = true ) {
?>
var action = "wpda_widget_dbms_refresh";
var args_vars = {};
args_vars.wpda_name = "name );
?>";
args_vars.wp_nonce = "wp_nonce );
?>";
args_vars.wpda_sonce = "";
args_vars.wpda_action = "vars";
args_vars.wpda_caller = "";
console.log(args_vars);
var args_status = Object.assign({}, args_vars);
args_status.wpda_action = "status";
var args_info = Object.assign({}, args_vars);
args_info.wpda_action = "info";
setTimeout(waitForJUI_id );
?>, 1000);
function waitForJUI_id );
?>() {
if (window.jQuery && typeof jQuery.ui!=="undefined" && jQuery("#id );
?>")) {
jQuery("#id );
?>").tabs();
// console.log("jQuery UI loaded...");
} else {
setTimeout(waitForJUI_id );
?>, 1000);
console.log("Waiting for jQuery UI to be loaded...");
}
}
jQuery("#id );
?> :nth-child(2)").on("click", function() {
getDbmsVars(
jQuery("#id );
?>-2"),
action,
args_vars
);
});
jQuery("#id );
?> :nth-child(3)").on("click", function() {
getDbmsVars(
jQuery("#id );
?>-3"),
action,
args_status
);
});
jQuery("#id );
?>-dir").on("click", function(e) {
toggleIcon(jQuery(this));
jQuery(this).closest("tbody").find(".dir").toggle();
});
jQuery("#id );
?>-log").on("click", function() {
toggleIcon(jQuery(this));
jQuery(this).closest("tbody").find(".log").toggle();
});
$panel_name,
'schema_name' => $panel_dbms,
'column' => $panel_column,
'position' => $column_position,
'widget_id' => $widget_sequence_nr,
));
WPDA::sent_header( 'text/html; charset=UTF-8' );
echo $wdg->container();
// phpcs:ignore WordPress.Security.EscapeOutput
wp_die();
}
/**
* Refresh widget via ajax
*
* @return void
*/
public static function refresh() {
$is_header_send = false;
$schema_name = null;
$widget_name = ( isset( $_POST['wpda_name'] ) ? sanitize_text_field( wp_unslash( $_POST['wpda_name'] ) ) : null );
if ( !$is_header_send ) {
WPDA::sent_header( 'application/json' );
}
if ( !isset( $_REQUEST['wpda_action'] ) ) {
// phpcs:ignore WordPress.Security.NonceVerification
echo static::msg( 'ERROR', 'Invalid arguments' );
// phpcs:ignore WordPress.Security.EscapeOutput
wp_die();
}
if ( null === $schema_name ) {
$widgets = get_user_meta( WPDA::get_current_user_id(), WPDA_Dashboard::USER_DASHBOARD );
$widget_found = false;
foreach ( $widgets as $widget ) {
if ( isset( $widget[$widget_name] ) ) {
$schema_name = $widgets[$widget_name]['dbsDbms'];
$widget_found = true;
}
}
if ( !$widget_found ) {
echo static::msg( 'ERROR', 'Invalid arguments' );
// phpcs:ignore WordPress.Security.EscapeOutput
wp_die();
}
}
switch ( $_REQUEST['wpda_action'] ) {
// phpcs:ignore WordPress.Security.NonceVerification
case 'vars':
static::get_vars( $schema_name );
break;
case 'status':
static::get_status( $schema_name );
break;
case 'info':
static::get_info( $schema_name );
break;
default:
echo static::msg( 'ERROR', 'Invalid arguments' );
// phpcs:ignore WordPress.Security.EscapeOutput
wp_die();
}
}
/**
* Get DBMS data
*
* @param string $schema_name Database schema name.
* @return array
*/
protected static function get_data( $schema_name ) {
return array(
'hostname' => WPDA::get_dbms_var( 'hostname', $schema_name ),
'ssl' => WPDA::get_dbms_var( 'have_ssl', $schema_name ),
'port' => WPDA::get_dbms_var( 'port', $schema_name ),
'version' => WPDA::get_dbms_var( 'version', $schema_name ),
'version_comment' => WPDA::get_dbms_var( 'version_comment', $schema_name ),
'version_compile_os' => WPDA::get_dbms_var( 'version_compile_os', $schema_name ),
'version_compile_machine' => WPDA::get_dbms_var( 'version_compile_machine', $schema_name ),
'uptime' => WPDA::secondsToTime( WPDA::get_dbms_global( 'uptime', $schema_name ) ),
'basedir' => WPDA::get_dbms_var( 'basedir', $schema_name ),
'datadir' => WPDA::get_dbms_var( 'datadir', $schema_name ),
'plugin_dir' => WPDA::get_dbms_var( 'plugin_dir', $schema_name ),
'tmpdir' => WPDA::get_dbms_var( 'tmpdir', $schema_name ),
'log_error' => WPDA::get_dbms_var( 'log_error', $schema_name ),
'general_log' => WPDA::get_dbms_var( 'general_log', $schema_name ),
'general_log_file' => WPDA::get_dbms_var( 'general_log_file', $schema_name ),
'slow_query_log' => WPDA::get_dbms_var( 'slow_query_log', $schema_name ),
'slow_query_log_file' => WPDA::get_dbms_var( 'slow_query_log_file', $schema_name ),
);
}
/**
* Get DBMS vars
*
* @param string $schema_name Database schema name.
* @return void
*/
protected static function get_vars( $schema_name ) {
$vars = WPDA::get_dbms_var( null, $schema_name );
$json = array();
foreach ( $vars as $var ) {
$json[$var[0]] = $var[1];
}
echo json_encode( $json );
// phpcs:ignore - 8.1 proof
wp_die();
}
/**
* Get DBMS status
*
* @param string $schema_name Database schema name.
* @return void
*/
protected static function get_status( $schema_name ) {
$vars = WPDA::get_dbms_global( null, $schema_name );
$json = array();
foreach ( $vars as $var ) {
$json[$var[0]] = $var[1];
}
echo json_encode( $json );
// phpcs:ignore - 8.1 proof
wp_die();
}
/**\
* Get DBMS info
*
* @param string $schema_name Database schema name.
* @return void
*/
protected static function get_info( $schema_name ) {
$schema_name = sanitize_text_field( wp_unslash( $_REQUEST['wpda_schemaname'] ) );
// phpcs:ignore - 8.1 proof
echo json_encode( static::get_data( $schema_name ) );
// phpcs:ignore - 8.1 proof
wp_die();
}
}