drupal - 将视图上下文过滤器设置为 request_path()
问题描述
主题
我有一个带有图像和 URL 字段的内容类型,我需要在 URL 字段与使用视图的请求路径匹配的路径上显示图像作为横幅。
我试过了
1-> 在视图中添加“别名”字段作为上下文过滤器。
2-> 添加 URL 字段
3-> 我还尝试在上下文过滤器中使用带有 PHP 代码的 URL 字段:
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 的人有所帮助。
推荐阅读
- android - 对话框警报单击时应用程序崩溃
- javascript - 如何修复“错误类型错误:data.slice 不是函数”?
- python - 在python中导入网格
- apache-spark - Spark 自定义日志记录
- python-3.x - 为什么我的仪表板应用程序无法正确更新?
- java - 如何使用 Spring-Boot 在 Java 项目中使用 Clojure 库?
- git - 仅显示作为我的提交之一的祖先的提交?
- angular5 - 当 TAB 超出 ag-grid 的最后一个单元格时需要添加新行
- java - 区分“无法为对象分配空间”异常
- python-3.x - 我在 Google 应用引擎上使用 Cloud SQL。在控制台中添加新用户并重新部署我的应用程序后,新用户似乎无法登录?