function views_handler_field::add_additional_fields in Views (for Drupal 7) 6.2
Same name and namespace in other branches
- 6.3 handlers/views_handler_field.inc \views_handler_field::add_additional_fields()
- 7.3 handlers/views_handler_field.inc \views_handler_field::add_additional_fields()
Add 'additional' fields to the query.
array(
'table' => $tablename,
'field' => $fieldname,
);
Parameters
$fields: An array of fields. The key is an identifier used to later find the field alias used. The value is either a string in which case it's assumed to be a field on this handler's table; or it's an array in the form of
12 calls to views_handler_field::add_additional_fields()
- views_handler_field::query in handlers/
views_handler_field.inc - Called to add the field to a query.
- views_handler_field_comment_link::query in modules/
comment/ views_handler_field_comment_link.inc - Called to add the field to a query.
- views_handler_field_comment_node_link::query in modules/
comment/ views_handler_field_comment_node_link.inc - Called to add the field to a query.
- views_handler_field_filter_format_name::query in modules/
filter/ views_handler_field_filter_format_name.inc - Called to add the field to a query.
- views_handler_field_locale_link_edit::query in modules/
locale/ views_handler_field_locale_link_edit.inc - Called to add the field to a query.
File
- handlers/
views_handler_field.inc, line 79
Class
- views_handler_field
- Base field handler that has no options and renders an unformatted field.
Code
function add_additional_fields($fields = NULL) {
if (!isset($fields)) {
// notice check
if (empty($this->additional_fields)) {
return;
}
$fields = $this->additional_fields;
}
if (!empty($fields) && is_array($fields)) {
foreach ($fields as $identifier => $info) {
if (is_array($info)) {
if (isset($info['table'])) {
$table_alias = $this->query
->ensure_table($info['table'], $this->relationship);
}
else {
$table_alias = $this->table_alias;
}
if (empty($table_alias)) {
vpr(t('Handler @handler tried to add additional_field @identifier but @table could not be added!', array(
'@handler' => $this->definition['handler'],
'@identifier' => $identifier,
'@table' => $info['table'],
)));
$this->aliases[$identifier] = 'broken';
continue;
}
$this->aliases[$identifier] = $this->query
->add_field($table_alias, $info['field']);
}
else {
$this->aliases[$info] = $this->query
->add_field($this->table_alias, $info);
}
}
}
}