소스 검색

Autocomplete is searching only on entity properties (not fields)

http://drupal.org/node/1691612
Signed-off-by: bachy <git@g-u-i.net>
bachy 12 년 전
부모
커밋
a981ba0fcd
2개의 변경된 파일24개의 추가작업 그리고 1개의 파일을 삭제
  1. 18 0
      patch-entityreference-7.x.patch
  2. 6 1
      views/entityreference_plugin_display.inc

+ 18 - 0
patch-entityreference-7.x.patch

@@ -0,0 +1,18 @@
+diff --git a/views/entityreference_plugin_display.inc b/views/entityreference_plugin_display.inc
+index 1fc6450..b9a956d 100644
+--- a/views/entityreference_plugin_display.inc
++++ b/views/entityreference_plugin_display.inc
+@@ -76,7 +76,12 @@
+       foreach ($style_options['search_fields'] as $field_alias) {
+         if (!empty($field_alias)) {
+           // Get the table and field names for the checked field
+-          $field = $this->view->query->fields[$this->view->field[$field_alias]->field_alias];
++          if (empty($this->view->field[$field_alias]->field_info)) 
++            $field = $this->view->query->fields[$this->view->field[$field_alias]->field_alias];
++          else {
++            $this->view->query->add_field($this->view->field[$field_alias]->options['table'], $this->view->field[$field_alias]->real_field, $this->view->field[$field_alias]->options['field'], array());
++            $field = $this->view->query->fields[$this->view->field[$field_alias]->options['field']];
++          }
+           // Add an OR condition for the field
+           $conditions->condition($field['table'] . '.' . $field['field'], $value, 'LIKE');
+         }

+ 6 - 1
views/entityreference_plugin_display.inc

@@ -76,7 +76,12 @@ class entityreference_plugin_display extends views_plugin_display {
       foreach ($style_options['search_fields'] as $field_alias) {
         if (!empty($field_alias)) {
           // Get the table and field names for the checked field
-          $field = $this->view->query->fields[$this->view->field[$field_alias]->field_alias];
+          if (empty($this->view->field[$field_alias]->field_info)) 
+            $field = $this->view->query->fields[$this->view->field[$field_alias]->field_alias];
+          else {
+            $this->view->query->add_field($this->view->field[$field_alias]->options['table'], $this->view->field[$field_alias]->real_field, $this->view->field[$field_alias]->options['field'], array());
+            $field = $this->view->query->fields[$this->view->field[$field_alias]->options['field']];
+          }
           // Add an OR condition for the field
           $conditions->condition($field['table'] . '.' . $field['field'], $value, 'LIKE');
         }