Skip to content

Instantly share code, notes, and snippets.

@vladdancer
Created July 30, 2013 14:19
Show Gist options
  • Save vladdancer/6113321 to your computer and use it in GitHub Desktop.
Save vladdancer/6113321 to your computer and use it in GitHub Desktop.
Force views filter value
function ft_pm_articles_views_pre_view(&$view){
$display_id = $view->current_display;
if ($display_id == 'related_articles') {
_set_views_options($view, $display_id, 'field_article_category');
}
elseif ($display_id == 'related_news') {
_set_views_options($view, $display_id, 'field_tags');
}
}
function _set_views_options(&$view, $display_id, $field_id) {
$types = views_object_types();
$filters = $view->display[$display_id]->handler->get_option($types['filter']['plural']);
$applied_filter = $filters["{$field_id}_tid"];
$node = menu_get_object();
if (!empty($node->{$field_id})) {
$wrapper = EbtWrapperNode::factory($node);
$filter_field = $wrapper->{$field_id}->raw();
$filter_field_values = drupal_map_assoc($filter_field);
$applied_filter['value'] = $filter_field_values;
$view->set_item($display_id, 'filter', "{$field_id}_tid", $applied_filter);
}
else {
$view->executed = TRUE;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment