Skip to content

Commit 8a19f4c

Browse files
authored
Merge pull request #53 from PostgreSQL-For-Wordpress/mb-fix-install
Migrate install rewriting to new rewriters
2 parents 3754ae3 + ed00779 commit 8a19f4c

14 files changed

Lines changed: 569 additions & 388 deletions

pg4wp/core.php

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
*/
1111

1212
// This is required by class-wpdb so we must load it first
13+
require_once ABSPATH . '/wp-includes/version.php';
1314
require_once ABSPATH . '/wp-includes/cache.php';
1415
require_once ABSPATH . '/wp-includes/l10n.php';
1516

@@ -20,39 +21,31 @@ function wpsql_is_resource($object)
2021
}
2122
}
2223

23-
// Logs are put in the pg4wp directory
24-
define( 'PG4WP_LOG', PG4WP_ROOT.'/logs/');
25-
// Check if the logs directory is needed and exists or create it if possible
26-
if( (PG4WP_DEBUG || PG4WP_LOG_ERRORS) &&
27-
!file_exists( PG4WP_LOG) &&
28-
is_writable(dirname( PG4WP_LOG)))
29-
mkdir( PG4WP_LOG);
30-
3124
// Load the driver defined in 'db.php'
32-
require_once( PG4WP_ROOT.'/driver_'.DB_DRIVER.'.php');
25+
require_once(PG4WP_ROOT . '/driver_' . DB_DRIVER . '.php');
3326

3427
// This loads up the wpdb class applying appropriate changes to it
3528
$replaces = array(
36-
'define( ' => '// define( ',
37-
'class wpdb' => 'class wpdb2',
38-
'new wpdb' => 'new wpdb2',
39-
'mysql_' => 'wpsql_',
40-
'is_resource' => 'wpsql_is_resource',
41-
'<?php' => '',
42-
'?>' => '',
29+
'define( ' => '// define( ',
30+
'class wpdb' => 'class wpdb2',
31+
'new wpdb' => 'new wpdb2',
32+
'mysql_' => 'wpsql_',
33+
'is_resource' => 'wpsql_is_resource',
34+
'<?php' => '',
35+
'?>' => '',
4336
);
4437

4538
// Ensure class uses the replaced mysql_ functions rather than mysqli_
4639
if (!defined('WP_USE_EXT_MYSQL')) {
47-
define('WP_USE_EXT_MYSQL', true);
40+
define('WP_USE_EXT_MYSQL', true);
4841
}
4942
if (WP_USE_EXT_MYSQL != true) {
50-
throw new \Exception("PG4SQL CANNOT BE ENABLED WITH MYSQLI, REMOVE ANY WP_USE_EXT_MYSQL configuration");
43+
throw new \Exception("PG4SQL CANNOT BE ENABLED WITH MYSQLI, REMOVE ANY WP_USE_EXT_MYSQL configuration");
5144
}
5245

5346
eval(str_replace(array_keys($replaces), array_values($replaces), file_get_contents(ABSPATH . '/wp-includes/class-wpdb.php')));
5447

