+ foreach ($matches[2] as $key => $cmd) {
+ // Init replacer/call-back variable
+ $replacer = '';
+ $callback = '';
+ $extraFunction = '';
+
+ // Extract command and call-back
+ $cmdArray = explode(',', $cmd);
+ $cmd = $cmdArray[0];
+ if (isset($cmdArray[1])) $callback = $cmdArray[1];
+ if (isset($cmdArray[2])) $extraFunction = $cmdArray[2];
+
+ // Is the extension installed or code provided?
+ // @TODO This whole switch-block is very static
+ switch ($cmd) {
+ case 'code': // Code asked for
+ $code = str_replace($matches[0][$key], "\" . getCode('" . $matches[4][$key] . "') . \"", $code);
+ break;
+
+ case 'url':
+ // Do we have JS-mode?
+ if (substr($cmd, -2, 2) == 'js') $outputMode = 1;
+
+ // Handle an URL here
+ $replacer = "\" . encodeUrl(\"" . $matches[4][$key] . "\", " . $outputMode . ") . \"";
+
+ // Replace it
+ $code = str_replace($matches[0][$key], $replacer, $code);
+ break;
+
+ case 'server':
+ // This will make 'foo_bar' to detectFooBar()
+ $functionName = "'detect' . implode('', array_map('ucfirst', explode('_', '" . $callback . "')))";
+
+ // Replace it
+ $code = str_replace($matches[0][$key], "\" . call_user_func(" . $functionName . ") . \"", $code);
+ break;
+
+ case 'user':
+ // Use current userid by default
+ $functionName = 'getMemberId()';
+
+ // User-related data, so is there a userid?
+ if (!empty($matches[4][$key])) {
+ // Do we have a userid or $userid?
+ if ($matches[4][$key] == '$userid') {
+ // Use dynamic call
+ $functionName = "getFetchedUserData('userid', \$userid, '" . $callback . "')";
+ } elseif ($matches[4][$key] > 0) {
+ // User data found
+ $functionName = "getFetchedUserData('userid', " . $matches[4][$key] . ", " . $callback . "')";
+ } // END - if
+ } elseif ((!empty($callback)) && (isUserDataValid())) {
+ // "Call-back" alias column for current logged in user's data
+ $functionName = "getUserData('" . $callback . "')";
+ }