Skip to content

Instantly share code, notes, and snippets.

@woombo
Last active December 8, 2015 18:41
Show Gist options
  • Save woombo/219b146959f7110a3aab to your computer and use it in GitHub Desktop.
Save woombo/219b146959f7110a3aab to your computer and use it in GitHub Desktop.
views_get_view(): SET filter/argument
<?php
function function_name(){
// Load params.
$query_parameters = drupal_get_query_parameters();
// Load view.
$view = views_get_view('views_id');
$view->set_display('views_display_id');
// Load all exposed filters.
$filters = $view->display_handler->get_option('filters');
// Validate and set filter.
foreach ($filters as $k => $v) {
// Set vars.
$identifier = $v['expose']['identifier'];
$value = $query_parameters[$identifier];
// Define parameter.
$filtered_parameters[$identifier] = $value;
}
// Set exposed filters.
// http://www.grasmash.com/article/programmatically-render-drupal-view-exposed-filters-arguments-etc
$view->exposed_input = array_merge($filtered_parameters, (array)$view->exposed_input);
$view->exposed_raw_input = array_merge($filtered_parameters, (array)$view->exposed_raw_input);
$view->exposed_data = array_merge($filtered_parameters, (array)$view->exposed_data);
// Set arguments.
$args = array($arg1, $arg2);
$view->set_arguments($args);
// change the amount of items to show
$view->set_items_per_page(8);
// Execute.
$view->pre_execute();
$view->execute();
// Render.
return drupal_json_output($view->render());
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment