danielebarchiesi@0: table); danielebarchiesi@0: $this->entity_type = $table_data['table']['entity type']; danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Overriden to add the field for the entity id. danielebarchiesi@0: */ danielebarchiesi@0: function query() { danielebarchiesi@0: $this->table_alias = $base_table = $this->view->base_table; danielebarchiesi@0: $this->base_field = $this->view->base_field; danielebarchiesi@0: danielebarchiesi@0: if (!empty($this->relationship)) { danielebarchiesi@0: foreach ($this->view->relationship as $relationship) { danielebarchiesi@0: if ($relationship->alias == $this->relationship) { danielebarchiesi@0: $base_table = $relationship->definition['base']; danielebarchiesi@0: $this->table_alias = $relationship->alias; danielebarchiesi@0: danielebarchiesi@0: $table_data = views_fetch_data($base_table); danielebarchiesi@0: $this->base_field = empty($relationship->definition['base field']) ? $table_data['table']['base']['field'] : $relationship->definition['base field']; danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: // Add the field if the query back-end implements an add_field() method, danielebarchiesi@0: // just like the default back-end. danielebarchiesi@0: if (method_exists($this->query, 'add_field')) { danielebarchiesi@0: $this->field_alias = $this->query->add_field($this->table_alias, $this->base_field, ''); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: $this->add_additional_fields(); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Load the entities for all rows that are about to be displayed. danielebarchiesi@0: */ danielebarchiesi@0: function pre_render(&$values) { danielebarchiesi@0: if (!empty($values)) { danielebarchiesi@0: list($this->entity_type, $this->entities) = $this->query->get_result_entities($values, !empty($this->relationship) ? $this->relationship : NULL, $this->field_alias); danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Overridden to return the entity object, or a certain property of the entity. danielebarchiesi@0: */ danielebarchiesi@0: function get_value($values, $field = NULL) { danielebarchiesi@0: if (isset($this->entities[$this->view->row_index])) { danielebarchiesi@0: $entity = $this->entities[$this->view->row_index]; danielebarchiesi@0: // Support to get a certain part of the entity. danielebarchiesi@0: if (isset($field) && isset($entity->{$field})) { danielebarchiesi@0: return $entity->{$field}; danielebarchiesi@0: } danielebarchiesi@0: // Support to get a part of the values as the normal get_value. danielebarchiesi@0: elseif (isset($field) && isset($values->{$this->aliases[$field]})) { danielebarchiesi@0: return $values->{$this->aliases[$field]}; danielebarchiesi@0: } danielebarchiesi@0: else { danielebarchiesi@0: return $entity; danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: return FALSE; danielebarchiesi@0: } danielebarchiesi@0: }