* @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 * @package AgileBill * @subpackage Core */ /** * The main AgileBill Method Class * * @package AgileBill * @subpackage Core */ class CORE_method { public function do_all() { global $C_auth,$C_sess,$C_debug,$C_translate,$VAR; # If we dont have anything to do, we'll return if (empty($VAR['do'])) return; if (! is_array($VAR['do'])) { $C_debug->alert(sprintf('VAR[do] is NOT an array (%s), how did you get here?',serialize($VAR['do']))); return; } foreach ($VAR['do'] as $value) { if (preg_match('/:/',$value)) { list($module,$method) = explode(':',$value,2); $C_translate->value['core']['module_name'] = sprintf('%s:%s',$module,$method); if ($module && $method) { if ($C_auth->auth_method_by_name($module,$method)) { if (file_exists($file = sprintf('%s/%s/%s.inc.php',PATH_MODULES,$module,$module))) { include_once($file); if (class_exists($module) && method_exists($module,$method)) { eval (sprintf('$%s = new %s();$%s->%s($VAR,$%s);',$module,$module,$module,$method,$module)); } else { $C_debug->alert($C_translate->translate('method_non_existant','core','')); } } else { $C_debug->alert($C_translate->translate('module_non_existant','core','')); } } else { $C_debug->alert($C_translate->translate('module_non_auth','core','')); } } else { $C_debug->alert($C_translate->translate('method_invalid','core','')); } } else { $C_debug->alert($C_translate->translate('method_invalid','core','')); } } } /** * Execute a modules method */ public function exe($module,$method) { global $C_auth,$C_sess,$C_debug,$C_translate,$VAR; $C_translate->value['core']['module_name'] = sprintf('%s:%s',$module,$method); if ($module != '' && $method != '' && gettype($module) == 'string' && gettype($method) == 'string') { if ($C_auth->auth_method_by_name($module,$method)) { $this->exe_noauth($module,$method); } else { $this->result = false; $this->error = $C_translate->translate('module_non_auth','core',''); } } else { $this->result = false; $this->error = $C_translate->translate('method_invalid','core',''); } } /** * Execute a modules method */ public function exe_noauth($module,$method) { global $C_auth,$C_sess,$C_debug,$C_translate,$VAR; $args = null; if (count(func_get_args())>2) { $args = func_get_args(); array_shift($args); array_shift($args); } $C_translate->value['core']['module_name'] = sprintf('%s:%s',$module,$method); if ($module != '' && $method != '' && gettype($module) == 'string' && gettype($method) == 'string') { if (file_exists($file = sprintf('%s/%s/%s.inc.php',PATH_MODULES,$module,$module))) { include_once($file); if (class_exists($module) && method_exists($module,$method)) { eval (sprintf('$%s = new %s();$%s->%s($VAR,$%s,$args);',$module,$module,$module,$method,$module)); global $smarty; $smarty->assign_by_ref('return',$account); $this->result = true; $this->error = false; } else { $this->result = false; $this->error = $C_translate->translate('method_non_existant','core',''); } } else { $this->result = false; $this->error = $C_translate->translate('module_non_existant','core',''); } } else { $this->result = false; $this->error = $C_translate->translate('method_invalid','core',''); } } } ?>