function views_extra_handlers_views_pre_execute in Extra Views Handlers 7
Implements hook_views_pre_execute().
File
- ./
views_extra_handlers.module, line 111 - Provides a generic but powerful API for web services.
Code
function views_extra_handlers_views_pre_execute(view &$view) {
if (isset($view->field) && !empty($view->field)) {
foreach ($view->field as $field_name => $field_obj) {
$handler = $field_obj->definition['handler'];
if ($handler == "views_extra_handlers_handler_field_query_alter") {
if (!empty($field_obj->options['veh_union']['veh_union_view_name'])) {
$query1 =& $view->build_info['query'];
$union_view_id = $field_obj->options['veh_union']['veh_union_view_name'];
$union_view_display_id = $field_obj->options['veh_union']['veh_union_view_display'];
$view2 = views_get_view($union_view_id);
$view2->veh_union_query = TRUE;
$view2
->set_display($union_view_display_id);
if (!empty($field_obj->options['veh_union']['veh_union_use_args'])) {
// Set the same arguments.
$view2
->set_arguments($view->args);
}
// Remove any pager.
$pager = array(
'type' => 'none',
'options' => array(),
);
$view2->display_handler
->set_option('pager', $pager);
$view2
->pre_execute();
$view2
->execute();
if ($query2 = $view2->build_info['query']) {
// Remove any order by.
$order_by =& $query2
->getOrderBy();
$order_by = array();
// Matrimony.
$union_type = isset($field_obj->options['veh_union']['veh_union_type']) ? $field_obj->options['veh_union']['veh_union_type'] : 'UNION ALL';
$query1 = $query2
->union($query1, $union_type);
}
}
}
}
}
}