forked from extern/egroupware
388 lines
20 KiB
PHP
388 lines
20 KiB
PHP
<?php
|
|
/**************************************************************************\
|
|
* phpGroupWare - Setup *
|
|
* http://www.phpgroupware.org *
|
|
* -------------------------------------------- *
|
|
* This program is free software; you can redistribute it and/or modify it *
|
|
* under the terms of the GNU General Public License as published by the *
|
|
* Free Software Foundation; either version 2 of the License, or (at your *
|
|
* option) any later version. *
|
|
\**************************************************************************/
|
|
|
|
/* $Id$ */
|
|
|
|
function v7122000to8032000(){
|
|
global $currentver, $db;
|
|
$didupgrade = True;
|
|
if ($currentver == "7122000"){
|
|
echo " <tr bgcolor=\"e6e6e6\">\n";
|
|
// echo " <td>Upgrade from 7122000 to 8032000 is completed.</td>\n";
|
|
echo " <td>Upgrading from 7122000 is not yet ready.<br> You can do this manually if you choose, otherwise dump your tables and start over.</td>\n";
|
|
echo " </tr>\n";
|
|
$currentver = "8032000";
|
|
}
|
|
}
|
|
function v8032000to8072000(){
|
|
global $currentver, $db;
|
|
$didupgrade = True;
|
|
if ($currentver == "8032000"){
|
|
echo " <tr bgcolor=\"e6e6e6\">\n";
|
|
// echo " <td>Upgrade from 8032000 to 8072000 is completed.</td>\n";
|
|
echo " <td>Upgrading from 8032000 is not yet ready.<br> You can do this manually if you choose, otherwise dump your tables and start over.</td>\n";
|
|
echo " </tr>\n";
|
|
$currentver = "8072000";
|
|
}
|
|
}
|
|
|
|
function v8072000to8212000(){
|
|
global $currentver, $db;
|
|
$didupgrade = True;
|
|
if ($currentver == "8072000"){
|
|
|
|
$sql = "CREATE TABLE applications ("
|
|
."app_name varchar(25) NOT NULL,"
|
|
."app_title varchar(50),"
|
|
."app_enabled int,"
|
|
."UNIQUE app_name (app_name)"
|
|
.")";
|
|
$db->query($sql);
|
|
|
|
$db->query("insert into applications (app_name, app_title, app_enabled) values ('admin', 'Administration', 1)");
|
|
$db->query("insert into applications (app_name, app_title, app_enabled) values ('tts', 'Trouble Ticket System', 1)");
|
|
$db->query("insert into applications (app_name, app_title, app_enabled) values ('inv', 'Inventory', 1)");
|
|
$db->query("insert into applications (app_name, app_title, app_enabled) values ('chat', 'Chat', 1)");
|
|
$db->query("insert into applications (app_name, app_title, app_enabled) values ('headlines', 'Headlines', 1)");
|
|
$db->query("insert into applications (app_name, app_title, app_enabled) values ('filemanager', 'File manager', 1)");
|
|
$db->query("insert into applications (app_name, app_title, app_enabled) values ('ftp', 'FTP', 1)");
|
|
$db->query("insert into applications (app_name, app_title, app_enabled) values ('addressbook', 'Address Book', 1)");
|
|
$db->query("insert into applications (app_name, app_title, app_enabled) values ('todo', 'ToDo List', 1)");
|
|
$db->query("insert into applications (app_name, app_title, app_enabled) values ('calendar', 'Calendar', 1)");
|
|
$db->query("insert into applications (app_name, app_title, app_enabled) values ('email', 'Email', 1)");
|
|
$db->query("insert into applications (app_name, app_title, app_enabled) values ('nntp', 'NNTP', 1)");
|
|
$db->query("insert into applications (app_name, app_title, app_enabled) values ('bookmarks', 'Bookmarks', 0)");
|
|
$db->query("insert into applications (app_name, app_title, app_enabled) values ('cron_apps', 'cron_apps', 0)");
|
|
$db->query("insert into applications (app_name, app_title, app_enabled) values ('napster', 'Napster', 0)");
|
|
|
|
echo " <tr bgcolor=\"e6e6e6\">\n";
|
|
echo " <td>Upgrade from 8072000 to 8212000 is completed.</td>\n";
|
|
echo " </tr>\n";
|
|
$currentver = "8212000";
|
|
}
|
|
}
|
|
function v8212000to9052000(){
|
|
global $currentver, $db;
|
|
$didupgrade = True;
|
|
if ($currentver == "8212000"){
|
|
$db->query("alter table chat_channel change name name varchar(10) not null");
|
|
$db->query("alter table chat_messages change channel channel char(20) not null");
|
|
$db->query("alter table chat_messages change loginid loginid varchar(20) not null");
|
|
$db->query("alter table chat_currentin change loginid loginid varchar(25) not null");
|
|
$db->query("alter table chat_currentin change channel channel char(20)");
|
|
$db->query("alter table chat_privatechat change user1 user1 varchar(25) not null");
|
|
$db->query("alter table chat_privatechat change user2 user2 varchar(25) not null");
|
|
|
|
echo " <tr bgcolor=\"e6e6e6\">\n";
|
|
echo " <td>Upgrade from 8212000 to 9052000 is completed.</td>\n";
|
|
echo " </tr>\n";
|
|
$currentver = "9052000";
|
|
}
|
|
}
|
|
function v9052000to9072000(){
|
|
global $currentver, $db;
|
|
$didupgrade = True;
|
|
if ($currentver == "9052000"){
|
|
echo " <tr bgcolor=\"e6e6e6\">\n";
|
|
// echo " <td>Upgrade from 9052000 to 9072000 is completed.</td>\n";
|
|
echo " <td>Upgrading from 9052000 is not available.<br> I dont believe there were any changes, so this should be fine.</td>\n";
|
|
echo " </tr>\n";
|
|
$currentver = "9072000";
|
|
}
|
|
}
|
|
function v9072000to0_9_1(){
|
|
global $currentver, $phpgw_info, $db;
|
|
$didupgrade = True;
|
|
if ($currentver == "9072000"){
|
|
|
|
$db->query("alter table accounts change con account_id int(11) DEFAULT '0' NOT NULL auto_increment");
|
|
$db->query("alter table accounts change loginid account_lid varchar(25) NOT NULL");
|
|
$db->query("alter table accounts change passwd account_pwd varchar(32) NOT NULL");
|
|
$db->query("alter table accounts change firstname account_firstname varchar(50)");
|
|
$db->query("alter table accounts change lastname account_lastname varchar(50)");
|
|
$db->query("alter table accounts change permissions account_permissions text");
|
|
$db->query("alter table accounts change groups account_groups varchar(30)");
|
|
$db->query("alter table accounts change lastlogin account_lastlogin int(11)");
|
|
$db->query("alter table accounts change lastloginfrom account_lastloginfrom varchar(255)");
|
|
$db->query("alter table accounts change lastpasswd_change account_lastpwd_change int(11)");
|
|
$db->query("alter table accounts change status account_status enum('A','L') DEFAULT 'A' NOT NULL");
|
|
$db->query("alter table applications add app_order int");
|
|
$db->query("alter table applications add app_tables varchar(255)");
|
|
$db->query("alter table applications add app_version varchar(20) not null default '0.0'");
|
|
$db->query("alter table preferences change owner preference_owner varchar(20)");
|
|
$db->query("alter table preferences change name preference_name varchar(50)");
|
|
$db->query("alter table preferences change value preference_value varchar(50)");
|
|
$db->query("alter table preferences add preference_appname varchar(50) default ''");
|
|
$db->query("alter table sessions change sessionid session_id varchar(255) NOT NULL");
|
|
$db->query("alter table sessions change loginid session_lid varchar(20)");
|
|
$db->query("alter table sessions change passwd session_pwd varchar(255)");
|
|
$db->query("alter table sessions change ip session_ip varchar(255)");
|
|
$db->query("alter table sessions change logintime session_logintime int(11)");
|
|
$db->query("alter table sessions change dla session_dla int(11)");
|
|
|
|
$db->query("update applications set app_order=1,app_tables=NULL where app_name='admin'");
|
|
$db->query("update applications set app_order=2,app_tables=NULL where app_name='tts'");
|
|
$db->query("update applications set app_order=3,app_tables=NULL where app_name='inv'");
|
|
$db->query("update applications set app_order=4,app_tables=NULL where app_name='chat'");
|
|
$db->query("update applications set app_order=5,app_tables='news_sites,news_headlines,users_headlines' where app_name='headlines'");
|
|
$db->query("update applications set app_order=6,app_tables=NULL where app_name='filemanager'");
|
|
$db->query("update applications set app_order=7,app_tables='addressbook' where app_name='addressbook'");
|
|
$db->query("update applications set app_order=8,app_tables='todo' where app_name='todo'");
|
|
$db->query("update applications set app_order=9,app_tables='webcal_entry,webcal_entry_users,webcal_entry_groups,webcal_repeats' where app_name='calendar'");
|
|
$db->query("update applications set app_order=10,app_tables=NULL where app_name='email'");
|
|
$db->query("update applications set app_order=11,app_tables='newsgroups,users_newsgroups' where app_name='nntp'");
|
|
$db->query("update applications set app_order=0,app_tables=NULL where app_name='cron_apps'");
|
|
$sql = "CREATE TABLE config ("
|
|
."config_name varchar(25) NOT NULL,"
|
|
."config_value varchar(100),"
|
|
."UNIQUE config_name (config_name)"
|
|
.")";
|
|
$db->query($sql);
|
|
|
|
$db->query("insert into config (config_name, config_value) values ('default_tplset', 'default')");
|
|
$db->query("insert into config (config_name, config_value) values ('temp_dir', '/path/to/tmp')");
|
|
$db->query("insert into config (config_name, config_value) values ('files_dir', '/path/to/dir/phpgroupware/files')");
|
|
$db->query("insert into config (config_name, config_value) values ('encryptkey', 'change this phrase 2 something else'");
|
|
$db->query("insert into config (config_name, config_value) values ('site_title', 'phpGroupWare')");
|
|
$db->query("insert into config (config_name, config_value) values ('hostname', 'local.machine.name')");
|
|
$db->query("insert into config (config_name, config_value) values ('webserver_url', '/phpgroupware')");
|
|
$db->query("insert into config (config_name, config_value) values ('auth_type', 'sql')");
|
|
$db->query("insert into config (config_name, config_value) values ('ldap_host', 'localhost')");
|
|
$db->query("insert into config (config_name, config_value) values ('ldap_context', 'o=phpGroupWare')");
|
|
$db->query("insert into config (config_name, config_value) values ('usecookies', 'True')");
|
|
$db->query("insert into config (config_name, config_value) values ('mail_server', 'localhost')");
|
|
$db->query("insert into config (config_name, config_value) values ('mail_server_type', 'imap')");
|
|
$db->query("insert into config (config_name, config_value) values ('imap_server_type', 'Cyrus')");
|
|
$db->query("insert into config (config_name, config_value) values ('mail_suffix', 'yourdomain.com')");
|
|
$db->query("insert into config (config_name, config_value) values ('mail_login_type', 'standard')");
|
|
$db->query("insert into config (config_name, config_value) values ('smtp_server', 'localhost')");
|
|
$db->query("insert into config (config_name, config_value) values ('smtp_port', '25')");
|
|
$db->query("insert into config (config_name, config_value) values ('nntp_server', 'yournewsserver.com')");
|
|
$db->query("insert into config (config_name, config_value) values ('nntp_port', '119')");
|
|
$db->query("insert into config (config_name, config_value) values ('nntp_sender', 'complaints@yourserver.com')");
|
|
$db->query("insert into config (config_name, config_value) values ('nntp_organization', 'phpGroupWare')");
|
|
$db->query("insert into config (config_name, config_value) values ('nntp_admin', 'admin@yourserver.com')");
|
|
$db->query("insert into config (config_name, config_value) values ('nntp_login_username', '')");
|
|
$db->query("insert into config (config_name, config_value) values ('nntp_login_password', '')");
|
|
$db->query("insert into config (config_name, config_value) values ('default_ftp_server', 'localhost')");
|
|
$db->query("insert into config (config_name, config_value) values ('httpproxy_server', '')");
|
|
$db->query("insert into config (config_name, config_value) values ('httpproxy_port', '')");
|
|
$db->query("insert into config (config_name, config_value) values ('showpoweredbyon', 'bottom')");
|
|
$db->query("insert into config (config_name, config_value) values ('checkfornewversion', 'False')");
|
|
|
|
echo " <tr bgcolor=\"e6e6e6\">\n";
|
|
echo " <td>Upgrade from 9072000 to 0.9.1 is completed.</td>\n";
|
|
echo " </tr>\n";
|
|
$currentver = "0.9.1";
|
|
}
|
|
}
|
|
|
|
function v0_9_1to0_9_2(){
|
|
global $currentver, $phpgw_info, $db;
|
|
$didupgrade = True;
|
|
if ($currentver == "0.9.1"){
|
|
|
|
$db->query("alter table access_log change lo lo varchar(255)");
|
|
$db->query("alter table addressbook change ab_id ab_id int(11) NOT NULL auto_increment");
|
|
$db->query("alter table addressbook add ab_company_id int(10) unsigned");
|
|
$db->query("alter table addressbook add ab_title varchar(60)");
|
|
$db->query("alter table addressbook add ab_address2 varchar(60)");
|
|
|
|
$sql = "CREATE TABLE customers (
|
|
company_id int(10) unsigned NOT NULL auto_increment,
|
|
company_name varchar(255),
|
|
website varchar(80),
|
|
ftpsite varchar(80),
|
|
industry_type varchar(50),
|
|
status varchar(30),
|
|
software varchar(40),
|
|
lastjobnum int(10) unsigned,
|
|
lastjobfinished date,
|
|
busrelationship varchar(30),
|
|
notes text,
|
|
PRIMARY KEY (company_id)
|
|
);";
|
|
$db->query($sql);
|
|
|
|
$db->query("update lang set lang='da' where lang='dk'");
|
|
$db->query("update lang set lang='ko' where lang='kr'");
|
|
|
|
$db->query("update preferences set preference_name='da' where preference_name='dk'");
|
|
$db->query("update preferences set preference_name='ko' where preference_name='kr'");
|
|
|
|
//add weather support
|
|
$db->query("insert into applications (app_name, app_title, app_enabled, app_order, app_tables, app_version) values ('weather', 'Weather', 1, 12, NULL, '".$phpgw_info["server"]["version"]."')");
|
|
$db->query("INSERT INTO lang (message_id, app_name, lang, content) VALUES( 'weather','Weather','en','weather')");
|
|
|
|
echo " <tr bgcolor=\"e6e6e6\">\n";
|
|
echo " <td>Upgrade from 0.9.1 to 0.9.2 is completed.</td>\n";
|
|
echo " </tr>\n";
|
|
$currentver = "0.9.2";
|
|
}
|
|
}
|
|
|
|
function update_owner($table,$field){
|
|
global $db;
|
|
$db->query("select distinct($field) from $table");
|
|
if ($db->num_rows()) {
|
|
while($db->next_record()) {
|
|
$owner[count($owner)] = $db->f($field);
|
|
}
|
|
for($i=0;$i<count($owner);$i++) {
|
|
$db->query("select account_id from accounts where account_lid='".$owner[$i]."'");
|
|
$db->next_record();
|
|
$db->query("update $table set $field=".$db->f("account_id")." where $field='".$owner[$i]."'");
|
|
}
|
|
}
|
|
$db->query("alter table $table change $field $field int(11) NOT NULL");
|
|
}
|
|
|
|
function v0_9_2to0_9_3()
|
|
{
|
|
global $currentver, $phpgw_info, $db;
|
|
$didupgrade = True;
|
|
|
|
// The 0.9.3pre1 is only temp until release
|
|
if ($currentver == "0.9.2" || $currentver == "0.9.3pre1" || $currentver == "0.9.3pre2" || $currentver == "0.9.3pre3" || $currentver == "0.9.3pre4" || $currentver == "0.9.3pre5" || $currentver == "0.9.3pre6" || $currentver == "0.9.3pre7") {
|
|
if ($currentver == "0.9.2" || $currentver == "0.9.3pre1") {
|
|
update_owner("addressbook","ab_owner");
|
|
update_owner("todo","todo_owner");
|
|
update_owner("webcal_entry","cal_create_by");
|
|
update_owner("webcal_entry_user","cal_login");
|
|
$currentver = "0.9.3pre2";
|
|
}
|
|
if ($currentver == "0.9.3pre2") {
|
|
$db->query("select owner, newsgroup from users_newsgroups");
|
|
if ($db->num_rows()) {
|
|
while($db->next_record()) {
|
|
$owner[count($owner)] = $db->f("owner");
|
|
$newsgroup[count($newsgroup)] = $db->f("newsgroup");
|
|
}
|
|
for ($i=0;$i<count($owner);$i++) {
|
|
$db->query("insert into preferences (preference_owner,preference_name,"
|
|
."preference_value,preference_appname) values ('".$owner[$i]."','".$newsgroup[$i]."','True',"
|
|
."'nntp')");
|
|
}
|
|
$db->query("drop table users_newsgroups");
|
|
$db->query("update applications set app_tables='newsgroups' where app_name='nntp'");
|
|
}
|
|
$currentver = "0.9.3pre3";
|
|
}
|
|
|
|
if ($currentver == "0.9.3pre3") {
|
|
$db->query("alter table todo add todo_id_parent int DEFAULT 0 NOT NULL");
|
|
$currentver = "0.9.3pre4";
|
|
}
|
|
|
|
if ($currentver == "0.9.3pre4") {
|
|
$db->query("create table temp as select * from config");
|
|
$db->query("drop table config");
|
|
$db->query("create table config (config_name varchar(255) NOT NULL UNIQUE, config_value varchar(100) NOT NULL)");
|
|
$db->query("insert into config select * from temp");
|
|
$db->query("drop table config");
|
|
$currentver = "0.9.3pre5";
|
|
}
|
|
|
|
if ($currentver == "0.9.3pre5") {
|
|
$db->query("CREATE TABLE categories (
|
|
cat_id serial,
|
|
account_id int DEFAULT '0' NOT NULL,
|
|
app_name varchar(25) NOT NULL,
|
|
cat_name varchar(150) NOT NULL,
|
|
cat_description text NOT NULL)"
|
|
);
|
|
$currentver = "0.9.3pre6";
|
|
update_version_table();
|
|
}
|
|
|
|
if ($currentver == "0.9.3pre6") {
|
|
$db->query("alter table addressbook add ab_url varchar(255)");
|
|
$db->query("insert into applications (app_name, app_title, app_enabled, app_order, app_tables, app_version) values ('transy', 'Translation Management', 0, 13, NULL, '".$phpgw_info["server"]["version"]."')");
|
|
$currentver = "0.9.3pre7";
|
|
}
|
|
|
|
// What happened to 0.9.3pre7 :) (jengo)
|
|
|
|
if ($currentver == "0.9.3pre8") {
|
|
$db->query("drop table users_headlines");
|
|
$currentver = "0.9.3pre9";
|
|
update_version_table();
|
|
}
|
|
|
|
if ($currentver == "0.9.3pre9") {
|
|
$sql = "CREATE TABLE news_msg (
|
|
con int(11) NOT NULL,
|
|
msg int(11) NOT NULL,
|
|
uid varchar(255) DEFAULT '',
|
|
udate int(11) DEFAULT 0,
|
|
path varchar(255) DEFAULT '',
|
|
fromadd varchar(255) DEFAULT '',
|
|
toadd varchar(255) DEFAULT '',
|
|
ccadd varchar(255) DEFAULT '',
|
|
bccadd varchar(255) DEFAULT '',
|
|
reply_to varchar(255) DEFAULT '',
|
|
sender varchar(255) DEFAULT '',
|
|
return_path varchar(255) DEFAULT '',
|
|
subject varchar(255) DEFAULT '',
|
|
message_id varchar(255) DEFAULT '',
|
|
reference varchar(255) DEFAULT '',
|
|
in_reply_to varchar(255) DEFAULT '',
|
|
follow_up_to varchar(255) DEFAULT '',
|
|
nntp_posting_host varchar(255) DEFAULT '',
|
|
nntp_posting_date varchar(255) DEFAULT '',
|
|
x_complaints_to varchar(255) DEFAULT '',
|
|
x_trace varchar(255) DEFAULT '',
|
|
x_abuse_info varchar(255) DEFAULT '',
|
|
x_mailer varchar(255) DEFAULT '',
|
|
organization varchar(255) DEFAULT '',
|
|
content_type varchar(255) DEFAULT '',
|
|
content_description varchar(255) DEFAULT '',
|
|
content_transfer_encoding varchar(255) DEFAULT '',
|
|
mime_version varchar(255) DEFAULT '',
|
|
msgsize int(11) DEFAULT 0,
|
|
msglines int(11) DEFAULT 0,
|
|
body text NOT NULL,
|
|
primary key(con,msg)
|
|
)";
|
|
$db->query($sql);
|
|
$currentver = "0.9.3pre10";
|
|
update_version_table();
|
|
}
|
|
|
|
echo " <tr bgcolor=\"e6e6e6\">\n";
|
|
echo " <td>Upgrade from 0.9.2 to $currentver is completed.</td>\n";
|
|
echo " </tr>\n";
|
|
}
|
|
}
|
|
|
|
echo "<table border=\"0\" align=\"center\">\n";
|
|
echo " <tr bgcolor=\"486591\">\n";
|
|
echo " <td colspan=\"2\"><font color=\"fefefe\"> <b>Table Upgrades</b></font></td>\n";
|
|
echo " </tr>\n";
|
|
v7122000to8032000();
|
|
v8032000to8072000();
|
|
v8072000to8212000();
|
|
v8212000to9052000();
|
|
v9052000to9072000();
|
|
v9072000to0_9_1();
|
|
v0_9_1to0_9_2();
|
|
v0_9_2to0_9_3();
|
|
$db->query("update applications set app_version='".$phpgw_info["server"]["version"]."' where (app_name='admin' or app_name='filemanager' or app_name='addressbook' or app_name='todo' or app_name='calendar' or app_name='email' or app_name='nntp' or app_name='cron_apps')");
|
|
|
|
if (!$didupgrade == True){
|
|
echo " <tr bgcolor=\"e6e6e6\">\n";
|
|
echo " <td>No table changes were needed. The script only updated your version setting.</td>\n";
|
|
echo " </tr>\n";
|
|
}
|
|
|
|
echo "</table>\n";
|
|
?>
|