Views integration: setup relation: type as filter_in_operator instead of string ...
authorKaroly Negyesi
Thu, 8 Dec 2011 21:54:43 +0000 (21:54 +0000)
committerKaroly Negyesi
Thu, 8 Dec 2011 21:54:43 +0000 (21:54 +0000)
relation.module
views/relation.views.inc

index 8e0168f..0073af3 100644 (file)
@@ -455,6 +455,20 @@ function relation_get_types($types = array()) {
 }
 
 /**
+ * Returns all relation types in a way which can be used
+ * on form options.
+ */
+function relation_get_types_options() {
+  $types = relation_get_types();
+  $options = array();
+  foreach ($types as $type => $relation_type) {
+    $options[$type] = $relation_type->label;
+  }
+
+  return $options;
+}
+
+/**
  * Helper function. Attaches bundles to relation type objects in an array.
  */
 function _relation_get_types_bundles(&$relation_types) {
index eb4b040..7d0ce65 100644 (file)
@@ -50,7 +50,8 @@ function relation_views_data() {
       'numeric' => TRUE,
     ),
     'filter' => array(
-      'handler' => 'views_handler_filter_string',
+      'handler' => 'views_handler_filter_in_operator',
+      'options callback' => 'relation_get_types_options',
     ),
     'sort' => array(
       'handler' => 'views_handler_sort',