function ldap_views_plugin_query_ldap::add_field in Lightweight Directory Access Protocol (LDAP) 8.2
Same name and namespace in other branches
- 7.2 ldap_views/plugins/ldap_views_plugin_query_ldap.inc \ldap_views_plugin_query_ldap::add_field()
- 7 ldap_views/plugins/ldap_views_plugin_query_ldap.inc \ldap_views_plugin_query_ldap::add_field()
File
- ldap_views/
plugins/ ldap_views_plugin_query_ldap.inc, line 29 - Defines the default query object which builds and execute a ldap query
Class
- ldap_views_plugin_query_ldap
- @file Defines the default query object which builds and execute a ldap query
Code
function add_field($table, $field, $alias = '', $params = array()) {
// We check for this specifically because it gets a special alias.
if ($table == $this->base_table && $field == $this->base_field && empty($alias)) {
$alias = $this->base_field;
}
if (!$alias && $table) {
$alias = $table . '_' . $field;
}
// Make sure an alias is assigned
$alias = $alias ? $alias : $field;
// PostgreSQL truncates aliases to 63 characters: http://drupal.org/node/571548
// We limit the length of the original alias up to 60 characters
// to get a unique alias later if its have duplicates
$alias = drupal_substr($alias, 0, 60);
// Create a field info array.
$field_info = array(
'field' => $field,
'table' => $table,
'alias' => $alias,
) + $params;
// Test to see if the field is actually the same or not. Due to
// differing parameters changing the aggregation function, we need
// to do some automatic alias collision detection:
$base = $alias;
$counter = 0;
while (!empty($this->fields[$alias]) && $this->fields[$alias] != $field_info) {
$field_info['alias'] = $alias = $base . '_' . ++$counter;
}
if (empty($this->fields[$alias])) {
$this->fields[$alias] = $field_info;
}
return $alias;
}