]> git.mxchange.org Git - mailer.git/blobdiff - inc/expression-functions.php
Bad things are now 'classified' as bad (CSS class 'bad' is being used instead of...
[mailer.git] / inc / expression-functions.php
index 0c76f8f37f4677de61897de73af51e0ed4867195..1eee08b4c3f4c45598f498397ffde7c6cd00b4a6 100644 (file)
@@ -16,8 +16,8 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009, 2010 by Mailer Developer Team                    *
- * For more information visit: http://www.mxchange.org                  *
+ * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * it under the terms of the GNU General Public License as published by *
@@ -50,8 +50,8 @@ function replaceExpressionCode ($data, $replacer) {
 // Private function to determine wether we have a special expression function avaible
 // (mostly located in wrapper-functions.php)
 function isExpressionFunctionAvaiable ($data) {
-       // Get the enty we need
-       $entry = $data['matches'][4][$data['key']];
+       // Get the enty we need and trim it
+       $entry = trim($data['matches'][4][$data['key']]);
 
        // Do we have cache?
        if (!isset($GLOBALS['expression_function_available'][$entry])) {
@@ -70,7 +70,7 @@ function isExpressionFunctionAvaiable ($data) {
                // Is that function there?
                if (function_exists($functionName)) {
                        // Cache it all
-                       $GLOBALS['expression_function_name'][$entry] = $functionName;
+                       $GLOBALS['expression_function_name'][$entry]      = $functionName;
                        $GLOBALS['expression_function_available'][$entry] = true;
                } else {
                        // Not avaiable
@@ -124,7 +124,7 @@ function doExpressionUrl ($data) {
 // Expression call-back function for reading data from $_SERVER
 function doExpressionServer ($data) {
        // This will make 'foo_bar' to detectFooBar()
-       $functionName = "'detect' . implode('', array_map('ucfirst', explode('_', '" . $data['callback'] . "')))";
+       $functionName = "'detect' . implode('', array_map('firstCharUpperCase', explode('_', '" . $data['callback'] . "')))";
 
        // Generate replacer
        $replacer = '{DQUOTE} . call_user_func(' . $functionName . ') . {DQUOTE}';
@@ -151,7 +151,7 @@ function doExpressionExt ($data) {
        } // 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);
@@ -186,13 +186,17 @@ function doExpressionPipe ($data) {
 
        // Do we have a call-back? Should always be there!
        if (!empty($data['callback'])) {
-               //if ($data['callback'] == 'getMemberId') die('<pre>'.encodeEntities(print_r($data, true)).'</pre>');
+               //* DEBUG: */ 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}';
+               } elseif (isXmlTypeBool($data['value'])) {
+                       // Boolean value detected
+                       $replacer = '{DQUOTE} . ' . $data['extra_func2'] . '(' . $data['extra_func'] . '(' . $data['callback'] . '(' . $data['value'] . '))) . {DQUOTE}';
                } else {
-                       // Some value is set
+                       // Some string/integer value is set
                        $replacer = '{DQUOTE} . ' . $data['extra_func2'] . '(' . $data['extra_func'] . '(' . $data['callback'] . "('" . $data['value'] . "'))) . {DQUOTE}";
                }
        } // END - if
@@ -263,18 +267,30 @@ function doExpressionMessage ($data) {
 
 // Expression call-back for template functions
 function doExpressionTemplate ($data) {
-       // Do the replacement
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'template='.$GLOBALS['current_template']);
-       $replacer = '{DQUOTE} . doTemplate' . $data['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}';
+       // 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}';
+       } else {
+               // Log missing function
+               logDebugMessage(__FUNCTION__, __LINE__, 'Call-back function ' . $callback . ' does not exist.');
+       }
 
        // Replace the code
        $code = replaceExpressionCode($data, $replacer);
@@ -302,7 +318,7 @@ function doExpressionMath ($data) {
 // Expression call-back for GET request
 function doExpressionGet ($data) {
        // Construct the replacer
-       $replacer = '{%pipe,getRequestParameter=' . $data['value'] . '%}';
+       $replacer = '{%pipe,getRequestElement=' . $data['value'] . '%}';
 
        // Replace the code
        $code = replaceExpressionCode($data, $replacer);
@@ -314,7 +330,7 @@ function doExpressionGet ($data) {
 // Expression call-back for POST request
 function doExpressionPost ($data) {
        // Construct the replacer
-       $replacer = '{%pipe,postRequestParameter=' . $data['value'] . '%}';
+       $replacer = '{%pipe,postRequestElement=' . $data['value'] . '%}';
 
        // Replace the code
        $code = replaceExpressionCode($data, $replacer);