diff --git a/ordernumber_helper.php b/ordernumber_helper.php index de0180aa30539484b2e1e28186cd5441845899ba..ecb977504026e623ad8567459619d00024f3e9e7 100644 --- a/ordernumber_helper.php +++ b/ordernumber_helper.php @@ -16,7 +16,7 @@ function trl($string) { class OrdernumberHelper { static $_version = "0.1"; - protected $_callbacks = array(); + protected $callbacks = array(); public $_styles = array( 'counter-table-class' => "table-striped", 'counter-table-style' => "", @@ -103,7 +103,7 @@ class OrdernumberHelper { public function __($string) { if (isset($this->callbacks["translate"])) { - return $this->callbacks["translate"]($string); + return call_user_func_array($this->callbacks['translate'], func_get_args()); } else { return $string; } @@ -142,7 +142,7 @@ class OrdernumberHelper { public function urlPath($type, $file) { if (isset($this->callbacks['urlPath'])) { - return $this->callbacks['urlPath']($type, $file); + return call_user_func_array($this->callbacks['urlPath'], func_get_args()); } else { throw new Exception('No callback defined for urlPath(type, file)!'); } @@ -150,13 +150,13 @@ class OrdernumberHelper { protected function replacementsCallback ($func, &$reps, $details, $nrtype) { if (isset($this->callbacks[$func])) { - return $this->callbacks[$func]($reps, $details, $nrtype); + return call_user_func_array($this->callbacks[$func], array(&$reps, $details, $nrtype)); } } protected function getCounter($type, $countername, $default) { if (isset($this->callbacks['getCounter'])) { - return $this->callbacks['getCounter']($type, $countername, $default); + return call_user_func_array($this->callbacks['getCounter'], func_get_args()); } else { throw new Exception('No callback defined for getCounter(type, countername, default)!'); } @@ -164,15 +164,15 @@ class OrdernumberHelper { protected function setCounter($type, $countername, $value) { if (isset($this->callbacks['getCounter'])) { - return $this->callbacks['getCounter']($type, $countername, $value); + return call_user_func_array($this->callbacks['setCounter'], func_get_args()); } else { throw new Exception('No callback defined for setCounter(type, countername, value)!'); } } public function getAllCounters($type) { - if (isset($this->callbacks['getCounter'])) { - return $this->callbacks['getCounter']($type); + if (isset($this->callbacks['getAllCounters'])) { + return call_user_func_array($this->callbacks['getAllCounters'], func_get_args()); } else { throw new Exception ('No callback defined for getAllCounters(type)!'); } @@ -403,7 +403,6 @@ class OrdernumberHelper { $format = $this->doReplacements($format, $reps); $ctrsettings = $this->extractCounterSettings ($format, $type, $ctrsettings); -// JFactory::getApplication()->enqueueMessage("<pre>Replacements for $type:".print_r($reps,1)."</pre>", 'error'); // Increment the counter only if the format contains a placeholder for it! if (strpos($ctrsettings["${type}_format"], "#") !== false) { $countername = $ctrsettings["${type}_counter"];