Version 1
[yaffs-website] / web / core / modules / views / src / Plugin / views / filter / BooleanOperatorString.php
diff --git a/web/core/modules/views/src/Plugin/views/filter/BooleanOperatorString.php b/web/core/modules/views/src/Plugin/views/filter/BooleanOperatorString.php
new file mode 100644 (file)
index 0000000..5dc8e8a
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+
+namespace Drupal\views\Plugin\views\filter;
+
+/**
+ * Simple filter to handle matching of boolean values.
+ *
+ * This handler checks to see if a string field is empty (equal to '') or not.
+ * It is otherwise identical to the parent operator.
+ *
+ * Definition items:
+ * - label: (REQUIRED) The label for the checkbox.
+ *
+ * @ingroup views_filter_handlers
+ *
+ * @ViewsFilter("boolean_string")
+ */
+class BooleanOperatorString extends BooleanOperator {
+
+  public function query() {
+    $this->ensureMyTable();
+    $where = "$this->tableAlias.$this->realField ";
+
+    if (empty($this->value)) {
+      $where .= "= ''";
+      if ($this->accept_null) {
+        $where = '(' . $where . " OR $this->tableAlias.$this->realField IS NULL)";
+      }
+    }
+    else {
+      $where .= "<> ''";
+    }
+    $this->query->addWhereExpression($this->options['group'], $where);
+  }
+
+}