From a1486d029224439e2ae3a14e4d569aa829ead42d Mon Sep 17 00:00:00 2001
From: Emerson Jair <emerson@zoocha.com>
Date: Tue, 20 Oct 2020 09:56:52 -0300
Subject: [PATCH] fix

---
 views_json_query_plugin_query_json.inc | 33 +++++++++++++++++++-------
 1 file changed, 24 insertions(+), 9 deletions(-)

diff --git a/views_json_query_plugin_query_json.inc b/views_json_query_plugin_query_json.inc
index 2d1d5a8..56a1c87 100755
--- a/views_json_query_plugin_query_json.inc
+++ b/views_json_query_plugin_query_json.inc
@@ -196,16 +196,31 @@ class views_json_query_plugin_query_json extends views_plugin_query {
    * Define ops for using in filter.
    */
   function ops($op, $l, $r) {
-    $table = array(
-      '=' => create_function('$l,$r', 'return $l === $r;'),
-      '!=' => create_function('$l,$r', 'return $l !== $r;'),
-      'contains' => create_function('$l, $r', 'return strpos($l, $r) !== false;'),
-      '!contains' => create_function('$l, $r', 'return strpos($l, $r) === false;'),
-      'shorterthan' => create_function('$l, $r', 'return strlen($l) < $r;'),
-      'longerthan' => create_function('$l, $r', 'return strlen($l) > $r;'),
-    );
+    switch ($op) {
+      case 'not empty':
+        return !empty($l);
+
+      case '=':
+        return $l === $r;
+
+      case '!=':
+        return $l !== $r;
+
+      case 'contains':
+        return strpos($l, $r) !== FALSE;
+
+      case '!contains':
+        return strpos($l, $r) === FALSE;
+
+      case 'shorterthan':
+        return drupal_strlen($l) < $r;
+
+      case 'longerthan':
+        return drupal_strlen($l) > $r;
+    }

-    return call_user_func_array($table[$op], array($l, $r));
+    // Skip filter if operation was not found.
+    return TRUE;
   }

   /**
