if($filters = TSession::getValue(__CLASS__.'_filters'))
{
foreach ($filters as $filter)
{
$filter_sql = $filter->dump();
if (substr_count($filter_sql,'||') > 0 ) {
$filter_sql = str_replace(['%',"'"],['',''], $filter_sql);
$filter_field = explode(' ', $filter_sql)[0];
$filter_operator = explode(' ', $filter_sql)[1];
$filters_or = explode('||', explode(' ', $filter_sql)[2]);
$operator_complement = $filter_operator == 'like' ? '%' : ''; // operator =, <, >, BETWEEN, IN, NOT IN, LIKE, IS NOT
$criteria_or = new TCriteria;
foreach ($filters_or as $filter_value) {
$filter_sub = new TFilter( $filter_field, $filter_operator, "NOESC:'$operator_complement$filter_value$operator_complement'" ) ;
$criteria_sub = new TCriteria;
$criteria_sub->add($filter_sub);
$criteria_or->add($criteria_sub, TExpression::OR_OPERATOR);
}
$criteria->add($criteria_or);
} else {
$criteria->add($filter);
}
}
}
Last active
June 10, 2021 18:01
-
-
Save carlosleonam/f73f02bbeffa2aa7ba45caa75409527e to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment