Drupal 7 views使用Blocks的上下文过滤器,默认值无法正常工作,持续使用

时间:2012-05-10 08:56:21

标签: drupal view

我创建了一个基于网址显示内容的视图:例如:domain.com/projects/[username]/[projectname],它显示了特定用户的项目,效果很好。另外,我想在侧边栏上显示该用户的相关项目,因此我使用上下文过滤器和默认值创建了一个块视图。

因为我的网址是项目/用户名,使用默认值 - >来自URL的原始值,所以我将路径组件设置为2.但这对我不起作用。

例如:假设我的用户名是“abc”。

在预览中,如果url路径是“projects / abc”,虽然用户名在url路径的2ed组件中,但它没有显示任何内容。

如果url路径是“abc / *”,它将显示相关内容,这意味着只要用户名在url路径的第一个参数中,就可以了。

我不会发生什么,似乎路径组件的配置为2不起作用。我很困惑,发生了什么事?

1 个答案:

答案 0 :(得分:0)

哟错过了什么。我认为您的每个用户都有一个网址别名。例如,'user / 1'有url别名'abc'。上下文过滤器的Url组件适用于直接URL,而不适用于别名。例如,用户url'abc'的第二个组件将为'1',因此原始url为'user / 1'。 您可以通过在工作视图标题中打印参数来轻松调试它,自己尝试一下:

<?php print arg(0) . '<br>' . arg(1); ?>

对于我的用户/ 1,别名为'abc',我接下来收到:
用户
1
对于路径'abc / *',这是第二个组件,但是 对于路径'项目/用户名',它不是3-rd,因为这个url没有[uid]组件的别名,你必须使用项目/ [uid]或其他验证参数,例如你可以检查项目的autor。从UR'L中选择“用户ID”,并在上下文过滤器的默认值设置中选中“同时查找节点并使用节点作者”选项。