将视图上下文过滤器设置为 request_path()
Set views contextual filter as request_path()
主题
我有一个包含图像和 URL 字段的内容类型,我需要在 URL 字段与使用视图的请求路径匹配的路径上将图像显示为横幅。
我试过
1-> 添加 "Alias" 字段作为视图中的上下文过滤器。
2-> 添加 URL 字段
3-> 我还尝试使用 URL 字段和 PHP 上下文过滤器中的代码:
if(drupal_is_front_page()) {
return '<front>';
}else{
return request_path();
}
第三点仅对一个路径参数部分有效,例如当前请求的路径是 services/one
并且视图上下文过滤器仅采用第一个路径组件,如您在附图中所见
但是,无论请求多少组件,我都需要使用整个路径设置上下文过滤器。
我该怎么做?
我通过在 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。
主题
我有一个包含图像和 URL 字段的内容类型,我需要在 URL 字段与使用视图的请求路径匹配的路径上将图像显示为横幅。
我试过
1-> 添加 "Alias" 字段作为视图中的上下文过滤器。
2-> 添加 URL 字段
3-> 我还尝试使用 URL 字段和 PHP 上下文过滤器中的代码:
if(drupal_is_front_page()) {
return '<front>';
}else{
return request_path();
}
第三点仅对一个路径参数部分有效,例如当前请求的路径是 services/one
并且视图上下文过滤器仅采用第一个路径组件,如您在附图中所见
我该怎么做?
我通过在 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。