/** * Check if version number has changed and perfom additional upgarde code * Furthermore assign array with module menu names for the top right * module html seletor * * @param array $data */ function perform($data) { // get data of the client browser $this->_get_client_data(); // get os related separator to set include path if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') { $tmp_separator = ';'; } else { $tmp_separator = ':'; } // set include path to the PEAR packages ini_set('include_path', SF_BASE_DIR . 'modules/common/PEAR' . $tmp_separator . ini_get('include_path')); unset($tmp_separator); // set charset to utf-8 ini_set('default_charset', 'utf-8'); @header('Content-type: text/html; charset=utf-8'); // Define base location define('SF_BASE_LOCATION', commonUtil::base_location()); // init system config array $this->B->sys = array(); // include system config array $this->B->sys if (file_exists(SF_BASE_DIR . 'data/common/config/config.php')) { include_once SF_BASE_DIR . 'data/common/config/config.php'; } // if setup was done if ($this->B->sys['info']['status'] == TRUE) { // here you may create db connection and start a session. // .... things, which are required by all other modules // include session class include_once SF_BASE_DIR . 'modules/common/includes/class.session.php'; @ob_start(); /* Create new object of session class */ $this->B->session =& new session(); @ob_end_flush(); } else { // switch to the admin section if we comes from the public section if (SF_SECTION == 'public') { @header('Location: ' . SF_BASE_LOCATION . '/' . SF_CONTROLLER . '?' . SF_ADMIN_CODE . '=1'); exit; } // launch setup screen M(MOD_SYSTEM, 'get_view', array('m' => 'setup', 'view' => 'index')); // Send the output buffer to the client ob_end_flush(); exit; } // Check for upgrade if (MOD_COMMON_VERSION != (string) $this->B->sys['module']['common']['version']) { // set the new version num of this module $this->B->sys['module']['common']['version'] = MOD_COMMON_VERSION; $this->B->system_update_flag = TRUE; // include here additional upgrade code } return SF_IS_VALID_ACTION; }
/** * Check if version number has changed and perfom additional upgarde code * Furthermore assign array with module menu names for the top right * module html seletor * * @param array $data */ function perform($data) { // get os related separator to set include path if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') { $tmp_separator = ';'; } else { $tmp_separator = ':'; } // set include path to the PEAR packages ini_set('include_path', SF_BASE_DIR . 'modules/common/PEAR' . $tmp_separator . ini_get('include_path')); unset($tmp_separator); // Define base location define('SF_BASE_LOCATION', commonUtil::base_location()); // init system config array $this->B->sys = array(); // include system config array $this->B->sys if (file_exists(SF_BASE_DIR . 'data/common/config/config.php')) { include_once SF_BASE_DIR . 'data/common/config/config.php'; } // if setup was done if (isset($this->B->sys['info']['status']) && $this->B->sys['info']['status'] == TRUE) { // include PEAR DB class include_once SF_BASE_DIR . 'modules/common/PEAR/DB.php'; $this->B->dsn = array('phptype' => $this->B->sys['db']['dbtype'], 'username' => $this->B->sys['db']['user'], 'password' => $this->B->sys['db']['passwd'], 'hostspec' => $this->B->sys['db']['host'], 'database' => $this->B->sys['db']['name']); $this->B->dboptions = array('debug' => 0, 'portability' => DB_PORTABILITY_NONE); $this->B->db =& DB::connect($this->B->dsn, $this->B->dboptions, TRUE); if (DB::isError($this->B->db)) { trigger_error('Cannot connect to the database: ' . __FILE__ . ' ' . __LINE__, E_USER_ERROR); } // include session class include_once SF_BASE_DIR . 'modules/common/includes/class.session.php'; @ob_start(); /* Create new object of session class */ $this->B->session =& new session(); @ob_end_flush(); } else { // switch to the admin section if we come from the public section if (SF_SECTION == 'public') { @header('Location: ' . SF_BASE_LOCATION . '/index.php?admin=1'); exit; } // launch setup screen M(MOD_SYSTEM, 'get_view', array('m' => 'setup', 'view' => 'index')); // Send the output buffer to the client ob_end_flush(); exit; } // Check for upgrade if (MOD_COMMON_VERSION != (string) $this->B->sys['module']['common']['version']) { // include here additional upgrade code M(MOD_COMMON, 'upgrade'); // set the new version num of this module $this->B->sys['module']['common']['version'] = MOD_COMMON_VERSION; $this->B->system_update_flag = TRUE; } if (SF_SECTION == 'admin') { $m_list = $GLOBALS['sf_module_list']; // sort handler array by name ksort($m_list); // assign template handler names array // this array is used to build the modul select form of the admin menu $this->B->tpl_mod_list = array(); foreach ($m_list as $key => $value) { if (isset($value['menu_visibility']) && $value['menu_visibility'] == TRUE) { $this->B->tpl_mod_list[$key] = $value; } } } }