我用暴露的过滤器制作了一个视图。这个过滤器是基于分类的,我使用Hierarchical Select作为小部件,因为这个分类是深层嵌套的。
这个问题非常类似于: How to change the label of the default value (-Any-) of an exposed filter in Drupal Views?
然而,该问题的海报并未使用HS,因此我无法使用那里的答案,特别是这一个:https://stackoverflow.com/a/5975294/443219
使用hook_form_alter时,我应该在$ form数组中放置'#options'键,以使其工作?我已经尝试在整个阵列的不同位置盲目地粘贴相关的代码行,但我相信HS与FAPI有点不同......
答案 0 :(得分:0)
我对此有一个可怕的答案。
我更改了site / all / modules / hierarchical_select / hs_taxonomy_views.module中的第402行:
$any_label = variable_get('views_exposed_filter_any_label', 'old_any') === 'old_any' ? '<'. t('Any') .'>' : '- '. t('Any') .' -';
到
$any_label = variable_get('views_exposed_filter_any_label', 'old_any') === 'old_any' ? 'Worldwide' : '- '. t('Any') .' -';
这样做是因为:在这个网站中,我只需要在视图上使用过滤器 - 而不是其他任何地方。
这绝不是一般解决方案,因为:
如果有人能指出我能够让我彻底解决这个问题的方向,我将不胜感激。但我现在要和我的黑客一起去。
答案 1 :(得分:0)
您可以使用以下代码任何drupal模块。这将有效。
/**
* hook_views_pre_view
* @param type $view
* @param type $display_id
* @param type $args
*/
function MODULE_NAME_views_pre_view(&$view, &$display_id, &$args) {
if ($view->name == 'VIEW_NAME') {
$filters = $view->display_handler->get_option('filters');
$view->display_handler->override_option('filters', $filters);
}
}
/**
* hook__views_pre_build
* @param type $view
* @return type
*/
function MODULE_NAME_views_pre_build($view) {
if ($view->name=='VIEW_NAME') {
$view->display['page']->handler->handlers['filter']['filter_field']->value['value'] = 8;
return $view;
}
}