Explorar el Código

Autocomplete is searching only on entity properties (not fields)

http://drupal.org/node/1691612
Signed-off-by: bachy <git@g-u-i.net>
bachy hace 12 años
padre
commit
a981ba0fcd
Se han modificado 2 ficheros con 24 adiciones y 1 borrados
  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');
         }