Warning!
This is obsolete, you do this inserting information in the database and creating the function in a separate file. Ask on gitter.
with global variables.
The next code adds a substring function and should suffice to show how to add more functions. Please share if you create any.
Index: modules/com_vtiger_workflow/expression_engine/VTExpressionsManager.inc =================================================================== --- modules/com_vtiger_workflow/expression_engine/VTExpressionsManager.inc (revisión: 938) +++ modules/com_vtiger_workflow/expression_engine/VTExpressionsManager.inc (revisión: 939) @@ -41,7 +41,7 @@ function expressionFunctions() { return array('concat' => 'concat(a,b)', 'time_diffdays' => 'time_diffdays(a,b)', 'time_diff' => 'time_diff(a,b)', 'add_days' => 'add_days(datefield, noofdays)', 'sub_days' => 'sub_days(datefield, noofdays)', - 'get_date' => "get_date('today')"); + 'get_date' => "get_date('today')", 'substring' => "substring(stringfield,start,end)"); } } Index: modules/com_vtiger_workflow/expression_engine/VTExpressionEvaluater.inc =================================================================== --- modules/com_vtiger_workflow/expression_engine/VTExpressionEvaluater.inc (revisión: 938) +++ modules/com_vtiger_workflow/expression_engine/VTExpressionEvaluater.inc (revisión: 939) @@ -144,6 +144,15 @@ } } +function __vt_substring($arr) { + if (count($arr)<2 or count($arr)>3) return $arr[0]; + if (count($arr)==2) { + return substr($arr[0],$arr[1]); + } else { + return substr($arr[0],$arr[1],$arr[2]); + } +} + /** END * */ class VTFieldExpressionEvaluater{ function __construct($expr){ @@ -165,7 +174,8 @@ 'time_diffdays' => '__vt_time_diffdays', 'add_days' => '__vt_add_days', 'sub_days' => '__vt_sub_days', - 'get_date' => '__vt_get_date' + 'get_date' => '__vt_get_date', + 'substring' => '__vt_substring' ); $this->operations = array_merge($this->functions, $this->operators);