/** * Pick the adapter to be used for performing the actual queries. * * @since 3.6.0 */ private function set_driver() { $driver = WP_DB_Driver_Config::get_current_driver(); if (!$driver) { wp_load_translations_early(); // Load custom DB error template, if present. if (file_exists(WP_CONTENT_DIR . '/db-error.php')) { require_once WP_CONTENT_DIR . '/db-error.php'; die; } $this->bail(__("\n\t\t\t\t<h1>No database drivers found</h1>.\n\t\t\t\t<p>WordPress requires the mysql, mysqli, or pdo_mysql extension to talk to your database.</p>\n\t\t\t\t<p>If you're unsure what these terms mean you should probably contact your host. If you still need help you can always visit the <a href='https://wordpress.org/support/'>WordPress Support Forums</a>.</p>\n\t\t\t"), 'db_connect_fail'); return false; } else { $this->dbh = new $driver(); } return true; }
public function page_overview() { if (!current_user_can('manage_options')) { wp_die(__('You do not have sufficient permissions to access this page.')); } // Load if our custom wpdb wasn't loaded yet. require_once dirname(__FILE__) . '/inc/config.php'; require_once dirname(__FILE__) . '/inc/interface-wp-db-driver.php'; echo '<div class="wrap">'; screen_icon('options-general'); echo '<h2>' . esc_html(get_admin_page_title()) . '</h2>'; // Don't force a specific file system method $method = ''; // Define any extra pass-thru fields (none) $form_fields = array(); // Define the URL to post back to (this one) $url = $_SERVER['REQUEST_URI']; // Install flags $do_install = isset($_REQUEST['_wpnonce']) && wp_verify_nonce($_REQUEST['_wpnonce'], 'install-db-nonce'); $do_uninstall = isset($_REQUEST['_wpnonce']) && wp_verify_nonce($_REQUEST['_wpnonce'], 'uninstall-db-nonce'); if (is_super_admin() && ($do_install || $do_uninstall)) { // Ask for credentials, if necessary if (false === ($creds = request_filesystem_credentials($url, $method, false, false, $form_fields))) { return true; } elseif (!WP_Filesystem($creds)) { // The credentials are bad, ask again request_filesystem_credentials($url, $method, true, false, $form_fields); return true; } else { // Once we get here, we should have credentials, do the file system operations global $wp_filesystem; // Install if ($do_install) { if ($wp_filesystem->put_contents($wp_filesystem->wp_content_dir() . '/db.php', file_get_contents(dirname(__FILE__) . '/wp-content/db.php'), FS_CHMOD_FILE)) { echo '<div class="updated"><p><strong>' . __('db.php has been installed.', 'wp-db-driver') . '</strong></p></div>'; } else { echo '<div class="error"><p><strong>' . __("db.php couldn't be installed. Please try is manually", 'wp-db-driver') . '</strong></p></div>'; } // Remove } elseif ($do_uninstall) { if ($wp_filesystem->delete($wp_filesystem->wp_content_dir() . '/db.php')) { echo '<div class="updated"><p><strong>' . __('db.php has been removed.', 'wp-db-driver') . '</strong></p></div>'; } else { echo '<div class="error"><p><strong>' . __("db.php couldn't be removed. Please try is manually", 'wp-db-driver') . '</strong></p></div>'; } } } } echo '<div class="tool-box"><h3 class="title">' . __('Current driver', 'wp-db-driver') . '</h3></div>'; if (file_exists(WP_CONTENT_DIR . '/db.php')) { $crc1 = md5_file(dirname(__FILE__) . '/wp-content/db.php'); $crc2 = md5_file(WP_CONTENT_DIR . '/db.php'); if ($crc1 === $crc2) { echo '<form method="post" style="display: inline;">'; wp_nonce_field('uninstall-db-nonce'); echo '<p><strong>' . call_user_func(array(WP_DB_Driver_Config::get_current_driver(), 'get_name')) . '</strong> '; if (function_exists('mysql') && is_super_admin()) { submit_button(__('Remove', 'wp-db-driver'), 'primary', 'install-db-php', false); } echo '</p>'; echo '</form>'; } else { echo '<form method="post" style="display: inline;">'; wp_nonce_field('install-db-nonce'); echo '<p><strong>' . __('Another db.php is installed', 'wp-db-driver') . '</strong> '; if (is_super_admin()) { submit_button(__('Install', 'wp-db-driver'), 'primary', 'install-db-php', false); } echo '</p>'; echo '</form>'; } } else { echo '<form method="post" style="display: inline;">'; wp_nonce_field('install-db-nonce'); echo '<p><strong>' . __('No custom db.php installed', 'wp-db-driver') . '</strong> '; if (is_super_admin()) { submit_button(__('Install', 'wp-db-driver'), 'primary', 'install-db-php', false); } echo '</p>'; echo '</form>'; } echo '<div class="tool-box"><h3 class="title">' . __('Supported drivers', 'wp-db-driver') . '</h3></div>'; echo '<table class="form-table">'; $drivers = WP_DB_Driver_Config::get_drivers(); foreach ($drivers as $driver => $file) { include_once $file; echo '<tr>'; echo '<th>' . call_user_func(array($driver, 'get_name')) . '</th>'; echo '<td>'; if (call_user_func(array($driver, 'is_supported'))) { _e('Installed', 'wp-db-driver'); } else { _e('Not installed', 'wp-db-driver'); } echo '</td>'; echo '</tr>'; } echo '</table>'; }