2008-11-26 22:50:40 +00:00
< ? 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
2009-08-03 04:10:16 +00:00
*
* 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
2008-11-26 22:50:40 +00:00
*
* @ link http :// www . agileco . com /
* @ copyright 2004 - 2008 Agileco , LLC .
* @ license http :// www . agileco . com / agilebill / license1 - 4. txt
2009-08-03 04:10:16 +00:00
* @ author Tony Landis < tony @ agileco . com >
* @ package AgileBill
* @ subpackage Core
*/
/**
* The main AgileBill CORE List Class
*
2008-11-26 22:50:40 +00:00
* @ package AgileBill
2009-08-03 04:10:16 +00:00
* @ subpackage Core
2008-11-26 22:50:40 +00:00
*/
2009-08-03 04:10:16 +00:00
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 );
}
2008-11-26 22:50:40 +00:00
2009-08-03 04:10:16 +00:00
/**
* 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 ) {
2008-11-26 22:50:40 +00:00
global $C_translate ;
2009-08-03 04:10:16 +00:00
$noicon = false ;
if ( $input_id == 'no' ) {
$input_id = '' ;
$noicon = true ;
}
if ( ! $input_id )
$input_id = sprintf ( '%s_%s_%s' , $table , $field , $this -> id ++ );
2008-11-26 22:50:40 +00:00
$db = & DB ();
2009-08-03 04:10:16 +00:00
$result = $db -> Execute ( sqlSelect ( $db , $table , sprintf ( 'id,%s' , $field ), $where , $field ));
if ( $result === false ) {
2008-11-26 22:50:40 +00:00
global $C_debug ;
2009-08-03 04:10:16 +00:00
$C_debug -> error ( __FILE__ , __METHOD__ , $db -> ErrorMsg ());
2008-11-26 22:50:40 +00:00
} else {
2009-08-03 04:10:16 +00:00
$return = sprintf ( '<select id="%s" name="%s" class="%s">' , $input_id , $name , $class );
if ( $all )
$return .= '<option value=""> </option>' ;
2008-11-26 22:50:40 +00:00
$i = 0 ;
2009-08-03 04:10:16 +00:00
while ( ! $result -> EOF ) {
$return .= sprintf ( '<option value="%s"%s>%s</option>' , $result -> fields [ 'id' ],( $default == $result -> fields [ 'id' ]) ? ' selected="selected"' : '' , $result -> fields [ $field ]);
2008-11-26 22:50:40 +00:00
$result -> MoveNext ();
2009-08-03 04:10:16 +00:00
$i ++ ;
2008-11-26 22:50:40 +00:00
}
2009-08-03 04:10:16 +00:00
2008-11-26 22:50:40 +00:00
$return .= '</select>' ;
2009-08-03 04:10:16 +00:00
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 );
2008-11-26 22:50:40 +00:00
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 );
2009-08-03 04:10:16 +00:00
}
2008-11-26 22:50:40 +00:00
function menu_multi ( $default , $name , $table , $field , $id , $max , $class ) {
2009-08-03 04:10:16 +00:00
include_once ( PATH_CORE . 'list_menu_multi.inc.php' );
echo list_menu_multi ( $default , $name , $table , $field , $id , $max , $class );
2008-11-26 22:50:40 +00:00
}
function menu_files ( $id , $name , $default , $path , $pre , $ext , $class ) {
2009-08-03 04:10:16 +00:00
include_once ( PATH_CORE . 'list_menu_files.inc.php' );
2008-11-26 22:50:40 +00:00
echo list_menu_files ( $id , $name , $default , $path , $pre , $ext , $class );
}
2009-08-03 04:10:16 +00:00
/**
* 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 ;
}
2008-11-26 22:50:40 +00:00
function format_currency ( $number , $currency_id ) {
2009-08-03 04:10:16 +00:00
if ( empty ( $number )) $number = 0 ;
2008-11-26 22:50:40 +00:00
if ( empty ( $currency_id )) $currency_id = DEFAULT_CURRENCY ;
if ( ! isset ( $this -> format_currency [ $currency_id ])) $this -> currency ( $currency_id );
if ( $currency_id != DEFAULT_CURRENCY )
2009-08-03 04:10:16 +00:00
if ( ! isset ( $this -> format_currency [ DEFAULT_CURRENCY ]))
$this -> currency ( DEFAULT_CURRENCY );
2008-11-26 22:50:40 +00:00
$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 ) . " "
2009-08-03 04:10:16 +00:00
. $this -> format_currency [ $currency_id ][ " iso " ];
2008-11-26 22:50:40 +00:00
}
function format_currency_num ( $number , $currency_id ) {
2009-08-03 04:10:16 +00:00
if ( empty ( $number )) $number = 0 ;
2008-11-26 22:50:40 +00:00
if ( empty ( $currency_id )) $currency_id = DEFAULT_CURRENCY ;
if ( ! isset ( $this -> format_currency [ $currency_id ])) $this -> currency ( $currency_id );
2009-08-03 04:10:16 +00:00
if ( ! isset ( $this -> format_currency [ DEFAULT_CURRENCY ])) $this -> currency ( DEFAULT_CURRENCY );
2008-11-26 22:50:40 +00:00
$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
2009-08-03 04:10:16 +00:00
return $this -> format_currency [ $currency_id ][ " symbol " ] . number_format ( $number , 2 );
}
2008-11-26 22:50:40 +00:00
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 );
2009-08-03 04:10:16 +00:00
if ( ! isset ( $this -> format_currency [ DEFAULT_CURRENCY ])) $this -> currency ( DEFAULT_CURRENCY );
2008-11-26 22:50:40 +00:00
return round ( $number *= $this -> format_currency [ DEFAULT_CURRENCY ][ " convert " ][ $currency_id ][ " rate " ], 2 );
2009-08-03 04:10:16 +00:00
}
2008-11-26 22:50:40 +00:00
function currency_list ( $ret ) {
if ( ! isset ( $this -> format_currency [ $currency_id ])) $this -> currency ( DEFAULT_CURRENCY );
global $smarty ;
2009-08-03 04:10:16 +00:00
$smarty -> assign ( " $ret " , $this -> format_currency [ DEFAULT_CURRENCY ][ " convert " ]);
2008-11-26 22:50:40 +00:00
}
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' );
2009-08-03 04:10:16 +00:00
echo list_radio ( $input_id , $name , $table , $field , $id , $class );
}
2008-11-26 22:50:40 +00:00
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 );
2009-08-03 04:10:16 +00:00
}
2008-11-26 22:50:40 +00:00
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 ) {
2009-08-03 04:10:16 +00:00
if ( isset ( $default ) && $default != '' && $default != '0' )
2008-11-26 22:50:40 +00:00
$default = date ( UNIX_DATE_FORMAT , $default );
else
$default = '' ;
include_once ( PATH_CORE . 'list_calendar.inc.php' );
2009-08-03 04:10:16 +00:00
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 ());
2008-11-26 22:50:40 +00:00
include_once ( PATH_CORE . 'list_calendar.inc.php' );
2009-08-03 04:10:16 +00:00
echo list_calender_add ( $field , $default , $css , $id );
2008-11-26 22:50:40 +00:00
}
2009-08-03 04:10:16 +00:00
# @todo Remove?
2008-11-26 22:50:40 +00:00
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 );
}
2009-08-03 04:10:16 +00:00
function calender_search ( $field , $default , $css ) {
if ( $default == 'now' )
$default = date ( UNIX_DATE_FORMAT , time ());
2008-11-26 22:50:40 +00:00
echo '
< select name = " field_option['. $field .'][0] " >
< option value = " > " >></ option >
2009-08-03 04:10:16 +00:00
< option value = " < " ><</ option >
2008-11-26 22:50:40 +00:00
< option value = " <= " ><=</ option >
< option value = " >= " >>=</ option >
< option value = " != " >!=</ option >
2009-08-03 04:10:16 +00:00
</ select >& nbsp ; & nbsp ; ' ;
$this -> calender_view ( $field , $default , $css , 0 );
echo ' < br />
< select name = " field_option['. $field .'][1] " >
2008-11-26 22:50:40 +00:00
< option value = " < " ><</ option >
2009-08-03 04:10:16 +00:00
< option value = " > " >></ option >
2008-11-26 22:50:40 +00:00
< option value = " <= " ><=</ option >
< option value = " >= " >>=</ option >
< option value = " != " >!=</ option >
</ select >& nbsp ; & nbsp ; ' ;
2009-08-03 04:10:16 +00:00
$this -> calender_view ( $field , $default , $css , 1 );
2008-11-26 22:50:40 +00:00
}
function setup_default_date ( $default , $css ) {
include_once ( PATH_CORE . 'list_setup_default_date.inc.php' );
echo list_setup_default_date ( $default , $css );
}
2009-08-03 04:10:16 +00:00
function card_type_menu ( $default_selected , $checkout_id , $field = 'checkout_plugin_data[card_type]' , $class , $all = false ) {
2008-11-26 22:50:40 +00:00
include_once ( PATH_CORE . 'list_card_type_menu.inc.php' );
2009-08-03 04:10:16 +00:00
echo list_card_type_menu ( $default_selected , $checkout_id , $field , $class , $all );
}
2008-11-26 22:50:40 +00:00
2009-08-03 04:10:16 +00:00
function date ( $date ) {
2008-11-26 22:50:40 +00:00
if ( $date == '' ) $date = time ();
2009-08-03 04:10:16 +00:00
return date ( UNIX_DATE_FORMAT , $date );
}
2008-11-26 22:50:40 +00:00
2009-08-03 04:10:16 +00:00
function date_time ( $date ) {
if ( $date == '' )
return 'UNKNOWN' ;
$ret = date ( UNIX_DATE_FORMAT , $date );
2008-11-26 22:50:40 +00:00
$ret .= " " . date ( DEFAULT_TIME_FORMAT , $date );
return $ret ;
}
function unserial ( $data , $var ) {
global $smarty ;
if ( is_string ( $data )) $array = unserialize ( $data );
2009-08-03 04:10:16 +00:00
if ( is_array ( $array )) $smarty -> assign ( $var , $array );
2008-11-26 22:50:40 +00:00
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 " ;
2009-08-03 04:10:16 +00:00
$result = $db -> Execute ( $sql );
2008-11-26 22:50:40 +00:00
if ( $result === false )
{
global $C_debug ;
2009-08-03 04:10:16 +00:00
$C_debug -> error ( __FILE__ , __METHOD__ , $db -> ErrorMsg ());
2008-11-26 22:50:40 +00:00
return false ;
2009-08-03 04:10:16 +00:00
}
2008-11-26 22:50:40 +00:00
while ( ! $result -> EOF )
2009-08-03 04:10:16 +00:00
{
2008-11-26 22:50:40 +00:00
$smart [] = $result -> fields ;
$result -> MoveNext ();
2009-08-03 04:10:16 +00:00
}
2008-11-26 22:50:40 +00:00
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 );
2009-08-03 04:10:16 +00:00
$result = $db -> Execute ( $sql );
2008-11-26 22:50:40 +00:00
if ( $result === false )
{
global $C_debug ;
2009-08-03 04:10:16 +00:00
$C_debug -> error ( __FILE__ , __METHOD__ , $db -> ErrorMsg ());
2008-11-26 22:50:40 +00:00
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 );
2009-08-03 04:10:16 +00:00
$result = $db -> Execute ( $sql );
2008-11-26 22:50:40 +00:00
if ( $result === false ) {
global $C_debug ;
2009-08-03 04:10:16 +00:00
$C_debug -> error ( __FILE__ , __METHOD__ , $db -> ErrorMsg ());
2008-11-26 22:50:40 +00:00
return false ;
} else if ( $result -> RecordCount () > 0 ) {
$smarty -> assign ( " $var " , $result -> fields );
return $result -> fields ;
} else {
return false ;
}
}
}
}
2009-08-03 04:10:16 +00:00
public function bool ( $field , $curr_value , $class = 'form_menu' , $extra = '' ) {
2008-11-26 22:50:40 +00:00
global $C_translate ;
2009-08-03 04:10:16 +00:00
# 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' ) {
2008-11-26 22:50:40 +00:00
$true = '' ;
$false = '' ;
2009-08-03 04:10:16 +00:00
} elseif ( $curr_value == '1' ) {
$true = ' selected="selected"' ;
2008-11-26 22:50:40 +00:00
$false = '' ;
2009-08-03 04:10:16 +00:00
2008-11-26 22:50:40 +00:00
} else {
$true = '' ;
2009-08-03 04:10:16 +00:00
$false = ' selected="selected"' ;
2008-11-26 22:50:40 +00:00
}
2009-08-03 04:10:16 +00:00
$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>' ;
2008-11-26 22:50:40 +00:00
echo $return ;
}
2009-08-03 04:10:16 +00:00
// @todo this looks the same as bool()
2008-11-26 22:50:40 +00:00
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 = '' ;
}
2009-08-03 04:10:16 +00:00
$return = '<select id="' . $field . '" name="' . $field . '">' ;
2008-11-26 22:50:40 +00:00
if ( $curr_value == 'all' )
2009-08-03 04:10:16 +00:00
$return .= '<option value="" selected> </option>' ;
2008-11-26 22:50:40 +00:00
$return .= '<option value="1"' . $true . '>' . $C_translate -> translate ( 'true' , 'CORE' , '' ) . '</option>' ;
$return .= '<option value="0"' . $false . '>' . $C_translate -> translate ( 'false' , 'CORE' , '' ) . '</option>' ;
2009-08-03 04:10:16 +00:00
$return .= '</select>' ;
2008-11-26 22:50:40 +00:00
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' ]) {
2009-03-28 05:20:19 +00:00
$m = explode ( ':' , $VAR [ 'graph' ]);
2008-11-26 22:50:40 +00:00
$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 );
}
2009-08-03 04:10:16 +00:00
# @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 ) {
2008-11-26 22:50:40 +00:00
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 ) {
2009-08-03 04:10:16 +00:00
global $C_auth ;
if ( ! is_object ( $C_auth ))
return false ;
return $C_auth -> auth_method_by_name ( $module , $method );
2008-11-26 22:50:40 +00:00
}
2009-08-03 04:10:16 +00:00
/**
* Generate the admin menu
*/
public function generate_admin_menu () {
2008-11-26 22:50:40 +00:00
global $C_auth ;
2009-08-03 04:10:16 +00:00
2008-11-26 22:50:40 +00:00
echo $C_auth -> generate_admin_menu ();
2009-08-03 04:10:16 +00:00
}
2008-11-26 22:50:40 +00:00
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 ];
2009-08-03 04:10:16 +00:00
}
2008-11-26 22:50:40 +00:00
# Get the AgileBill version info
function version () {
require_once ( PATH_CORE . 'version.inc.php' );
}
}
2009-08-03 04:10:16 +00:00
?>