commit 44a85a08a40f8866aaaa31bccb696c9b56077706
Author: Damien Tournoud <damien@commerceguys.com>
Date:   Mon Feb 13 07:44:01 2012 +0100

    Issue #1392702 by joachim, Damien Tournoud: Add the option to display select list for Views exposed filters.

diff --git a/plugins/behavior/EntityReferenceBehavior_ViewsFilterSelect.class.php b/plugins/behavior/EntityReferenceBehavior_ViewsFilterSelect.class.php
new file mode 100644
index 0000000..f45022b
--- /dev/null
+++ b/plugins/behavior/EntityReferenceBehavior_ViewsFilterSelect.class.php
@@ -0,0 +1,17 @@
+<?php
+
+class EntityReferenceBehavior_ViewsFilterSelect extends EntityReference_BehaviorHandler_Abstract {
+  public function views_data_alter(&$data, $field) {
+    $entity_info = entity_get_info($field['settings']['target_type']);
+    $field_name = $field['field_name'] . '_target_id';
+    foreach ($data as $table_name => &$table_data) {
+      if (isset($table_data[$field_name])) {
+        // Set the entity id filter to use the in_operator handler with our
+        // own callback to return the values.
+        $table_data[$field_name]['filter']['handler'] = 'views_handler_filter_in_operator';
+        $table_data[$field_name]['filter']['options callback'] = 'entityreference_views_handler_options_list';
+        $table_data[$field_name]['filter']['options arguments'] = array($field['field_name']);
+      }
+    }
+  }
+}
diff --git a/plugins/behavior/views-select-list.inc b/plugins/behavior/views-select-list.inc
new file mode 100644
index 0000000..878cb4e
--- /dev/null
+++ b/plugins/behavior/views-select-list.inc
@@ -0,0 +1,6 @@
+<?php
+$plugin = array(
+  'title' => t('Render Views filters as select list'),
+  'class' => 'EntityReferenceBehavior_ViewsFilterSelect',
+  'behavior type' => 'field',
+);
diff --git a/views/entityreference.views.inc b/views/entityreference.views.inc
index 1e15bf4..0b23d74 100644
--- a/views/entityreference.views.inc
+++ b/views/entityreference.views.inc
@@ -41,6 +41,14 @@ function entityreference_field_views_data($field) {
 }
 
 /**
+ * Options callback for Views handler views_handler_filter_in_operator.
+ */
+function entityreference_views_handler_options_list($field_name) {
+  $field = field_info_field($field_name);
+  return entityreference_options_list($field);
+}
+
+/**
  * Implements hook_field_views_data_views_data_alter().
  *
  * Views integration to provide reverse relationships on entityreference fields.
