X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=inc%2Fexpression-functions.php;h=c923b069b9c381d994253f820ce72471fe772eee;hb=ff2f1e349cf09465870ba39256f7d0b5e3dd92f9;hp=b5f92fc07d316dc7501709d4595ecc50fa0b2d00;hpb=2218958d2c9d377c7654122ce591e0ed031cfae8;p=mailer.git diff --git a/inc/expression-functions.php b/inc/expression-functions.php index b5f92fc07d..c923b069b9 100644 --- a/inc/expression-functions.php +++ b/inc/expression-functions.php @@ -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 @@ -138,42 +136,6 @@ function doExpressionServer ($data) { return $code; } -// Expression call-back function for fetching user data -function doExpressionUser ($data) { - // Use current userid by default - $functionName = 'getMemberId()'; - - // User-related data, so is there a userid? - if (!empty($data['matches'][4][$data['key']])) { - // Do we have a userid or $userid? - if ($data['matches'][4][$data['key']] == '$userid') { - // Use dynamic call - $functionName = "getFetchedUserData('userid', \$userid, '" . $data['callback'] . "')"; - } elseif (!empty($data['matches'][4][$data['key']])) { - // User data found - $functionName = "getFetchedUserData('userid', " . $data['matches'][4][$data['key']] . ", '" . $data['callback'] . "')"; - } - } elseif ((!empty($data['callback'])) && (isUserDataValid())) { - // "Call-back" alias column for current logged in user's data - $functionName = "getUserData('" . $data['callback'] . "')"; - } - - // Do we have another function to run (e.g. translations) - if (!empty($data['extra_func'])) { - // Surround the original function call with it - $functionName = $data['extra_func'] . '(' . $functionName . ')'; - } // END - if - - // Generate replacer - $replacer = '{DQUOTE} . ' . $functionName . ' . {DQUOTE}'; - - // Now replace the code - $code = replaceExpressionCode($data, $replacer); - - // Return replaced code - return $code; -} - // Expression call-back function for getting extension data function doExpressionExt ($data) { // Not installed is default @@ -182,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); @@ -204,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}'; @@ -301,9 +263,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 = ''; + + // 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) . {DQUOTE}"; + $replacer = '{DQUOTE} . doCalculate' . $data['callback'] . '(' . $data['value'] . ') . {DQUOTE}'; + + // 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; +} + +// Expression call-back for POST request +function doExpressionPost ($data) { + // Construct the replacer + $replacer = '{%pipe,postRequestParameter=' . $data['value'] . '%}'; // Replace the code $code = replaceExpressionCode($data, $replacer);