| 1 |
<?php |
<?php |
| 2 |
// $Id: drupalvb.install,v 1.1.2.8 2008/10/15 01:33:43 sun Exp $ |
// $Id: drupalvb.install,v 1.1.2.8.2.1 2009/05/29 10:22:50 sun Exp $ |
| 3 |
|
|
| 4 |
/** |
/** |
| 5 |
* Implementation of hook_install(). |
* Implementation of hook_install(). |
| 8 |
switch ($GLOBALS['db_type']) { |
switch ($GLOBALS['db_type']) { |
| 9 |
case 'mysql': |
case 'mysql': |
| 10 |
case 'mysqli': |
case 'mysqli': |
| 11 |
db_query("CREATE TABLE {drupalvb_users} ( |
db_query("CREATE TABLE {drupalvb_map} ( |
| 12 |
|
type varchar(12) NOT NULL default '', |
| 13 |
drupal_id int(10) unsigned NOT NULL default 0, |
drupal_id int(10) unsigned NOT NULL default 0, |
| 14 |
vb_id int(10) unsigned NOT NULL default 0, |
vb_id int(10) unsigned NOT NULL default 0, |
| 15 |
PRIMARY KEY (drupal_id), |
UNIQUE drupal (type, drupal_id), |
| 16 |
UNIQUE userid (vb_id) |
UNIQUE vbulletin (type, vb_id) |
|
) /*!40100 DEFAULT CHARACTER SET utf8 */;"); |
|
|
db_query("CREATE TABLE {drupalvb_forums} ( |
|
|
drupal_id int(10) unsigned NOT NULL default 0, |
|
|
vb_id int(10) unsigned NOT NULL default 0, |
|
|
PRIMARY KEY (drupal_id), |
|
|
UNIQUE userid (vb_id) |
|
|
) /*!40100 DEFAULT CHARACTER SET utf8 */;"); |
|
|
db_query("CREATE TABLE {drupalvb_threads} ( |
|
|
drupal_id int(10) unsigned NOT NULL default 0, |
|
|
vb_id int(10) unsigned NOT NULL default 0, |
|
|
PRIMARY KEY (drupal_id), |
|
|
UNIQUE userid (vb_id) |
|
|
) /*!40100 DEFAULT CHARACTER SET utf8 */;"); |
|
|
db_query("CREATE TABLE {drupalvb_posts} ( |
|
|
drupal_id int(10) unsigned NOT NULL default 0, |
|
|
vb_id int(10) unsigned NOT NULL default 0, |
|
|
PRIMARY KEY (drupal_id), |
|
|
UNIQUE userid (vb_id) |
|
| 17 |
) /*!40100 DEFAULT CHARACTER SET utf8 */;"); |
) /*!40100 DEFAULT CHARACTER SET utf8 */;"); |
| 18 |
break; |
break; |
| 19 |
} |
} |
| 23 |
* Implementation of hook_uninstall(). |
* Implementation of hook_uninstall(). |
| 24 |
*/ |
*/ |
| 25 |
function drupalvb_uninstall() { |
function drupalvb_uninstall() { |
| 26 |
db_query("DROP TABLE {drupalvb_users}"); |
db_query("DROP TABLE {drupalvb_map}"); |
|
db_query("DROP TABLE {drupalvb_forums}"); |
|
|
db_query("DROP TABLE {drupalvb_threads}"); |
|
|
db_query("DROP TABLE {drupalvb_posts}"); |
|
| 27 |
db_query("DELETE FROM {variable} WHERE name LIKE 'drupalvb_%%'"); |
db_query("DELETE FROM {variable} WHERE name LIKE 'drupalvb_%%'"); |
| 28 |
} |
} |
| 29 |
|
|
| 123 |
} |
} |
| 124 |
|
|
| 125 |
/** |
/** |
| 126 |
* Add new mapping tables. |
* Enhance mapping table scheme. |
| 127 |
*/ |
*/ |
| 128 |
function drupalvb_update_5300() { |
function drupalvb_update_5300() { |
| 129 |
$ret = array(); |
$ret = array(); |
| 131 |
case 'mysql': |
case 'mysql': |
| 132 |
case 'mysqli': |
case 'mysqli': |
| 133 |
$ret[] = update_sql("ALTER TABLE {drupalvb_users} CHANGE uid drupal_id int(10) unsigned NOT NULL default 0, CHANGE userid vb_id int(10) unsigned NOT NULL default 0"); |
$ret[] = update_sql("ALTER TABLE {drupalvb_users} CHANGE uid drupal_id int(10) unsigned NOT NULL default 0, CHANGE userid vb_id int(10) unsigned NOT NULL default 0"); |
| 134 |
$ret[] = update_sql("CREATE TABLE {drupalvb_forums} ( |
break; |
| 135 |
drupal_id int(10) unsigned NOT NULL default 0, |
} |
| 136 |
vb_id int(10) unsigned NOT NULL default 0, |
return $ret; |
| 137 |
PRIMARY KEY (drupal_id), |
} |
| 138 |
UNIQUE userid (vb_id) |
|
| 139 |
) /*!40100 DEFAULT CHARACTER SET utf8 */;"); |
/** |
| 140 |
$ret[] = update_sql("CREATE TABLE {drupalvb_threads} ( |
* Enhance mapping table scheme (continuation of update 5300). |
| 141 |
drupal_id int(10) unsigned NOT NULL default 0, |
*/ |
| 142 |
vb_id int(10) unsigned NOT NULL default 0, |
function drupalvb_update_5301() { |
| 143 |
PRIMARY KEY (drupal_id), |
$ret = array(); |
| 144 |
UNIQUE userid (vb_id) |
switch ($GLOBALS['db_type']) { |
| 145 |
) /*!40100 DEFAULT CHARACTER SET utf8 */;"); |
case 'mysql': |
| 146 |
$ret[] = update_sql("CREATE TABLE {drupalvb_posts} ( |
case 'mysqli': |
| 147 |
drupal_id int(10) unsigned NOT NULL default 0, |
$ret[] = update_sql("ALTER TABLE {drupalvb_users} DROP PRIMARY KEY, DROP KEY userid"); |
| 148 |
vb_id int(10) unsigned NOT NULL default 0, |
$ret[] = update_sql("ALTER TABLE {drupalvb_users} RENAME {drupalvb_map}"); |
| 149 |
PRIMARY KEY (drupal_id), |
$ret[] = update_sql("ALTER TABLE {drupalvb_map} ADD type varchar(12) NOT NULL default '' FIRST"); |
| 150 |
UNIQUE userid (vb_id) |
$ret[] = update_sql("UPDATE {drupalvb_map} SET type = 'users'"); |
| 151 |
) /*!40100 DEFAULT CHARACTER SET utf8 */;"); |
$ret[] = update_sql("ALTER TABLE {drupalvb_map} ADD UNIQUE drupal (type, drupal_id), ADD UNIQUE vbulletin (type, vb_id)"); |
| 152 |
|
|
| 153 |
|
// Move existing mappings. Note: these existed only for a limited period |
| 154 |
|
// in CVS. |
| 155 |
|
foreach (array('forums', 'threads', 'posts') as $type) { |
| 156 |
|
if (db_table_exists('drupalvb_'. $type)) { |
| 157 |
|
$ret[] = update_sql("INSERT INTO {drupalvb_map} (type, drupal_id, vb_id) SELECT '". $type ."', drupal_id, vb_id FROM {drupalvb_". $type ."}"); |
| 158 |
|
$ret[] = update_sql("DROP TABLE {drupalvb_". $type ."}"); |
| 159 |
|
} |
| 160 |
|
} |
| 161 |
break; |
break; |
| 162 |
} |
} |
| 163 |
return $ret; |
return $ret; |