diff -u'rNF^function' drupalvb/drupalvb.inc drupalvb_/drupalvb.inc --- drupalvb/drupalvb.inc 2006-10-09 15:58:41.000000000 +0300 +++ drupalvb_/drupalvb.inc 2006-10-07 18:31:00.000000000 +0300 @@ -2,7 +2,7 @@ // $Id$ //YOUR license number for cookies -define('VB_LICENSE', 'VBF6FC6A2E'); +define('VB_LICENSE', 'VBF492C4C0'); //drupalvb_msg defines define('DVBERROR', 'error', true); @@ -120,7 +120,7 @@ function drupalvb_clear_cookies() { } function _drupalvb_create_vb_user($username, $password, $email){ //Double check to make sure we're not duplicating an entry... - $result = db_query("SELECT userid FROM user WHERE username = '$username'"); + $result = db_query(_drupalvb_prefix_db("SELECT userid FROM {user} WHERE username = '$username'")); if (db_fetch_array($result)) { //The user existed somehow, so send the error and kick it out with a fail @@ -134,12 +134,14 @@ function _drupalvb_create_vb_user($usern $salt = ''; for ($i = 0; $i < 3; $i++) $salt .= chr(rand(32, 126)); + + //die("$password - $salt // ".md5($password) . "$salt // ".md5(md5($password).$salt)); $passhash = md5($password . $salt); $passdate = date('Y-m-d H:i:s', time()); $joindate = time(); //Attempt to grab the user title from the database - $result = db_query("SELECT title FROM usertitle WHERE minposts = 0"); + $result = db_query(_drupalvb_prefix_db("SELECT title FROM {usertitle} WHERE minposts = 0")); if ($resarray = db_fetch_array($result)) $usertitle = $resarray['title']; @@ -158,18 +160,18 @@ function _drupalvb_create_vb_user($usern $usergroupid = variable_get('drupalvb_default_usergroup', '2'); //Set up the insertion query - $query = "INSERT INTO user (username, usergroupid, password, passworddate, " + $query = "INSERT INTO {user} (username, usergroupid, password, passworddate, " . "usertitle, email, salt, showvbcode, languageid, timezoneoffset, posts, " . "joindate, lastvisit, lastactivity, options) " . "VALUES ('$username', '$usergroupid', '$passhash', '$passdate', " . "'$usertitle', '$email', '$salt', '1', '1', '$timezone', '0', " . "'$joindate', '$joindate', '$joindate', '$options');"; - $result = db_query($query); + $result = db_query(_drupalvb_prefix_db($query)); $userid = mysql_insert_id(); - db_query("INSERT INTO userfield VALUES (" . $userid . ", NULL, '', '', '', '')"); - db_query("INSERT INTO usertextfield VALUES (" . $userid . ", NULL, NULL, NULL, NULL, '', NULL, NULL)"); + db_query(_drupalvb_prefix_db("INSERT INTO {userfield} VALUES (" . $userid . ", NULL, '', '', '', '')")); + db_query(_drupalvb_prefix_db("INSERT INTO {usertextfield} VALUES (" . $userid . ", NULL, NULL, NULL, NULL, '', NULL, NULL)")); //Return true if the vB user was created successfully return true; @@ -180,6 +182,7 @@ function _drupalvb_update_vb_user($usern //Set up the necessary variables $setpass = ''; if($password != ''){ + //die($password . " $salt"); $passhash = md5($password . $salt); $passdate = date('Y-m-d H:i:s', time()); $setpass = "password='$passhash', passworddate='$passdate', salt='$salt', "; @@ -187,8 +190,8 @@ function _drupalvb_update_vb_user($usern $lastdate = time(); //Set up the insertion query - db_query("UPDATE user SET " . $setpass . "email='$email', lastactivity='$lastdate' " - . "WHERE username='$username'"); + db_query(_drupalvb_prefix_db("UPDATE {user} SET " . $setpass . "email='$email', lastactivity='$lastdate' " + . "WHERE username='$username'")); return; } @@ -205,10 +208,10 @@ function _drupalvb_get_users() { if (!db_set_active('vbulletin')) drupal_set_message('Refer to README.txt for database setup instructions.'); - $result = db_query("SELECT user.username, user.usergroupid, session.userid, " - . "session.lastactivity FROM session AS session LEFT JOIN " - . "user AS user ON (user.userid = session.userid) " - . "WHERE session.lastactivity > %d", $datecut); + $result = db_query(_drupalvb_prefix_db("SELECT user.username, user.usergroupid, session.userid, " + . "session.lastactivity FROM {session} AS session LEFT JOIN " + . "{user} AS user ON (user.userid = session.userid) " + . "WHERE session.lastactivity > %d"), $datecut); $userinfos = array(); @@ -239,8 +242,8 @@ function _drupalvb_get_posts($scope = 'l if (!db_set_active('vbulletin')) drupal_set_message('Refer to README.txt for database setup instructions.'); - $result = db_query("SELECT userid, username, lastvisit FROM user " - . "WHERE username = '%s'", $user->name); + $result = db_query(_drupalvb_prefix_db("SELECT userid, username, lastvisit FROM {user} " + . "WHERE username = '%s'"), $user->name); //Make sure a user is logged in to get their last visit and appropriate post count. if ($vb_user = db_fetch_array($result)) { @@ -249,7 +252,7 @@ function _drupalvb_get_posts($scope = 'l elseif ($scope == 'daily') $datecut = time() - 86400; - $result = db_query("SELECT postid FROM post WHERE dateline > %d", $datecut); + $result = db_query(_drupalvb_prefix_db("SELECT postid FROM {post} WHERE dateline > %d"), $datecut); $posts = db_num_rows($result); } else { @@ -268,7 +271,7 @@ function _drupalvb_get_usergroups() { return array('Usergroups not found'); } - $result = db_query("SELECT usergroupid, title FROM usergroup"); + $result = db_query(_drupalvb_prefix_db("SELECT usergroupid, title FROM {usergroup}")); $usergroups = array(); while ($data = db_fetch_object($result)) @@ -288,8 +291,8 @@ function _drupalvb_get_options() { drupal_set_message('Refer to README.txt for database setup instructions.'); return null; } - - $result = db_query("SELECT data FROM datastore WHERE title = 'options'"); +global $db_prefix; + $result = db_query(_drupalvb_prefix_db("SELECT data FROM {datastore} WHERE title = 'options'")); if ($data = db_fetch_object($result)) $options = unserialize($data->data); @@ -297,4 +300,16 @@ function _drupalvb_get_options() { db_set_active('default'); return $options; -} \ В конце файла нет новой строки +} + +function _drupalvb_prefix_db($sql) { + global $db_prefix; + + if(is_array($db_prefix)) { + if(array_key_exists('vbulletin', $db_prefix)) { + return strtr($sql, array('{' => $db_prefix['vbulletin'], '}' => '')); + } + } + + return $sql; +} diff -u'rNF^function' drupalvb/drupalvb.module drupalvb_/drupalvb.module --- drupalvb/drupalvb.module 2006-09-12 04:02:49.000000000 +0300 +++ drupalvb_/drupalvb.module 2006-10-07 17:44:00.000000000 +0300 @@ -139,8 +139,8 @@ function drupalvb_block($op='list', $del drupal_set_message('Refer to README.txt for database setup instructions.'); if ($delta > 0) { - $result = db_query("SELECT userid, username, usergroupid, usertitle, " - . "pmtotal, pmunread FROM user WHERE username = '%s'", + $result = db_query(_drupalvb_prefix_db("SELECT userid, username, usergroupid, usertitle, " + . "pmtotal, pmunread FROM {user} WHERE username = '%s'"), $user->name); $vb_user = db_fetch_array($result); } @@ -257,12 +257,12 @@ function drupalvb_block($op='list', $del switch (variable_get('drupalvb_block_0_type', 'threads')) { case 'threads': $query = "SELECT threadid, title, postusername AS username FROM " - . "thread WHERE lastpost >= %d ORDER BY lastpost DESC"; + . "{thread} WHERE lastpost >= %d ORDER BY lastpost DESC"; $list_title = "Recent Threads"; break; case 'posts': $query = "SELECT p.postid, p.title, p.threadid, p.username, " - . "t.title AS threadtitle FROM post AS p LEFT JOIN thread " + . "t.title AS threadtitle FROM {post} AS p LEFT JOIN {thread} " . "AS t ON(p.threadid = t.threadid) WHERE p.dateline >= %d " . "ORDER BY p.dateline DESC"; $list_title = "Recent Posts"; @@ -272,7 +272,7 @@ function drupalvb_block($op='list', $del if (!db_set_active('vbulletin')) drupal_set_message('Refer to README.txt for database setup instructions.'); - $result = db_query_range($query, $date_cut, 0, $num_items); + $result = db_query_range(_drupalvb_prefix_db($query), $date_cut, 0, $num_items); db_set_active('default'); @@ -331,7 +331,7 @@ function drupalvb_block($op='list', $del if (!db_set_active('vbulletin')) drupal_set_message('Refer to README.txt for database setup instructions.'); - $result = db_query("SELECT forumid, title, threadcount, replycount FROM forum"); + $result = db_query(_drupalvb_prefix_db("SELECT forumid, title, threadcount, replycount FROM {forum}")); // get total threads & posts from the forumcache while ($forum = db_fetch_array($result)) @@ -340,7 +340,7 @@ function drupalvb_block($op='list', $del $totalposts += $forum['replycount']; } - $result = db_query("SELECT data FROM datastore WHERE title = 'userstats'"); + $result = db_query(_drupalvb_prefix_db("SELECT data FROM {datastore} WHERE title = 'userstats'")); $data = db_fetch_array($result); $userstats = unserialize($data['data']); @@ -431,8 +431,8 @@ function drupalvb_user_login($user) { return; //Queries the vB user database to find a matching set of user data - $result = db_query("SELECT userid, usergroupid, membergroupids, username, " - . "password, salt FROM user WHERE username = '" . $user->name . "'"); + $result = db_query(_drupalvb_prefix_db("SELECT userid, usergroupid, membergroupids, username, " + . "password, salt FROM {user} WHERE username = '" . $user->name . "'")); //If one exists, then set up the cookies to mimic a vB login if ($userinfo = db_fetch_array($result)) { @@ -441,9 +441,9 @@ function drupalvb_user_login($user) { //If one doesn't exist, then create the proper entry in the vB database... then set the cookies. ;) else { drupal_set_message("Your user account for the forums has been generated."); - if (drupalvb_create_vb_user($user->name, $user->pass, $user->mail)) { - $result = db_query("SELECT userid, usergroupid, membergroupids, username, " - . "password, salt FROM user WHERE username = '" . $user->name . "'"); + if (_drupalvb_create_vb_user($user->name, $user->pass, $user->mail)) { + $result = db_query(_drupalvb_prefix_db("SELECT userid, usergroupid, membergroupids, username, " + . "password, salt FROM {user} WHERE username = '" . $user->name . "'")); $userinfo = db_fetch_array($result); _drupalvb_set_login_cookies($userinfo['userid'], $userinfo['password']); } @@ -468,8 +468,8 @@ function drupalvb_user_insert($edit) { return; if (_drupalvb_create_vb_user($edit['name'], $edit['pass'], $edit['mail'])) { - $result = db_query("SELECT userid, usergroupid, membergroupids, username, " - . "password, salt FROM user WHERE username = '" . $user->name . "'"); + $result = db_query(_drupalvb_prefix_db("SELECT userid, usergroupid, membergroupids, username, " + . "password, salt FROM {user} WHERE username = '" . $user->name . "'")); $userinfo = db_fetch_array($result); if($edit['name'] === $user->name) @@ -496,8 +496,8 @@ function drupalvb_user_update($edit_user return; //Queries the vB user database to find a matching set of user data - $result = db_query("SELECT userid, usergroupid, membergroupids, username, " - . "password, salt FROM user WHERE username = '" . $edit_user->name . "'"); + $result = db_query(_drupalvb_prefix_db("SELECT userid, usergroupid, membergroupids, username, " + . "password, salt FROM {user} WHERE username = '" . $edit_user->name . "'")); //If user exists, then change the user's data and the cookies to mimic a new vB login if ($userinfo = db_fetch_array($result)) { @@ -505,8 +505,8 @@ function drupalvb_user_update($edit_user //We don't want to set the cookies if someone besides the user has updated their info. if($edit_user->name === $user->name){ - $result = db_query("SELECT userid, usergroupid, membergroupids, username, " - . "password, salt FROM user WHERE username = '" . $edit_user->name . "'"); + $result = db_query(_drupalvb_prefix_db("SELECT userid, usergroupid, membergroupids, username, " + . "password, salt FROM {user} WHERE username = '" . $edit_user->name . "'")); $userinfo = db_fetch_array($result); _drupalvb_set_login_cookies($userinfo['userid'], $userinfo['password']); } @@ -515,8 +515,8 @@ function drupalvb_user_update($edit_user else { drupalvb_msg(null, "Your user account for the forums has been generated."); if (_drupalvb_create_vb_user($useredit->name, $edit['pass'], $edit['mail'], $vblink)) { - $result = db_query("SELECT userid, usergroupid, membergroupids, username, " - . "password, salt FROM user WHERE username = '" . $edit_user->name . "'"); + $result = db_query(_drupalvb_prefix_db("SELECT userid, usergroupid, membergroupids, username, " + . "password, salt FROM {user} WHERE username = '" . $edit_user->name . "'")); $userinfo = db_fetch_array($result); _drupalvb_set_login_cookies($userinfo['userid'], $userinfo['password']); } @@ -538,13 +538,13 @@ function drupalvb_user_logout($user) { return; //Grab the user's info. - $result = db_query("SELECT userid, usergroupid, membergroupids, username, " - . "password, salt FROM user WHERE username = '" . $user->name . "'"); + $result = db_query(_drupalvb_prefix_db("SELECT userid, usergroupid, membergroupids, username, " + . "password, salt FROM {user} WHERE username = '" . $user->name . "'")); //If user exists, then set the user's last activity time and clean them out of the session table. if ($userinfo = db_fetch_array($result)) { - db_query("UPDATE user SET lastvisit=" . time() . " WHERE username='" . $user->name . "'"); - db_query("DELETE FROM session WHERE userid='" . $userinfo['userid'] . "'"); + db_query(_drupalvb_prefix_db("UPDATE {user} SET lastvisit=" . time() . " WHERE username='" . $user->name . "'")); + db_query(_drupalvb_prefix_db("DELETE FROM {session} WHERE userid='" . $userinfo['userid'] . "'")); } //If the user doesn't exist... then how the heck did they log in?? else { @@ -564,15 +564,15 @@ function drupalvb_user_delete($user) { return; //Grab the user's info. - $result = db_query("SELECT userid, usergroupid, membergroupids, username, " - . "password, salt FROM user WHERE username = '" . $user->name . "'"); + $result = db_query(_drupalvb_prefix_db("SELECT userid, usergroupid, membergroupids, username, " + . "password, salt FROM {user} WHERE username = '" . $user->name . "'")); //If user exists, then clear them from the proper tables. if ($userinfo = db_fetch_array($result)) { - db_query("DELETE FROM session WHERE userid='" . $userinfo['userid'] . "'"); - db_query("DELETE FROM user WHERE userid='" . $userinfo['userid'] . "'"); - db_query("DELETE FROM userfield WHERE userid = '" . $userinfo['userid'] . "'"); - db_query("DELETE FROM usertextfield WHERE userid = '" . $userinfo['userid'] . "'"); + db_query(_drupalvb_prefix_db("DELETE FROM {session} WHERE userid='" . $userinfo['userid'] . "'")); + db_query(_drupalvb_prefix_db("DELETE FROM {user} WHERE userid='" . $userinfo['userid'] . "'")); + db_query(_drupalvb_prefix_db("DELETE FROM {userfield} WHERE userid = '" . $userinfo['userid'] . "'")); + db_query(_drupalvb_prefix_db("DELETE FROM {usertextfield} WHERE userid = '" . $userinfo['userid'] . "'")); } //If the user doesn't exist... then how the heck did they log in?? else { @@ -598,16 +598,16 @@ function drupalvb_private_messages() { if (!db_set_active('vbulletin')) drupal_set_message('Refer to README.txt for database setup instructions.'); - $result = db_query("SELECT userid, username FROM user WHERE username = '%s'", $user->name); + $result = db_query(_drupalvb_prefix_db("SELECT userid, username FROM {user} WHERE username = '%s'", $user->name)); //If user exists, then grab and display a list of PMs if ($vbulletin->userinfo = db_fetch_array($result)) { $query = "SELECT pm.pmid, pm.userid, pm.messageread, pmtext.fromusername, " . "pmtext.fromuserid, pmtext.title, pmtext.message, pmtext.dateline " - . "FROM pmtext AS pmtext LEFT JOIN pm AS pm ON (pm.pmtextid = pmtext.pmtextid) " + . "FROM {pmtext} AS pmtext LEFT JOIN {pm} AS pm ON (pm.pmtextid = pmtext.pmtextid) " . "WHERE pm.userid = %d AND pm.folderid != -1 " . "ORDER BY pmtext.dateline DESC"; - $result = db_query($query, $vbulletin->userinfo['userid']); + $result = db_query(_drupalvb_prefix_db($query), $vbulletin->userinfo['userid']); //Format a table with the results $header = array(