function domain_views_handler_field_domain_access_sitename::pre_render in Domain Views 7
Run before any fields are rendered.
This gives the handlers some time to set up before any handler has been rendered.
Parameters
array $values: An array of all objects returned from the query.
Overrides views_handler_field::pre_render
File
- includes/
domain_views_handler_field_domain_access_sitename.inc, line 60 - Interface between domain_views.module and views.module.
Class
- domain_views_handler_field_domain_access_sitename
- Field handler to provide simple renderer that allows linking to a domain.
Code
function pre_render($values) {
// If there are no values to render (displaying a summary, or query returned no results)
// do nothing specific.
if (isset($this->view->build_info['summary']) || empty($values)) {
return parent::pre_render($values);
}
$options = $this->options;
// Only alter output if requested.
if ($this->view->base_table == 'node' && !empty($options['list_all_domains'])) {
// Build a list of nids
$nids = array();
foreach ($values as $value) {
$nids[] = $value->domain_nid;
}
if (!empty($nids)) {
$this->field_values = array();
$query = "SELECT node.nid AS nid, domain.sitename AS domain_sitename, domain.domain_id AS domain_domain_id\n FROM node node LEFT JOIN domain_access domain_access ON node.nid = domain_access.nid\n INNER JOIN domain domain ON domain_access.gid = domain.domain_id AND (domain_access.realm = 'domain_id')\n WHERE node.nid IN (" . implode(',', $nids) . ")";
$result = db_query($query);
foreach ($result as $data) {
$this->field_values[$data->nid][$data->domain_domain_id] = $data->domain_sitename;
}
}
}
}