This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
khosb/modules/core/setup.inc.php
2011-05-03 09:49:01 +10:00

170 lines
6.1 KiB
PHP

<?php
/**
* AgileBill - Open Billing Software
*
* This body of work is free software; you can redistribute it and/or
* modify it under the terms of the Open AgileBill License
* License as published at http://www.agileco.com/agilebill/license1-4.txt
*
* Originally authored by Tony Landis, AgileBill LLC
*
* Recent modifications by Deon George
*
* @author Deon George <deonATleenooksDOTnet>
* @copyright 2009 Deon George
* @link http://osb.leenooks.net
*
* @link http://www.agileco.com/
* @copyright 2004-2008 Agileco, LLC.
* @license http://www.agileco.com/agilebill/license1-4.txt
* @author Tony Landis <tony@agileco.com>
* @package AgileBill
* @subpackage Core:Setup
*/
/**
* The main AgileBill Core Setup Class
*
* @package AgileBill
* @subpackage Core:Setup
*/
class CORE_setup {
public function __construct() {
if (defined('MEMCACHE_ENABLED') && MEMCACHE_ENABLED == true) {
require_once(PATH_INCLUDES.'cache/cache.php');
$key = md5('keyname1'.__FILE__.DEFAULT_SITE);
$sec = 60*30;
$timeout = get_value($key.'_exp');
if ($timeout == '' || $timeout < time() || ! $fields = get_value($key)) {
$fields = $this->get_setup();
store_value($key,$fields);
store_value($key.'_exp',time()+$sec);
}
} else {
$fields = $this->get_setup();
}
define('DEFAULT_COUNTRY', $fields['country_id']);
define('DEFAULT_LANGUAGE', $fields['language_id']);
define('DEFAULT_CURRENCY', $fields['currency_id']);
define('DEFAULT_WEIGHT', $fields['weight_id']);
define('DEFAULT_THEME', $fields['theme_id']);
define('DEFAULT_ADMIN_THEME', $fields['admin_theme_id']);
define('DEFAULT_GROUP', $fields['group_id']);
define('DEFAULT_AFFILIATE_TEMPLATE', $fields['affiliate_template_id']);
define('DEFAULT_AFFILIATE', $fields['affiliate_id']);
define('DEFAULT_RESELLER', $fields['reseller_id']);
define('DEFAULT_SETUP_EMAIL', $fields['setup_email_id']);
define('DEFAULT_TIME_FORMAT', $fields['time_format']);
define('DEFAULT_ACCOUNT_STATUS',$fields['default_account_status']);
$this->default_date_format($fields['date_format']);
if (! defined('DEFAULT_TIME_FORMAT'))
define('DEFAULT_TIME_FORMAT',$fields['time_format']);
define('DEFAULT_DATE_TIME_FORMAT',$fields['date_time_format']);
define('DEFAULT_DECIMAL_PLACE',$fields['decimal_place']);
define('COOKIE_NAME', $fields['cookie_name']);
define('COOKIE_EXPIRE', $fields['cookie_expire']);
define('SESSION_IP_MATCH', $fields['session_ip_match']);
define('SESSION_EXPIRE', $fields['login_expire']);
define('NEWSLETTER_REGISTRATION',$fields['newsletter_registration']);
define('SEARCH_EXPIRE', $fields['search_expire']);
define('ERROR_REPORTING', $fields['error_reporting']);
define('DEBUG', $fields['debug']);
define('LOGIN_ATTEMPT_TRY', $fields['login_attempt_try']);
define('LOGIN_ATTEMPT_TIME', $fields['login_attempt_time']);
define('LOGIN_ATTEMPT_LOCK', $fields['login_attempt_lock']);
define('DB_CACHE', $fields['db_cache']);
define('CACHE_SESSIONS', $fields['cache_sessions']);
define('WEBLOG', $fields['weblog']);
if (! defined('SSL_URL')) define('SSL_URL', $fields['ssl_url']);
if (! defined('URL')) define('URL', $fields['nonssl_url']);
if (! defined('SITE_NAME')) define('SITE_NAME', $fields['site_name']);
if (! defined('SITE_EMAIL')) define('SITE_EMAIL', $fields['site_email']);
if (! defined('SITE_ADDRESS')) define('SITE_ADDRESS', $fields['site_address']);
if (! defined('SITE_CITY')) define('SITE_CITY', $fields['site_city']);
if (! defined('SITE_STATE')) define('SITE_STATE', $fields['site_state']);
if (! defined('SITE_ZIP')) define('SITE_ZIP', $fields['site_zip']);
if (! defined('SITE_PHONE')) define('SITE_PHONE', $fields['site_phone']);
if (! defined('SITE_FAX')) define('SITE_FAX', $fields['site_fax']);
if ($fields['os'] == 1)
define('AGILE_OS', 'WINDOWS');
else
define('AGILE_OS', 'LINUX');
define('PATH_CURL', $fields['path_curl']);
define('SHOW_AFFILIATE_LINK', $fields['show_affiliate_link']);
define('AUTO_AFFILIATE', @$fields['auto_affiliate']);
define('SHOW_NEWSLETTER_LINK', $fields['show_newsletter_link']);
define('SHOW_CONTACT_LINK', $fields['show_contact_link']);
define('SHOW_DOMAIN_LINK', $fields['show_domain_link']);
define('SHOW_CART_LINK', $fields['show_cart_link']);
define('SHOW_CHECKOUT_LINK', $fields['show_checkout_link']);
define('SHOW_PRODUCT_LINK', $fields['show_product_link']);
define('SHOW_CAT_BLOCK', $fields['show_cat_block']);
define('SHOW_STATIC_BLOCK', $fields['show_static_block']);
define('SHOW_AFFILIATE_CODE', $fields['show_affiliate_code']);
define('SHOW_DISCOUNT_CODE', $fields['show_discount_code']);
define('BILLING_WEEKDAY', $fields['billing_weekday']);
define('GRACE_PERIOD', $fields['grace_period']);
define('MAX_BILLING_NOTICE', $fields['max_billing_notice']);
error_reporting(ERROR_REPORTING);
}
private function get_setup() {
$db = &DB();
$result = $db->Execute(sqlSelect($db,'setup','*',''));
if (! $result || $result->RecordCount() == 0) {
if (is_file('install/install.inc'))
require_once('install/install.inc');
else
$this->handle_failure($db);
exit;
} else {
return $result->fields;
}
}
private function default_date_format($default) {
$default = unserialize($default);
$format = '';
$divider = $default[3];
for ($i=0; $i<3; $i++) {
$format .= $default[$i];
if ($i != 2)
$format .= $divider;
}
$arr = Array('a','A','b','B','d','j','m','u','y','Y');
for ($i=0; $i<count($arr); $i++)
$format = str_replace($arr[$i],'%'.$arr[$i],$format);
define('DEFAULT_DATE_FORMAT',$format);
$UNIX_DATE_FORMAT = str_replace('%','',DEFAULT_DATE_FORMAT);
define('UNIX_DATE_FORMAT',$UNIX_DATE_FORMAT);
define('DEFAULT_DATE_DIVIDER',$divider);
}
/**
* Handle a database connection failure gracefully
*/
private function handle_failure(&$db) {
# echo error page
include_once(PATH_THEMES.'default/blocks/core/error.tpl');
# log the error
if ($f=fopen(PATH_FILES.'sql_error.txt','a'))
fputs($f,sprintf("%s\t%s\r\n",date('d-m-Y H:i:s a'),$db->_errorMsg));
exit;
}
}
?>