function domain_install() {
switch ($GLOBALS['db_type']) {
case 'mysqli':
case 'mysql':
db_query("CREATE TABLE {domain} (
domain_id int(11) NOT NULL AUTO_INCREMENT,
subdomain varchar(255) NOT NULL default '',
sitename varchar(255) NOT NULL default '',
scheme varchar(8) NOT NULL default 'http',
valid varchar(1) NOT NULL default 1,
PRIMARY KEY (domain_id),
KEY subdomain (subdomain)
) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
db_query("CREATE TABLE {domain_access} (
nid int unsigned NOT NULL default '0',
gid int unsigned NOT NULL default '0',
realm varchar(255) NOT NULL default '',
PRIMARY KEY (nid,gid,realm),
INDEX (nid)
) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
break;
case 'pgsql':
db_query("CREATE TABLE {domain} (
domain_id serial,
subdomain varchar(255) NOT NULL default '',
sitename varchar(255) NOT NULL default '',
scheme varchar(8) NOT NULL default 'http',
valid varchar(1) NOT NULL default 1,
PRIMARY KEY (domain_id)
)");
db_query("CREATE INDEX {domain}_subdomain_idx ON {domain} (subdomain)");
db_query("CREATE TABLE {domain_access} (
nid int_unsigned NOT NULL default '0',
gid int_unsigned NOT NULL default '0',
realm varchar(255) NOT NULL default '',
PRIMARY KEY (nid,gid,realm)
)");
db_query("CREATE INDEX {domain_access}_nid_idx ON {domain_access} (nid)");
break;
}
db_query("INSERT INTO {node_access} VALUES (0, 0, 'domain_all', 1, 0, 0)");
}
function domain_uninstall() {
db_query("DROP TABLE {domain}");
db_query("DROP TABLE {domain_access}");
db_query("DELETE from {variable} WHERE name LIKE '%s%%'", 'domain_');
}
function domain_update_1() {
$ret = array();
switch ($GLOBALS['db_type']) {
case 'mysql':
case 'mysqli':
$ret[] = update_sql("ALTER TABLE {domain} ADD COLUMN valid varchar(1) NOT NULL DEFAULT 1");
break;
case 'pgsql':
db_add_column($ret, 'domain', 'valid', 'varchar(1)', array('not null' => TRUE, 'default' => 1));
break;
}
return $ret;
}
function domain_update_2() {
$ret = array();
switch ($GLOBALS['db_type']) {
case 'mysql':
case 'mysqli':
$ret[] = update_sql("CREATE TABLE {domain_access} (
nid int unsigned NOT NULL default '0',
gid int unsigned NOT NULL default '0',
realm varchar(255) NOT NULL default '',
PRIMARY KEY (nid,gid,realm),
INDEX (nid)
) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
break;
case 'pgsql':
$ret[] = update_sql("CREATE TABLE {domain_access} (
nid int_unsigned NOT NULL default '0',
gid int_unsigned NOT NULL default '0',
realm varchar(255) NOT NULL default '',
PRIMARY KEY (nid,gid,realm)
)");
$ret[] = update_sql("CREATE INDEX {domain_access}_nid_idx ON {domain_access} (nid)");
break;
}
$realms = array('domain_site', 'domain_id', 'domain_editor');
foreach ($realms as $realm) {
$result = db_query("SELECT * FROM {node_access} WHERE realm = '%s'", $realm);
while ($data = db_fetch_array($result)) {
db_query("INSERT INTO {domain_access} VALUES (%d, %d, '%s')", $data['nid'], $data['gid'], $data['realm']);
}
}
return $ret;
}
function domain_update_3() {
$ret = array();
switch ($GLOBALS['db_type']) {
case 'mysql':
case 'mysqli':
$ret[] = update_sql("ALTER TABLE {domain} CHANGE subdomain subdomain varchar(255) NOT NULL default ''");
$ret[] = update_sql("ALTER TABLE {domain} CHANGE sitename sitename varchar(255) NOT NULL default ''");
break;
case 'pgsql':
db_change_column($ret, 'domain', 'subdomain', 'subdomain', 'varchar(255)', array('not null' => TRUE, 'default' => "''"));
db_change_column($ret, 'domain', 'sitename', 'sitename', 'varchar(255)', array('not null' => TRUE, 'default' => "''"));
break;
}
return $ret;
}