It looks like your "compatibility" patch is not right either...
In include/utils/utils.php around lines 2340:
if (!function_exists('spliti')) { function spliti($delim, $str) {return php7_compat_split($delim, $str, true);}}
Note the use of "true" as the third argument.
In the original function that third argument is actually an INT: array spliti ( string $pattern , string $string [, int $limit = -1 ] )
And in at least two uses of spliti in the vtiger code this parameter is called with an integer:
modules/PriceBooks/models/Module.php:147: $splitQuery = spliti(' FROM ', $query, 2); modules/PriceBooks/models/Module.php:155: $joinSplit = spliti(' WHERE ',$splitQuery[1], 2);