0

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

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

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

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

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

我没有发生什么,似乎将路径组件配置为 2 不起作用。我很纳闷,怎么了?

4

1 回答 1

0

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

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

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

于 2012-05-12T01:10:33.537 回答