5548
// Create wpdb object if not already done
56-
if (! isset($wpdb) && defined('DB_USER')) {
57-
$wpdb = new wpdb2( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST );
58-
}
49+
if (!isset($wpdb) && defined('DB_USER')) {
50+
$wpdb = new wpdb2(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
51+
}

pg4wp/db.php

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,25 @@
3636

3737
// This defines the directory where PG4WP files are loaded from
3838
// 3 places checked : wp-content, wp-content/plugins and the base directory
39-
if(file_exists(ABSPATH . '/wp-content/pg4wp')) {
40-
define('PG4WP_ROOT', ABSPATH . '/wp-content/pg4wp');
41-
} elseif(file_exists(ABSPATH . '/wp-content/plugins/pg4wp')) {
42-
define('PG4WP_ROOT', ABSPATH . '/wp-content/plugins/pg4wp');
43-
} elseif(file_exists(ABSPATH . '/pg4wp')) {
44-
define('PG4WP_ROOT', ABSPATH . '/pg4wp');
39+
if(file_exists(ABSPATH . 'wp-content/pg4wp')) {
40+
define('PG4WP_ROOT', ABSPATH . 'wp-content/pg4wp');
41+
} elseif(file_exists(ABSPATH . 'wp-content/plugins/pg4wp')) {
42+
define('PG4WP_ROOT', ABSPATH . 'wp-content/plugins/pg4wp');
43+
} elseif(file_exists(ABSPATH . 'pg4wp')) {
44+
define('PG4WP_ROOT', ABSPATH . 'pg4wp');
4545
} else {
4646
die('PG4WP file directory not found');
4747
}
4848

49+
// Logs are put in the pg4wp directory
50+
if (!defined('PG4WP_LOG')) {
51+
define('PG4WP_LOG', PG4WP_ROOT . '/logs/');
52+
}
53+
// Check if the logs directory is needed and exists or create it if possible
54+
if((PG4WP_DEBUG || PG4WP_LOG_ERRORS) && !file_exists(PG4WP_LOG) && is_writable(dirname(PG4WP_LOG))) {
55+
mkdir(PG4WP_LOG);
56+
}
57+
4958
// Here happens all the magic
5059
require_once(PG4WP_ROOT . '/core.php');
5160
} // Protection against multiple loading

pg4wp/driver_mysql.php

Lines changed: 80 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -9,43 +9,83 @@
99
* Provides a driver for MySQL
1010
* This file remaps all wpsql_* calls to mysql_* original name
1111
*/
12-
function wpsql_num_rows($result)
13-
{ return mysql_num_rows($result); }
14-
function wpsql_numrows($result)
15-
{ return mysql_num_rows($result); }
16-
function wpsql_num_fields($result)
17-
{ return mysql_num_fields($result); }
18-
function wpsql_fetch_field($result)
19-
{ return mysql_fetch_field($result); }
20-
function wpsql_fetch_object($result)
21-
{ return mysql_fetch_object($result); }
22-
function wpsql_free_result($result)
23-
{ return mysql_free_result($result); }
24-
function wpsql_affected_rows()
25-
{ return mysql_affected_rows(); }
26-
function wpsql_fetch_row($result)
27-
{ return mysql_fetch_row($result); }
28-
function wpsql_data_seek($result, $offset)
29-
{ return mysql_data_seek( $result, $offset ); }
30-
function wpsql_error()
31-
{ return mysql_error();}
32-
function wpsql_fetch_assoc($result)
33-
{ return mysql_fetch_assoc($result); }
34-
function wpsql_escape_string($s)
35-
{ return mysql_real_escape_string($s); }
36-
function wpsql_real_escape_string($s,$c=NULL)
37-
{ return mysql_real_escape_string($s,$c); }
38-
function wpsql_get_server_info()
39-
{ return mysql_get_server_info(); }
40-
function wpsql_result($result, $i, $fieldname)
41-
{ return mysql_result($result, $i, $fieldname); }
42-
function wpsql_connect($dbserver, $dbuser, $dbpass)
43-
{ return mysql_connect($dbserver, $dbuser, $dbpass); }
44-
function wpsql_fetch_array($result)
45-
{ return mysql_fetch_array($result); }
46-
function wpsql_select_db($dbname, $connection_id)
47-
{ return mysql_select_db($dbname, $connection_id); }
48-
function wpsql_query($sql)
49-
{ return mysql_query($sql); }
50-
function wpsql_insert_id($table)
51-
{ return mysql_insert_id($table); }
12+
function wpsql_num_rows($result)
13+
{
14+
return mysql_num_rows($result);
15+
}
16+
function wpsql_numrows($result)
17+
{
18+
return mysql_num_rows($result);
19+
}
20+
function wpsql_num_fields($result)
21+
{
22+
return mysql_num_fields($result);
23+
}
24+
function wpsql_fetch_field($result)
25+
{
26+
return mysql_fetch_field($result);
27+
}
28+
function wpsql_fetch_object($result)
29+
{
30+
return mysql_fetch_object($result);
31+
}
32+
function wpsql_free_result($result)
33+
{
34+
return mysql_free_result($result);
35+
}
36+
function wpsql_affected_rows()
37+
{
38+
return mysql_affected_rows();
39+
}
40+
function wpsql_fetch_row($result)
41+
{
42+
return mysql_fetch_row($result);
43+
}
44+
function wpsql_data_seek($result, $offset)
45+
{
46+
return mysql_data_seek($result, $offset);
47+
}
48+
function wpsql_error()
49+
{
50+
return mysql_error();
51+
}
52+
function wpsql_fetch_assoc($result)
53+
{
54+
return mysql_fetch_assoc($result);
55+
}
56+
function wpsql_escape_string($s)
57+
{
58+
return mysql_real_escape_string($s);
59+
}
60+
function wpsql_real_escape_string($s, $c = null)
61+
{
62+
return mysql_real_escape_string($s, $c);
63+
}
64+
function wpsql_get_server_info()
65+
{
66+
return mysql_get_server_info();
67+
}
68+
function wpsql_result($result, $i, $fieldname)
69+
{
70+
return mysql_result($result, $i, $fieldname);
71+
}
72+
function wpsql_connect($dbserver, $dbuser, $dbpass)
73+
{
74+
return mysql_connect($dbserver, $dbuser, $dbpass);
75+
}
76+
function wpsql_fetch_array($result)
77+
{
78+
return mysql_fetch_array($result);
79+
}
80+
function wpsql_select_db($dbname, $connection_id)
81+
{
82+
return mysql_select_db($dbname, $connection_id);
83+
}
84+
function wpsql_query($sql)
85+
{
86+
return mysql_query($sql);
87+
}
88+
function wpsql_insert_id($table)
89+
{
90+
return mysql_insert_id($table);
91+
}

pg4wp/driver_pgsql.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ function pg4wp_init()
174174
$result = pg_query($connection, $sql);
175175

176176
if ((PG4WP_DEBUG || PG4WP_LOG_ERRORS) && $result === false) {
177-
$error = pg_last_error();
177+
$error = pg_last_error($connection);
178178
error_log("[" . microtime(true) . "] Error creating MySQL-compatible field function: $error\n", 3, PG4WP_LOG . 'pg4wp_errors.log');
179179
}
180180
}
@@ -558,4 +558,4 @@ function wpsql_get_server_info()
558558
function wpsql_get_client_info()
559559
{
560560
return '8.0.35'; // Just want to fool wordpress ...
561-
}
561+
}

0 commit comments

Comments
 (0)