659 lines
20 KiB
PHP
659 lines
20 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
|
|
*/
|
|
|
|
/**
|
|
* The main AgileBill CORE List Class
|
|
*
|
|
* @package AgileBill
|
|
* @subpackage Core
|
|
*/
|
|
class CORE_list {
|
|
private $id = 100;
|
|
|
|
/**
|
|
* @todo deprecite this function - replace with mmenu()
|
|
*/
|
|
public function menu($input_id,$name,$table,$field,$default,$class,$all=false) {
|
|
$this->mmenu($input_id,$name,$table,$field,$default,'',$class,$all);
|
|
}
|
|
|
|
/**
|
|
* Generate a select list, using the values in a table
|
|
*
|
|
* @param string $input_id HTML id="" value.
|
|
* + If 'no', then a hot click img wont be included
|
|
* + If 'all', then a blank item will be included
|
|
* @param string $name HTML name="" value.
|
|
* @param string $table Table to query for a list of items.
|
|
* @param string $field Column to query for a list of items.
|
|
* @param string $default Default Value to pre-select (if it exists)
|
|
* + If 'all', then a blank item will be included
|
|
* @param string|array $where SQL where conditions
|
|
* @param string $class CSS class for the select list
|
|
* @param bool $all If true, then a blank item will be included.
|
|
*
|
|
* @todo Remove the many ways of selecting all
|
|
*/
|
|
public function mmenu($input_id,$name,$table,$field,$default,$where,$class,$all=false) {
|
|
global $C_translate;
|
|
|
|
$noicon = false;
|
|
|
|
if ($input_id == 'no') {
|
|
$input_id = '';
|
|
$noicon = true;
|
|
}
|
|
|
|
if (! $input_id)
|
|
$input_id = sprintf('%s_%s_%s',$table,$field,$this->id++);
|
|
|
|
$db = &DB();
|
|
$result = $db->Execute(sqlSelect($db,$table,sprintf('id,%s',$field),$where,$field));
|
|
if ($result === false) {
|
|
global $C_debug;
|
|
|
|
$C_debug->error(__FILE__,__METHOD__,$db->ErrorMsg());
|
|
|
|
} else {
|
|
$return = sprintf('<select id="%s" name="%s" class="%s">',$input_id,$name,$class);
|
|
|
|
if ($all)
|
|
$return .= '<option value=""> </option>';
|
|
|
|
$i = 0;
|
|
while (! $result->EOF) {
|
|
$return .= sprintf('<option value="%s"%s>%s</option>',$result->fields['id'],($default == $result->fields['id']) ? ' selected="selected"' : '',$result->fields[$field]);
|
|
$result->MoveNext();
|
|
|
|
$i++;
|
|
}
|
|
|
|
$return .= '</select>';
|
|
|
|
if ($i==0)
|
|
$return = $C_translate->translate('lists_none_defined');
|
|
|
|
if ($i > 0 && ! $noicon)
|
|
$return .= sprintf(' <img src="themes/%s/images/icons/zoomi_16.gif" alt="Zoom" width="16" height="16" style="border: 0px;" onclick="menu_item_view(\'%s\',\'%s\');"/>',THEME_NAME,$table,$input_id);
|
|
|
|
echo $return;
|
|
}
|
|
}
|
|
|
|
function decrypt($data) {
|
|
include_once(PATH_CORE.'crypt.inc.php');
|
|
return CORE_decrypt($data);
|
|
}
|
|
|
|
function menu_cc_admin($field, $account, $default, $class, $user=false) {
|
|
include_once(PATH_MODULES . 'account_billing/account_billing.inc.php');
|
|
$acct_bill = new account_billing;
|
|
echo $acct_bill->menu_admin($field, $account, $default, $class, $user);
|
|
}
|
|
|
|
function menu_multi($default, $name, $table, $field, $id, $max, $class) {
|
|
include_once(PATH_CORE.'list_menu_multi.inc.php');
|
|
echo list_menu_multi($default, $name, $table, $field, $id, $max, $class);
|
|
}
|
|
|
|
function menu_files($id, $name, $default, $path, $pre, $ext, $class) {
|
|
include_once(PATH_CORE.'list_menu_files.inc.php');
|
|
echo list_menu_files($id, $name, $default, $path, $pre, $ext, $class);
|
|
}
|
|
|
|
/**
|
|
* Generate a list of frequently used selections in OSB
|
|
*
|
|
* @param string $type List type
|
|
* @param string $input_id HTML id="" value.
|
|
* @param string $name HTML name="" value.
|
|
* @param string $default Default Value to pre-select (if it exists)
|
|
* @param string $class CSS class for the select list
|
|
* @param bool $all If true, then a blank item will be included.
|
|
*/
|
|
public function menu_staticlist($type,$input_id,$name,$default,$class,$all=false) {
|
|
global $C_list;
|
|
|
|
# Whether the values are also keys.
|
|
$nokeys = false;
|
|
$list = array();
|
|
|
|
switch ($type) {
|
|
case 'assoc_grant_type':
|
|
$list = array(0=>_('Grant access for specified amount of days'),1=>_('Grant access while associated subscription is active'),2=>_('Grant access forerver'));
|
|
break;
|
|
|
|
case 'assoc_prod_type':
|
|
$list = array(0=>_('Require All Selected Products'),1=>_('Require Any One Selected Product'));
|
|
break;
|
|
|
|
case 'charge_sweep':
|
|
$list = array(0=>_('Daily'),1=>_('Weekly'),2=>_('Monthly'),3=>_('Quarterly'),4=>_('Semi-Annually'),5=>_('Annually'),6=>_('Service Rebill'));
|
|
break;
|
|
|
|
case 'commissiontype':
|
|
$list = array(0=>_('None'),1=>_('Percentage Based'),2=>('Flat Rate'));
|
|
break;
|
|
|
|
# @todo To deprecate this and standardise with commissiontype
|
|
case 'discounttype':
|
|
$list = array(0=>_('Percentage Based'),1=>('Flat Rate'));
|
|
break;
|
|
|
|
case 'copluginmode':
|
|
$list = array(0=>_('Test'),1=>_('Live'));
|
|
break;
|
|
|
|
case 'domaintype':
|
|
$list = array(
|
|
'register'=>_('Register'),
|
|
'transfer'=>_('Transfer'),
|
|
'park'=>_('Park')
|
|
);
|
|
|
|
break;
|
|
|
|
case 'email_piping':
|
|
$list = array(0=>' ',1=>'POP',2=>'IMAP');
|
|
break;
|
|
|
|
case 'email_piping_action':
|
|
$list = array(0=>_('Leave message in mailbox'),1=>_('Delete message from mailbox'));
|
|
break;
|
|
|
|
case 'invoice_delivery':
|
|
$list = array(0=>_('None'),1=>_('E-Mail'),2=>_('Print'));
|
|
break;
|
|
|
|
case 'invoice_show_itemized':
|
|
$list = array(0=>_('Overview Only'),1=>_('Full Detail'));
|
|
break;
|
|
|
|
case 'nametitle':
|
|
$list = array(_('Mr'),_('Ms'),_('Mrs'),_('Miss'),_('Dr'),_('Prof'));
|
|
$nokeys = true;
|
|
break;
|
|
|
|
case 'os':
|
|
$list = array(0=>'Linux',1=>'Windows');
|
|
break;
|
|
|
|
case 'recur_schedule':
|
|
$list = array(0=>_('Weekly'),1=>_('Monthly'),2=>_('Quarterly'),3=>_('Semi-Annually'),4=>_('Annually'),5=>_('Two years'),6=>_('Three Years'));
|
|
break;
|
|
|
|
case 'recur_type':
|
|
$list = array(0=>_('Bill on Aniversary Date of Subscription'),1=>_('Bill on Fixed Schedule'));
|
|
break;
|
|
|
|
case 'pricetype':
|
|
$list = array(0=>_('One-time Charge'),1=>_('Recurring Membership/Subscription'),2=>_('Trial for Membership/Subscription'));
|
|
break;
|
|
|
|
case 'servicetype':
|
|
if ($C_list->is_installed('host_server')) {
|
|
$list['host'] = _('Hosting');
|
|
$list['host_group'] = _('Hosting & Group Access');
|
|
$list['domain'] = _('Domain Name');
|
|
}
|
|
$list['none'] = _('Recurring Only');
|
|
|
|
break;
|
|
|
|
case 'servicequeue':
|
|
$list = array(
|
|
'new'=>_('Add New'),
|
|
'active'=>_('Activate'),
|
|
'inactive'=>_('Deactivate'),
|
|
'delete'=>_('Delete'),
|
|
'edit'=>_('Edit/Update'),
|
|
'queue_none'=>_('None')
|
|
);
|
|
|
|
break;
|
|
|
|
case 'statictype':
|
|
$list = array(
|
|
'small_text'=>_('Small Text'),
|
|
'medium_text'=>_('Medium Text'),
|
|
'large_text'=>_('Large Text'),
|
|
'dropdown_list'=>_('Dropdown List'),
|
|
'calendar'=>_('Calendar'),
|
|
'file_upload'=>_('File Upload'),
|
|
'status'=>_('Status'),
|
|
'checkbox'=>_('Checkbox'),
|
|
'hidden'=>_('Hidden')
|
|
);
|
|
break;
|
|
|
|
case 'tasktype':
|
|
$list = array(0=>_('Internal Method'),1=>_('System Call'));
|
|
break;
|
|
|
|
case 'trial_length':
|
|
$list = array(0=>_('Days'),1=>_('Weeks'),2=>_('Months'));
|
|
break;
|
|
|
|
default: return sprintf('Unknown staticlist: %s',$type);
|
|
}
|
|
|
|
# If id is blank, we'll just return the value
|
|
if (! $input_id)
|
|
return $list[$default];
|
|
|
|
$return = sprintf('<select id="%s" name="%s" class="%s">',$input_id,$name,$class);
|
|
|
|
if ($all)
|
|
$return .= '<option value=""> </option>';
|
|
|
|
foreach ($list as $element => $details) {
|
|
$selected = '';
|
|
|
|
if ($nokeys) {
|
|
if ($default == $details)
|
|
$selected = ' selected="selected"';
|
|
|
|
} else {
|
|
if ($default == $element)
|
|
$selected = ' selected="selected"';
|
|
}
|
|
|
|
$return .= sprintf('<option value="%s"%s>%s</option>',$nokeys ? $details : $element,$selected,$details);
|
|
}
|
|
|
|
$return .= '</select>';
|
|
|
|
return $return;
|
|
}
|
|
|
|
function format_currency ($number, $currency_id) {
|
|
if(empty($number)) $number = 0;
|
|
if(empty($currency_id)) $currency_id = DEFAULT_CURRENCY;
|
|
if(!isset($this->format_currency[$currency_id])) $this->currency($currency_id);
|
|
if($currency_id != DEFAULT_CURRENCY)
|
|
if(!isset($this->format_currency[DEFAULT_CURRENCY]))
|
|
$this->currency(DEFAULT_CURRENCY);
|
|
$number *= $this->format_currency[DEFAULT_CURRENCY]["convert"][$currency_id]["rate"];
|
|
if($number > .05 || $number == 0 || $number < -1)
|
|
return $this->format_currency[$currency_id]["symbol"]
|
|
. "" . number_format($number, DEFAULT_DECIMAL_PLACE) . " "
|
|
. $this->format_currency[$currency_id]["iso"];
|
|
else
|
|
return $this->format_currency[$currency_id]["symbol"]
|
|
. "" . number_format($number, 3) . " "
|
|
. $this->format_currency[$currency_id]["iso"];
|
|
}
|
|
|
|
function format_currency_num ($number, $currency_id) {
|
|
if(empty($number)) $number = 0;
|
|
if(empty($currency_id)) $currency_id = DEFAULT_CURRENCY;
|
|
if(!isset($this->format_currency[$currency_id])) $this->currency($currency_id);
|
|
if(!isset($this->format_currency[DEFAULT_CURRENCY])) $this->currency(DEFAULT_CURRENCY);
|
|
$number *= $this->format_currency[DEFAULT_CURRENCY]["convert"][$currency_id]["rate"];
|
|
if($number > .05 || $number == 0 || $number < -1)
|
|
return $this->format_currency[$currency_id]["symbol"] . number_format($number, DEFAULT_DECIMAL_PLACE);
|
|
else
|
|
return $this->format_currency[$currency_id]["symbol"] . number_format($number, 2);
|
|
}
|
|
|
|
function format_currency_decimal ($number, $currency_id) {
|
|
if(empty($number)) return 0;
|
|
if(empty($currency_id)) $currency_id = DEFAULT_CURRENCY;
|
|
if(!isset($this->format_currency[$currency_id])) $this->currency($currency_id);
|
|
if(!isset($this->format_currency[DEFAULT_CURRENCY])) $this->currency(DEFAULT_CURRENCY);
|
|
return round($number *= $this->format_currency[DEFAULT_CURRENCY]["convert"][$currency_id]["rate"], 2);
|
|
}
|
|
|
|
function currency_list($ret) {
|
|
if(!isset($this->format_currency[$currency_id])) $this->currency(DEFAULT_CURRENCY);
|
|
global $smarty;
|
|
$smarty->assign("$ret", $this->format_currency[DEFAULT_CURRENCY]["convert"]);
|
|
}
|
|
|
|
function currency_iso ($currency_id) {
|
|
if(empty($currency_id)) $currency_id = DEFAULT_CURRENCY;
|
|
if(!isset($this->format_currency[$currency_id])) $this->currency($currency_id);
|
|
return $this->format_currency[$currency_id]["iso"];
|
|
}
|
|
|
|
function currency($currency_id) {
|
|
$db = &DB();
|
|
$sql = 'SELECT * FROM ' . AGILE_DB_PREFIX . 'currency WHERE
|
|
site_id = ' . $db->qstr(DEFAULT_SITE) . ' AND
|
|
id = ' . $db->qstr($currency_id);
|
|
$result = $db->Execute($sql);
|
|
if($result->RecordCount() > 0) {
|
|
$this->format_currency[$currency_id] = Array (
|
|
'symbol' => $result->fields["symbol"],
|
|
'convert' => unserialize($result->fields["convert_array"]),
|
|
'iso' => $result->fields["three_digit"]);
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function radio($input_id, $name, $table, $field, $id, $class) {
|
|
include_once(PATH_CORE . 'list_radio.inc.php');
|
|
echo list_radio($input_id, $name, $table, $field, $id, $class);
|
|
}
|
|
|
|
function check($input_id, $name, $table, $field, $default, $class) {
|
|
include_once(PATH_CORE . 'list_check.inc.php');
|
|
echo list_check($input_id, $name, $table, $field, $default, $class);
|
|
}
|
|
|
|
function select_groups($default, $field_name, $class, $size, $own_account) {
|
|
include_once(PATH_CORE . 'list_select_groups.inc.php');
|
|
return list_select_groups($default, $field_name, $class, $size, $own_account);
|
|
}
|
|
|
|
function calender_view($field, $default, $css, $id) {
|
|
if(isset($default) && $default != '' && $default != '0')
|
|
$default = date(UNIX_DATE_FORMAT, $default);
|
|
else
|
|
$default = '';
|
|
include_once(PATH_CORE.'list_calendar.inc.php');
|
|
echo list_calender_add($field, $default, $css,$id);
|
|
}
|
|
|
|
public function calender_add($field,$default,$css,$id='') {
|
|
if ($default == 'now')
|
|
$default = date(UNIX_DATE_FORMAT,time());
|
|
|
|
include_once(PATH_CORE.'list_calendar.inc.php');
|
|
echo list_calender_add($field,$default,$css,$id);
|
|
}
|
|
|
|
# @todo Remove?
|
|
function calender_add_static_var($field, $default, $css) {
|
|
if($default == 'now') $default = date(UNIX_DATE_FORMAT, time());
|
|
include_once(PATH_CORE.'list_calendar.inc.php');
|
|
echo list_calender_add_static($field, $default, $css);
|
|
}
|
|
|
|
function calender_search($field, $default, $css) {
|
|
if ($default == 'now')
|
|
$default = date(UNIX_DATE_FORMAT, time());
|
|
|
|
echo '
|
|
<select name="field_option['.$field.'][0]">
|
|
<option value=">">></option>
|
|
<option value="<"><</option>
|
|
<option value="<="><=</option>
|
|
<option value=">=">>=</option>
|
|
<option value="!=">!=</option>
|
|
</select> ';
|
|
|
|
$this->calender_view($field,$default,$css,0);
|
|
echo '<br/>
|
|
<select name="field_option['.$field.'][1]">
|
|
<option value="<"><</option>
|
|
<option value=">">></option>
|
|
<option value="<="><=</option>
|
|
<option value=">=">>=</option>
|
|
<option value="!=">!=</option>
|
|
</select> ';
|
|
$this->calender_view($field,$default,$css,1);
|
|
}
|
|
|
|
function setup_default_date($default, $css) {
|
|
include_once(PATH_CORE . 'list_setup_default_date.inc.php');
|
|
echo list_setup_default_date($default, $css);
|
|
}
|
|
|
|
function card_type_menu($default_selected, $checkout_id, $field='checkout_plugin_data[card_type]', $class,$all=false) {
|
|
include_once(PATH_CORE . 'list_card_type_menu.inc.php');
|
|
echo list_card_type_menu($default_selected, $checkout_id, $field, $class,$all);
|
|
}
|
|
|
|
function date($date) {
|
|
if($date == '') $date = time();
|
|
return date(UNIX_DATE_FORMAT, $date);
|
|
}
|
|
|
|
function date_time($date) {
|
|
if ($date == '')
|
|
return 'UNKNOWN';
|
|
$ret = date(UNIX_DATE_FORMAT, $date);
|
|
$ret .= " ".date(DEFAULT_TIME_FORMAT, $date);
|
|
return $ret;
|
|
}
|
|
|
|
function unserial ($data, $var) {
|
|
global $smarty;
|
|
if(is_string($data)) $array = unserialize($data);
|
|
if(is_array($array)) $smarty->assign($var, $array);
|
|
return;
|
|
}
|
|
|
|
function smarty_array($table, $field, $sql, $return) {
|
|
$db = &DB();
|
|
$sql= "SELECT id, $field FROM ".AGILE_DB_PREFIX."$table
|
|
WHERE site_id = '" . DEFAULT_SITE . "'" . $sql . "
|
|
ORDER BY $field";
|
|
$result = $db->Execute($sql);
|
|
if ($result === false)
|
|
{
|
|
global $C_debug;
|
|
$C_debug->error(__FILE__,__METHOD__,$db->ErrorMsg());
|
|
return false;
|
|
}
|
|
while (!$result->EOF)
|
|
{
|
|
$smart[] = $result->fields;
|
|
$result->MoveNext();
|
|
}
|
|
global $smarty;
|
|
$smarty->assign("$return", $smart);
|
|
return true;
|
|
}
|
|
|
|
function translate($table, $field1, $field2, $id, $var) {
|
|
global $smarty;
|
|
$db = &DB();
|
|
$sql= "SELECT id, $field1 FROM ".AGILE_DB_PREFIX."$table
|
|
WHERE site_id = " . $db->qstr(DEFAULT_SITE) . " AND
|
|
language_id = " . $db->qstr(SESS_LANGUAGE). " AND " .
|
|
$field2 . " = " . $db->qstr($id);
|
|
$result = $db->Execute($sql);
|
|
if ($result === false)
|
|
{
|
|
global $C_debug;
|
|
$C_debug->error(__FILE__,__METHOD__,$db->ErrorMsg());
|
|
return false;
|
|
} else if($result->RecordCount() > 0) {
|
|
$smarty->assign("$var", $result->fields);
|
|
return $result->fields;
|
|
} else {
|
|
if (SESS_LANGUAGE == DEFAULT_LANGUAGE) {
|
|
return false;
|
|
} else {
|
|
$sql= "SELECT id, $field1 FROM ".AGILE_DB_PREFIX."$table
|
|
WHERE site_id = " . $db->qstr(DEFAULT_SITE) . " AND
|
|
language_id = " . $db->qstr(DEFAULT_LANGUAGE). " AND " .
|
|
$field2 . " = " . $db->qstr($id);
|
|
$result = $db->Execute($sql);
|
|
if ($result === false) {
|
|
global $C_debug;
|
|
$C_debug->error(__FILE__,__METHOD__,$db->ErrorMsg());
|
|
return false;
|
|
} else if($result->RecordCount() > 0) {
|
|
$smarty->assign("$var", $result->fields);
|
|
return $result->fields;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public function bool($field,$curr_value,$class='form_menu',$extra='') {
|
|
global $C_translate;
|
|
|
|
# If the field is blank, we'll just return true/false
|
|
if (! $field)
|
|
return $curr_value ? $C_translate->translate('true') : $C_translate->translate('false');
|
|
|
|
if ($curr_value == 'all') {
|
|
$true = '';
|
|
$false= '';
|
|
|
|
} elseif($curr_value == '1') {
|
|
$true = ' selected="selected"';
|
|
$false= '';
|
|
|
|
} else {
|
|
$true = '';
|
|
$false= ' selected="selected"';
|
|
}
|
|
|
|
$return = sprintf('<select id="%s" name="%s" class="%s" %s>',$field,$field,$class,$extra);
|
|
|
|
if ($curr_value == 'all')
|
|
$return .= '<option value="" selected="selected"> </option>';
|
|
|
|
$return .= sprintf('<option value="1"%s>%s</option>',$true,$C_translate->translate('true'));
|
|
$return .= sprintf('<option value="0"%s>%s</option>',$false,$C_translate->translate('false'));
|
|
$return .= '</select>';
|
|
|
|
echo $return;
|
|
}
|
|
|
|
// @todo this looks the same as bool()
|
|
function bool_static_var($field, $curr_value, $class) {
|
|
global $C_translate;
|
|
if ($curr_value == 'all') {
|
|
$true = '';
|
|
$false= '';
|
|
} else if ($curr_value == 0) {
|
|
$true = '';
|
|
$false= ' selected';
|
|
} else {
|
|
$true = ' selected';
|
|
$false= '';
|
|
}
|
|
$return = '<select id="'.$field.'" name="'. $field .'">';
|
|
if($curr_value == 'all')
|
|
$return .= '<option value="" selected> </option>';
|
|
$return .= '<option value="1"' . $true . '>'. $C_translate->translate('true', 'CORE','') . '</option>';
|
|
$return .= '<option value="0"' . $false . '>'. $C_translate->translate('false','CORE','') . '</option>';
|
|
$return .= '</select>';
|
|
return $return;
|
|
}
|
|
|
|
function graphview() {
|
|
global $VAR, $C_method;
|
|
$auth = Array('product:top', 'account_admin:top', 'affiliate:top', 'invoice:compare');
|
|
for($i=0; $i<count($auth); $i++) {
|
|
if($auth[$i] == $VAR['graph']) {
|
|
$m = explode(':', $VAR['graph']);
|
|
$C_method->exe_noauth($m[0], $m[1]);
|
|
exit;
|
|
}
|
|
}
|
|
}
|
|
|
|
function bar_graph() {
|
|
global $VAR;
|
|
require_once(PATH_CORE . 'graph.inc.php');
|
|
$graph = new CORE_graph;
|
|
@$module = $VAR['graph_module'];
|
|
@$range = $VAR['graph_range'];
|
|
@$start = $VAR['graph_start'];
|
|
@$extra = $VAR['graph_extra'];
|
|
$graph->BAR_graph($module, $range, $start, $extra);
|
|
}
|
|
|
|
function pie_graph() {
|
|
global $VAR;
|
|
require_once(PATH_CORE . 'graph.inc.php');
|
|
$graph = new CORE_graph;
|
|
@$module = $VAR['graph_module'];
|
|
@$method = $VAR['graph_method'];
|
|
@$range = $VAR['graph_range'];
|
|
@$start = $VAR['graph_start'];
|
|
@$extra = $VAR['graph_extra'];
|
|
$graph->PIE_graph($module, $method, $range, $start, $extra);
|
|
}
|
|
|
|
# @todo consider changing this so that it returns the .inc file if the module is installed
|
|
# so that $a = x->is_installed('y'); require_once $a can be used
|
|
function is_installed($module) {
|
|
if(@$this->is_installed[$module] == true) return true;
|
|
if($this->auth_method_by_name($module, 'search')) {
|
|
$this->is_installed[$module] = true;
|
|
return true;
|
|
}
|
|
$db = &DB();
|
|
$sql = 'SELECT id FROM ' . AGILE_DB_PREFIX . 'module WHERE
|
|
site_id = ' . $db->qstr(DEFAULT_SITE) . ' AND
|
|
name = ' . $db->qstr($module) . ' AND
|
|
status = ' . $db->qstr("1");
|
|
$result = $db->Execute($sql);
|
|
if($result->RecordCount() > 0) {
|
|
$this->is_installed[$module] = true;
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function auth_method_by_name($module, $method) {
|
|
global $C_auth;
|
|
|
|
if (!is_object($C_auth))
|
|
return false;
|
|
|
|
return $C_auth->auth_method_by_name($module,$method);
|
|
}
|
|
|
|
/**
|
|
* Generate the admin menu
|
|
*/
|
|
public function generate_admin_menu() {
|
|
global $C_auth;
|
|
|
|
echo $C_auth->generate_admin_menu();
|
|
}
|
|
|
|
function account($field) {
|
|
if (empty($this->account) && SESS_LOGGED) {
|
|
$db = &DB();
|
|
$sql = 'SELECT * FROM ' . AGILE_DB_PREFIX . 'account WHERE
|
|
site_id = ' . $db->qstr(DEFAULT_SITE) . ' AND
|
|
id = ' . $db->qstr(SESS_ACCOUNT);
|
|
$result = $db->Execute($sql);
|
|
$this->account = $result->fields;
|
|
}
|
|
echo $this->account[$field];
|
|
}
|
|
|
|
# Get the AgileBill version info
|
|
function version() {
|
|
require_once(PATH_CORE.'version.inc.php');
|
|
}
|
|
}
|
|
?>
|