View source
<?php
function webfm_install() {
switch ($GLOBALS['db_type']) {
case 'mysql':
case 'mysqli':
db_query("CREATE TABLE {webfm_file} (\n fid int(10) NOT NULL auto_increment,\n uid int(10) NOT NULL default '0',\n fpath longtext NOT NULL,\n fsize int(10) NOT NULL default '0',\n fmime varchar(255) NOT NULL default '',\n ftitle varchar(255) NOT NULL default '',\n fdesc text NOT NULL,\n fcreatedate int(11) NOT NULL default '0',\n flang varchar(16) NOT NULL default '',\n fpublisher varchar(255) NOT NULL default '',\n fformat varchar(255) NOT NULL default '',\n fversion int(10) NOT NULL default '0',\n perm tinyint NOT NULL default '0',\n dl_cnt int(10) NOT NULL default '0',\n PRIMARY KEY (`fid`)\n ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
db_query("CREATE TABLE {webfm_attach} (\n nid int(10) NOT NULL default '0',\n fid int(10) NOT NULL default '0',\n weight int(10) NOT NULL default '0',\n PRIMARY KEY (`nid`,`fid`)\n ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
break;
case 'pgsql':
db_query("CREATE TABLE {webfm_file} (\n fid SERIAL NOT NULL,\n uid integer NOT NULL default 0,\n fpath text NOT NULL,\n fsize integer NOT NULL default 0,\n fmime varchar(255) NOT NULL default '',\n ftitle varchar(255) NOT NULL default '',\n fdesc text NOT NULL default '',\n fcreatedate numeric(11) NOT NULL default 0,\n flang varchar(16) NOT NULL default '',\n fpublisher varchar(255) NOT NULL default '',\n fformat varchar(255) NOT NULL default '',\n fversion integer NOT NULL default 0,\n perm smallint NOT NULL default 0,\n dl_cnt integer NOT NULL default 0,\n PRIMARY KEY (fid)\n ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
db_query("CREATE TABLE {webfm_attach} (\n nid integer NOT NULL default 0,\n fid integer NOT NULL default 0,\n weight integer NOT NULL default '0',\n PRIMARY KEY (nid,fid)\n ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
break;
default:
drupal_set_message('webfm_install currently supports MySQL and Postgres database only', error);
break;
}
}
function webfm_uninstall() {
db_query('DROP TABLE {webfm_file}');
db_query('DROP TABLE {webfm_attach}');
variable_del('webfm_root_dir');
variable_del('webfm_ftp_enable');
variable_del('webfm_ftp_root_dir');
variable_del('webfm_icon_dir');
variable_del('webfm_attach_body');
variable_del('webfm_attach_desc');
variable_del('webfm_attach_date');
variable_del('webfm_attach_size');
variable_del('webfm_debug');
variable_del('webfm_display_title');
variable_del('webfm_cron');
variable_del('webfm_max_resolution');
variable_del('webfm_ie_dd_list_offset');
variable_del('webfm_ie_dd_tree_offset');
$roles = user_roles(1, 'access webfm');
foreach ($roles as $rid => $role) {
variable_del('root_dir_' . $rid);
variable_del('webfm_extensions_' . $rid);
variable_del('webfm_uploadsize_' . $rid);
variable_del('webfm_usersize_' . $rid);
}
$types = node_get_types();
foreach ($types as $type) {
if ($type->type) {
variable_del('webfm_attach_' . $type->type);
}
}
variable_del('webfm_file_perm_role');
variable_del('webfm_file_perm_mod');
variable_del('webfm_file_perm_attach');
variable_del('webfm_file_public');
variable_del('webfm_date_format');
variable_del('webfm_attach_new_window');
}
function webfm_update_1() {
$ret = array();
switch ($GLOBALS['db_type']) {
case 'mysql':
case 'mysqli':
$ret[] = update_sql("ALTER TABLE {webfm_file} ADD perm tinyint NOT NULL DEFAULT 0");
$ret[] = update_sql("ALTER TABLE {webfm_file} ADD dl_cnt int NOT NULL DEFAULT 0");
$ret[] = update_sql("ALTER TABLE {webfm_attach} DROP list");
break;
case 'pgsql':
db_add_column($ret, 'webfm_file', 'perm', 'smallint', array(
'not null' => TRUE,
'default' => 0,
));
db_add_column($ret, 'webfm_file', 'dl_cnt', 'int', array(
'not null' => TRUE,
'default' => 0,
));
$ret[] = update_sql('ALTER TABLE {webfm_attach} DROP COLUMN list');
break;
}
return $ret;
}
function webfm_update_2() {
$ret = array();
switch ($GLOBALS['db_type']) {
case 'mysql':
case 'mysqli':
$ret[] = update_sql("ALTER TABLE {webfm_file} DROP fname");
break;
case 'pgsql':
$ret[] = update_sql('ALTER TABLE {webfm_file} DROP COLUMN fname');
break;
}
return $ret;
}