Skip to content

Instantly share code, notes, and snippets.

@jcisio
Created May 21, 2013 08:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jcisio/5618270 to your computer and use it in GitHub Desktop.
Save jcisio/5618270 to your computer and use it in GitHub Desktop.
Use Views to render precalculated data.
/**
* Override a view result with nids and render.
*/
function hook_render_view_with_nids($view_name, $display_id, $nids) {
if (!is_array($nids)) {
$nids = array($nids);
}
$view = views_get_view($view_name);
$view->set_display($display_id);
// Create a group with OR operator.
$view->display_handler->override_option('filter_groups', array('operator' => 'OR', 'groups' => array('1' => 'OR')));
// Disable pager, header etc.
$view->display_handler->override_option('pager', array('type' => 'none'));
$view->display_handler->override_option('header', array());
// Create filters for that group.
$filters = array();
foreach ($nids as $nid) {
$filters['nid_' . $nid] = array(
'id' => 'nid_' . $nid,
'table' => 'node',
'field' => 'nid',
'value' => array('value' => $nid),
'group' => '1',
);
}
$view->display_handler->override_option('filters', $filters);
return $view->preview();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment