ported app-registration functions to new db-functions, as the applications tables contains a text column which need special treatment for MaxDB

This commit is contained in:
Ralf Becker 2004-09-18 14:55:02 +00:00
parent 2f488b17a1
commit 4420445e55

View File

@ -19,6 +19,8 @@
class setup class setup
{ {
var $db; var $db;
var $config_table = 'phpgw_config';
var $applications_table = 'phpgw_applications';
var $oProc; var $oProc;
var $detection = ''; var $detection = '';
@ -71,6 +73,8 @@
$this->db->Database = $GLOBALS['phpgw_domain'][$this->ConfigDomain]['db_name']; $this->db->Database = $GLOBALS['phpgw_domain'][$this->ConfigDomain]['db_name'];
$this->db->User = $GLOBALS['phpgw_domain'][$this->ConfigDomain]['db_user']; $this->db->User = $GLOBALS['phpgw_domain'][$this->ConfigDomain]['db_user'];
$this->db->Password = $GLOBALS['phpgw_domain'][$this->ConfigDomain]['db_pass']; $this->db->Password = $GLOBALS['phpgw_domain'][$this->ConfigDomain]['db_pass'];
$this->db->set_app('phpgwapi');
} }
/** /**
@ -388,11 +392,7 @@
*/ */
if($this->alessthanb($setup_info['phpgwapi']['currentver'],'0.9.10pre8') && ($setup_info['phpgwapi']['currentver'] != '')) if($this->alessthanb($setup_info['phpgwapi']['currentver'],'0.9.10pre8') && ($setup_info['phpgwapi']['currentver'] != ''))
{ {
$appstbl = 'applications'; $this->applications_table = 'applications';
}
else
{
$appstbl = 'phpgw_applications';
} }
if($GLOBALS['DEBUG']) if($GLOBALS['DEBUG'])
@ -409,24 +409,24 @@
} }
if ($setup_info[$appname]['tables_use_prefix'] == True) if ($setup_info[$appname]['tables_use_prefix'] == True)
{ {
echo $setup_info[$appname]['name'] . ' uses tables_use_prefix, storing ' if($GLOBALS['DEBUG'])
. $setup_info[$appname]['tables_prefix'] {
. ' as prefix for ' . $setup_info[$appname]['name'] . " tables\n"; echo "<br>$appname uses tables_use_prefix, storing ". $setup_info[$appname]['tables_prefix']." as prefix for tables\n";
$sql = "INSERT INTO phpgw_config (config_app,config_name,config_value) "
."VALUES ('".$setup_info[$appname]['name']."','"
.$appname."_tables_prefix','".$setup_info[$appname]['tables_prefix']."')";
$this->db->query($sql,__LINE__,__FILE__);
} }
$this->db->query("INSERT INTO $appstbl " $this->db->insert($this->config_table,array(
. "(app_name,app_enabled,app_order,app_tables,app_version) " 'config_app' => $appname,
. "VALUES (" 'config_name' => $appname.'_tables_prefix',
. "'" . $setup_info[$appname]['name'] . "'," 'config_value' => $setup_info[$appname]['tables_prefix'],
. $enable . "," ),False,__LINE__,__FILE__);
. (int)$setup_info[$appname]['app_order'] . "," }
. "'" . $tables . "'," $this->db->insert($this->applications_table,array(
. "'" . $setup_info[$appname]['version'] . "')" 'app_name' => $appname,
); 'app_enabled' => $enable,
'app_order' => $setup_info[$appname]['app_order'],
'app_tables' => $tables,
'app_version' => $setup_info[$appname]['version'],
),False,__LINE__,__FILE__);
$this->clear_session_cache(); $this->clear_session_cache();
} }
} }
@ -448,20 +448,16 @@
if($this->alessthanb($setup_info['phpgwapi']['currentver'],'0.9.10pre8') && ($setup_info['phpgwapi']['currentver'] != '')) if($this->alessthanb($setup_info['phpgwapi']['currentver'],'0.9.10pre8') && ($setup_info['phpgwapi']['currentver'] != ''))
{ {
$appstbl = 'applications'; $this->applications_table = 'applications';
}
else
{
$appstbl = 'phpgw_applications';
} }
if(@$GLOBALS['DEBUG']) if(@$GLOBALS['DEBUG'])
{ {
echo '<br>app_registered(): checking ' . $appname . ', table: ' . $appstbl; echo '<br>app_registered(): checking ' . $appname . ', table: ' . $this->applications_table;
// _debug_array($setup_info[$appname]); // _debug_array($setup_info[$appname]);
} }
$this->db->query("SELECT COUNT(app_name) FROM $appstbl WHERE app_name='".$appname."'"); $this->db->select($this->applications_table,'COUNT(*)',array('app_name' => $appname),__LINE__,__FILE__);
$this->db->next_record(); $this->db->next_record();
if($this->db->f(0)) if($this->db->f(0))
{ {
@ -495,22 +491,16 @@
if($this->alessthanb($setup_info['phpgwapi']['currentver'],'0.9.10pre8') && ($setup_info['phpgwapi']['currentver'] != '')) if($this->alessthanb($setup_info['phpgwapi']['currentver'],'0.9.10pre8') && ($setup_info['phpgwapi']['currentver'] != ''))
{ {
$appstbl = 'applications'; $this->applications_table = 'applications';
}
else
{
$appstbl = 'phpgw_applications';
} }
if($GLOBALS['DEBUG']) if($GLOBALS['DEBUG'])
{ {
echo '<br>update_app(): ' . $appname . ', version: ' . $setup_info[$appname]['currentver'] . ', table: ' . $appstbl . '<br>'; echo '<br>update_app(): ' . $appname . ', version: ' . $setup_info[$appname]['currentver'] . ', table: ' . $this->applications_table . '<br>';
// _debug_array($setup_info[$appname]); // _debug_array($setup_info[$appname]);
} }
$this->db->query("SELECT COUNT(app_name) FROM $appstbl WHERE app_name='".$appname."'"); if(!$this->app_registered($appname))
$this->db->next_record();
if(!$this->db->f(0))
{ {
return False; return False;
} }
@ -522,17 +512,12 @@
{ {
$tables = implode(',',$setup_info[$appname]['tables']); $tables = implode(',',$setup_info[$appname]['tables']);
} }
$this->db->update($this->applications_table,array(
$sql = "UPDATE $appstbl " 'app_enabled' => $setup_info[$appname]['enable'],
. "SET app_name='" . $setup_info[$appname]['name'] . "'," 'app_order' => $setup_info[$appname]['app_order'],
. " app_enabled=" . (int)$setup_info[$appname]['enable'] . "," 'app_tables' => $tables,
. " app_order=" . (int)$setup_info[$appname]['app_order'] . "," 'app_version' => $setup_info[$appname]['version'],
. " app_tables='" . $tables . "'," ),array('app_name'=>$appname),__LINE__,__FILE__);
. " app_version='" . $setup_info[$appname]['version'] . "'"
. " WHERE app_name='" . $appname . "'";
//echo $sql; exit;
$this->db->query($sql);
} }
} }
@ -552,11 +537,7 @@
if($this->alessthanb($setup_info['phpgwapi']['currentver'],'0.9.10pre8') && ($setup_info['phpgwapi']['currentver'] != '')) if($this->alessthanb($setup_info['phpgwapi']['currentver'],'0.9.10pre8') && ($setup_info['phpgwapi']['currentver'] != ''))
{ {
$appstbl = 'applications'; $this->applications_table = 'applications';
}
else
{
$appstbl = 'phpgw_applications';
} }
if($tableschanged == True) if($tableschanged == True)
@ -565,7 +546,9 @@
} }
if($setup_info[$appname]['currentver']) if($setup_info[$appname]['currentver'])
{ {
$this->db->query("UPDATE $appstbl SET app_version='" . $setup_info[$appname]['currentver'] . "' WHERE app_name='".$appname."'"); $this->db->update($this->applications_table,array(
'app_version' => $setup_info[$appname]['currentver'],
),array('app_name'=>$appname),__LINE__,__FILE__);
} }
return $setup_info; return $setup_info;
} }
@ -585,15 +568,11 @@
if($this->alessthanb($setup_info['phpgwapi']['currentver'],'0.9.10pre8') && ($setup_info['phpgwapi']['currentver'] != '')) if($this->alessthanb($setup_info['phpgwapi']['currentver'],'0.9.10pre8') && ($setup_info['phpgwapi']['currentver'] != ''))
{ {
$appstbl = 'applications'; $this->applications_table = 'applications';
}
else
{
$appstbl = 'phpgw_applications';
} }
//echo 'DELETING application: ' . $appname; //echo 'DELETING application: ' . $appname;
$this->db->query("DELETE FROM $appstbl WHERE app_name='". $appname ."'"); $this->db->delete($this->applications_table,array('app_name'=>$appname),__LINE__,__FILE__);
$this->clear_session_cache(); $this->clear_session_cache();
} }