Skip to content
Snippets Groups Projects
Commit ffc9c5b2 authored by Reinhold Kainhofer's avatar Reinhold Kainhofer
Browse files

Merge in from VM / WC: Fix callbacks in earlier PHP versions

parent 3971e1d4
Branches
No related tags found
No related merge requests found
......@@ -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"];
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment