| 1 |
<?php |
<?php |
| 2 |
// $Id: multisite_manager.install,v 1.2 2007/09/04 20:24:16 schuyler1d Exp $ |
// $Id: multisite_manager.install,v 1.3 2008/02/08 20:25:25 schuyler1d Exp $ |
| 3 |
|
|
| 4 |
function multisite_manager_install() { |
function multisite_manager_schema() { |
| 5 |
switch ($GLOBALS['db_type']) { |
$schema['drupal_site'] = array( |
| 6 |
case 'mysql': |
'fields' => array( |
| 7 |
case 'mysqli': |
'vid' => array('type'=>'int','unsigned'=>TRUE, 'not null'=>TRUE, 'default'=> 0), |
| 8 |
db_query(" |
'nid' => array('type'=>'int','unsigned'=>TRUE, 'not null'=>TRUE, 'default'=> 0), |
| 9 |
CREATE TABLE {drupal_site} ( |
'shortname' => array('type'=>'varchar', 'not null'=>TRUE, 'length'=>45), |
| 10 |
vid int(10) unsigned NOT NULL default '0', |
'profile' => array('type'=>'varchar', 'not null'=>TRUE, 'length'=>255), |
| 11 |
nid int(10) unsigned NOT NULL default '0', |
'link' => array('type'=>'varchar', 'not null'=>TRUE, 'default'=> '', 'length'=>255), |
| 12 |
shortname varchar(45) NOT NULL, |
'installed' => array('type'=>'int','size'=>'tiny', 'not null'=>TRUE, 'default'=> 0), |
| 13 |
profile varchar(255) NOT NULL, |
'run_cron' => array('type'=>'int','size'=>'tiny', 'not null'=>TRUE, 'default'=> 0), |
| 14 |
link varchar(255) NOT NULL default '', |
'db_prefix' => array('type'=>'varchar','length'=>45, 'not null'=>TRUE, 'default'=> ''), |
| 15 |
installed tinyint NOT NULL default '0', |
'db_user' => array('type'=>'varchar','length'=>45, 'not null'=>TRUE, 'default'=> ''), |
| 16 |
run_cron tinyint NOT NULL default '0', |
'db_path' => array('type'=>'varchar','length'=>45, 'not null'=>TRUE, 'default'=> ''), |
| 17 |
db_prefix varchar(45) NOT NULL default '', |
), |
| 18 |
db_user varchar(45) NOT NULL default '', |
'indexes' => array( |
| 19 |
db_path varchar(45) NOT NULL default '', |
'drupal_site_nid' => array('nid') |
| 20 |
PRIMARY KEY (vid, nid), |
), |
| 21 |
KEY drupal_site_nid (nid) |
'primary key' => array('vid','nid'), |
| 22 |
) /*!40100 DEFAULT CHARACTER SET utf8 */; |
); |
| 23 |
"); |
return $schema; |
| 24 |
break; |
} |
|
case 'pgsql': |
|
|
db_query(" |
|
|
CREATE TABLE {drupal_site} ( |
|
|
vid int NOT NULL default '0', |
|
|
nid int NOT NULL default '0', |
|
|
shortname varchar(45) NOT NULL, |
|
|
profile varchar(255) NOT NULL, |
|
|
link varchar(255) NOT NULL default '', |
|
|
installed tinyint NOT NULL default '0', |
|
|
run_cron smallint NOT NULL default '0', |
|
|
db_prefix varchar(45) NOT NULL default '', |
|
|
db_user varchar(45) NOT NULL default '', |
|
|
db_path varchar(45) NOT NULL default '', |
|
|
PRIMARY KEY (vid, nid)); |
|
|
"); |
|
|
db_query("CREATE INDEX {drupal_site}_nid_idx ON {drupal_site} (nid)"); |
|
|
break; |
|
|
} |
|
| 25 |
|
|
| 26 |
|
function multisite_manager_install() { |
| 27 |
|
drupal_install_schema('multisite_manager'); |
| 28 |
} |
} |
| 29 |
|
|
| 30 |
/** |
/** |
| 31 |
* Implementation of hook_uninstall(). |
* Implementation of hook_uninstall(). |
| 32 |
*/ |
*/ |
| 33 |
function multisite_manager_uninstall() { |
function multisite_manager_uninstall() { |
| 34 |
db_query('DROP TABLE {drupal_site}'); |
drupal_uninstall_schema('multisite_manager'); |
| 35 |
variable_del('multisite_manager_dbprefix_default'); |
variable_del('multisite_manager_dbprefix_default'); |
| 36 |
variable_del('multisite_manager_dbpath_default'); |
variable_del('multisite_manager_dbpath_default'); |
| 37 |
variable_del('multisite_manager_link_default'); |
variable_del('multisite_manager_link_default'); |
| 42 |
// X = Drupal major number (eg 5 = 5.x) |
// X = Drupal major number (eg 5 = 5.x) |
| 43 |
// Y = Module major number (eg 0 = 0.x, 1 = 1.x) |
// Y = Module major number (eg 0 = 0.x, 1 = 1.x) |
| 44 |
// ZZ = increment |
// ZZ = increment |
|
function multisite_manager_update_5000() { |
|
|
$items = array(); |
|
|
switch ($GLOBALS['db_type']) { |
|
|
case 'mysql': |
|
|
case 'mysqli': |
|
|
$items[] = update_sql("ALTER TABLE {drupal_site} ADD COLUMN run_cron tinyint NOT NULL default '0' AFTER link"); |
|
|
break; |
|
|
case 'pgsql': |
|
|
$items[] = update_sql("ALTER TABLE {drupal_site} ADD COLUMN run_cron smallint NOT NULL default '0'"); |
|
|
break; |
|
|
} // end switch db_type |
|
|
return $items; |
|
|
} // end function multisite_manager_update_5000() |
|
|
|
|
|
function multisite_manager_update_5001() { |
|
|
$items = array(); |
|
|
switch ($GLOBALS['db_type']) { |
|
|
case 'mysql': |
|
|
case 'mysqli': |
|
|
$items[] = update_sql("ALTER TABLE {drupal_site} ADD COLUMN installed tinyint NOT NULL default '0' AFTER link"); |
|
|
break; |
|
|
case 'pgsql': |
|
|
$items[] = update_sql("ALTER TABLE {drupal_site} ADD COLUMN installed smallint NOT NULL default '0'"); |
|
|
break; |
|
|
} // end switch db_type |
|
|
return $items; |
|
|
} // end function multisite_manager_update_5000() |
|
|
|
|
|
// vim:fenc=utf-8:ft=php:ai:si:ts=2:sw=2:et: |
|
|
|
|