]> git.mxchange.org Git - mailer.git/blobdiff - inc/expression-functions.php
A lot forced-space characters ( ) removed, naming convention applied also in...
[mailer.git] / inc / expression-functions.php
index c77eb0c92aec2bfca0887f262e79bc34119f92c6..c3d1f57f8b9d015880d86593df7a0a472b1f01d1 100644 (file)
@@ -42,10 +42,17 @@ if (!defined('__SECURITY')) {
        die();
 } // END - if
 
+// Private function to replace the code
+function replaceExpressionCode ($data, $replacer) {
+       // Replace the code
+       // @TODO is escapeQuotes() enougth for strings with single/double quotes?
+       return str_replace($data['matches'][0][$data['key']], $replacer, escapeQuotes($data['code']));
+}
+
 // Expression call-back function for getCode() calls
 function doExpressionCode ($data) {
        // Replace the code
-       $code = str_replace($data['matches'][0][$data['key']], "\" . getCode('" . $data['matches'][4][$data['key']] . "') . \"", $data['code']);
+       $code = str_replace($data['matches'][0][$data['key']], "{DQUOTE} . getCode('" . $data['matches'][4][$data['key']] . "') . {DQUOTE}", $data['code']);
 
        // Return replaced code
        return $code;
@@ -57,10 +64,10 @@ function doExpressionUrl ($data) {
        if ($data['callback'] == 'js') $data['mode'] = 1;
 
        // Handle an URL here
-       $replacer = "\" . encodeUrl(\"" . $data['matches'][4][$data['key']] . "\", " . $data['mode'] . ") . \"";
+       $replacer = "{DQUOTE} . encodeUrl('" . $data['matches'][4][$data['key']] . "', " . $data['mode'] . ') . {DQUOTE}';
 
        // Replace it
-       $code = str_replace($data['matches'][0][$data['key']], $replacer, $data['code']);
+       $code = replaceExpressionCode($data, $replacer);
 
        // Return replaced code
        return $code;
@@ -71,8 +78,11 @@ function doExpressionServer ($data) {
        // This will make 'foo_bar' to detectFooBar()
        $functionName = "'detect' . implode('', array_map('ucfirst', explode('_', '" . $data['callback'] . "')))";
 
+       // Generate replacer
+       $replacer = '{DQUOTE} . call_user_func(' . $functionName . ') . {DQUOTE}';
+
        // Replace it
-       $code = str_replace($data['matches'][0][$data['key']], "\" . call_user_func(" . $functionName . ") . \"", $data['code']);
+       $code = replaceExpressionCode($data, $replacer);
 
        // Return replaced code
        return $code;
@@ -104,8 +114,11 @@ function doExpressionUser ($data) {
                $functionName = $data['extra_func'] . '(' . $functionName . ')';
        } // END - if
 
+       // Generate replacer
+       $replacer = '{DQUOTE} . ' . $functionName . ' . "';
+
        // Now replace the code
-       $code = str_replace($data['matches'][0][$data['key']], "\" . " . $functionName . " . \"", $data['code']);
+       $code = replaceExpressionCode($data, $replacer);
 
        // Return replaced code
        return $code;
@@ -122,11 +135,14 @@ function doExpressionExt ($data) {
                $functionName = 'getExtension' . ucfirst(strtolower($data['callback']));
 
                // Construct call of the function
-               $replacer = "\" . call_user_func_array('" . $functionName . "', array('" . $data['matches'][4][$data['key']] . "', true)) . \"";
+               $replacer = "{DQUOTE} . call_user_func_array('" . $functionName . "', array('" . $data['matches'][4][$data['key']] . "', true)) . {DQUOTE}";
        } // END - if
 
+       // Generate replacer
+       $replacer = sprintf("&ext=%s&ver=%s&rev={DQUOTE} . getConfig('CURR_SVN_REVISION') . {DQUOTE}", $data['matches'][4][$data['key']], $replacer);
+
        // Replace it and insert parameter for GET request
-       $code = str_replace($data['matches'][0][$data['key']], sprintf("&ext=%s&ver=%s&rev=\" . getConfig('CURR_SVN_REVISION') . \"", $data['matches'][4][$data['key']], $replacer), $data['code']);
+       $code = replaceExpressionCode($data, $replacer);
 
        // Return replaced code
        return $code;
@@ -138,11 +154,17 @@ function doExpressionConfig ($data) {
        // Read configuration
        $configValue = getConfig($data['matches'][4][$data['key']]);
 
-       // Construct a new expression
-       $replacer = '{%pipe,' . $data['callback'] . ',' . $configValue . '%}';
+       // Default replacer is the config value itself
+       $replacer = $configValue;
+
+       // Is there a call-back function provided?
+       if (!empty($data['callback'])) {
+               // Construct a new expression
+               $replacer = '{%pipe,' . $data['callback'] . ',' . $configValue . '%}';
+       } // END - if
 
        // Replace the config entry
-       $code = str_replace($data['matches'][0][$data['key']], $replacer, $data['code']);
+       $code = replaceExpressionCode($data, $replacer);
 
        // Return replaced code
        return $code;
@@ -156,11 +178,11 @@ function doExpressionPipe ($data) {
        // Do we have a call-back? Should always be there!
        if (!empty($data['callback'])) {
                // Parse it through this function
-               $replacer = "\" . " . $data['callback'] . "('" . $replacer . "') . \"";
+               $replacer = '{DQUOTE} . ' . $data['callback'] . "('" . $replacer . "') . {DQUOTE}";
        } // END - if
 
        // Replace the config entry
-       $code = str_replace($data['matches'][0][$data['key']], $replacer, $data['code']);
+       $code = replaceExpressionCode($data, $replacer);
 
        // Return replaced code
        return $code;
@@ -169,10 +191,10 @@ function doExpressionPipe ($data) {
 // Expression call-back function for calling filters
 function doExpressionFilter ($data) {
        // Construct replacement
-       $replacer = "\" . runFilterChain('" . $data['matches'][4][$data['key']] . "') . \"";
+       $replacer = "{DQUOTE} . runFilterChain('" . $data['matches'][4][$data['key']] . "') . {DQUOTE}";
 
        // Run the filter and insert result
-       $code = str_replace($data['matches'][0][$data['key']], $replacer, $data['code']);
+       $code = replaceExpressionCode($data, $replacer);
 
        // Return replaced code
        return $code;
@@ -193,7 +215,7 @@ function doExpressionValidatorLinks ($data) {
        } // END - if
 
        // Replace the code
-       $code = str_replace($data['matches'][0][$data['key']], $replacer, $code);
+       $code = replaceExpressionCode($data, $replacer);
 
        // Return the (maybe) replaced code
        return $code;
@@ -204,15 +226,14 @@ function doExpressionMessage ($data) {
        // Message string replacement depends on if message is masked
        if (isMessageMasked($data['callback'])) {
                // Message should be masked
-               $replacer = "\" . getMaskedMessage('" . $data['callback'] . "', '" . $data['extra_func'] . "') . \"";
+               $replacer = "{DQUOTE} . getMaskedMessage('" . $data['callback'] . "', '" . $data['extra_func'] . "') . {DQUOTE}";
        } else {
                // Regular message
-               $replacer = "\" . getMessage('" . $data['callback'] . "') . \"";
+               $replacer = "{DQUOTE} . getMessage('" . $data['callback'] . "') . {DQUOTE}";
        }
 
        // Replace the code
-       // @TODO is escapeQuotes enougth for strings with single/double quotes?
-       $code = str_replace($data['matches'][0][$data['key']], $replacer, escapeQuotes($data['code']));
+       $code = replaceExpressionCode($data, $replacer);
 
        // Return the (maybe) replaced code
        return $code;