将视图上下文过滤器设置为request_path()

时间:2018-11-14 12:12:51

标签: drupal drupal-7 drupal-views

主题

我的内容类型带有图片和URL字段,我需要在URL字段与使用视图请求的路径匹配的路径上以横幅形式显示图片。

我尝试过

1->在视图中添加“别名”字段作为上下文过滤器。

2->添加URL字段

3->我还尝试在上下文过滤器中使用带有PHP代码的URL字段:

if(drupal_is_front_page()) {
    return '<front>';
}else{
    return request_path();
}

第3点仅部分适用于一个路径参数,例如当前请求的路径为services/one且视图上下文过滤器仅采用第一个路径成分,如您在所附图像中所见 enter image description here 但是,无论请求多少组件,我都需要使用整个路径设置上下文过滤器。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

我通过将views块嵌入tlp并通过代码传递URL字段过滤器来做到这一点。参见下面的代码:

$path = request_path();

$query = 'SELECT field_url_url FROM {field_data_field_url}
          WHERE bundle = :bundle AND entity_type = :entity_type AND field_url_url =  :field_url_url';

$path = db_query($query, array(
                               ':bundle'=>'page_banner',
                               ':entity_type'=>'node',
                               ':field_url_url'=> $path
                 ))->fetchField();

if (!empty($path)):
  print views_embed_view('page_banner','block', $path);
endif;

我希望这会对需要添加上下文过滤器作为请求URL的人有所帮助。