phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] api/class.setup.php, 1.1.1.1.2.18


From: nomail
Subject: [Phpgroupware-cvs] api/class.setup.php, 1.1.1.1.2.18
Date: Fri, 14 May 2004 07:58:44 +0200

Update of /api
Modified Files:
        Branch: proposal-branch
          class.setup.php

date: 2004/05/14 05:58:44;  author: jengo;  state: Exp;  lines: +167 -46

Log Message:
Instead of reading preferences from an array, they will be stored in a table 
which will be read for the UI ... this is part of the changes to make this work
=====================================================================
Index: api/class.setup.php
diff -u api/class.setup.php:1.1.1.1.2.17 api/class.setup.php:1.1.1.1.2.18
--- api/class.setup.php:1.1.1.1.2.17    Fri Apr 16 20:59:49 2004
+++ api/class.setup.php Fri May 14 05:58:44 2004
@@ -118,23 +118,28 @@
 
                        $this->install_log['stage'] = $args['stage'];
 
-                       $this->install_log['tab_widget'] = array(
-                               0 => array(
+                       $this->install_log['tab_widget'] = array
+                       (
+                               0 => array
+                               (
                                        'title'   => lang('Config file'),
                                        'op'      => 'api.setup.start&stage=1',
                                        'current' => 0
                                ),
-                               1 => array(
+                               1 => array
+                               (
                                        'title'   => lang('Applications'),
                                        'op'      => 'api.setup.start&stage=2',
                                        'current' => 0
                                ),
-                               2 => array(
+                               2 => array
+                               (
                                        'title'   => lang('Configuration'),
                                        'op'      => 'api.setup.start&stage=3',
                                        'current' => 0
                                ),
-                               3 => array(
+                               3 => array
+                               (
                                        'title'   => lang('Inital accounts'),
                                        'op'      => 'api.setup.start&stage=4',
                                        'current' => 0
@@ -173,35 +178,34 @@
                        $args->set('log_email', NOTSET);
                        $args = $args->get(func_get_args());
 
-                       if(isset($args['action']))
+                       if (isset($args['action']))
                        {
-                               if(empty($args['baseurl']))
+                               if (empty($args['baseurl']))
                                {
                                        $args['baseurl'] = 'index.php';
                                }
-                               if(!isset($args['db_name']) ||
-                                  !isset($args['db_user'])
-                                 )
+
+                               if (! isset($args['db_name']) || ! 
isset($args['db_user']))
                                {
                                        $GLOBALS['msgbox']->add('Not all 
required params were set!', 'warning');
                                        return $this->editconfigfile();         
                
                                }
 
-                               $config['server']['db_host'] = $args['db_host'];
-                               $config['server']['db_name'] = $args['db_name'];
-                               $config['server']['db_user'] = $args['db_user'];
-                               $config['server']['db_pass'] = $args['db_pass'];
-                               $config['server']['db_type'] = $args['db_type'];
-                               $config['server']['baseurl'] = $args['baseurl'];
+                               $config['server']['db_host']         = 
$args['db_host'];
+                               $config['server']['db_name']         = 
$args['db_name'];
+                               $config['server']['db_user']         = 
$args['db_user'];
+                               $config['server']['db_pass']         = 
$args['db_pass'];
+                               $config['server']['db_type']         = 
$args['db_type'];
+                               $config['server']['baseurl']         = 
$args['baseurl'];
                                $config['server']['default_anon_op'] = 
$args['default_anon_op'];
-                               $config['server']['session_type'] = 
$args['session_type'];
-                               $config['server']['session_method'] = 
$args['session_method'];
-                               $config['errconf']['err_report'] = 
$args['err_report'];
-                               $config['errconf']['err_log'] = 
$args['err_log'];
-                               $config['errconf']['err_email'] = 
$args['err_email'];
-                               $config['errconf']['log_table'] = 
$args['log_table'];
-                               $config['errconf']['log_file'] = 
$args['log_file'];
-                               $config['errconf']['log_email'] = 
$args['log_email'];
+                               $config['server']['session_type']    = 
$args['session_type'];
+                               $config['server']['session_method']  = 
$args['session_method'];
+                               $config['errconf']['err_report']     = 
$args['err_report'];
+                               $config['errconf']['err_log']        = 
$args['err_log'];
+                               $config['errconf']['err_email']      = 
$args['err_email'];
+                               $config['errconf']['log_table']      = 
$args['log_table'];
+                               $config['errconf']['log_file']       = 
$args['log_file'];
+                               $config['errconf']['log_email']      = 
$args['log_email'];
                                $filecontents = '<?php'."\n";
                                $filecontents .= '$phpgw_config = '."'";
                                $filecontents .= var2xml($config, 'config');
@@ -219,10 +223,10 @@
                                                exit;
                                                break;
                                        case 'view':
-                                                       
$GLOBALS['msgbox']->add('This is your config.', 'notice');
-                                                       
$config['server']['text'] = $filecontents;
-                                                       $config['configtext'] = 
$filecontents;
-                                                return $config;
+                                               $GLOBALS['msgbox']->add('This 
is your config.', 'notice');
+                                               $config['server']['text'] = 
$filecontents;
+                                               $config['configtext'] = 
$filecontents;
+                                               return $config;
                                                break;
                                        case 'write config':
                                                
if(is_writeable(PHPGW_ROOT.SEP.'config.inc.php') || 
(!file_exists(PHPGW_ROOT.SEP.'config.inc.php') && is_writeable(PHPGW_ROOT)))
@@ -240,6 +244,7 @@
                                                }
                                                break;
                                }
+
                                define('PHPGW_FINISHED', true);
                                echo $filecontents;
                                exit;
@@ -299,29 +304,54 @@
                                                $current_version = 
$apps->get_version($val);
                                                if ($current_version == false)
                                                {
-                                                       
$this->install_log['install_app'][] = 
array('name'=>$val['title'].'('.$val['version'].')', 'status'=>'Not installed');
+                                                       
$this->install_log['install_app'][] = array
+                                                       (
+                                                               'name'   => 
$val['title'] . '(' . $val['version'] . ')',
+                                                               'status' => 
'Not installed'
+                                                       );
                                                }
                                                elseif($current_version > 
$val['version'])
                                                {
-                                                       
$this->install_log['install_app'][] = 
array('name'=>$val['title'].'('.$val['version'].')', 'status'=>'Need 
downgrading');
+                                                       
$this->install_log['install_app'][] = array
+                                                       (
+                                                               'name'   => 
$val['title'] . '(' . $val['version'] . ')',
+                                                               'status' => 
'Need downgrading'
+                                                       );
                                                }                               
                        
                                                elseif ($val['version'] > 
$current_version)
                                                {
-                                                       
$this->install_log['install_app'][] = 
array('name'=>$val['title'].'('.$val['version'].')', 'status'=>'Need 
upgrading');
+                                                       
$this->install_log['install_app'][] = array
+                                                       (
+                                                               'name'   => 
$val['title'] . '(' . $val['version'] . ')',
+                                                               'status' => 
'Need upgrading'
+                                                       );
                                                }                               
                        
                                                elseif ($val['version'] == 
$current_version)
                                                {
-                                                       
$this->install_log['install_app'][] = 
array('name'=>$val['title'].'('.$val['version'].')', 'status'=>'Installed');
+                                                       
$this->install_log['install_app'][] = array
+                                                       (
+                                                               'name'   => 
$val['title'] . '(' . $val['version'] . ')',
+                                                               'status' => 
'Installed'
+                                                       );
                                                }                               
                        
                                        }                                       
                                        error_reporting($old_level);
                                        break;
                                case 'Install': 
                                        $this->install_log['install_app'] = 
array();
-                                       $this->flow = 
array('more_depends'=>true,'activity'=>true, 'pass'=>0);
+                                       $this->flow = array
+                                       (
+                                               'more_depends' => true,
+                                               'activity'     => true,
+                                               'pass'         => 0
+                                       );
                                        while($this->flow['more_depends'] && 
$this->flow['activity'])
                                        {
-                                               $this->flow = 
array('more_depends'=>false,'activity'=>false);
+                                               $this->flow = array
+                                               (
+                                                       'more_depends' => false,
+                                                       'activity'     => false
+                                               );
                                                reset ($this->apps_data);
                                                foreach($this->apps_data as 
$val)                               
                                                {
@@ -355,6 +385,24 @@
                        return $this->install_log;
                }
 
+               function __add_app_pref_value($id,$text,$value)
+               {
+                       $GLOBALS['phpgw']->db->execute("
+                               INSERT INTO
+                                       phpgw_apps_prefs_values
+                               (
+                                       pv_id,
+                                       pv_text,
+                                       pv_value
+                               )
+                               VALUES
+                               (
+                                        " . $id    . ",
+                                       '" . $text  . "',
+                                       '" . $value . "'
+                               )");
+               }
+
                function process_install($data)
                {
                        $old_level = error_reporting(0);
@@ -373,10 +421,76 @@
                                if($apps->add($data['name'], $data['title'], 
$data['version']))
                                {
                                        $this->flow['activity'] = true;
-                                       $this->install_log['install_app'][] = 
array('name'   => $data['name'],
-                                                                      'status' 
=> 'Installed'
+                                       $this->install_log['install_app'][] = 
array
+                                       (
+                                               'name'   => $data['name'],
+                                               'status' => 'Installed'
                                        );
 
+                                       //$GLOBALS['phpgw']->db->transbegin();
+                                       foreach ($data['prefs'] as $key => 
$_pref)
+                                       {
+                                               foreach ($_pref as $key => 
$pref)
+                                               {
+                                                       switch 
(strtolower($pref['type']))
+                                                       {
+                                                               case 
'selectbox':
+                                                                       $type = 
'S';
+                                                                       break;
+                                                               case 'checkbox':
+                                                                       $type = 
'C';
+                                                                       break;
+                                                               case 'inputbox':
+                                                                       $type = 
'I';
+                                                                       break;
+                                                               default:
+                                                                       $type = 
'?';
+                                                       }
+       
+                                                       
$GLOBALS['phpgw']->db->execute("
+                                                               INSERT INTO
+                                                                       
phpgw_apps_prefs
+                                                               (
+                                                                       
pref_appname,
+                                                                       
pref_type,
+                                                                       
pref_name,
+                                                                       
pref_label
+                                                               )
+                                                               VALUES
+                                                               (
+                                                                       '" . 
$data['name']  . "',
+                                                                       '" . 
$type          . "',
+                                                                       '" . 
$pref['name']  . "',
+                                                                       '" . 
$pref['label'] . "'
+                                                               )");
+       
+                                                       $dbresult = 
$GLOBALS['phpgw']->db->execute("
+                                                               SELECT
+                                                                       pref_id
+                                                               FROM
+                                                                       
phpgw_apps_prefs
+                                                               WHERE
+                                                                       
pref_appname='" . $data['name'] . "'
+                                                               AND
+                                                                       
pref_name='" . $pref['name'] . "'");
+       
+                                                       if 
(strtolower($pref['type']) == 'selectbox')
+                                                       {
+                                                               foreach 
($pref['values'] as $_pref_value)
+                                                               {
+                                                                       foreach 
($_pref_value as $pref_value)
+                                                                       {
+                                                                               
$this->__add_app_pref_value($dbresult->fields['pref_id'],$pref_value['text'],$pref_value['value']);
+                                                                       }
+                                                               }
+                                                       }
+                                                       else
+                                                       {
+                                                               
$this->__add_app_pref_value($dbresult->fields['pref_id'],'',$pref['value']);
+                                                       }
+                                               }
+                                       }
+
                                        foreach ($data['acl_locations'] as $key 
=> $acl_location)
                                        {
                                                if (count($acl_location) == 3)
@@ -407,6 +521,7 @@
                                                        . "')");
                                        
                                        }
+                                       //$GLOBALS['phpgw']->db->transcommit();
                                }
                                else
                                {
@@ -418,14 +533,18 @@
                                //$this->process_hooks($data['hooks']);
                                //$apps->add($data['name'], $data['title'], 
$data['version']);
                                $this->flow['activity'] = true;
-                               $this->install_log['install_app'][] = 
array('name'   => $data['name'],
-                                                              'status' => 
'Upgraded'
+                               $this->install_log['install_app'][] = array
+                               (
+                                       'name'   => $data['name'],
+                                       'status' => 'Upgraded'
                                );
                        }
                        elseif($this->flow['pass'] == '0')
                        {
-                               $this->install_log['install_app'][] = 
array('name'   => $data['name'],
-                                                              'status' => 'Up 
to Date'
+                               $this->install_log['install_app'][] = array
+                               (
+                                       'name'   => $data['name'],
+                                       'status' => 'Up to Date'
                                );
                        }
                        error_reporting($old_level);
@@ -503,7 +622,7 @@
                
                function process_prefs($data = NOTSET)
                {
-                       $prefs = createObject('api_prefs', 
array('account_id'=>'phpgw_default'));
+                       $prefs = createObject('api_prefs', array('account_id' 
=> 'phpgw_default'));
                        if($data != NOTSET && is_array($data['prefs_item']))
                        {
                                foreach($data['prefs_item'] as $val)            
                
@@ -539,7 +658,8 @@
                                $admin_id                                = 
$accounts->create($admin_account_info);
                                if(!is_null($admin_id))
                                {
-                                       $history_values = array(
+                                       $history_values = array
+                                       (
                                                'account_lid'       => 
$args['admin_lid'],
                                                'account_firstname' => 
$args['admin_fname'],
                                                'account_lastname'  => 
$args['admin_lname'],
@@ -575,7 +695,8 @@
 
                                        if(!is_null($admin_id))
                                        {
-                                               $history_values = array(
+                                               $history_values = array
+                                               (
                                                        'account_lid'       => 
'anonymous',
                                                        'account_firstname' => 
'Anonymous',
                                                        'account_lastname'  => 
'User',
@@ -583,7 +704,7 @@
                                                );
                                                $history->set('api.accounts.' . 
$anon_id,$history_values,array());
 
-                                               $anon_acl = 
createObject('api_acl', array('account_id'=>$anon_id));
+                                               $anon_acl = 
createObject('api_acl', array('account_id' => $anon_id));
                                                $anon_acl->add('wcm.base',1);
                                                $this->install_log['text'] .= ' 
Anonymous account was created.';
                                        }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]