Skip to content
Snippets Groups Projects
Commit abbbe0cc authored by Uma's avatar Uma
Browse files

Merge branch 'new_workflow_expressions' into '7.4.0'

Issue 1581 -  I've added preg_replace (for strings only) and substr to available…

 I've added preg_replace (for strings only) and substr to available expressions in workflow

See merge request !814
parents 5eb35cee 6ef59e14
No related branches found
No related tags found
No related merge requests found
......@@ -70,6 +70,41 @@ function __vt_gt($arr) {
function __vt_concat($arr){
return implode($arr);
}
function __vt_substring($arr){
unset($string);unset($start);unset($end);
if (count($arr) == 3) {
$string = $arr[0];
$start = $arr[1];
$end = $arr[2];
} elseif (count($arr) == 2){
$string = $arr[0];
$start = $arr[1];
$end = strlen($string);
}elseif (count($arr) == 1){
$string = $arr[0];
$start = 0;
$end = strlen($string);
}else{return '';}
return mb_substr($string,$start,$end);
}
function __vt_preg_replace_str_only($arr){
unset($pattern);unset($replacement);unset($subject);
if (count($arr) == 3 && is_string($arr[0]) && is_string($arr[1]) && is_string($arr[2])) {
$pattern = $arr[0];
$replacement = $arr[1];
$subject = $arr[2];
} else{return '';}
return preg_replace($pattern,$replacement,$subject);
}
/* Date difference between (input times) or (current time and input time)
*
* @param Array $a $a[0] - Input time1, $a[1] - Input time2
......@@ -283,6 +318,8 @@ class VTFieldExpressionEvaluater{
'>' => '__vt_gt',
);
$this->functions = array(
'substring'=>'__vt_substring',
'preg_replace_str_only'=>'__vt_preg_replace_str_only',
'concat'=>'__vt_concat',
'time_diff' => '__vt_time_diff',
'time_diffdays' => '__vt_time_diffdays',
......
......@@ -39,7 +39,7 @@ class VTExpressionsManager{
}
function expressionFunctions() {
return array('concat' => 'concat(a,b)', 'time_diffdays(a,b)' => 'time_diffdays(a,b)', 'time_diffdays(a)' => 'time_diffdays(a)', 'time_diff(a,b)' => 'time_diff(a,b)','time_diff(a)' => 'time_diff(a)',
return array('substring(string,start,end)'=> 'substring(string,start,end)','preg_replace_str_only(pattern_str,replacement_str,subject)'=>'preg_replace_str_only(pattern_str,replacement_str,subject)','concat' => 'concat(a,b)', 'time_diffdays(a,b)' => 'time_diffdays(a,b)', 'time_diffdays(a)' => 'time_diffdays(a)', 'time_diff(a,b)' => 'time_diff(a,b)','time_diff(a)' => 'time_diff(a)',
'add_days' => 'add_days(datefield, noofdays)', 'sub_days' => 'sub_days(datefield, noofdays)', 'add_time(timefield, minutes)' => 'add_time(timefield, minutes)', 'sub_time(timefield, minutes)' => 'sub_time(timefield, minutes)',
'today' => "get_date('today')", 'tomorrow' => "get_date('tomorrow')", 'yesterday' => "get_date('yesterday')", 'power(base,exponential)' => "power(base,exponential)");
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment