Renamed function so it might be more understandable
[mailer.git] / inc / expression-functions.php
index 6d393659b1f49371ddbfa2a5c03ebb3293402191..dd533a27a7cbcbc53ec6874c9eb99b024ae8c3d9 100644 (file)
@@ -14,8 +14,6 @@
  * $Date::                                                            $ *
  * $Tag:: 0.2.1-FINAL                                                 $ *
  * $Author::                                                          $ *
- * Needs to be in all Files and every File needs "svn propset           *
- * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * Copyright (c) 2009, 2010 by Mailer Developer Team                    *
@@ -65,7 +63,7 @@ function isExpressionFunctionAvaiable ($data) {
                        // Add non-empty parts
                        if (!empty($piece)) {
                                // Add it
-                               $functionName .= ucfirst(strtolower($piece));
+                               $functionName .= capitalizeUnderscoreString($piece);
                        } // END - if
                } // END - foreach
 
@@ -146,14 +144,14 @@ function doExpressionExt ($data) {
        // Is the extension installed?
        if (isExtensionInstalled($data['matches'][4][$data['key']])) {
                // Construct call-back function name
-               $functionName = 'getExtension' . ucfirst(strtolower($data['callback']));
+               $functionName = 'getExtension' . capitalizeUnderscoreString($data['callback']);
 
                // Construct call of the function
                $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={?CURR_SVN_REVISION?}", $data['matches'][4][$data['key']], $replacer);
+       $replacer = sprintf("&ext=%s&ver=%s&rev={?CURRENT_REPOSITORY_REVISION?}", $data['matches'][4][$data['key']], $replacer);
 
        // Replace it and insert parameter for GET request
        $code = replaceExpressionCode($data, $replacer);
@@ -168,7 +166,7 @@ function doExpressionConfig ($data) {
        // Do we have a special expression function for it?
        if (isExpressionFunctionAvaiable($data)) {
                // Then use it
-               $replacer = '{DQUOTE}  . ' . $data['callback'] . '('.getExpressionFunction($data).'(' . "'" . $data['matches'][4][$data['key']] . "'" . ')) . {DQUOTE}';
+               $replacer = '{DQUOTE}  . ' . $data['callback'] . '(' . getExpressionFunction($data) . '()) . {DQUOTE}';
        } else {
                // Default replacer is the config value itself
                $replacer = '{DQUOTE}  . ' . $data['callback'] . '(getConfig(' . "'" . $data['matches'][4][$data['key']] . "'" . ')) . {DQUOTE}';
@@ -190,7 +188,8 @@ function doExpressionPipe ($data) {
        if (!empty($data['callback'])) {
                //if ($data['callback'] == 'getMemberId') die('<pre>'.encodeEntities(print_r($data, true)).'</pre>');
                // If the value is empty, we don't add it
-               if (empty($data['value'])) {
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'value[' . gettype($data['value']) . ']=' . $data['value']);
+               if ((empty($data['value'])) && ($data['value'] != '0')) {
                        // No value is set
                        $replacer = '{DQUOTE} . ' . $data['extra_func2'] . '(' . $data['extra_func'] . '(' . $data['callback'] . '())) . {DQUOTE}';
                } else {
@@ -265,18 +264,67 @@ function doExpressionMessage ($data) {
 
 // Expression call-back for template functions
 function doExpressionTemplate ($data) {
+       // Construct call-back function name
+       $callback = 'doTemplate' . $data['callback'];
+
+       // Init replacer
+       $replacer = '<!-- ['.__FUNCTION__.':'.__LINE__.'] Call-back function ' . $callback  . ' does not exist. //-->';
+
+       // Is the function there?
+       if (function_exists($callback)) {
+               // Do the replacement
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'template='.$GLOBALS['current_template']);
+               $replacer = '{DQUOTE} . ' . $callback . "('" . $GLOBALS['current_template'] . "', true";
+
+               // Is 'value' set?
+               if (!empty($data['value'])) {
+                       // Then include it as well
+                       $replacer .= ", '" . $data['value'] . "'";
+               } // END - if
+
+               // Replacer is ready
+               $replacer .= ') . {DQUOTE}';
+       } // END - if
+
+       // Replace the code
+       $code = replaceExpressionCode($data, $replacer);
+
+       // Return the (maybe) replaced code
+       return $code;
+}
+
+// Expression call-back for math functions
+function doExpressionMath ($data) {
        // Do the replacement
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'template='.$GLOBALS['current_template']);
-       $replacer = '{DQUOTE} . doTemplate' . $data['callback'] . "('" . $GLOBALS['current_template'] . "', true";
+       $replacer = '{DQUOTE} . doCalculate' . $data['callback'] . '(' . $data['value'] . ') . {DQUOTE}';
 
-       // Is 'value' set?
-       if (!empty($data['value'])) {
-               // Then include it as well
-               $replacer .= ", '" . $data['value'] . "'";
-       } // END - if
+       // Replace the code
+       $code = replaceExpressionCode($data, $replacer);
+
+       // Load include once
+       loadIncludeOnce('inc/math-functions.php');
+
+       // Return the (maybe) replaced code
+       return $code;
+}
+
+// Expression call-back for GET request
+function doExpressionGet ($data) {
+       // Construct the replacer
+       $replacer = '{%pipe,getRequestParameter=' . $data['value'] . '%}';
+
+       // Replace the code
+       $code = replaceExpressionCode($data, $replacer);
+
+       // Return the (maybe) replaced code
+       return $code;
+}
 
-       // Replacer is ready
-       $replacer .= ') . {DQUOTE}';
+// Expression call-back for POST request
+function doExpressionPost ($data) {
+       // Construct the replacer
+       $replacer = '{%pipe,postRequestParameter=' . $data['value'] . '%}';
 
        // Replace the code
        $code = replaceExpressionCode($data, $replacer);